首页 > 其他分享 >202308-啊对对队 实验七 综合软件项目案例

202308-啊对对队 实验七 综合软件项目案例

时间:2023-06-10 19:12:50浏览次数:59  
标签:202308 统计图 数据库 接口 案例 任务 对队 2023 方法

项目 内容
班级博客链接 2023春软件工程2020级计算机科学与技术
本次作业要求链接 实验七 综合软件项目案例
团队名称 啊对对队
团队课程学习目标 1.练习用例图、类图、顺序图、状态图等UML建模技术在软件开发过程中的用途;2.掌握软件项目的数据库逻辑结构设计方法;3.掌握软件项目的软件结构设计方法;4.理解面向对象软件开发过程。
本次作业在哪些方面帮助团队实现学习目标 学习和巩固软件开发相关知识,掌握了软件项目的数据库逻辑结构设计方法和软件项目的软件结构设计方法,对优秀案例进行学习和总结,利用StarUML绘图,更好的理解项目。
团队博客链接 啊对对队
团队项目Github仓库地址链接 https://github.com/lifengbin1/lfb

一、实验目的与要求

(1)练习用例图、类图、顺序图、状态图等UML建模技术在软件开发过程中的用途。
(2)掌握软件项目的数据库逻辑结构设计方法。
(3)掌握软件项目的软件结构设计方法。
(4)理解面向对象软件开发过程。

二、实验内容与步骤

任务一:

将高校学生管理软件部署在Tomcat服务器,在浏览器输入:http://localhost:8080/Student 分别以管理员、教师、学生三类用户登录系统并对不同用户功能进行操作,其中管理员功能合并了教务员的职能。

对原项目bug进行修复并美化页面

1.学生信息修改界面选择照片无法显示问题:
修改:通过原生js监听文件变更获取文件,使用文件生成blob本地路径,修改对应imgDOM元素的src的值为blob路径,解决。
2.学生信息修改照片提交无法上传问题:
修改:原因是因为项目运行时的环境中upload文件夹不存在,通过修改IPicture和PictureImpl里面的upload方法,实现动态创建upload文件夹,解决。
3.管理员添加班级课程页面访问错误问题:
修改:将该页面jsp文件中与java关键字冲突的变量名(jstl遍历定义变量名class与java关键字冲突)换为非java关键字的变量名即可,解决。
4.管理员添加学生/教师添加失败时依旧会将学生/教师的账号密码存入系统数据库问题:
修改:原因是因为没有对对应方法的返回结果做判断,判断学生/教师添加结果是否大于0,否的话调用OperatorImpl里面的delete方法传入当前的Operator对象即可,解决。
5.对页面进行美化:
对整体主题色进行修改,采用绿柔护眼主题色搭配

登录界面

以不同的身份登录,左侧菜单栏会有相应的功能,其中权限由数据库的privilege表和role表决定
image

  • 以管理员身份登录
    image
  • 以学生身份登录
    image
  • 以教师身份登录
    image

任务二:

绘制高校学生管理软件的用例图。

任务三:

理解项目需求简介,采用简易应用规格说明技术,讨论高校学生教务管理系统的软件需求列表,采用面向对象分析方法绘制高校学生管理软件的类图。




任务四:

绘制某一学生用户对象查询课程和成绩的顺序图;绘制教务员课程安排的顺序图。


任务五:

理解分析高校学生管理软件中数据库表的物理结构,结合各表外键的定义,正确绘制数据库对应的E-R图。

任务六:

理解分析高校学生管理软件代码结构,结合MVC软件设计模式特点,采用面向对象设计方法绘制高校学生管理软件的类图。






分析dao包中各java文件的用途

dao包里面的接口定义方法,impl包里面的类负责继承dao包的接口并实现接口方法。
dao层即model层(数据处理层对数据库进行持久化操作(增删改查等),M层),jsp页面即view层(视图层(网页显示),V层) ,servlet层即controller层(控制层(为前台提供获取数据的接口),C层)。

