JAVA课程设计报告学生管理系统_第1页
JAVA课程设计报告学生管理系统_第2页
JAVA课程设计报告学生管理系统_第3页
JAVA课程设计报告学生管理系统_第4页
JAVA课程设计报告学生管理系统_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计说明书 no.1课程设计题目: 学生管理系统1.课程设计的目的 由于高等学校的快速发展,高校规模越来越大,学生数量与课程数量都在迅速地增长,管理上的手工操作不仅仅会耗费学生与工作人员大量的时间和精力,效率以及准确性也很低。如何使同学们方便,快捷、准确地选课,已经成为一个重要的问题。利用计算机进行学生选课方面的管理,不仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找方便、可靠性高、存储量大、保密性好。要科学地实现信息化管理,开发一个适合学校的,能够进行信息存储、查询、修改等功能的管理系统是十分重要的。2.设计方案论证2.1设计思路根据对系统进行的需求

2、分析,本系统将分为4个模块:分别是学生管理模块、课程管理模块、成绩管理模块、信息查询模块。实现的功能有:(1)增加学生信息系统操作人员打开学生信息增加界面,输入相关信息,在数据库中添加相关数据。(2)修改学生信息根据学生学号查询出该学生的相关信息,修改相关条目后保存在数据库中。(3)删除学生信息根据学生学号查询出该学生的相关信息,确定删除后,在数据库中删除该信息。(4)学生选课选择学生学号与需要选择的课程,确认无误后保存,数据库中将自动添加新的选课记录。 沈 阳 大 学课程设计说明书 no.2(5)增加课程信息系统操作人员根据打开课程信息增加界面,输入相关信息,在数据库中添加相关数据。(6)修

3、改课程信息根据课程号查询出课程的相关信息,修改相关条目后保存在数据库中。(7)删除课程信息根据课程号查询出该课程的相关信息,确定删除后,在数据库中删除该信息。(8)登记成绩根据学号,以及该学生所选择的课程,进行成绩登记,未选课的学生无法进行登记。(9)修改成绩对登记的成绩信息进行修改。(10)学生查询可以根据学生学号、学生姓名、学生性别、学生所学专业、学生所属学院、来对学生信息进行查询,所有符合查询条件的学生信息都将会被显示出来。(11)课程查询可以按照课程名称,授课教师的姓名,对课程的详细信息进行查询,所有符合查询条件的课程信息都将会被显示出来。(12)成绩查询 根据学生的学号来查询该学生所

4、有课程的成绩。2.2数据库设计数据库中应包含3个表,即课程信息表(course)、学生信息表(student)、和学生选课表(sc)。设计表如表1,表2,表3所示。 沈 阳 大 学课程设计说明书 no.3表1 课程信息表(course)名称字段名称数据类型主键非空课程编号cnumchar(4)yesyes课程名称cnamevarchar2noyes授课教师cteachervarchar2nono上课地点cplacevarchar2nono课程类别ctypechar(1)nono 表2学生信息表(student)名称字段名称数据类型主键非空学号snumchar(10)yesyes学生姓名snam

5、evarchar2noyes性别ssexchar(2)nono民族sethnicchar(2)nono籍贯shomevarchar2nono入学年份syearchar(4)nono专业smajorvarchar2nono学院scollegevarchar2nono出生日期sbirthchar(8)nono表3 学生选课表(sc) 沈 阳 大 学课程设计说明书 no.4名称字段名称数据类型主键非空学号snumchar(10)yesyes课程编号cnumchar(4)yesyes成绩gradenumber(4,1)nono2.3设计方法(1)学生管理系统主界面模块学生管理系统主界面模块包括stum

6、s.java和stumain.java两个文件。stums是学生管理系统的主运行类,其中有运行整个程序的main方法,该文件生成了stumain类的一个实例,从而生成了学生管理系统的界面。stumain类继承自jframe类,实现了事件侦听的接口,它有一个不带参数的构造方法stumain(),用来生成stumain的实例。stumain类将所有的功能集中到菜单栏中,并通过调用其他模块来实现学生管理系统的各个功能。(2)学生信息管理模块学生信息管理模块主要由stuinfo.java、addstuinfo.java、editstuinfo.java、delstuinfo.java、selectco

