基于java的简单学生信息管理程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《基于java的简单学生信息管理程序》
一、目的:
1、复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;
2、课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力;
3、培养学生在项目开发中团队合作精神、创新意识及能力。
二、要求:
1、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应
功能;可以加以其他功能或修饰,使程序更加完善、合理;
2、系统设计要实用,编程简练,可用,功能全面
3、说明书、流程图要清楚
4、记录设计情况(备查,也为编写设计说明书作好准备);
5、要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式。
6、设计上交内容:设计报告一份(按格式书写);源程序文件(刻录成光盘)。
三、课程设计内容:
1、开发背景:
◆某学校中有很多学生,为了方便管理,要求实现一个程序对该学校学生
的信息进行统一管理。
◆学生的属性及程序功能如下:
➢学生公有信息:ID、姓名、年龄。
➢学生有成绩。
➢所有信息要求保存在文件和数据库中,可以对信息进行添加、修改、查询和删除等操作。
➢在查询信息时要求由高到低排序输出(学生按成绩高低,如果相等,则按年龄由高到低排序输出。)。
2、分析开发背景:
ID、姓名和年龄为学生分有信息,而学生有成绩,因此定义一个抽象类Person(ID、姓名、年龄),学生是其子类,有成绩。
在程序中ID是自动生成,最好的方式是采用如下的编码方式:
·标记+ 时间戳+ 三位随机数
例如:2012年12月12日18:10:10:345
学生的标记为S
生成的ID号:学生→ S20121212181010345001
因为程序要求要满足对文件和数据库的操作,而对文件和数据库操作是一种标准,因此应该定义一个公共的标准————接口
查询信息的时候要求对查询出的信息进行排序操作,这一操作可以使用Comparable接口完成。
整个程序代码中牵扯到数据层的操作,而数据层就是指对真实的数据的操作,最终操作的是一个人,操作的是学生管理。
数据层操作标准定义完成之后,可以有两种选择,一种是直接使用子类实现,但是此种做法以后的修改不是很方便,另一种是使用代理设计的思路完成。因此要做一个中间层,代码关系如下:
Main→Menu → PersonOperate → DAO
因为程序要求保存在文件的数据库中,所以此处可以设计出一个工厂,通过此工厂进行DAO的操作子类实例取得。
3、分析总结:
根据上面对开发背景的分析,总结出以下模块:
●程序运行入口层模块(main):此模块主要是作为程序运行入口
点,调用主菜单模块相应的类。用到的类:Main
●主菜单层模块(menu):显示主菜单,主菜单要有全部的学生信息
管理,应该还有一个退出操作。在学生信息管理的界面中分别有
对学生信息的增加信息、列出全部信息、查询信息、删除信息、
修改信息和返回上一级的操作。用到的类:Menu
●操作层模块(operate):该模块主要是实现对学生的增加信息、
列出全部信息、查询信息、删除信息和修改信息。为了使程序有
较大的伸缩性,首先定义一个操作标准----接口,让对学生的操
作去实现该接口,然后根据需要增加相应功能。此模块的操作方
法首先调用工厂层模块中的方法取得相应实例,然后通过实例调
用数据操作层模块中相应的方法来实现相对应的功能。用到的
类:PersonOperate StudentOperate WorkerOperate
●数据操作层模块(dao):该模块主要是定义对具体数据的操作,
首先定义一个标准,在标准中有相应的对数据具体操作的方法。
让子类(实现模块中的子类)去实现这个标准,然后根据需要增
加相应的功能。此子类调用IO操作模块的保存方法将对象保存。
用到的类:PersonDAO
●文件操作层模块(io):该模块主要是将对象(学生信息)保存在
文件和数据库且能把对象(学生信息)从文件和数据库中读出来。
用到的类:FileOperate
●数据库连接模块(dbc):该模块主要是连接数据库。用到的类:
DataBaseConnection
●实现层模块(impl):该模块主要是定义子类去实现数据操作模块
(dao)中定义的标准。在这一模块中有一个子类功能是将对象(学
生信息)保存在文件(*.txt)中,有一个则是将对象(学生信
息)保存在数据库(MySQL)中。保存在文件中的子类去调用文
件操作模块(io)中的相应方法实现,保存在数据库中的子类直接通过SQL语句将对象(学生的信息)保存在数据库中。用到的类:PersonDAOImplFile PersonDAOImplJDBC
●代理操作模块(proxy):该模块主要是为了清晰开发思路,使用
了代理设计思路去开发,实现层模块(impl)不直接去操作,而是将操作交给代理层去操作。用到的类:PersonDAOProxyFile PersonDAOProxyJDBC
●工具层模块(util):该层一是实现输入数据,并对数据的合法性
进行检验,使用正则表达式检验;二是实现对学生ID号的生成。
用到的类:InputData TimeStamp
●对象层模块(vo):该模块主要是存放实实在在的对象。定义一个
抽象类,然后在定义一个子类(学生类)去继承。用到的类:Person Student Worker
●工厂层模块(factory):该模块主要是根据操作层模块传来的参
数产生实现层模块的对象,参数也传递过去,参数主要是为了在查询时能指明要查询哪种类型的对象。用到的类:DAOFactory