精华内容
下载资源
问答
  • 系统中实现的功能是学生、教师、教室、课程的录入、查询、删除和修改以及教务选课功能和学生选课功能。
  • 做两礼拜的课程设计,之前也在网上找了,没找到,又去图书馆找个了个模板作为标本,依照其代码,制作了一个应用窗口程序。还带了数据库,其中有脚本,可以构建数据库。
  • 学生成绩管理系统----UML课程设计rational+rose用例图,活动图,状态图.rar
  • 学生信息管理系统状态图 活动图 等等完整的uml建模
  • 包括:教务管理系统顶层用例图 选课管理子用例图 成绩管理子用例图 成绩管理类图 选课管理类图 学生选课状态图 成绩统计状态图 选课注册顺序图
  • -2-1.1可行性分析1.1.1项目背景近年来学生食堂饭卡的使用给高校餐饮管理带来了一次革命,从结算方式到账户管理,从卫生便捷到数据统计等,不仅给就餐者带来了方便,也使餐饮结算手段发生了质的变化,使餐饮管理现代...

    - 2 -

    1.1

    可行性分析

    1.1.1

    项目背景

    近年来学生食堂饭卡的使用给高校餐饮管理带来了一次革命,

    从结算方式到账户管理,

    从卫生便捷到数据统计等,不仅给就餐者带来了方便,也使餐饮结算手段发生了质的变化,

    使餐饮管理现代化发展有了质的飞跃

    .

    因为学生是一个庞大的群体,全国各地只要有学校就会有食堂,方便就餐饭卡是很必要的,

    而饭卡的充值,

    以及学生基本信息的管理,

    食堂的消费管理却是一个庞大的问题,

    因此完全

    有必要对学生饭卡进行统一的管理,

    学生饭卡管理系统就应允而生。

    方便学生的充值,

    消费,

    以及学校的管理。

    1.1.2

    编写目的

    本系统的开发目的在于为学校开发一个饭卡信息管理系统,满足来自学生、

    学校等方面的需求,

    这几个方面分别是食堂员工、

    在校学生、

    学校财务管理人员、

    银行。

    在校学生的功能包括对

    随时查询自己的消费时间,

    消费地点以及消

    费金额,

    进行网上银行对自己的饭卡进行充值,

    修改自己的饭卡的密

    码等相关信息

    学校财务人员对学生的信息进行查看确认,

    还应包括对系统数

    据库的管理,包括管理密码,整理学生信息,管理员工信息。食堂员工则可以

    查询自己当天的营业额,以及去银行根据营业额领取现金

    学生可以根据本人学号和密码登录系统,

    进行本人消费情况的查询和部分个

    人信息维护。一般情况下,学生只应该查询和维护本人的消费情况和个人信息。

    而不能查询别人的信息

    学校管理人员有部分信息的权限,所以需对管理人员登陆本模块进行更多

    27b0ae8cd3f3673bc3e5b8c693fa608f.png

    展开全文
  • 学生成绩管理系统的分析及设计-应用UML建模》由会员分享,可在线阅读,更多相关《学生成绩管理系统的分析及设计-应用UML建模(48页珍藏版)》请在人人文库网上搜索。1、第1章 系统需求学生成绩管理系统的域1描述如下...

    《学生成绩管理系统的分析及设计-应用UML建模》由会员分享,可在线阅读,更多相关《学生成绩管理系统的分析及设计-应用UML建模(48页珍藏版)》请在人人文库网上搜索。

    1、第1章 系统需求学生成绩管理系统的域1描述如下:在学生成绩管理系统中,要为每个学生建立一个帐户,并给学生发放帐户(帐户可以提供帐户号、帐户初始密码),帐户中存储学生的个人信息、选课信息以及课程成绩。持有帐户的学生可以登陆系统,只能查看本人的个人信息、选课信息、个人成绩。在登陆时,需要输入自己的账号和密码,系统验证学生是否有效(在系统中存在帐户),若有效,则登陆系统,否则重新输入,超过三次,则不允许再次输入。老师可以修改学生成绩信息,但仅限于学生选修的那门课程。老师也有自己的个人帐户,权限比学生高,可以浏览学生信息。学生成绩管理系统的管理员,可以编辑、添加、删除、学生信息。对上述学生成绩管理系统。

    2、的域描述进行分析,可以获得如下功能性需求:学生持有帐户 (帐户号和密码)。学生可以登陆系统。学生可以查看系统消息内的信息。学生可以查看个人信息,个人成绩信息和选课情况。在学期结束时,学生可以选课。学生可以给管理员发消息。老师可以修改选修自己课程的学生的成绩信息。老师可以浏览选修自己课程的学生的信息。学生成绩管理员可以创建新的学生帐户。学生成绩管理员可以修改学生的帐户信息。学生成绩管理员可以删除已存在的学生帐户。学生成绩管理员可以在系统中添加学生信息。学生成绩管理员可以编辑学生信息。学生成绩管理员可以删除学生信息。第2章 需求分析采用用例驱动的分析方法分析需求的主要任务是识别出系统中的参与者和用。

    3、例,并建立用例模型。2.1 识别参与者通过对系统需求的分析,可以确定系统中有三个参与者:StudentActor(学生)、TeacherActor(教师)、AdminerActor(管理员)。参与者的描述如下:(1) Student描述:学生可以登陆、选课、查看系统信息、个人信息、提出意见,还可以取消选课。示例:持有帐户的任何人或组织。(2) Teacher描述:可以修改学生部分信息,浏览学生信息。示例:持有帐户的任何人和组织。(3) Adminer描述:学生成绩管理员维护系统,可以创建、修改、删除学生的信息,可以添加、编辑、删除学生信息,即维护目录。示例:学生成绩管理员。2.2 识别用例前面。

    4、已经识别出了参与者,通过对需求的进一步分析,可以确定系统中有如下用例存在:(1) Reserve course(选课)本用例提供了选课的功能。(2)Cancel course(取消选课)本用例提供了取消选课的功能。(3)input score(输入成绩)本用例提供了教师上传学生成绩功能。(4)update score(更改成绩)本用例提供了修改成绩的功能。(5)Maintain student Info (维护学生信息)本用例提供了创建、修改以及取消学生帐户的功能。(6)Maintain teacher Info (维护教师信息)本用例提供了添加、修改、以及删除教师帐户的功能。(7)Maint。

    5、ain system Info (维护系统信息)本用例提供了添加、修改以及删除系统信息的功能。(8)Log In (登录)本用例描述了用户如何登录进入软件系统。在识别出参与者3和用例后,要想建立用例图,还需要识别出他们之间的关系。“Reserve course”(选课)“Cancel course” (取消选课) 这些动作是由“Student”执行的,“input score” (输入成绩)、“update score” (更、改成绩)是由“teacher”执行的,但是对于软件系统来说,这些操作是由“Adminer”通过系统赋予给他们的,也即以上操作实际上是操作者在允许条件下与系统的交互。“S。

    6、tudent”“teacher ”和参与者“Adminer”之间存在着依赖关系,即“Student”借助“Adminer”完成这些工作。用例“Maintain student Info” (维护学生信息)、“Maintain teacher Info” (维护教师信息)、“Maintain system Info”(维护物系统信息)也是与参与者“Adminer”交互。为了系统的安全性,系统还需要提供进行身份验证的功能,以确保只有具有权限的“Adminer”才可以使用系统的功能,所以“Adminer”必须与用例“登录”交互,也即“Adminer”在使用系统前,要使用用户名和密码进行登录,系统验证。

    7、用户的密码正确后,用户才可以执行进一步的操作。系统的用例图如下图所示:图2.1 系统用例图2.3 用例的事件流描述用例的事件流4是对完成用例行为所需的事件的描述。它描述系统应该做什么,而不是描述系统应该怎样做。开始,只是对执行用例的常规流所需的步骤的简单描述。随着分析的进行,通过添入更多的详细信息,步骤不断细化。最后,将例外流添加到用例的事件流描述中。学生成绩管理系统的用例事件流描述如下:2.3.1 选课在这个用例开始前,student必须登录到系统中。如果这个用例成功,在系统中建立并存储选课记录,否则,系统的状态没有变化。当学生选课时,用例启动。学生打开系统的选课系统,出现选课界面,支流S-。

    8、1:开课目录。支流S-2:选课情况。S-1:选课目录 (1) 提供学期分类。(2) 检索课程类别(kind) (E-1)(3) 检索要选课程名(coursename) (E-2), (4) 创建选课记录。(5) 存储选课记录。S-2: 选课情况(1) 提供是否要书。(2) 是否加权分。(3) 是否撤销。(4) 查看选课记录。E-1: 大方向总体分类。E-2: 具体课程名。2.3.2 取消选课在这个用例开始前,student必须登录到选课系统中。如果这个用例成功,系统删除该选课记录。否则,系统的状态没有变化。当学生取消选课时,用例启动。(1) 检索选课程名(E-1)。(2) 删除选课记录。E-1。

    9、: 若选课记录不存在,系统显示提示信息,用例终止。2.3.3 输入成绩在这个用例开始前,teacher必须登录到系统中。如果这个用例成功,系统建立输入成绩记录。否则,系统的状态没有变化。当teacher输入成绩时,用例启动。(1) 检索学生。(E-1)(2) 输入成绩。(3) 将选课成绩存储在系统中。E-1: 该学生不存在,系统显示提示信息,用例终止。E-2: 系统中不存在该学生,系统显示提示信息,用例终止。2.3.4 更改成绩在这个用例开始前,teacher必须登录到系统中。如果这个用例成功,系统修改选课成绩。否则,系统的状态没有变化。(1) 检索学生 (E-1)。(2) 修改成绩记录 。(。

    10、3) 将修改记录存入系统E-1: 该学生不存在,系统显示提示信息,用例终止。2.3.5 维护学生信息 在这个用例开始前,Adminer必须登录到系统中。如果这个用例成功,系统添加、修改或删除学生信息。否则,系统的状态没有变化。当Adminer想维护学生信息时,用例启动。系统要求Adminer选择所想执行的活动(添加学生、删除学生、修改学生)。如果所选的活动是“添加学生”,则执行分支流S-1:添加学生。如果所选的活动是“删除学生”,则执行分支流S-2:删除学生。如果所选的活动是“修改学生”,则执行分支流 S-3:修改学生。S-1: 添加学生(1) 提供学生的信息,如姓名、学号等。(2) 系统存储。

    11、学生信息 (E-1)。S-2: 删除学生(1) 提供学生的信息。(2) 查询学生 (E-2)。(3) 查询学生的记录 (E-3)。(4) 从系统中删除学生的信息,以及学生的选课记录。S-3:更改学生(1) 提供学生的信息。(2) 查询并显示学生的信息 (E-2),修改相应的信息。(3) 更新系统中学生的信息。E-1: 若学生已存在,系统显示提示信息,用例终止。E-2: 若查询不到学生,系统显示提示信息,用例终止。E-3: 若无记录,系统显示提示信息,用例终止。2.3.6 维护教师信息 在这个用例开始前,Adminer必须登录到系统中。如果这个用例成功,系统添加、修改或删除教师信息。否则,系统的。

    12、状态没有变化。当Adminer想维护教师信息时,用例启动。系统要求Adminer选择所想执行的活动(添加教师、删除教师、修改教师)如果所选的活动是“添加教师”,则执行分支流S-1:添加教师信息。如果所选的活动是“删除教师”,则执行分支流S-2:删除教师信息。如果所选的活动是“修改教师”,则执行分支流S-3:修改教师信息。S-1: 添加教师信息(1) 提供教师名字、所教课程名等信息。(2) 在系统中添加该教师信息 (E-1)。S-2: 删除教师生信息(1) 提供所要删除的教师信息。(2) 查询所要删除的教师 (E-2)。(3) 删除该教师的记录 (E-3)。(4) 从系统中删除教师信息,以及相关。

    13、的记录。S-3:更改教师信息(1) 提供教师信息。(2) 查询并显示教师信息 (E-2),并做相应修改。(3) 更新系统中的学生信息。E-1: 若教师信息已存在,系统显示提示信息,用例终止。E-2: 若查询不到该书老师,系统显示提示信息,用例终止。E-3:若无记录,系统显示提示信息,用例终止。2.3.7 维护系统信息在这个用例开始前,Adminer必须登录到系统中。如果这个用例成功,系统添加、修改或删除系统信息。否则,系统的状态没有变化。当Adminer想维护系统信息时,用例启动。系统要求Adminer选择所想执行的活动(添加信息、删除信息、修改信息)。如果所选的活动是“添加系统消息”,则执行。

    14、分支流S-1:添加系统信息。如果所选的活动是“删除系统信息”,则执行分支流S-2:删除系统信息。如果所选的活动是“修改系统信息”,则执行分支流S-3:修改系统信息。S-1: 添加系统信息(1) 提供添加信息种类。(2) 查询信息种类(kind),确定系统中已存在该书刊种类 (E-1)。(3) 创建信息名。(4) 将系统信息存储到系统中。S-2: 删除系统信息(1) 提供系统信息种类。(2) 查询信息名(newname) (E-2)。(3) 删除系统信息。(4) 从系统中删除系统信息后,并更新相关信息。S-3:修改物理学生信息(1) 提供系统信息种类。(2) 查询系统信息种类(kind)(E-1。

    15、)。(3) 查询并显示该系统信息的所有消息。(4) 选择信息名修改其信息。(5) 更新系统中系统信息的信息。E-1: 若系统中不存在该信息种类,添加该书刊种类信息E-2:若存在该信息,则删除。2.3.8 登录如果用例成功,参与者可以启动系统并使用系统所提供的功能。反之,系统的状态不变。当用户希望登录到系统中时,用例启动。(1) 系统提示用户输入用户名和密码。(2) 用户输入用户名和密码。(3) 系统验证输入的用户名和密码,若正确(E-1),则用户登录到系统中。E-1: 如果用户输入无效的用户名和/或密码,系统显示错误信息。用户可以选择返回基流6的起始点,重新输入正确的用户名和/或密码;或者取消。

    16、登录,用例结束。第3章 静态结构模型进一步分析系统需求,发现类以及类之间的关系,确定它们的静态结构和动态行为,是面向对象7分析的基本任务。系统的静态结构模型主要用类图和对象图描述。3.1 定义系统对象系统对象的识别可以通过寻找系统域8描述和需求描述中的名词来进行。从前述的系统需求描述中可以找到的名词有:学生(student)、教师(teacher)管理员(adminer),这些都是对象图中的候选对象。判断是否应该为这些候选对象创建类的方法是:是否有与该对象相关的身份和行为?(1) 学生(student)学生是有身份的,具有相同名字和不同账号的两个人也是不同的。在这个系统中,学生有相关的行为,学。

    17、生可以选课、取消选课,所以学生应该成为系统中的一个对象。(2) 教师(teacher)教师也有身份,具有相同名字和不同账号的两个人也是不同的。在这个系统中,教师有相关的行为,教师可以上传成绩、修改成绩,所以教师应该成为系统中的一个对象。(3) 选课记录(course load)选课记录也有身份,选课记录可以被彼此区别,不会被搞混。例如,同一个人关于不同课程的选课记录是不同的,同一门课程被不同学生的选课记录也是不同的。(4)成绩记录(score load)成绩记录也有身份的,成绩记录可以被彼此区别,不会被搞混。例如,同一个人关于不同课程的成绩记录是不同的,同一门课程被不同学生的成绩记录也是不同的。

    18、。上述4个类都是实体类,都是持久性的,需要存储在数据库中。本系统采用面向对象数据库9模型,为了便于从数据库文件中引用和检索对象,需要一个描述对象ID的类。另外,由于上述4个类都是持久性类,因此还可以抽象出一个代表持久性的父类,该类实现了面向对象数据库文件的读、写、存储、检索、删除、更新等操作。综上所述,系统中还应该有两个与数据库有关的类:对象ID(OID)和持久类(Persistent)(5)类Persistent类Persistent是类student、teacher、course load的父类。类Persistent为商业对象的持久存储提供了支持,它的子类必须实现从数据库文件中读、写对象。

    19、属性的操作。(6) 类OID实现了对象ID。类OID的对象可用来引用系统中的持久10对象,使得从数据库文件中引用和检索对象变得容易。抽象出系统中的类后,需要确定这些对象的属性和行为。可以根据前述的系统需求分析、用例图、用例的事件流描述和描述脚本的交互作用图,来确定并细化系统中的类、类的操作和属性。下面对系统中的类、类的属性及操作逐一进行描述。(未标注返回值类型的方法使用缺省返回类型void)。类student属性、方法见下图3.1类teacher属性、方法见下图3.2类course load属性、方法见下图3.3Score load属性、方法见下图3.4类Persistent属性、方法见下图3。

    20、.5类OID属性、方法见下图3.6图3.1、3.2、3.3类ScoreloadName :stringID:integerCID:integerTID:integerRead()Getscore()图36 类OID图3.5类Persistent在定义类、类的方法和属性时,建立动态模型的时序图是很有帮助的,类图和时序图的建立是相辅相成的,因为时序图中出现的消息基本上都会成为类中的方法,因此在设计阶段绘制系统的时序图时,要尽量使用类的已识别出的方法来描述消息11,若出现无法用类的已识别出的方法来描述的消息,就要考虑消息是否是类的一个待识别的方法,若是,就要将这个方法及时添加到类的操作类表中,并用这。

    21、个新方法来描述消息。3.2 定义用户界面类通过对系统的不断分析和细化,可识别出下述界面类、类的操作和属性。(1) 类MainWindowMainWindow是系统的主界面,不同的用户登陆界面不一样。系统的主界面具有菜单和菜单项,当选择不同的菜单项时,用户可以执行不同的操作。当程序退出时,主界面窗口关闭。(2) 类studentDialog界面类studentDialog是进行操作“添加学生”、“修改学生”或“删除学生”时所需的对话框。当选择主窗口中的菜单项“添加学生”时,对话框弹出,学生成绩管理员输入学生信息,然后单击按钮“添加”,系统创建学生账户并将之存储在系统中。当选择菜单项“修改学生”或。

    22、“删除学生”时,对话框FindSDialog弹出,学生成绩管理员输入要修改或删除的学生的studentID,单击按钮“OK”提交。系统查询数据库检索到学生信息后弹出对话框studentDialog,显示学生的详细信息,如若是“修改学生”,学生成绩管理员编辑修改学生的有关信息,然后单击按钮“更新”,更新系统中存储的学生信息;如若是“删除学生”,学生成绩管理员则单击按钮“删除”,系统删除所存储的该学生信息,当然,与该学生有关的其他信息业也一并删除。(3) 类FindSDialog界面类FindSDialog是用来根据学生ID号查找学生的对话框。当主窗口中的菜单项“删除学生”或“修改学生”被选择时,。

    23、该对话框弹出,学生成绩管理员输入学生ID,单击按钮“OK”,系统查询数据库中具有指定ID号的学生信息。(4) 类teacherDialog界面类teacherDialog是进行操作“添加教师”、“修改教师”或“删除教师”时所需的对话框。当选择主窗口中的菜单项“添加教师”时,对话框弹出,学生成绩管理员输入教师信息,然后单击按钮“添加”,系统创建教师帐户并将之存储在系统中。当选择菜单项“修改教师”或“删除教师”时,对话框FindTDialog弹出,学生成绩管理员输入要修改或删除的教师,单击按钮“OK”提交。系统查询数据库获取教师信息后弹出对话框teacherDialog,显示教师的详细信息,如若是。

    24、“修改书种”,学生成绩管理员编辑修改教师的有关信息,然后单击按钮“更新”,更新系统中存储的教师信息;如若是“删除教师”,学生成绩管理员则单击按钮“删除”,该教师信息从系统中删除,与该教师有关的其他信息也一并删除。(5) 类FindTDialog界面类FindTDialog是用来根据教师ID查找教师的对话框。当主窗口中的菜单项“删除教师”或“修改教师”被选择时,该对话框弹出,学生成绩管理员输入教师ID,单击按钮“OK”,系统查询数据库中具有指定ID号的教师信息。(6) 类InpUDialog界面类InpUDialog是进行输入成绩操作或更改成绩操作时所需的对话框。当主窗口中的菜单项“输入”被选择。

    25、时,该对话框弹出,教师输入分数,然后单击按钮“OK”,输入动作被确认,系统创建并保存成绩记录。当选择菜单项“更改成绩”时,也弹出该对话框,教师输入学号,修改相应信息,然后单击按钮“更改”,系统中的更新记录。(7) 类ResCDialog界面类ResCDialog是进行操作“选课”或“取消选课”时所需的对话框。当主窗口中的菜单项“选课”被选择时,该对话框弹出,学生输入要选课的信息,然后单击按钮“选课”,选课动作被确认,系统创建并保存选课记录。当选择菜单项“取消选课”时,也弹出该对话框,学生输入课程名及信息,然后单击按钮“取消选课”,系统中的选课记录被删除。(8) 类MessageWindow信息。

    26、窗口类LoginDialog是用来显示提示信息的对话框。(9) 类LoginDialog界面类LoginDialog是用来输入用户名和密码的对话框。类MainWindow属性及方法见下图3.8类StudentDialog属性及方法见下图3.9类FindSDialog属性及方法见下图3.10图3.10类FindBwrDialog图3.9类BorrowerDialog图3.8类MainWindow类TeacherDialog属性及方法见下图3.11类FindTDialog属性及方法见下图3.12类InpUDialog属性及方法见下图3.13类ResCDialog属性及方法见下图3.14类Messa。

    27、geWindow属性及方法见下图3.15类LoginDialog属性及方法见下图3.16图3.12类FindTDialog图3.11类TitleDialog图3.14类ResCDialog图3.13类InpUDialog图3.16类LoginDialog3.15类MessageWindow3.3 建立类图识别出了系统中的类后,还要识别出类间的关系,然后就可以建立类图了。可将系统中的类分为3个包:GUI包、adminer包和DB包。包GUI由界面类组成,包Adminer由实体类组成,包DB由与数据库有关的类组成。包GUI依赖于包Adminer和包DB,包Adminer依赖于包DB。图3.18 系。

    28、统包图3.3.1 包GUI中的界面类关系窗口MessageWindow和对话框studentDialog、FindSDialog、FindTDialog、teacherDialog、InpUDialog、ResCDialog是主窗口MainWindow的一部分。它们之间存在组合关系。类LoginDialog与类MainWindow之间存在“一对一”的关联关系。类FindSDialog与类studentDialog之间是“一对一”的关联关系。类FindTDialog与类teacherDialog之间的关系也是“一对一”的关联关系。3.3.2 包adminer中的实体类关系类student、类te。

    29、acher、类courseload、coreload都是永久类,它们都是包DB中的类Persistent的子类。类teacher与类student之间存在“多对多”的关联关系,每个teacher对象至少有一个student对象,每个student对象至少对应于一个teacher对象。类teacher与类courseload之间存在“一对多的关系,tudent与类courseload之间存在“一对多”的关联关系,每个student对象可以没有或可有多个courseload(选课),每个courseload(选课)可由多个student选课,学生与成绩之间是一对多的关系,一个学生可以有多门课的成绩。

    30、。3.3.3 类ResCDialog和其他类关系3.3.4 InpUDialog和其他类的关系图第4章 动态行为模型系统的动态行为模型由交互作用图(时序图和协作图)、状态图、活动图描述。4.1 建立交互作用图描述系统用例的主要场景的交互作用图如下所示。4.1.1 添加学生“添加学生”的过程是:学生成绩管理员选择菜单项“添加学生”,对话框弹出,学生成绩管理员输入学生信息,提交,系统根据学生ID号查询数据库,看数据库中是否已存在学生,若不存在,创建学生帐户,并存储学生信息。“添加学生”的时序图如图4.1所示,学生成绩管理员选择菜单项“添加学生”,类MainWindow的方法addstudent()。

    31、被调用,然后通过调用类studentDialog的方法createDialog()创建对话框,学生成绩管理员输入学生信息后,提交信息,类studentDialog的方法addstudentr()被调用,通过调用类student的findBorrower()方法来确定该学生的帐户是否已存在,若不存在,则调用类student的方法newstudent()为学生创建帐户,并调用类student的方法store()存储学生信息。图4.1 添加学生时序图4.1.2 删除学生“删除学生”的过程是:学生成绩管理员选择菜单项“删除学生”,查询对话框弹出,学生成绩管理员输入学生ID号,系统查询数据库,显示学生信。

    32、息(若学生信息不存在,显示提示信息,结束删除动作),按下删除按钮,系统确定是否存在与该学生相关的信息记录,若有,给出提示信息,结束删除动作;若没有,查询是否存在与该学生相关的选课记录,若有,删除选课记录。然后从系统中删除学生。“删除学生”的时序图如图4.2所示,学生成绩管理员选择菜单项“删除学生”,类MainWindow的方法delstudent()被调用,然后通过调用类FindSDialog的方法createDialog()创建对话框。学生成绩管理员输入学生ID号后,提交信息,类FindSDialog的findstudent()方法被调用,通过调用类student的方法findstudent。

    33、(id:String)来确定该学生的帐户是否存在,若存在,返回student对象的OID,然后调用类studentDialog的方法createDialog(OID)显示学生信息,在该方法执行期间,发送消息getstudent(OID)给类student获得学生信息。学生成绩管理员单击确认按钮删除(若学生记录非空,则该学生不能被删除),实现方法如下。类studentDialog的delstudent()方法被调用,发送消息getnewsLoans()判断学生是否有与他有关的记录信息。如果有,则显示提示信息,终止“删除学生”的活动(这个替代流未在图中示出);如果没有,类student的方法get。

    34、newsResC()被调用,返回学生的选课记录的数目,如果返回值等于0,则跳过下述循环,如果返回值非零对每个选课记录都要执行如下操作(也就是说此处是一个循环次数为选课记录数的循环,图4.2所示描述的是选课记录数为1的情况)。调用方法getcourseload()获得制定索引的选课记录,然后调用类Reservecourse的方法getkind()获得所选课的课程类kind对象,再调用类kind的方法delReserve course()删除“选课记录”,调用类Reserve course的方法delete()删除“选课记录”对象。最后调用类student的方法delete()删除学生信息。图4.。

    35、2 删除学生时序图4.1.3 添加教师“添加教师”的过程是:学生成绩管理员选择菜单项“添加教师”,对话框弹出,学生成绩管理员输入教师信息,提交,系统根据教师ID号查询数据库,看数据库中是否已存在该教师,若不存在,创建教师帐户,并存储教师信息。“添加教师”的时序图如图4.1所示,学生成绩管理员选择菜单项“添加教师”,类MainWindow的方法addteacher()被调用,然后通过调用类teacherDialog的方法createDialog()创建对话框,学生成绩管理员输入学生信息后,提交信息,类teacherDialog的方法addteacher()被调用,通过调用类teacher的fin。

    36、dteacher()方法来确定该教师的帐户是否已存在,若不存在,则调用类student的方法newteacher()为学生创建帐户,并调用类teacher的方法store()存储教师信息。4.1.4 删除教师“删除教师”的过程如下。“删除教师”的过程是:学生成绩管理员选择菜单项“删除教师”,查询对话框弹出,学生成绩管理员输入教师ID号,系统查询数据库,显示教师信息(若教师信息不存在,显示提示信息,结束删除动作),按下删除按钮,系统确定是否存在与该教师相关的信息记录,若有,给出提示信息,结束删除动作;若没有,查询是否存在与该教师相关的授课记录,若有,删除授课记录。然后从系统中删除学生。“删除教师。

    37、”的时序图如图4.2所示,学生成绩管理员选择菜单项“删除教师”,类MainWindow的方法delteacher()被调用,然后通过调用类FindTDialog的方法createDialog()创建对话框。学生成绩管理员输入教师ID号后,提交信息,类FindTDialog的findteacher()方法被调用,通过调用类teacher的方法findteacher(id:String)来确定该教师的帐户是否存在,若存在,返回教师对象的OID,然后调用类teacherDialog的方法createDialog(OID)显示教师信息,在该方法执行期间,发送消息getteacher(OID)给类tea。

    38、cher获得教师信息。学生成绩管理员单击确认按钮删除(若教师记录非空,则该教师不能被删除),实现方法如下。类教师Dialog的delteachert()方法被调用,发送消息getnewsLoans()判断教师是否有与他有关的记录信息。如果有,则显示提示信息,终止“删除教师”的活动(这个替代流未在图中示出);如果没有,类teacher的方法getnewsResC()被调用,返回教师的授课记录的数目,如果返回值等于0,则跳过下述循环,如果返回值非零对每个选课记录都要执行如下操作(也就是说此处是一个循环次数为授课记录数的循环,图4.2所示描述的是授课记录数为1的情况)。调用方法getcourselo。

    39、ad()获得制定索引的授课记录,然后调用类Reservecourse的方法getkind()获得所选课的课程类kind对象,再调用类kind的方法delReserve course()删除“授课记录”,调用类Reserve course的方法delete()删除“授课记录”对象。最后调用类teacher的方法delete()删除教师信息。图4.4 删除教师4.1.5 选课“选课”的过程是:学生选择菜单项“选课”,对话框弹出,学生输入要选课程名,提交。系统查询数据库,确定该课程否存在。若存在,查询学生信息,确定学生是否能选,若能,创建并存储选课记录,并将选课记录添加到学生信息中,若不能,提示信息。

    40、;若不存在,则显示提示信息,学生重新输入选课课程名或中止选课操作。“选课”的时序图如图4.7所示。学生选择菜单项“选课”,类MainWindow的reserve course()方法被调用,然后通过调用类ResDialog的方法reserve course()被调用,发送消息findcourse()、findstudent()给类courseload和student查询指定的课程信息和学生信息,返回满足条件的student对象的OID,接着调用方法getstudent()返回对应OID的student对象。发送消息给Reserve course,创建courseload对象,调用类Reserv。

    41、e course的方法store()将选课记录存储到数据库中。发送消息addcourse()给student,将选课记录添加到学生信息中,然后调用类student的方法update()更新数据库中的student对象。并存储更改信息。图如下:图4.7 预定书刊4.1.6 取消选课“取消选课”的过程是:学生选择菜单项“取消选课”,对话框弹出,学生输入要取消选课的课程名,提交。系统查询数据库,确定该课程否存在。若不存在,退出系统。查询与之相关的信息,若存在相关信息,弹出提示信息,删除相关信息或终止删除,退出系统。 学生选择菜单项“取消选课”,类MainWindow的cancel course()方。

    42、法被调用,然后通过调用类CanCDialog的方法cancel course()被调用,发送消息findcourse()和findstudent()给类courseload和student查询指定的课程信息和与之相关的学生信息,返回满足条件的student对象的OID,接着调用方法getstudent()返回对应OID的student对象。发送消息给cancel course,调用类cancel course的cancelNews()的方法删除相关信息,再调用cancel course的方法store()将删除记录存储到数据库中。然后调用类student的方法update()更新数据库中的st。

    43、udent对象。并存储更改信息。4.1.7输入成绩“输入成绩”的过程是:教师选择菜单项“输入成绩”,对话框弹出,教师输入要写成绩的学生名,提交。系统查询数据库,确定该学生是否存在。存在,输入成绩,更改相应信息,并将输入记录添加到学生信息中。若不存在,弹出提示信息。教师重新输入选课课程名或中止选课操作。“输入成绩”的时序图如下图所示。教师选择菜单项“输入成绩”,类MainWindow的inputscore()方法被调用,然后通过调用类InpUscore的方法inputscore()被调用,发送消息findstudent()给类student查询指定的学生信息,返回满足条件的student对象的O。

    44、ID,接着调用方法getstudent()返回对应OID的student对象。发送消息给inputscore(),创建scoreload对象,调用类inputscore的方法store()将选课记录存储到数据库中。发送消息addscore()给student,将成绩记录添加到学生信息中,然后调用类student的方法update()更新数据库中的student对象。并存储更改信息。4.1.8更新成绩“更改成绩”的过程是:教师选择菜单项“更改成绩”,对话框弹出,教师输入要更改成绩的学生名,提交。系统查询数据库,确定该学生是否存在。若不存在,退出系统。若存在,并查询与之相关的信息,若存在相关信息,。

    45、弹出提示信息,删除相关信息并更改信息或终止删除,退出系统。 教师选择菜单项“更改成绩”,类MainWindow的updata score()方法被调用,然后通过调用类InpUDialog的方法Updata score()被调用,发送消息findstudent()给类student查询指定学生的信息,返回满足条件的student对象的OID,接着调用方法getstudent()返回对应OID的student对象。发送消息给Updata score(),调用类updata score的方法store()将更改成绩记录存储到数据库中。然后调用类student的方法update()更新数据库中的stu。

    46、dent对象。并存储更改信并存储更改信息。4.1.9 登录“登录”的时序图如图4.11所示,管理员,教师和学生登陆系统的方式相同,只是所拥有的权限不同,所以,本登陆系统以管理员登陆为例说明。学生成绩管理员运行系统,类LoginDialog的方法createDialog()被调用,创建对话框。学生成绩管理员键入用户名和密码,提交,类LoginDialog的方法validate()被调用,验证用户名和密码是否正确,如若正确,发送消息createWindow()给类MainWindow,启动系统,显示系统主界面。4.2 建立状态图4.2.1 对象score的状态图对象score有两个状态:“exis。

    47、tence”(有成绩)状态和“Unexistence”(无成绩)状态。对象score开始处于“Unexistence”状态,当事件“input score()”(输入成绩)发生时,对象跃迁到“Loaned”状态,同时执行动作store()将成绩存储到数据库中。如果对象处于“Loaned”状态,事件“updata()”(更改)发生,同时执行动作store()将成绩存储到数据库中。4.2.2 对象course的状态图对象course有两个状态:“Reserved”(选中)和“Unreserved”(未选课)状态。对象开始处于“Unreserved”状态,事件“Reserved()”发生,对象跃迁到。

    48、“Reserved”状态,同时执行动作store()将选课记录存储到数据库中。当对象处于“Reserved”状态时,若有新的选课事件发生,自跃迁发生,同时执行动作store()将选课记录存储到数据库中;若有取消选课事件“delReservation()”发生,如果护卫条件NumofRsv(选课数)大于1成立,则发生自跃迁,同时执行动作reservatilon.delete()从数据库中删除选课记录,反之,如果护卫条件NumofRsv等于1成立,则跃迁到状态“unreserved”,同时执行动作reservation.delete()从数据库中删除最后一个选课记录。图4.13 course状态图。

    49、第5章 物理模型本系统是一个基于局域网和数据库的应用系统。配置图如下图所示,有4个节点:“Adminer Server”(学生成绩管理系统服务器)、“DB Server”(数据库服务器)、“PC”(学生成绩管理系统客户端PC)、“Printer”(打印机)。“Adminer Server”为学生提供了选课、取消选课、查看成绩和浏览系统信息的服务,为教师提供了输入成绩、修改成绩、浏览学生信息和系统信的服务;为学生成绩管理员提供了维护学生帐户、教师帐户和系统信息的服务。“DB Server”保存系统中的所有持久数据,它是一个旧系统,因此原型为,“DB Server”与“Adminer Server。

    50、”通过学校局域网连接。学生成绩管理员通过“PC”进行系统中的各种操作,并维护学生、教师帐户系统信息,“PC”也通过校园局域网与“Adminer Server” 连接。“Printer”用来学生成绩、选课等信息,它与“Adminer Server”也是通过校园局域网连接。Dr3uhd3uhd3u断喉弩好多年课代表卡不都快递吧4坤角儿4进而34就可4蛕?D脙#軟媁?vo滂焜?蔣 鳄N-P-觞?F瀢?鷲2SXWJ扱;$E锴?咼?wb,O?hW芀嚙C八?迎q?&锃?.楧D峘?wB賛装 綄?衈瞹?嘁?尥?b袦20?箻yF邴?詑攗檢锟袥匏=憌?&丹?鐘w鲽毨G艟*鍚揝?剾貀窴*権?K猞i?僗野x.?=萙S。

    51、?穊堺e崖?*g繍Y犡cn*唇?竟瘡缀頎y?挤lo睈y軩%q1?r?.鍼t滜?jMR=cZ?X?Pox邦漺癬c荵挜FQ?yF邴?詑攗檢锟袥匏=憌?&丹?鐘w鲽毨G艟*鍚揝?剾貀窴*権?K猞i?僗野x.?=萙S?穊堺e崖?*g繍Y犡cn*唇?竟瘡缀頎y?挤lo睈y軩%q1?r?.鍼t滜?jMR=cZ?X?Pox邦漺癬c荵挜FQ?yF邴?詑攗檢锟袥匏=憌?&丹?鐘w鲽毨G艟*鍚揝?剾貀窴*権?K猞i?僗野x.?=萙S?穊堺e崖?*g繍Y犡cn唇?竟瘡缀頎y?挤lo睈y軩%q1?r?.鍼t滜?jMR=cZ?X?Pox邦漺癬c荵挜FQ?*鍚揝?剾貀窴*権?K猞i?僗野x.?=萙S?穊堺e崖?*g繍Y犡。

    52、cn唇?竟瘡缀頎y?挤lo睈y軩%q1?r?.鍼t滜?jMR=cZ?X?Pox邦漺癬c荵挜FQ?yF邴?詑攗檢锟袥匏=憌?&丹?鐘w鲽毨G艟熋H?&鰢Z?L?&?;.z刧绗鰀畬拃Szl4-榌m Y朗k?儤v?+犢Hmu鏸tn褛 埈蕛癤當? m%犔?QVP?0蜈_?绹?爔豴t纴餚?鉙?hte候R?D檘堑?乒h齊?砱蜮陾巁?g?硃?硘敍橼Z?G贒?IJw谆揚?+u醸?羛?;H?豋H(r8v?崂)y|?铰=吮野m擪楋?岠?8.呫諜S啿jgy圕蜽褘0s燅?晳r?羀矤?厎?v?;騴捃?鶁R?脅一痯譊噼?阜z?;O?婗妸_兼譫烴H树畲门V?深奨劇,臕!?鮥?!荳|呜?b踱4b羾?右檉骽曜RbY?梯魏%鳊;?D?蘞V咉M?.?U噎丂fZJY竖莈;6q蝚 q?f谵僉聒涒鏼(3?輋uUEmScc俚F?哘拒頤僛?捚?薲爐e箍x 滟|嶦?绯?+担擷擾卯?懕aQ捠挧e嘞腕%锂?啰h?.逌uE廇.W9衢o踺隗?峥抙e?4囪W壶%俒資? Y胘Wje樽碜3鈊Q?L?搓#4袂刍窖?A畔/7q?誐棏誄斛Z?X喗Ks轠揋?剬W駒?p鹺j惯?堒j飮鰌?胆?烲?:什听揯t瑽坂:?閕粸?pWd;=vM?z衡$z謘澢辑x鞫獐昃O獳?n瘾h餰蜰z73|庽鮵擶ow:缀e?材儍杊咁舰ep?m)?沟。

    展开全文
  • 基于UML的学生成绩管理系统,包括用例模型,活动图,类图,顺序图,合作图,状态图
  • 本文实例为大家分享了java学生信息管理系统MVC架构,供大家参考,具体内容如下一、项目结构学生信息管理系统分三层进行实现。student.java主要提供数据,cotroller.java的功能是绑定试图和计算数据。Stuview.java...

    本文实例为大家分享了java学生信息管理系统MVC架构,供大家参考,具体内容如下

    一、项目结构

    学生信息管理系统分三层进行实现。student.java主要提供数据,cotroller.java的功能是绑定试图和计算数据。Stuview.java用于单一的用来显示数据。

    二、源码

    1.1、Student 类

    /*

    * @FileName: Student.class

    * @version:1.0

    * @author:nazi

    * 描述:模型层

    * */

    import java.io.Serializable;

    /*

    * Summary: Student类实现序列化接口,用于对象的保存

    * @author:nazi

    * @version:1.0

    * */

    public class Student implements Serializable {

    //序列化id

    private static final long serialVersionUID = 9088453456517873574L;

    int num;

    String name;

    String sex;

    int age;

    float grade;

    public Student(int num ,String nameString,String sexString,int g,float f){

    this.num =num;

    name = nameString;

    sex =sexString;

    age =g;

    grade =f;

    }

    public int getNum(){

    return num;

    }

    public String getName(){

    return name;

    }

    public String getSex(){

    return sex;

    }

    public int getAge(){

    return age;

    }

    public float getGrades(){

    return grade;

    }

    public String toString(){

    return "姓名:"+name+"学号:"+num+"性别:"+sex+"年龄:"+age+"成绩:"+grade;

    }

    }

    1.2、Cotroller类

    /*

    * 文件名: Cotroller.java

    * 描述:mvc中的c,用来管理模型层的数据

    * @authur:Nazi

    * function :增、删、改、查、保存、更新

    * */

    import java.io.FileInputStream;

    import java.io.FileNotFoundException;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.ObjectInputStream;

    import java.io.ObjectOutputStream;

    import java.util.ArrayList;

    import java.util.Iterator;

    /*

    * Cotroller类集中对ArrayList进行操作

    * @Author nazi

    * @version 1.0

    * */

    public class Cotroller {

    //student数据集合

    private ArrayList list;

    public Cotroller(ArrayList l){

    this.list =l;

    }

    /*

    * rturn a ArrayList

    * */

    public ArrayList getList()

    {

    return list;

    }

    /*

    * 初始化Student数组

    * */

    public void setList(ArrayList list)

    {

    this.list = list;

    }

    /*

    * add a student to the List

    * */

    public void add(Student s)

    {

    list.add(s);

    }

    /*

    * remove the student from list

    * */

    public void remove(int id)

    {

    for(Iterator iter = list.iterator(); iter.hasNext();)

    {

    Student s = iter.next();

    if(s.getNum() == id)

    {

    list.remove(s);

    }

    }

    }

    /*

    * print the specific student

    * */

    public String printAll(int i) {

    return list.get(i).toString();

    }

    /*

    * 功能简述:将实现序列化后的对象写入到文件中。

    * 文件输出地址:"/home/nazi/2.txt" 文件地址可以更改

    * */

    public void fileOt() throws FileNotFoundException{

    FileOutputStream fo = new FileOutputStream("/home/nazi/2.txt");

    try {

    ObjectOutputStream so = new ObjectOutputStream(fo);

    so.writeObject(list);

    so.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    /*

    * function: 从指定路径读取文件,然后将对象状态进行赋值使用

    *

    * */

    @SuppressWarnings("unchecked")

    public void fileIn() throws FileNotFoundException{

    FileInputStream fi = new FileInputStream("/home/nazi/2.txt");

    try {

    ObjectInputStream si = new ObjectInputStream(fi);

    list = (ArrayList) si.readObject();

    si.close();

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    } catch (ClassNotFoundException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    }

    1.3、StuView类

    /*

    * FileName:StuView.class

    * 描述:以特定的方式展示数据

    * @Atuthor:nazi

    * @version:1.0

    * */

    import java.awt.Font;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import java.io.FileNotFoundException;

    import java.util.ArrayList;

    import javax.swing.JButton;

    import javax.swing.JFrame;

    import javax.swing.JLabel;

    import javax.swing.JTextArea;

    import javax.swing.JTextField;

    /*

    * StuView 类用于展示数据

    * @author:nazi

    * @version:1.0

    * */

    public class StuView {

    private static Cotroller cotroller;

    public static void main(String args[]){

    //创建管理者

    cotroller = new Cotroller(new ArrayList());

    //界面

    initFrame();

    }

    /*

    * InitFrame()中含有各种类型的控件,以及控件所对应的事件处理步骤

    * */

    protected static void initFrame(){

    JFrame frame = new JFrame("学生信息管理系统");

    frame.setSize(600,600);

    frame.setLocation(500, 100);

    frame.setLayout(null);

    //生成组件

    final JTextField name = new JTextField();

    name.setBounds(79, 10, 103, 25);

    final JTextField num = new JTextField();

    num.setBounds(79, 53, 103, 25);

    final JTextField sex = new JTextField();

    sex.setBounds(79, 101, 103, 25);

    final JTextField age = new JTextField();

    age.setBounds(79, 161, 103, 25);

    final JTextField g1 = new JTextField();

    g1.setBounds(79, 216, 103, 25);

    final JTextArea show = new JTextArea();

    show.setBounds(194, 12, 388, 274);

    frame.add(show);

    show.setFont(new Font("Serif",Font.BOLD,18));

    frame.add(show);

    frame.add(name);

    frame.add(num);

    frame.add(sex);

    frame.add(age);

    frame.add(g1);

    frame.add(show);

    JLabel label = new JLabel("学号:");

    label.setBounds(12, 55, 63, 13);

    frame.getContentPane().add(label);

    JLabel label_1 = new JLabel("姓名:");

    label_1.setBounds(12, 10, 63, 13);

    frame.getContentPane().add(label_1);

    JLabel label_2 = new JLabel("性别:");

    label_2.setBounds(12, 110, 63, 13);

    frame.getContentPane().add(label_2);

    JLabel label_3 = new JLabel("年龄:");

    label_3.setBounds(12, 167, 63, 13);

    frame.getContentPane().add(label_3);

    JLabel label_4 = new JLabel("成绩:");

    label_4.setBounds(12, 226, 70, 13);

    frame.getContentPane().add(label_4);

    //添加学生

    JButton btnAdd =new JButton("添加");

    btnAdd.setBounds(12, 362, 104, 23);

    frame.add(btnAdd);

    btnAdd.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent arg0) {

    Student s1 = new Student(Integer.parseInt(num.getText()),name.getText(), sex.getText(),Integer.parseInt(age.getText()),Integer.parseInt(g1.getText()));

    //放到集合

    cotroller.getList().add(s1);

    //打印

    for(int i = 0;i

    show.append("\n");

    show.append(cotroller.printAll(i));

    }

    }

    });

    //保存为文件

    JButton btnSave =new JButton("保存");;

    btnSave.setBounds(478, 362, 104, 23);

    frame.add(btnSave);

    btnSave.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent arg0) {

    try {

    cotroller.fileOt();

    } catch (FileNotFoundException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    });

    //刷新

    JButton btnRefresh = new JButton("刷新");

    btnRefresh.setBounds(327, 362, 104, 23);

    frame.add(btnRefresh);

    btnRefresh.addActionListener(new ActionListener() {

    @Override

    public void actionPerformed(ActionEvent arg0) {

    try {

    cotroller.fileIn();

    } catch (FileNotFoundException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    //打印

    for(int i = 0;i

    show.append("\n");

    show.append(cotroller.printAll(i));

    }

    }

    });

    //删除

    JButton button_1 = new JButton("删除");

    button_1.setBounds(169, 362, 104, 23);

    button_1.addActionListener(new ActionListener() {

    @Override

    public void actionPerformed(ActionEvent arg0) {

    // TODO Auto-generated method stub

    }

    });

    frame.add(button_1);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.setVisible(true);

    }

    }

    三、运行效果(初始界面、添加界面、刷新界面)

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • 这不仅工作效率低下,而且使得的管理上也极其反映当时的情况,尤其在查询数据时,会相当的繁琐,偶尔可能会存在表单记录丢失的情况,所以,很有必要推出一款便于学生宿舍管理的一套软件。 本系统主要采用spring开发...

    摘 要
    随着每年高校大学生不断的扩招,人数的增加导致宿舍管理压力巨大。学校宿舍作为高校管理的组成部分,现如今还有部分高校,通过纸质的方式登记学生进出宿舍的情况,这不仅工作效率低下,而且使得的管理上也极其反映当时的情况,尤其在查询数据时,会相当的繁琐,偶尔可能会存在表单记录丢失的情况,所以,很有必要推出一款便于学生宿舍管理的一套软件。
    本系统主要采用spring开发框架制。使用的技术有mysql数据库、mybatis驱动框架以及tomcat服务端部署,用到的集成开发工具主要是IDEA和jdk1.8。
    该学生宿舍管理系统主要有以下几大功能:个人中心、学生管理、房间信息管理、来访信息管理、物品报修管理、维修进程管理、公告信息管理,在下面的章节中会依次介绍每个功能的作用与实现。
    关键词:学生宿舍管理系统,springboot,mysql

    ABSTRACT
    With the continuous enrollment expansion of college students every year, the increase of the number leads to great pressure on dormitory management. As an integral part of the management of colleges and universities, there are still some colleges and universities that register the situation of students entering and leaving the dormitories through paper, which is not only inefficient, but also makes the management of the dormitories extremely reflect the situation at that time, especially when querying the data, it will be cumbersome, and occasionally there may be the loss of form records, It is necessary to launch a set of software which is convenient for dormitory management.
    The system mainly adopts spring development framework. The technologies used include MySQL database, mybatis driver framework and Tomcat server deployment. The integrated development tools used are mainly idea and JDK1.8.
    The student dormitory management system has the following major functions: personal center, student management, room information management, visiting information management, goods repair management, maintenance process management, announcement information management. In the following chapters, the role and implementation of each function will be introduced in turn.
    Key words: dormitory management system, springboot, MySQL

    目 录

    目录
    摘 要 I
    ABSTRACT II
    第一章 绪论 1
    1.1 课题研究背景和意义 1
    1.2 课题研究现状 1
    1.3 课题主要研究内容 2
    1.4 论文结构 2
    第二章 相关技术介绍 3
    2.1 开发工具 3
    2.1.2 Tomcat 3
    2.1.3 MySQL 3
    2.2 开发技术 3
    2.2.1 JSP 3
    2.2.2 jQuery 3
    2.2.3 SSM 4
    第三章 系统分析 5
    3.1 可行性分析 5
    3.1.1技术性可行性 5
    3.1.2经济性可行性 5
    3.1.3操作性可行性 5
    3.2 系统需求分析 5
    3.2.1 功能需求 6
    3.2.2 非功能需求 6
    第四章 系统总体设计 8
    4.1 系统功能图 8
    4.2 系统流程图 8
    第五章 系统详细设计 10
    5.1 用户模块设计 10
    5.2 数据库设计 11
    5.2.1数据库设计的原则 11
    5.2.2数据库表的设计 11
    第六章 系统实现 14
    6.1 系统功能实现 15
    6.1 功能页面实现 15
    6.1.1登陆模块实现 15
    部分主要代码如下: 15
    6.1.2注册页面模块实现 16
    6.1.3学生页面模块实现 17
    6.1.4房间信息页面模块实现 18

    6.1.5来访信息页面模块实现 19
    6.1.6物品报修信息页面模块实现 20
    6.2日志功能模块 21
    6.3安装部署 22
    第七章 系统测试 23
    7.1系统调试的目的和意义 23
    7.2 系统功能测试 23
    第八章 总结和体会 25
    参考文献 27
    致 谢 28

    第一章 绪论
    1.1 课题研究背景和意义
    随着互联网快速发展,电脑的发展,让我们的生活更加的便利,也在学校的办公管理领域得到了很好发挥,以前记录学生宿舍操作需要通过人工记录的方式,来登记,这样的操作极其不方便,尤其是在查阅某个人员进出时的情况,需要查看过多的人员信息,这对工作造成了极不方便,所以开发一套学生宿舍管理系统,就可以很好的解决这一难题。
    通过使用学生宿舍管理系统不仅可以降低人工成本,而且在管理上也可以得到很好的提升。以前在宿舍记录管理中,最容易出错的环节,就是登陆人员的进出情况,而该系统软件的出现,可让更多的时间花在如何管理信息化,让信息化得到更快捷的服务。本系统结合业务需求,及线下宿舍管理操作流程,量身定制一款学生宿舍管理软件。主要解决快速查找人员宿舍管理等实用性功能,主要是基于Web网页开发的一个宿舍管理系统。
    1.2 课题研究现状
    在和现有的学生宿舍管理系统进行比较后,发现了许多问题:
    系统功能并不全面。很多学校的学生宿舍管理系统的功能模块并不全面,有些系统只有最基本的宿舍共用电器或者物品的上报维修和用户信息管理功能,但是只是这样是远远不够的,来访人员如果要来看望某位学生,系统没有此功能的话,依然需要人力手工记录以及查询被看望学生的基本信息。有些学校的宿舍管理系统没有宿舍的基本信息,有时候就无法及时了解到该宿舍是否入住满员,还是只是住了一部分。还有的宿舍管理,没有对宿舍环境进行一个打分操作,对宿舍的环境分数进行排序来选出最优宿舍,还可以找出分数最低的几个宿舍进行一个需改良宿舍的选择。
    国外只有少数学校可以达到,外国学生进出宿舍刷卡并且同时人脸识别进行人卡相匹配。这是我们暂时无法解决的问题,一个是外国的宿舍设施原本就配有一些电子产品,在后续的更新迭代中就显得容易些,还有一个就是外国的信息发展团体多。宿舍管理系统能够越来越普及的原因还是高校的数量激增,人工记录难以应对大量的学生信息。
    我的课题借鉴了上述宿舍共用电器上报维修和用户信息管理之外,还添加了来访人员登记以及对学生宿舍的环境打分和排序。和我们学校宿舍的手写公告不同,我还增加了一栏专门用于公告提示。
    1.3 课题主要研究内容
    本课题是一个学生宿舍管理系统。具体研究内容如下:
    技术上采用springboot集成快速开发框架,前端使用vue方式,基于es5的语法,开发工具IntelliJ IDEA 2020.1.1 x64,因为该开发工具,内嵌了Tomcat服务运行机制,可不用单独下载Tomcat server服务器。
    功能上用户信息管理功能、房间信息管理功能、来访信息管理功能、物品报修管理功能、维修进程管理功能、公告信息管理功能等。
    学生能够查看自己的个人信息,对宿舍公用电器可以进行一个报修,能查看维修的进程。管理员可以进行公告布置,修改密码,对维修进程的状态进行更改,对来访信息的记录。
    1.4 论文结构
    本文结构如下。
    第一张为绪论,主要包含课题的研究背景,意义,现状和主要研究内容。
    第二章介绍了实现的相关技术和开发工具,包括springboot集成开发框架,IntelliJ IDEA的开发工具,tomcat服务器,mysql数据库等。
    第三章系统的可行性分析和
    第四章对系统的设计过程进行了详细的介绍。包括系统总体设计,系统详细设计和数据库部分的设计。
    第五章对系统用户管理模块、供应商管理模块、采购流程管理模块和数据管理模块的具体实现过程进行了具体阐述。
    第六章给出了对各功能模块的测试,在明确测试目的之后,选择合适的测试方法完成测试并展示测试结果。
    第七章:总结和体会。本章对整个系统实现的过程进行总体概括,分析在系统实现过程中遇到的问题,为以后完善系统提供经验教

    第二章相关技术介绍
    本章主要介绍相应的开发工具和使用的开发技术。
    2.1 开发工具

    2.1.1 IntelliJ IDEA
    IntelliJ IDEA是用于Java语言开发的集成环境,是公认的最好的Java开发工具之一,IDEA相较于其他Java开发工具,具有智能选取、历史记录功能、编码辅助、排版灵活、与文件系统自动同步、代码检查、完全支持JSP等优势。
    2.1.2 Tomcat
    Tomcat服务器是一个免费的、开源的轻量级Web应用服务器,是开发和调试JSP程序的首选,Tomcat运行时占用的系统资源小,建有良好的可扩展性和安全性。
    2.1.3 MySQL
    MySQL是一款安全的、跨平台的、高效的、与主流编程语言紧密结合的数据库系统,MySQL由于其体积小、速度快、总体拥有成本低、开源等特点,广泛适用于中小型网站的开发,在Web应用方面,MySQL是最好的RDBMS(关系数据库管理系统)应用软件之一。
    2.2 开发技术
    2.2.1 JSP
    JSP是基于Java Servlet和整个Java体系的Web服务器端开发技术。它用于在网页上显示动态内容。JSP网页由传统的HTML文件和Java程序片段或JSP标记构成。JS技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。
    2.2.2 jQuery
    jQuery是一个轻量级的、兼容多浏览器的JavaScript库,jQuery使用户能更方便地处理HTML Document、进行Ajax交互,能够极大地简化JavaScript编程。
    2.2.3 SSM
    SSM框架由Spring、SpringMVC、MyBatis组成。常作为数据源简单的Web项目的框架。
    Spring在配置文件中可以使用特定的参数区调用实体类的构造方法来实例化对象,核心思想使IoC(控制反转)。
    SpringMVC是以请求为驱动,围绕Servlet设计,将请求发给控制器,通过模型对象,分派器来展示请求结果视图,它是一个Servlet,顶层是实现的Servlet接口。
    MyBatis是对JDBC的封装,MyBatis通过配置文件关联到实体类的Mapper文件,Mapper文件中配置了每个类对数据库操作的sql语句映射,使得让数据库底层操作变得透明。

    第三章 系统分析
    3.1 可行性分析
    在系统开发的过程中系统的可行性分析是必不可少的,可行性的研究就是评估问题是否能得到解决并且是要以最少的时间和最少的代价来解决。为实现上面的目标还要必须考虑到解决这些问题的方法的优点和缺点,还要考虑到实现了这些系统规模的开发带来的经济效益。这里可以用技术的可行性,操作的可行性,经济的可行性对我们的系统进行可行性的研究。
    3.1.1技术性可行性
    本项目设计的系统主要采用layui前端开发,后端使用java语言以及springboot集成开发性框架,采用mysql数据库,根据自身所学专业,结合网上查阅案列及图书馆资料,开发实现是没有太大问题的。
    3.1.2经济性可行性
    开发一套成熟的软件,都需要经过一段漫长的过程,这里设计到软件的需求分析、制定计划,开发人员、测试环节、调试过程,都需要资金及人力的投入。而这套软件的开发,可以通过网上开源源码及相关资料的学习,在硬件及电脑使用上,都是自己所用,所以在开发成本上可以忽略不计。
    3.1.3操作性可行性
    本系统设计到的功能主要有个人中心、学生管理、房间信息管理、来访信息管理、物品报修管理、维修进程管理、公告信息管理,这些功能模块的相关知识,都是平常所设计到的常用功能,在操作上都是可以实现的。
    3.2 系统需求分析
    通过了解用户的需求,可以知道操作简单的系统更易受到用户青睐,同时能够准确、完整的对信息进行管理。学生宿舍管理平台在对需求做相应的分析后,得出结论,系统主要分为两个角色:管理员和学生用户。
    管理员模块主要进行数据的更新管理,功能分为个人中心、学生管理、房间信息管理、来访信息管理、物品报修管理、维修进程管理、公告信息管理;学生模块主要功能有个人中心、房间信息管理、来访信息管理、物品报修管理、维修进程管理、公告信息管理及评分信息管理。
    3.2.1 功能需求
    本系统是利用现代化的计算机网络技术将传统信息宣传方式整合,按照实践过程设计完成的。同时完善服务,初步设计一个学生宿舍管理系统平台以利于相关的事务操作。为了使系统在各项管理中发挥更大的作用,实现计算机信息化高效的管理,现将开发目标功能需求介绍如下:
    ( 1) 管理员登录模块
    管理员有权进行学生宿舍系统的管理,但所有的注册以及权限的使用,都需经过超级管理员授权,管理员进入主页后可以对相关功能版块进行管理操作:个人中心、学生管理、房间信息管理、来访信息管理、物品报修管理、维修进程管理、公告信息管理。
    在这里插入图片描述
    ( 2) 学生管理模块
    拥有一定管理权限管理员,可进行学生列表的用户名称、用户密码、性别、学号、电话、相片、所在寝室查看,以及对应的学生增加、删除、修改、查询操作。
    在这里插入图片描述
    ( 3) 房间管理模块
    拥有一定管理权限管理员,可进行房间列表的房间号、房间类型、楼层号、房间设备、校园图片、床位数量、登记时间查看,以及对应的房间增加、删除、修改、查询操作。
    在这里插入图片描述
    ( 4) 来访信息管理模块
    拥有一定管理权限管理员,可进行来访信息列表的数据查看,以及对应的来访信息增加、删除、修改、查询操作。
    在这里插入图片描述
    ( 5) 物品报修管理模块
    拥有一定管理权限管理员,可进行物品报修列表的数据查看,以及对应的物品报修增加、删除、修改、查询操作。在这里插入图片描述
    3.2.2 非功能需求
    该系统不仅要满足功能性需求,还需要满足看不到的非功能性需求,比如系统的兼容性、用户界面整体性、网页访问的流畅性,主要归纳如下几点:1支持兼容性多浏览器访;2界面性网站整体美观、元素搭配协调;3安全性访问控制不受到攻击,防止sql注入。

    第四章 系统总体设计
    4.1 系统功能图
    该项目管理系统主要基于B/S设计模式,系统设计的功能有:学生管理、房间信息管理、来访信息管理、物品报修管理、维修进程管理、公告信息管理等。其系统结构如图3-1所示:在这里插入图片描述
    4.2 系统流程图
    学生宿舍管理系统工作流程为:当用户输入账号和密码,可登陆到系统的控制台页面,控制台可以对学生管理、房间信息管理、来访信息管理、物品报修管理、维修进程管理、公告信息管理进行数据库操作,执行完成后,可直接退出系统。以下是总体的流程图设计如图3-2:在这里插入图片描述
    第五章 系统详细设计
    本次系统采用 java 和 mysql 相互结合的架构来进行开发微信系统程序的应用,系统中所有与微信小程序密切相关的事情和操作都时间上通过一个与数据库相关的类文件来进行实现,很大程度上增强了代码的耦合度,当得到数据库的类型等信息发生变化后直接进行修改与其相关的类别和文件就完全可以了,不再因为此而需要每一个页面都进行任何修改。除此之外,本系统还很好地解决了简体中文的困难,也就是在配置文件中添加了编码语言方式的多种形式来得到解决的,本系统另外一个重要的特征就是,该系统对于数据库的所有操作都单独地被写在一个分类里,这样只需要访问这个分类就能够对系统的所有数据库进行操作,不用对每个分类的页面去做一个写数据库的分类操作,很大程度的从而增强系统的整体集成度。
    5.1 用户模块设计
    ( 1) 管理员登录模块
    管理员有权进行学生宿舍系统的管理,但所有的注册以及权限的使用,都需经过超级管理员授权,管理员进入主页后可以对相关功能版块进行管理操作:个人中心、学生管理、房间信息管理、来访信息管理、物品报修管理、维修进程管理、公告信息管理。
    ( 2) 学生管理模块
    拥有一定管理权限管理员,可进行学生列表的查看,以及对应的学生增加、删除、修改、查询操作。
    ( 3) 房间管理模块
    拥有一定管理权限管理员,可进行房间列表的数据查看,以及对应的房间增加、删除、修改、查询操作。
    ( 4) 来访信息管理模块
    拥有一定管理权限管理员,可进行来访信息列表的数据查看,以及对应的来访信息增加、删除、修改、查询操作。
    ( 5) 物品报修管理模块
    拥有一定管理权限管理员,可进行物品报修列表的数据查看,以及对应的物品报修增加、删除、修改、查询操作。
    5.2 数据库设计
    5.2.1数据库设计的原则
    在建表时,表的主键要尽量的少,在表与表之间建立外键关系时,也要尽量的少,尽量减少数据库查询和CRUD操作的复杂度;系统恢复性操作,在设计数据库文件中考虑到表如果出现损坏,在短时间内可以快速的恢复,减少成本的支出。在数据库系统开发过程中,一般都需要满足以下几个特点:字段冗余少,就是在设计表字段时,尽量减少不必要多余的字段出现,在设置表的参数类型时,合理控制参数字段长度;保密性和安全性要强,不要把系统关键字设置在表中,防止sql注入攻击;表与表之间的管理性要合理化,尽量减少三张以上的管理表查询,减少sql查询带来的系统性能的下降。

    5.2.2数据库表的设计
    学生用户表(xuesheng):用户编号、添加时间、学号、密码、学生姓名、性别、手机号码、所属寝室、相片
    。。。。。。。。。。。。。。。。
    。。。。。。。。。。。。。。。
    。。。。。。。。。。。。。。。。。。。
    。。。。。。。。。。。。。。。。。
    。。。。。。。。。。。。。。。。。。。。

    程序部分截图
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    程序+论文+数据库:下载地址》》》请点击!

    展开全文
  • 学生信息管理系统 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kYzM8Lck-1609296973395)(media/15804811fc6e5e5b102e14c13ee9c559.png)] 课程名称 需求分析与建模 班级 18...
  • UML建模学生选课系统(类图+对象+用例+部署)UML建模学生选课系统(类图+对象+组件+部署)录1.项目简介31.1. 学生选课系统31.2. 项目主题31.3. 设计思路31.4. 项目目的32. 小组成员42.1. 小组成员简介43. ...
  • 行为建模(状态图-活动图)

    千次阅读 2020-05-19 11:40:09
    行为建模--状态图状态机(State Machine)状态(State)转移状态机图的建模技术用户绘制用例机图新增运动员报名修改运动员报名管理员什么是活动图活动图的用途活动图的组成元素活动图的建模技术 采用方法:面向对象...
  • 基于Web的学生成绩管理系统

    千次阅读 2021-02-19 13:56:17
    本次课程设计课题为学生成绩管理系统,该学生成绩管理系统主要包括前台用户界面的开发和后台数据库的开发,重点在于后台数据库的开发。要求建立起完整性强、数据一致性和数据安全性好的数据库。在前端用户界面的开发...
  • 服务器程序和数据库 服务端程序除了提供一般数据增删改查能力之外,重要的是需要实现稳定的消息中件间,稳定的站点状态、客服状态、访客状态等上下文数据在内存中的管理,以及稳定的TCP/IP长连接维护机制。...
  • C#-学生公寓管理系统的实现 引言 随着社会的发展,科技的进步,作为信息载体的计算机日益显露出其举足轻重的地位。传统的学生公寓管理倾向于人工现场登记,资料多为纸质形式,不便于管理和查看。宿舍管理员管理的...
  • 这个系统的主要有三个角色权限,管理员、老师、学生系统功能模块包括用户管理、班级信息管理、教师信息管理学生信息管理、科目信息管理、成绩信息管理。 根据本系统的研究现状和发展趋势,系统从需求分析、结构...
  • 学生宿舍管理系统类图设计

    万次阅读 2014-06-12 00:51:05
    通过使用学生公寓管理系统,可以做到规范管理、科学统计和快速查询,极大的减少宿舍管理方面的工作量。在提高工作效率的同时,还可以提高资本投入的经济效益,运行效率,节约资源。 同时通过该题目的开
  • 学生学籍管理系统可行性分析报告

    千次阅读 多人点赞 2020-04-28 21:46:14
    通过对学生学籍管理系统项目进行一系列的详细调查研究,明确了该系统项目的实现在技术、经济和社会因素方面的可行性,阐述为了合理地达到项目目标的实现报告,对软件开发中将要面临的问题及其解决方案进行可行性分析...
  • 基于jsp(java)高校学生考勤管理系统设计与实现

    万次阅读 多人点赞 2019-04-18 23:06:56
    获取项目源文件,学习交流联系Q:1415736481,可指导毕设,课设 本系统主要针对目前高校学生在线请假以及学生上课出勤管理而设计的...本高校学生考勤管理系统用JSP+SQL Server 2000开发,开发过程中运用了页面模块化...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,801
精华内容 8,720
关键字:

学生管理系统动态模型状态图