7、urse.java和stuinfosearchsnum.java共6个文件组成。stuinfo是addstuinfo、editstuinfo、delstuinfo这3个类的超类,由于addstuinfo、editstuinfo和delstuinfo的界面显示有共同之处,所以编写包含共有界面的stuinfo类,可以快速实现其3个子类的界面显示。它们之间的构成关系如图1所示。这6个类文件组成了主界面中“学生管理”菜单的内容,其中包括增加、修改、删除和学生选课功能。 沈 阳 大 学课程设计说明书 no.5图1 学生信息管理功能结构图其中stuinfosearchsnum类是选择学号的类,该类利用ge

8、tsnum()方法将选择出的学号返回给调用它的类。调用它的类包括editstuinfo类和delstuinfo类。(3)课程信息管理模块课程信息管理模块主要由courseinfo.java、addcourseinfo.java、editcourseinfo.java、delcourseinfo.java、courseinfosearchcnum.java这5个文件组成,它们组成了主界面中“课程管理”菜单的内容,其中包括增加、修改和删除功能。courseinfo是addcourseinfo、editcourseinfo、delcourseinfo这3个类的超类,由于addcourseinfo、e

9、ditcourseinfo和delcourseinfo的界面显示有共同之处,所以编写包含共有的courseinfo类,可以快速实现其3个类的界面显示。它们之间的构成关系如图2所示。图2 课程信息管理功能结构图 沈 阳 大 学课程设计说明书 no.6courseinfosearchcnum类是选择课程号的类,该类利用getcnum()方法将选择出的学号返回给调用它的类。调用它的类包括editcourseinfo类和delcourseinfo类。(4)成绩信息管理系统成绩信息管理模块主要由gradeinfo.java、addgradeinfo.java、editgradeinfo.java这3个文

10、件组成,这3个文件组成了主界面中“成绩管理”菜单的内容,其中包括增加和修改功能。gradeinfo类是addgradeinfo、editgradeinfo这两个类的超类,由于addgradeinfo和editgradeinfo的界面显示有共同之处,所以编写包含共有界面的gradeinfo类,可以快速实现其两个子类的界面显示。3个文件构成的关系如图3所示。图3 成绩信息管理功能结构图(5)信息查询模块信息查询模块主要包括学生查询、课程查询和成绩查询3个部分。学生查询由stusearchsnum.java、stusearchsname.java、stusearchssex.java、stusear

11、chscollege.java、stusearchsmajor.java和resultstudent.java这6个文件组成,包括:按照学号查询、按照学生姓名查询、按照性别查询、按照学院查询与按照专业查询。stusearchsnum.java类是按照学学号查询学生信息的类,支持学号在一定范围内搜索。操作者只需输入需要查询的学号范围,系统会将范围内的信息显示在屏幕上。stusearchsname.java类是按照学生姓名查询学生信息的类,支持根据学生姓名进行搜索。操作者输入需要查询的学生姓名,系统会将符合条件的信息显示在屏幕上。同时,如果操作者不输入任何信息,系统将会搜索出所有的学生信息。stu

12、searchssex.java类、stusearchscollege.java类、stusearchsmajor.java类和resultstudent.java类的实现功能与stusearchsname.java类功能相似。(6)数据库操作模块database.java类是对数据库进行操作的类,包括:连接数据库、执行sql语句、关 沈 阳 大 学课程设计说明书 no.7闭数据库连接等;stubean.java类是用语对学生相关信息进行数据库操作的类,包括:学生信息的增加、修改、删除、查询等;crsbean.java类似乎用于对课程相关信息进行数据库操作的类,包括:课程信息的增加、修改、删除、