ICla2Sub接口负责对数据库的cla2sub(班级选课表)表进行持久化操作(增删改查等),定义了各种方法,Cla2SubImpl类负责接口方法的具体实现;
IClasses接口负责对数据库的classes(班级表)表进行持久化操作(增删改查等),定义了各种方法,ClassesImpl类负责接口方法的具体实现;
ILogin接口定义了登录方法,LoginImpl负责实现接口登录方法的具体逻辑;
IMajor接口负责对数据库的major(专业表)表进行持久化操作(增删改查等),定义了各种方法,MajorImpl类负责接口方法的具体实现;
IOperator接口负责对数据库的operator(账号表)表进行持久化操作(增删改查等),定义了各种方法,OperatorImpl类负责接口方法的具体实现;
IPicture接口定义了三个方法check()用于检查学生是否进行更新照片操作(增删改查等),upload()用于实现对学生的照片上传到服务器,delete()用于删除学生之前的照片,具体逻辑由PictureImpl类实现;
IPrivilege接口负责对数据库的privilege(网页侧边栏的功能权限表)表进行持久化操作(增删改查等),定义了各种方法,PrivilegeImpl1类负责接口方法的具体实现;
IRole接口负责对数据库的role(角色表)表进行持久化操作(增删改查等),定义了各种方法,RoleImpl类负责接口方法的具体实现;
IScore接口负责对数据库的score(课程分数表)表进行持久化操作(增删改查等),定义了各种方法,ScoreImpl类负责接口方法的具体实现;
IStudent接口负责对数据库的student(学生表)表进行持久化操作(增删改查等),定义了各种方法,StudentImpl类负责接口方法的具体实现;
ITeacher接口负责对数据库的teacher(教师表)表进行持久化操作(增删改查等),定义了各种方法,TeacherImpl类负责接口方法的具体实现;

任务七:

任务7:结合实际教务管理系统的使用体验,分别为高校学生管理软件的教务员和学生设计开发满足用户实际需求的功能。如为教务员开发统计各门课程成绩平均分、各分数段人数统计、绘制成绩分布图等功能。

功能1:

以管理员身份登录查看【全体】学生成绩,以扇形、条形、折线统计图的方式显示,并对【所有课程】进行平均分的计算,其中折线统计图根据当前页数据动态变化,条形统计图是对【全体】学生数据的统计,扇形统计图是【全体】学生成绩各分段占比(分段为0-20、20-40、40-60、60-80、80-100)
image
image

功能2:

以教师身份登录查看【本班】学生成绩,以扇形、条形、折线统计图的方式显示,并对【本班】各课程进行平均分的计算,其中折线统计图根据当前页数据动态变化,条形统计图是对【本班】所有数据的统计,扇形统计图是【本班】所有成绩各分段占比(分段为0-20、20-40、40-60、60-80、80-100)
image

功能3:

以学生身份登录查看【自己】所选课程成绩,以扇形、条形、折线统计图的方式显示,并对【自己】所有课程分进行平均分的计算,其中折线统计图根据当前页数据动态变化,条形统计图是对【自己】所有成绩数据的统计,扇形统计图是【自己】所有成绩各分段占比(分段为0-20、20-40、40-60、60-80、80-100)
image

功能4:

以管理员身份可以使用Excel批量添加学生信息
image
image
image

功能5

使用监听器统计当前在线人数
image
image
image

功能6

对原项目[top.jsp]中的[个人中心]选项进行完善,管理员登录无[个人中心]选项,教师登录显示[教师个人中心],学生登录显示[学生个人中心],并实现点击跳转到对应的页面(我的资料页面)
image
image
image

任务八:

在2023-5-22至2023-6-10之间制定实验七任务的进度计划表和任务人员分工,任务实施期间记录完成各项任务实际花费的时间。

任务进度进度计划表

