项目分析v1

news2024/12/26 10:49:44

 用户:

登录:

        不能重复登录。

        在服务端使用一个hashset记录用户的登录状态,如果用户id不在集合里面,就可以登录,登录时将用户id添加到集合中。用户下线时,将set中的元素删除。

        登录成功后,服务端new一个线程 ,处理这个用户的业务。

注册:

        已注册过的邮箱,不可使用

        邮箱验证码注册,验证码应具有时效性。

        在服务端使用一个hashmap,用户id作为key,正确的验证码对象作为value。用户申请注册时,向服务端发送id和验证码对象。对比即可。验证码对象有两个字段,一个是字符串码,一个是时间。

 忘记密码&修改密码   

           获取邮箱验证码,验证码有效即可更改密码

学号/工号 

        由服务端生成,具有唯一性

生日

        DatePicker,并设置上限


课程与班级的理解

课程是一个集合,它包含了这个课程下的不同班级。
老师建立一个课程之后,要在这个课程中创建班级,签到、作业都是以课程中的班级为基本单位进行的。
在关系型数据库,课程与班级是一对多的关系。

教师

创建课程

        老师设置课程名,添加进数据库。在数据库中课程有唯一id主键,课程名,老师id三个字段。老师那边的listview只显示课程名,点击某个课程,进入一个界面,进行具体的互动。

创建班级

        设置班级名,创建时,得到一个唯一的邀请码。在数据库中,班级表应该添加外键关联到课程。
    (邀请码应是一个具有时效性的唯一数,雪花算法)

签到功能

  1. 发布签到任务时,班级成员应收到消息
  2. 用hashmap,学生作为键,签到状态作为值
  3. 班级成员签到时,改变hashmap中对应的值即可
  4. 生成签到表,则可以去获取hashmap中所有的键值对 

选人功能

    先获取班级人数,然后获取一个随机数,用班级人数对这个随机数取模,据此选人
    学生那边也应可以查看到选到的人  

发布资料

    发布到课程,所有班级均可访问
    通过FileChooser 对话框,实现文件选择框。在数据库中保存文件地址,课程和文件的关系是一对多。

添加学生

        老师可以通过学生的唯一标识,将学生导入到某个班级中,在数据库中间表中添加记录

删除学生 

        删除某个班中的某个学生,删除班级学生中间表中的那条记录即可。

注销课程

        注销课程时,数据库中的班级也会被删除,数据库中,关联到课程表(父表)的班级表(子表)外键添加cascade 级联

删除班级

        删除班级时,班级学生中间表中的对应记录也会被自动删除。
#课程与班级 级联 ,班级,学生和他们的中间表也是级联,父表记录删除,子表也删除记录

发布作业

        选择某个课程中的班级,发布作业。

        学生可以收到提醒

        可设置作业的发布时间和截止日期

        作业的一些属性可以随时被老师修改,也可以删除作业

批改作业

        老师可以看到作业的完成情况,已完成和未完成

        点击某个同学的作业,可以进行批改、打回


学生添加课程的理解

实际上就是加入由老师创建的某个课程中的某个班级。通过老师课程中的某个班级的邀请码,加入其中。可以说在学生看来,课程实际上就是班级。
在数据库中,学生和班级是多对多的关系。

学生

加入课程

         实则加入班级,通过邀请码,可以在数据库中查询到班级的id,将学生id和班级id作为一条记录,加入到中间表

退出课程

        删除中间表里的某条记录

下载资料

        通过班级,得到查询到课程,通过课程去查询文件。服务端将文件传给客户端

写作业 

        学生可以知道作业的时间。以文件的形式上传作业。一个作业就是一个文件

班级任务

        有签到和选人

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/490840.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入了解SpringMVC框架,探究其优缺点、作用以及使用方法

一、什么是Spring MVC SpringMVC是一种基于Java的Web框架,与Spring框架紧密结合,用于开发具备WebApp特性的Java应用程序。Spring MVC是Spring Framework的一部分,因此它具有与Spring框架相同的特性和理念。 二、SpringMVC的优缺点 1. 优点…

const、指针、引用

一、const和指针: 分类: 1.1 指向常量的指针 上面的两种形式所表示的含义为:pt的指向可以随便修改,但pt所 指向的东西不得通过pt修改。 1.2 指向变量的常指针 指针的指向不允许改动,但指向的东西可以修改。&#…

1.4W字!让我带你读懂springmvc的世界!

目录 一.前提了解 1.tomcat和servlet的关系? 2.springmvc想要实现web开发必须满足的条件是什么? 二.什么是SpringMVC 三.基于SpringMVC创建web项目 ①创建项目并选择依赖 ②设置热部署(部分代码改动不需要手动重新run即可生效&#xff0…

工地烟火AI监控识别分析系统 yolov7

工地烟火AI监控识别分析系统通过yolov7网络模型技术,工地烟火AI监控识别分析系统对工地或者厂区现场监控区域内的烟火进行实时分析报警。YOLOv7 的发展方向与当前主流的实时目标检测器不同,研究团队希望它能够同时支持移动 GPU 和从边缘到云端的 GPU 设备…

请求重定向(forward)和请求转发(redirect)的区别详解(看这一篇就够了)

在Java中进行页面跳转的方式有两种:重定向和请求转发,但是两者的内部实现是完全不一样的,主要区别分为以下5种: 定义不同请求方式不同数据共享不同最终 URL 地址不同代码实现不同 1,定义不同 请求重定向(f…

五面阿里Java岗,从小公司到阿里的面经总结

​​​​​​​ 面试 笔试常见的问题 面试常见的问题下面给的面试题基本都有。 1 手写代码:手写代码一般会考单例、排序、线程、消费者生产者 排序。 2 写SQL很常考察group by、内连接和外连接 2.面试1-5面总结 1)让你自我介绍 2)做两道算法…