13、查询等;csbean.java类是用语对选课信息及成绩的相关信息进行数据库操作的类,包括:选课信息的 、修改、查询,以及成绩的登记、修改、查询等。3.设计结果与分析(1)学生管理系统的主界面,如图4所示。图4 主界面 (2)添加学生信息界面,如图5所示。 图5 添加学生信息界面 沈 阳 大 学课程设计说明书 no.8(3)若要修改学生信息,先单击“学号查询”选择要修改的学生学号,点击确定后,对所显示的学生信息进行修改。运行界面如图6所示。图6 修改学生信息界面(4)选择“学号”和所要选择的“课程”进行学生选课操作,运行界面如图7所示。图7 学生选课界面(5)添加课程信息,运行效果如图8所示。图

14、8 添加课程界面 沈 阳 大 学课程设计说明书 no.9 (6)若要修改课程信息,单击“查询”按钮,选择所要修改课程的课程编号,之后该信息会自动显示出来,此时可进行信息的修改,运行效果如图9所示。图9 修改课程信息界面(7)若要添加成绩信息,下拉列表中选择学号,课程名称,之后对该同学的成绩进行录入,运行效果如图10所示。图10 添加成绩界面(8)信息查询包括学生查询、课程查询、成绩查询。若按学号查询,则弹出输入学号的界面,如图11所示。单击“确定“后,则显示所要查询的信息结果。 沈 阳 大 学课程设计说明书 no.10 4.设计体会通过这次课程设计,使我对java这门课又做了一次系统的复习,对

15、各个知识点也都有了更深刻的理解,让我掌握的更扎实,同时也增强了实际操作能力,了解了学生信息管理系统的工作流程以及工作模式,程序开发过程中涉及到了数据库的相关知识,使我对数据库的使用也更加的熟练,另一方面也对编程语言有了新的认识,为以后的学习打下了基础。在本系统的开发过程中,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促不能对学生信息管理系统的整个流程完全熟悉,在需求分析时未能做到完全满足用户的需求。5.参考文献1丁振凡.java语言实用教程m.北京邮电大学出版社,2005.2:105-1212宛延闿.实用java程序设计教程m.机械工业出版社,2006.4:234-25

16、03张广彬,孟红蕊,张永宝.java课程设计案例精编m.清华大学出版社,2005.2:355-3634朱喜福.java程序设计m.人民邮电出版社,2005.9:179-203 沈 阳 大 学课程设计说明书 no.11附录(1)stums.javaimport javax.swing.uimanager;import java.awt.*;public class stums boolean packframe = false;public stums() stumain frame = new stumain(); if (packframe) frame.pack(); else frame