时间 任务完成情况
2023-5-22至2023-5-24 任务1完成
2023-5-25至2023-5-26 任务2完成
2023-5-27至2023-5-29 任务3完成
2023-5-30至2023-5-31 任务4完成
2023-6-1至2023-6-2 任务5完成
2023-6-3至2023-6-4 任务6完成
2023-6-5至2023-6-8 任务7完成
2023-6-9 任务8完成
2023-6-10 任务9完成

任务人员分工

小组成员 任务分配
赵嘉旺 任务5,任务8,任务9
李锋斌 任务2,任务3,任务4
杨炜 任务1,任务6,任务7

各项任务实际花费时间

任务 实际花费时间
任务1 4h
任务2 2h
任务3 2h
任务4 2h
任务5 2h
任务6 3h
任务7 8h
任务8 1h
任务9 3h

任务九:

完成《实验七 综合软件项目案例》团队博文作业。

三、实验总结

实验总结与心得体会

成员 总结与体会
赵*旺 本次实验是我第一次参与到一个大型项目的开发工作中,收获颇丰,本次实验中,我们遇到了诸多困难,但经过大家不断地思考和讨论,学会了彼此之间的支持和帮助在课程相应的指导下,合理分派任务并且与组内成员充分交流和协作,提高了项目开发效率和团队合作越来越协调。通过此次实验,我更加深入地了解了关于软件开发的流程、方法和重要意义,同时也明白了实际软件开发工作中所需要的实战经验,此次实验第一次接触MVC设计模式,感受到了它的可扩展性和高内聚低耦合的特点,同时也更加熟练地运用了各UML图谱的绘制技巧,尤其是在分工协作和问题解决方面,有了更有益的锻炼。
杨* 通过本次实验,我深入学习了软件开发过程中所需要用到的UML建模技术、面向对象分析方法、MVC设计模式等,让我们对软件设计和开发方面的知识有了更深入的了解和实践。在任务完成的过程中,我们充分发挥了团队协作的优势,不仅分工明确、相互配合,更是在任务实施期间记录完成各项任务实际花费的时间,为后续的项目管理提供了有力的参考。此外,通过任务7的扩展功能开发,我们也深刻地认识到了软件开发的重要性。在开发过程中,我不仅需要考虑功能实现的问题,还要注重用户体验和系统性能等方面。这些体验和优化需要与开发团队密切作,例如,我们为教务员开发了统计各门课程成绩平均分、各分数段人数统计、绘制成绩分布图等功能,这使得教务管理更加便利和高效。总之,本次实验不仅让我更加深入地了解了软件设计和开发方面的知识,还让我更进一步认识到了团队协作和项目管理的重要性,这对我们今后的工作和学习有着极大的借鉴意义。
李*斌 在任务1中,我们成功将高校学生管理软件部署在Tomcat服务器上,测试了系统不同用户功能的操作,这让我更具体地感受到系统设计和开发的成果。在任务3中,我们采用面向对象分析方法,绘制了高校学生管理软件的类图,这让我对软件开发的整个流程有了更加深刻的理解。同时,我们还通过任务6,对系统进行了更深入的设计,让我更加深入地了解到MVC设计模式的运用和如何进行面向对象的设计。最后,我的团队完成了任务7的扩展功能开发,我们为教务员开发了统计各门课程成绩平均分、各分数段人数统计、绘制成绩分布图等功能,这让我意识到在软件开发过程中有时需要从用户体验和系统性能等方面考虑开发内容,让软件更具有实用性和高效性,通过本次实验,我不仅学到了软件设计和开发方面的知识,还深刻认识到了团队协作和项目管理的重要性,这对我今后的工作和学习都将有着重要的影响。

标签:202308,统计图,数据库,接口,案例,任务,对队,2023,方法
From: https://www.cnblogs.com/177dui/p/17435473.html