【软考高级】2022年系统分析师综合知识

1.( )是从系统的应用领域而不是从系统用户的特定需要中得出的,它们可以是新的功能性需求,或者是对已有功能性需求的约束,或者是陈述特定的计算必须遵守的要求。 A.功能性需求 B. 用户需求 C.产品需求 D.领域需求 2.对于安全关键系…

红黑树理论详解与Java实现

文章目录 基本定义五大性质红黑树和2-3-4树的关系红黑树和2-3-4树各结点对应关系添加结点到红黑树注意事项添加的所有情况 添加导致不平衡叔父节点不是红色节点(祖父节点为红色)添加不平衡LL/RR添加不平衡LR/RL 叔父节点是红色节点(祖父节点为…

知识图谱学习笔记——(四)知识图谱的抽取与构建

一、知识学习 声明:知识学习中本文主体按照浙江大学陈华钧教授的《知识图谱》公开课讲义进行介绍,并个别地方加入了自己的注释和思考,希望大家尊重陈华钧教授的知识产权,在使用时加上出处。感谢陈华钧教授。 (一&…

汇编三、51单片机汇编指令1

1、指令格式 (1)举例:将立即数0x30送入累加器A MOV  A, #0x30 标号 操作码 目标地址,数据源 ;注解 (2)标号,注解可选项,不一定有。 2、指令执行时间和指令存储空间 (1)指令执…

谁是太阳膜界的真正王者?

小编一文教会你如何选择好的太阳膜 随着天气越来越热,有很多车友迫切的想为自己的爱车,贴上隔热膜,特别是新能源车主。 现在的新能源车都有很大的前挡玻璃和全景天窗,提升了爱车的档次和美观度。但是随之而来的隔热和安全也受到了…

文心一言创意图

文章目录 本土优化创意图成语和典故 本土优化 此前文心一格最让人诟病的就是那张“爱国猫”的图像了,十分离谱,让人一猜就是训练集的问题。 但百度作为全村的希望,对文心一言的优化也是肉眼可见的,迅速做了针对本土的优化&#…

5月新书预告

“读书不觉已春深,一寸光阴一寸金。”相信许多小伙伴儿都把这个五一假期安排的满满当当,还有一部分人抱着书本养精蓄锐、精进技能。小编也没闲着,为大家收集了几本精品新书。 《现代软件工程》是《持续交付》的作者David Farley的另一本力作&…

Codeforces Round 868 (Div. 2)A.B.C

A. A-characteristic 题目链接: Problem - A - Codeforces 题面: 题意: 有一个数组a,里面只存在1和-1,现在可以选择任意两个位置,但是不能重合,如果两个位置的数乘积为1,那么特点…

学生台灯什么牌子好对眼睛好?专业护眼灯的学生台灯分享

据报告统计,2022年我国儿童青少年总体近视率为52.7%,其中6岁儿童为14.3%,小学生为35.6%,初中生为71.1%,高中生为80.5%,这些数据让人不寒而栗! 专家表示,导致儿童青少年近视的因素&am…

Shell脚本2

自定义局部变量 :定义在一个脚本文件中的变量 只能在这个脚本文件中使用的变量,局部变量 语法: var_namevalue 变量定义规则 变量名称可以有字母,数字和下划线组成, 但是不能以数字开头 等号两侧不能有空格 在bash环境中, 变量的默认类型都是字符串…

thinkphp+vue+html基于web的旅游景点酒店线路管理系统6722q

数据库分析 整个系统所包括的信息有景点信息、用户信息、酒店信息、旅行社信息、留言信息等。可将这些信息抽象为下列系统所需要的数据项和数据结构: 1.景点管理(编号,景点名称,景点等级,天气情况,位置,住宿&#xff0…

真无线耳机哪款性价比高?高性价比无线耳机排行榜

近几年,蓝牙耳机凭借使用便捷而受到广大用户的欢迎,逐渐取代有线耳机成为人们生活中必不可少的存在。下面,我来给大家推荐几款性价比高的蓝牙耳机,一起来看看吧。 一、南卡小音舱Lite2蓝牙耳机 参考价:299 蓝牙版本…

初识C++之特殊类设计与类型转换

目录 一、特殊类设计 1. 设计一个对象不能被拷贝的类 2. 设计一个只能在堆上创建对象的类 2.1 禁止构造函数 2.2 禁止析构函数 3. 设计一个只能在栈上创建对象的类 4. 设计一个不能被继承的类 5. 设计一个只能创建出一个对象的类(单例模式) 5.1…

开源世界的尴尬时刻

作者按:开源世界里全都是一片祥和、欣欣向荣吗?全都是热情开放、无私奉献吗?那当然不是。本文罗列几起尴尬世界,目的是让大家对开源世界有一个更全面更具体的认识,让大家对底层开源人的生活的心态有一个更切实际的了解…