《JAVA程序设计》课程设计大作业Java学生管理系统.docx
- 文档编号:11155504
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:17
- 大小:139.38KB
《JAVA程序设计》课程设计大作业Java学生管理系统.docx
《《JAVA程序设计》课程设计大作业Java学生管理系统.docx》由会员分享,可在线阅读,更多相关《《JAVA程序设计》课程设计大作业Java学生管理系统.docx(17页珍藏版)》请在冰豆网上搜索。
《JAVA程序设计》课程设计大作业Java学生管理系统
《JAVA程序设计》课程设计大作业-Java学生管理系统
山东理工大学计算机学院
题目:
Java学生管理系统
班级
姓名
学号
2011年12月6日
摘要………………………………………………………………………3第一章设计简介及设计方案……………………………………………4
1.1系统功能分析……………………………………………………4
1.2系统功能模块设计………………………………………………4
1.3数据库功能分析…………………………………………………4
1.4数据库需求分析…………………………………………………5第二章详细设计…………………………………………………………6
2.1数据库设计………………………………………………………6
2详细编程…………………………………………………………82.
第三章设计结果及分析………………………………………………12
3.1设计结果………………………………………………………12
3.2设计结果分析…………………………………………………19总结……………………………………………………………………17参考文献…………………………………………………………………17
2
摘要
随着计算机技术的飞速发展,当今社会正快速向信息化社会前进。
而如今学校的规模不断扩大,学生数量急剧加,有关学生的各种信息量也成倍增长,面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率。
通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工用量。
此次设计我们使用JAVA编程,实现了学生信息管理系统的过程。
本系统采用Sun公司的j2sdk1.4.2_04和SQLSERVER2000数据库管理系统作为开发工具,通过对学生信息管理系统进行可行性分析、需求分析和设计逐步将一个学生信息管理系统的开发过程呈现出来。
系统可以对学校的所有专业信息和课程信息进行管理,可以对学生的基本信息和成绩进行管理,最后本系统能对专业信息、课程信息、学生基本信息和成绩信息进行查询。
关键词:
数据库;java;SQLSERVER2000;查询
3
第一章设计简介及设计方案1.1系统功能分析
系统开发的总体任务是实现学生信息关系的系统化、规范化和自动化。
系统功能分析是在系统开发的总体任务的基础上完成的。
本设计中学生信息管理系统需要完成的功能主要有:
有关学籍等信息的输入,包括学生基本信息、所在班级、所学课程和
成绩等。
学生信息的查询,包括学生基本信息、所在班级、已学课程和成绩等。
学生信息的修改。
学校基本课程信息的输入和查询。
基本课程信息的修改。
学生课程的设置和修改。
学生成绩信息的输入,修改,查询,统计。
1.2系统功能模块设计
对上述各项功能进行集中、分块,按照结构化程序设计的要求,得到如图2-1所示的系统功能模块图。
图2-1系统功能模块图
4
1.3数据库功能分析
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以用实现的效果产生影响。
合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
同时,合理的数据库结构也将有利于程序的实现。
设计数据库时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。
1.4数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新、和查询,这就要求数据库结构能充分满足各种信息的输出和输入。
收集基本数据、数据结构以及数处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
针对一般学生信息管理系统的需求,能过对学生学习过程的内容和数据流程分析,设计如面所示的数据项和数据结构:
学生基本信息:
包括的数据项有:
学生学号、学生姓名、性别、班级号、
籍贯、入校日期、专业名、学院名、生日等。
课程基本信息:
包括的数据项有:
课程号、课程名称、授课老师、上课教
室、课程类别、上课时间等。
学生成绩信息:
包括的数据项有:
学生学号、课程编号、考试分数等。
5
第二章详细设计
2.1数据库设计
本实验采用SQLServer2000数据库系统。
2.1.1数据库概念结构设计
首先设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。
这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。
本实例根据上面的设计规划出的实体有:
学生实体、课程实体。
各个实体之间关系E-R图如图3-1所示。
入校日期民族籍贯专业
名性别学院
姓名
生日学号
学生
选
课成绩
课程号
课程课程名
上课时间
授课老师
上课教师课程类别
图3-1实体之间关系E-R图
6
2.1.2数据库概念结构设计
现在需要将上面的数据库概念结构转化为SQLServer2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
在上面的实体以及实体之间关系的基础上,开成数据库中的表格以及各个表格之间的关系。
学生信息管理系统数据库中各个表格的设计结果如下面的几个表格所示。
1.学生基本信息表student,如表3-1。
表3-1学生基本信息表student列名数据类型可否为空说明snumINT(4)NOTNULL学号(主键)SnameNVARCHAR(50)NULL学生姓名SsexNVARCHAR(10)NULL性别SethnicNVARCHAR(50)NULL民族ShomeNVARCHAR(50)NULL籍贯SyearNVARCHAR(50)NULL入学时间SmajorNVARCHAR(50)NULL专业名ScollegeNVARCHAR(50)NULL学院名SbirthNVARCHAR(50)NULL出生日期2.课程基本信息表course,如表3-2。
表3-2课程基本信息表course列名数据类型可否为空说明CnumINT(4)NOTNULL课程号(主键)CnameNVARCHAR(50)NULL课程名CteacherNVARCHAR(50)NULL授课老师CplaceNVARCHAR(50)NULL上课地点CtypeNVARCHAR(50)NULL课程类别CtimeNVARCHAR(50)NULL上课时间3学生成绩信息表sc,如表3-3。
表3-3学生成绩信息表sc
列名数据类型可否为空说明Snumint(4)NOTNULL学号CnumInt(4)NOTNULL课程号GradeNumeric(5)NULL成绩
7
2.2详细编程
2.2.1学生信息管理模块
1.添加学生信息。
此部分实现了对学生信息的增加功能,
publicclassAddStuInfoextendsStuInfo{
StuBeangetSnum=newStubean();
publicAddStuInfo(){
this.setTitle("添加学生信息");
this.setResizable(false);
sNum.setEditable(false);
sNum.setText(""+getSnum.getStuId());
}
2.删除学生信息。
此部分实现了对学生信息的删除。
在删除前先查询出需要删除的学生的基本信息,在进行删除。
publicclassDelStuInfoextendsStuInfo{
StringsNum_str="";
publicDelStuInfo(){
this.setTitle("删除学生信息");
this.setResizable(false);
sNum.setEditable(false);
sNum.setText("请查询学号");
sName.setEditable(false);
sSex.setEditable(false);
sSethnic.setEditable(false);
sBirth.setEditable(false);
sYear.setEditable(false);
sMajor.setEditable(false);
sCollege.setEditable(false);
sHome.setEditable(false);
//设置运行时窗口的位置
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((screenSize.width-400)/2,
(screenSize.height-300)/2+45);
}
8
3.修改学生信息。
此部分实现了对学生信息的修改。
在修改时先查询出要修改的学生的基本信息,然后在进行需要的改动并保存。
publicclassEditStuInfoextendsStuInfo{
StringsNum_str="";
publicEditStuInfo(){
this.setTitle("修改学生信息");
this.setResizable(false);
sNum.setEditable(false);
sNum.setText("请查询学号");
sName.setEditable(false);
sSex.setEditable(false);
sSethnic.setEditable(false);
sBirth.setEditable(false);
sYear.setEditable(false);
sMajor.setEditable(false);
sCollege.setEditable(false);
sHome.setEditable(false);
//设置运行时窗口的位置
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((screenSize.width-400)/2,
(screenSize.height-300)/2+45);
}
2.2.2课程信息管理模块
1.增加课程信息。
此部分实现了对课程信息的增加。
publicclassAddCourseInfoextendsCourseInfo{
CrsBeangetCnum=newCrsBean();
publicAddCourseInfo(){
this.setTitle("添加课程信息");
this.setResizable(false);
cNum.setEditable(false);
cNum.setText(""+getCnum.getCrsId());
cName.setEditable(true);
cTeacher.setEditable(true);
cType.setEditable(true);
cTime.setEditable(true);
cPlace.setEditable(true);
//设置运行位置,使对话框居中
9
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((int)(screenSize.width-400)/2,
(int)(screenSize.height-300)/2+45);
}
2.删除课程信息。
此部分实现了对课程信息的删除。
在删除时先查询出需要删除的课程基本信息,在进行删除。
publicclassDelCourseInfoextendsCourseInfo{
StringcNum_str="";
publicDelCourseInfo(){
this.setTitle("删除课程信息");
this.setResizable(false);
cNum.setEditable(false);
cNum.setText("请查询课程号");
cName.setEditable(false);
cTeacher.setEditable(false);
cType.setEditable(false);
cTime.setEditable(false);
cPlace.setEditable(false);
//设置运行位置,使对话框居中
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((int)(screenSize.width-400)/2,
(int)(screenSize.height-300)/2+45);
}
3.修改课程信息。
此部分实现了对课程信息的修改。
在修改时先查询出需要修改课程的信息,在进行相应的修改。
publicclassEditCourseInfoextendsCourseInfo{
StringcNum_str="";
publicEditCourseInfo(){
this.setTitle("修改课程信息");
this.setResizable(false);
cNum.setEditable(false);
cNum.setText("请查询课程号");
cName.setEditable(false);
cTeacher.setEditable(false);
cType.setEditable(false);
cTime.setEditable(false);
cPlace.setEditable(false);
10
//设置运行位置,使对话框居中
}
2.2.3成绩管理模块
1.成绩的增加。
publicclassAddGradeInfoextendsGradeInfoimplementsActionListener{
publicAddGradeInfo(){
this.setTitle("添加成绩信息");
this.setResizable(false);
//设置运行位置,使对话框居中
}
2.成绩的修改。
publicclassEditGradeInfoextendsGradeInfoimplementsActionListener{
publicEditGradeInfo(){
this.setTitle("修改成绩信息");
this.setResizable(false);
//设置运行位置,使对话框居中
}
2.2.4查询模块
该模块实现了对学生信息的分类查询,可以通过学号、姓名、性别、学院、
专业分别查询相应的学生信;另外还实现了课程信息的分类查询,可以通过课
程课程名称和课程教师分别查询相应的课程信息。
最后还实现了对成绩的查询。
2.2.5数据库连接
//连接数据库的类
publicclassDatabase{
privateStatementstmt=null;
ResultSetrs=null;
privateConnectionconn=null;
Stringsql;
Stringstrurl="jdbc:
odbc:
tls";
publicDatabase()}
11
第三章设计结果及分析
3.1设计结果
本系统实现了对学生的基本信息和成绩的管理,还可以对学校的所有课程进行管理,最后本系统还实现了对课程信息、学生基本信息和成绩信息的查询。
系统主界面如图:
图4-1系统主界面
3.1.1学生信息的管理
1.增加学生信息。
12
图4-2添加学生信息2.查询学生信息。
按学号查询,如图4-3和4-4;
图4-3学号查询
图4-4学生信息查询此外,此系统还实现了按姓名、性别、学院、专业的查询。
3.删除学生信息。
先查询出要删除的学生的信息,在点击删除,如图4-5所
示。
13
图4-5删除学生信息
3.1.2课程信息的管理
1.添加课程信息。
这里的课程编码是按顺序自动生成的,只要输入相应的信息,点击增加即可添加新的课程信息。
如图4-6。
图4-6添加课程信息
2.修改课程信息。
先查询出需要修改的的课程的信息,然后修改相应的需要修改的地方,点击修改即可完成修改。
如图4-7。
14
图4-7修改课程信息
3.删除课程信息。
先点击查询,输入相应的课程号,查询出需要删除的课程信息,确认之后点击删除即可完成删除。
如图4-8。
图4-8删除课程信息
3.1.3成绩管理
1.学生选课。
一个学生需要首先进行选课才能有成绩,所以首先要进行选课,如图4-9。
15
图4-9学生选修
2.增加成绩。
本系统可以方便的写入学生的成绩,以便统计与查询。
如图4-10。
图4-10增加成绩
3.修改成绩。
有时候输入成绩可能出错,或者成绩加错了,所以需要修改成绩,本系统实现了此功能,如图4-11。
图4-11修改成绩
3.2设计结果分析
基本达到了预期的实验效果,实现了对学校的所有专业信息和课程信息进行管理,对学生的基本信息和成绩进行管理,最后本系统能对专业信息、课程信息、学生基本信息和成绩信息进行查询。
不过界面尚做的不够漂亮,而且没有登陆界面,还有很多需要完善的地方。
16
总结
通过对做这次课程设计,使我对数据库的应用有了更深一步的认识。
又使我掌握了使用各种关系数据库为后台数据库设计一个信息管理系统。
在进行课程设计的同时,我遇到了大量问题,使我实际解决问题的能力得以提高。
尤其是在做实验时,对JAVA连接数据库还很陌生,但是后来通过上网,去图书馆找资料就很快的搞定了。
从中理解了大学对一个人来说,最重要的不是你学了多少知识,而是快速学习的能力,同时我也知道,任何一件事不是只有知道了相关信息才去做他,即使不知道相关信息也可以动手去做。
一边学一边做,在信息时代里,这是一个人的生存手段。
总之,这次课程设计受益匪浅,不仅锻炼了我做事坚持不懈的心态,也慢慢地培养了我不懂就查书的好习惯,我的自学能力也有了一定的提高,我更明白了搞计算机这行,要学到真正的技术完全要靠自己,在课堂上只能学到最基本的东西,但这最基本的东西也一定要学好。
参考文献
[1]萨师煊,王珊.《数据库系统概论(第三版)》[M].高等教育出版社,
2000年
[2]邓良松,刘海岩,陆丽娜.《软件工程》[M].西安电子科技大学出版社,
2000年
[3]耿冲.《SQLServer2000数据库管理》[M].机械工业出版社,2001年[4]赤金,聂松编.《JavaApplet实例编程》[M].中国水利水电出版社[5]蔡翠平.《JAVA程序设计》[M].北方交通大学出版社
17
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA程序设计 JAVA 程序设计 课程设计 作业 学生 管理 系统