相关文章

  • 202309-发际线与你作队 实验七 综合软件项目案例
    项目内容课程班级博客链接2020卓越工程师班这个作业要求链接实验七综合软件项目案例团队名称发际线与你们作队我的课程学习目标完成综合软件项目案例,对相关知识进行再次复习这个作业在哪些方面帮助我实现学习目标(1)练习用例图、类图、顺序图、状态图等......
  • Python+sklearn使用DBSCAN聚类算法案例一则
    DBSCAN聚类算法概述:DBSCAN属于密度聚类算法,把类定义为密度相连对象的最大集合,通过在样本空间中不断搜索最大集合完成聚类。DBSCAN能够在带有噪点的样本空间中发现任意形状的聚类并排除噪点。DBSCAN算法不需要预先指定聚类数量,但对用户设定的参数非常敏感。当空间聚类的密度不均匀、......
  • Python使用系统聚类方法进行数据分类案例一则
    首先解释一下为啥最近发的文章中代码都是截图而不是文本,这样做主要是希望大家能对着代码敲一遍而不是直接复制运行得到结果就算了,这样可以加深印象,学到更多东西。当然,这样直接截图也节省了很多排版需要的时间,可以有时间写出更多的案例。在前几天发的文章Python使用系统聚类算法对随......
  • Python+pandas实现时间序列数据扩展案例一则
    感谢山东科技大学李超老师提供应用背景。在分析时序数据的有些场合下,可能每个月只能拿到一个数据,然而实际处理时,需要把这个数据扩展到该月的每天,且每天的数据相同。演示代码:某次运行结果:......
  • Python内置函数any()、map()组合运用案例一则
    Python内置函数any()用来测试某个可迭代对象中是否所有对象都等价于True,map()用来把一个函数映射到一个或多个可迭代对象上。问题描述:测试一个字符串中是否包含指定列表中的某个字符串作为子串,不允许使用循环结构。参考代码:......
  • Python概率编程库PyMC应用案例二则
    这是受国防科大刘万伟老师委托发的概率编程方面的内容,这方面我不懂,为了避免解释错了,我就直接把刘老师的PPT资料截图发了。代码执行结果为:0.236对于上面这个例子(均匀分布的情况),当然可以通过计算图条形区域面积所占的比例获得精确的概率。然而,当分布函数发生变化时(比如,取正态分布),计......
  • Python+matplotlib绘制三维图形5个精选案例
    如果要绘制三维图形,首先需要使用下面的语句导入相应的对象:frommpl_toolkits.mplot3dimportAxes3D然后使用下面的两种方式之一声明要创建三维子图:ax=fig.gca(projection='3d')ax=plt.subplot(111,projection='3d')接下来就可以使用ax的plot()方法绘制三维曲线、plot_surface......
  • Python文件操作与matplotlib数据可视化案例一则
    问题描述:某商场开业三个月后,有顾客反应商场一楼的手机信号不好,个别收银台有时无法正常使用微信支付或支付宝,商场内也有些位置无法正常使用微信。为此,商场安排工作人员在不同位置对手机信号强度进行测试以便进一步提高服务质量和用户体验,测试数据保存于文件“D:\服务质量保证\商场一......
  • Python+pandas处理Excel文件案例一则
    问题描述:使用pandas读取Excel文件中的数据,输出关系最好的两个演员名称,也就是共同参演电影数量最多的两个演员的名称。数据格式请参考Python统计共同参演电影最多的演员组合,Python+pandas读取Excel文件并统计演员参演电影数量技术要点:pandas二维表格DataFrame的用法。参考代码:输出结......
  • Python视频处理案例六则:旋转视频、调整音量/播放速度、淡入淡出、插入转场素材...
    环境配置请参考:Python视频处理案例三则:剪辑与拼接、提取音频、添加字幕==============应用1、旋转视频运行结果:应用2、调整视频中的音量应用3、视频中颜色变换应用4、调整播放速度,1.5倍速应用5、淡入淡出并插入转场视频应用6、淡入淡出并插入转场图片公众号“Python小屋”......