17、.validate();/设置运行时窗口的位置dimension screensize = toolkit.getdefaulttoolkit().getscreensize();dimension framesize = frame.getsize();if (framesize.height screensize.height) framesize.height = screensize.height;if (framesize.width screensize.width) framesize.width = screensize.width;frame.setlocation(scre

18、ensize.width - framesize.width) / 2, (screensize.height - framesize.height) / 2);frame.setvisible(true); 沈 阳 大 学课程设计说明书 no.12public static void main(string args) /设置运行风格try uimanager.setlookandfeel(uimanager.getsystemlookandfeelclassname();catch(exception e) e.printstacktrace();new stums();(2)addstu

19、info.javaimport java.awt.event.*;import java.awt.*;import javax.swing.*;public class addstuinfo extends stuinfo stubean getsnum = new stubean();public addstuinfo() this.settitle(添加学生信息);this.setresizable(false);snum.seteditable(false);snum.settext(+getsnum.getstuid();sname.seteditable(true);ssex.set

20、editable(true);ssethnic.seteditable(true);sbirth.seteditable(true); 沈 阳 大 学课程设计说明书 no.13 syear.seteditable(true);smajor.seteditable(true);scollege.seteditable(true);shome.seteditable(true);/设置运行时窗口的位置dimension screensize = toolkit.getdefaulttoolkit().getscreensize();this.setlocation(screensize.width

21、 - 400) / 2, (screensize.height - 300) / 2 + 45);public void downinit()addinfo.settext(增加);addinfo.setfont(new font(dialog,0,12);downpanel.add(addinfo);clearinfo.settext(清空);clearinfo.setfont(new font(dialog,0,12);downpanel.add(clearinfo);eixtinfo.settext(退出);eixtinfo.setfont(new font(dialog,0,12);d

22、ownpanel.add(eixtinfo);/添加事件侦听addinfo.addactionlistener(this);clearinfo.addactionlistener(this);eixtinfo.addactionlistener(this);this.contentpane.add(downpanel,borderlayout.south); 沈 阳 大 学课程设计说明书 no.14 public void actionperformed(actionevent e) object obj = e.getsource();if (obj = eixtinfo) /退出this.

23、dispose();else if (obj = addinfo) /增加snum.setenabled(false);sname.setenabled(false);ssex.setenabled(false);ssethnic.setenabled(false);sbirth.setenabled(false);syear.setenabled(false);smajor.setenabled(false);scollege.setenabled(false);shome.setenabled(false);addinfo.setenabled(false);clearinfo.seten

24、abled(false);eixtinfo.setenabled(false);stubean addstu = new stubean();addstu.stuadd(sname.gettext(), ssex.gettext(), sbirth.gettext(), shome.gettext(), ssethnic.gettext(), syear.gettext(), smajor.gettext(), scollege.gettext();this.dispose();addstuinfo asi = new addstuinfo();asi.downinit(); 沈 阳 大 学课

25、程设计说明书 no.15asi.pack();asi.setvisible(true);else if (obj = clearinfo) /清空setnull();snum.settext(+getsnum.getstuid();(3)editstuinfo.javamport java.awt.*;import java.sql.*;import java.awt.event.*;import javax.swing.*;public class editstuinfo extends stuinfo string snum_str = ;public editstuinfo() this

26、.settitle(修改学生信息);this.setresizable(false);snum.seteditable(false);snum.settext(请查询学号);sname.seteditable(false);ssex.seteditable(false); 沈 阳 大 学课程设计说明书 no.16ssethnic.seteditable(false);sbirth.seteditable(false);syear.seteditable(false);smajor.seteditable(false);scollege.seteditable(false);shome.sete

27、ditable(false);/设置运行时窗口的位置dimension screensize = toolkit.getdefaulttoolkit().getscreensize();this.setlocation(screensize.width - 400) / 2, (screensize.height - 300) / 2 + 45);public void downinit()searchinfo.settext(学号查询);searchinfo.setfont(new font(dialog,0,12);downpanel.add(searchinfo);modifyinfo.

28、settext(修改);modifyinfo.setfont(new font(dialog,0,12);downpanel.add(modifyinfo);clearinfo.settext(清空)clearinfo.setfont(new font(dialog,0,12);downpanel.add(clearinfo);eixtinfo.settext(退出);eixtinfo.setfont(new font(dialog,0,12);downpanel.add(eixtinfo); 沈 阳 大 学课程设计说明书 no.17searchinfo.setenabled(true);mo

29、difyinfo.setenabled(false);clearinfo.setenabled(true);eixtinfo.setenabled(true);/添加事件侦听searchinfo.addactionlistener(this);modifyinfo.addactionlistener(this);clearinfo.addactionlistener(this);eixtinfo.addactionlistener(this);this.contentpane.add(downpanel,borderlayout.south);public void actionperform

30、ed(actionevent e) object obj = e.getsource();string s = new string8;if (obj = eixtinfo) /退出this.dispose();else if (obj = modifyinfo) /修改stubean modifystu = new stubean();modifystu.stumodify(snum.gettext(), sname.gettext(), ssex.gettext(), sbirth.gettext(), shome.gettext(), ssethnic.gettext(), syear.

31、gettext(), smajor.gettext(), scollege.gettext();modifystu.stusearch(snum.gettext();s = modifystu.stusearch(snum_str);sname.settext(s0);ssex.settext(s1); 沈 阳 大 学课程设计说明书 no.18 ssethnic.settext(s2);shome.settext(s3);syear.settext(s4);smajor.settext(s5);scollege.settext(s6);sbirth.settext(s7);else if (obj = clearinfo) /清空setnull();snum.settext(请查询学号);else if (obj = searchinfo) /学号查询stuinfosearchsnum siss = new stuinfosearchsnum(this);siss.pack();siss.setvisible(true);trysnum_str = siss.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论