一、项目简介
功能描述:基本完成了任务书上的各个功能。
● 登录(教师, 学生)
● 注册(教师, 验证码)
● 找回密码(教师, 学生)
● 学生管理(增删改查)
● 成绩管理(修改, 导出excel)
● 上传文件(头像)
● 个人成绩(导出pdf)
个人负责任务:
- 添加学生功能:姓名、学号、性别、入学日期。(学号手动填写,学号唯一且无法改变)
- 添加学生成绩功能:假设每个人都选修了数学、Java与体育。但输入成绩的时候,是给学生输入某一门课程的成绩。
- 根据学生学号查找学生成绩,并在界面上显示姓名、学号和成绩,学号不存在的给出提示信息
- 根据学生姓名(支持模糊匹配)查找学生成绩,并在界面上显示姓名、学号和成绩,如果有多个相同姓名学生存在,一起显示出来,姓名不存在的给出提示信息
- 生成学生学习情况报表:报表包含学号、姓名、各科目成绩。最后在图形界面输出,并可将该排序结果按照输出至excel文件
- 支持分别对所有学生各科成绩画出表格。
- 支持对学生信息的修改与删除(在数据库中有所体现),不能修改学号。
- 支持用户登录、验证操作
界面:GUI 或 Web
数据存储在数据库或者文件中,存储在数据库。
二、功能架构图
三、个人任务简述
1. 完成的任务与功能:
序号 | 完成功能与任务 | 描述 |
1 | 添加学生功能 | 通过填写数据,成功向数据库中填入了新的学生。 |
2 | 添加学生成绩功能 | 使用多个数组组合的形式。避免了直接使用大数组可能带来的问题,。提高了拓展性和可维护性。 |
3 | 根据学生学号查找学生成绩 | 实现了通过输入特定学号来查找特定人。当输入错误时会给出错误信息。 |
4 | 根据学生姓名查找(支持模糊匹配)学生成绩 | 通过输入姓名来找到特定的对象。可以模糊匹配; |
序号 | 完成功能与任务 | 描述 |
1 | 生成学生学习情况报表 | 报表包含学号、姓名、各科目成绩。最后在图形界面输出,并可将该排序结果按照输出至excel文件 |
2 | 生成学生成绩报表 | 支持分别对所有学生各科成绩画出表格。 |
3 | 对学生信息的修改与删除 | 支持对学生信息的修改与删除(在数据库中有所体现),不能修改学号。 |
4 | 支持用户登录、验证操作 | 界面:GUI 或 Web |
2. Git提交记录截图:
四、本人负责功能详解
- 添加学生功能:姓名、学号、性别、入学日期。(学号手动填写,学号唯一且无法改变)
复制模板;创建studentD和scoreD对象;获取studentD的各项数据;调用studentD中的函数进行数据存储;重定位,打开添加完后的页面。
2.添加学生成绩功能:假设每个人都选修了数学、Java与体育。但输入成绩的时候,是给学生输入某一门课程的成绩。
复制框架;创建scored对象;获取scored相应的数据;建立类似数组的存在;调用相应dao里的更新函数;凭借id和sql语句实现对数据库的更新;最后重定向,展示更新后的页面,实现功能。
3.根据学生学号查找学生成绩,并在界面上显示姓名、学号和成绩,学号不存在的给出提示信息
复制模板;利用if else语句,如果搜索栏空或全是空格,那么等同于直接全部显示;如果搜索栏是有效内容,那么根据有效内容来搜索;如果有,则显示相关,没有,那么直接报错。
4.根据学生姓名(支持模糊匹配)查找学生成绩,并在界面上显示姓名、学号和成绩,如果有多个相同姓名学生存在,一起显示出来,姓名不存在的给出提示信息
复制模板;利用if else语句,如果搜索栏空或全是空格,那么等同于直接全部显示;如果搜索栏是有效内容,那么根据有效内容来搜索;如果有,则显示相关,没有,那么直接报错。
5.生成学生学习情况报表:报表包含学号、姓名、各科目成绩。最后在图形界面输出,并可将该排序结果按照输出至excel文件
详细步骤:通过老师端的成绩管理导出excel操作调用底层excel.jsp等文件将学生成绩信息整理成excel形式供打印查看。
部分代码展示:excel.jsp
6.支持分别对所有学生各科成绩画出表格。
详细步骤:通过老师端的pdf操作调用底层pdf.jsp等文件将学生成绩信息整理成pdf形式供打印查看。
部分代码展示:pdf.jsp
7.支持对学生信息的修改与删除(在数据库中有所体现),不能修改学号。
详细步骤:通过老师端在学生信息管理条对学生信息进行修改与删除。
部分代码展示:
8.支持用户登录、验证操作
界面:GUI 或 Web
数据存储在数据库或者文件中,存储在数据库。
详细步骤通过:在初始界面进行注册,登录等功能,调用了login,register等文件从而实现。
部分代码展示:
五、课程设计感想
队员一:面对新的知识,刚开始完全是懵圈的,完全没有思路。所以我就广撒网,从网上找到了信息管理系统的搭建方法。通过这种方式,学会了javaweb和sql的简单使用方法。然后从网络上寻找一些已经搭建成功的先例。找出我能使用的模板,根据已经学会的Java 基础知识,搭配模板,最后成功搭建成功了。在这中间,一旦遇到bug至少要修改1个小时,因为自身的知识并不完整。
队员二:在进行 Java 课程设计的过程中,我有以下几点感想:
1.系统性知识的重要性
Java 作为一门编程语言,在其语法和语义方面的特性已经非常成熟和完备。因此,在进行 Java 课程设计时,我们需要更多地关注如何应用这些知识来实现具体的功能。这就需要我们具备一定的系统性知识,能够对 Java 生态圈中的各个组件、框架、工具等进行综合运用,才能更好地完成任务。
2.实践的重要性
尽管理论知识很重要,但只有通过实践才能掌握真正的技能。通过进行 Java 课程设计,我们能够更好地将理论知识应用到实际项目中去,并在实践中逐步积累经验和技能。因此,在学习 Java 课程时,我们需要注重实践,多写代码,多实践,不断提升自己的技能水平。
3.团队合作的能力
在 Java 课程设计过程中,往往需要多人协作完成。这就需要我们具备良好的团队合作能力,在协商中达成共识,在分工中明确职责,在沟通中保持良好的团队氛围,才能更好地完成任务。因此,我们在进行 Java 课程设计时,需要注重团队合作能力的培养。
综上所述,Java 课程设计既是一门理论学科,也是一门实践技能。对于学习者来说,需要注重系统性知识的掌握、实践能力的提升以及团队合作能力的培养,才能更好地应对未来的工作挑战。
六、展望
队员一:1. 我还没有学会柱状图的表示方法。以及对于提示的使用也非常生疏。以后会通过完整的学习逐渐掌握相关的方法。
2. 课设后想要进一步学习javaweb技术、增加柱状图功能、重构项目代码、增加test测试。
队员二:1.编码能力:Java 是一门非常严谨的编程语言,要求开发者具备良好的编码习惯和高效的编程能力。我在编码方面存在一些不足,可以通过继续学习和实践来提高自己的编码技能。
2.系统设计能力:Java 应用程序通常是复杂的系统,需要开发者具备良好的系统设计能力。我在系统设计方面存在很大不足,要从理论和实践两方面入手,学习系统设计原则和最佳实践,同时积极参与实际项目,提高自己的系统设计能力。
3.框架使用能力:Java 生态系统中有许多成熟的框架和工具,如 Spring、Hibernate 等,能够大大提高开发效率和代码质量。可以在学习完 Java 的基础知识后,继续深入学习这些框架。
4.Java 作为一门广泛应用于企业级应用程序和后端开发的语言,将继续有着广阔的发展前景。未来的 Java 技术栈可能会继续扩展,新的技术和框架也会不断涌现,因此 Java 开发者需要保持学习和更新的态度,不断学习新的知识和技能,以适应技术的快速变化。总之,Java 是一个非常有前途的编程语言,将为我的职业发展提供更高的薪资水平和更广阔的机会。