学生管理系统课设文档.docx

上传人:b****8 文档编号:10816114 上传时间:2023-02-23 格式:DOCX 页数:19 大小:169.08KB
下载 相关 举报
学生管理系统课设文档.docx_第1页
第1页 / 共19页
学生管理系统课设文档.docx_第2页
第2页 / 共19页
学生管理系统课设文档.docx_第3页
第3页 / 共19页
学生管理系统课设文档.docx_第4页
第4页 / 共19页
学生管理系统课设文档.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

学生管理系统课设文档.docx

《学生管理系统课设文档.docx》由会员分享,可在线阅读,更多相关《学生管理系统课设文档.docx(19页珍藏版)》请在冰豆网上搜索。

学生管理系统课设文档.docx

学生管理系统课设文档

成成学生管理系统

1.课程设计的目的

由于高等学校的快速发展,高校规模越来越大,学生数量与课程数量都在迅速地增长,管理上的手工操作不仅仅会耗费学生与工作人员大量的时间和精力,效率以及准确性也很低。

如何使同学们方便,快捷、准确地选课,已经成为一个重要的问题。

利用计算机进行学生选课方面的管理,不仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找方便、可靠性高、存储量大、保密性好。

要科学地实现信息化管理,开发一个适合学校的,能够进行信息存储、查询、修改等功能的管理系统是十分重要的。

2.设计方案论证

2.1设计思路

根据对系统进行的需求分析,本系统将分为4个模块:

分别是学生管理模块、课程管理模块、成绩管理模块、信息查询模块。

实现的功能有:

(1)增加学生信息

系统操作人员打开学生信息增加界面,输入相关信息,在数据库中添加相关数据。

(2)修改学生信息

根据学生学号查询出该学生的相关信息,修改相关条目后保存在数据库中。

(3)删除学生信息

根据学生学号查询出该学生的相关信息,确定删除后,在数据库中删除该信息。

(4)学生选课

选择学生学号与需要选择的课程,确认无误后保存,数据库中将自动添加新的选课记录。

(5)增加课程信息

系统操作人员根据打开课程信息增加界面,输入相关信息,在数据库中添加相关数据。

(6)修改课程信息

根据课程号查询出课程的相关信息,修改相关条目后保存在数据库中。

(7)删除课程信息

根据课程号查询出该课程的相关信息,确定删除后,在数据库中删除该信息。

(8)登记成绩

根据学号,以及该学生所选择的课程,进行成绩登记,未选课的学生无法进行登记。

(9)修改成绩

对登记的成绩信息进行修改。

(10)学生查询

可以根据学生学号、学生姓名、学生性别、学生所学专业、学生所属学院、来对学生信息进行查询,所有符合查询条件的学生信息都将会被显示出来。

(11)课程查询

可以按照课程名称,授课教师的姓名,对课程的详细信息进行查询,所有符合查询条件的课程信息都将会被显示出来。

(12)成绩查询

根据学生的学号来查询该学生所有课程的成绩。

2.2数据库设计

数据库中应包含3个表,即课程信息表(Course)、学生信息表(Student)、和学生选课表(SC)。

设计表如表1,表2,表3所示。

表1课程信息表(Course)

名称

字段名称

数据类型

主键

非空

课程编号

Cnum

Char(4)

Yes

Yes

课程名称

Cname

Varchar2

No

Yes

授课教师

Cteacher

Varchar2

No

No

上课地点

Cplace

Varchar2

No

No

课程类别

Ctype

Char

(1)

No

No

表2学生信息表(Student)

名称

字段名称

数据类型

主键

非空

学号

Snum

Char(10)

Yes

Yes

学生姓名

Sname

Varchar2

No

Yes

性别

Ssex

Char

(2)

No

No

民族

Sethnic

Char

(2)

No

No

籍贯

Shome

Varchar2

No

No

入学年份

Syear

Char(4)

No

No

专业

Smajor

Varchar2

No

No

学院

Scollege

Varchar2

No

No

出生日期

Sbirth

Char(8)

No

No

表3学生选课表(SC)

名称

字段名称

数据类型

主键

非空

学号

Snum

Char(10)

Yes

Yes

课程编号

Cnum

Char(4)

Yes

Yes

成绩

Grade

Number(4,1)

No

No

2.3设计方法

(1)学生管理系统主界面模块

学生管理系统主界面模块包括StuMS.java和StuMain.java两个文件。

StuMS是学生管理系统的主运行类,其中有运行整个程序的main方法,该文件生成了StuMain类的一个实例,从而生成了学生管理系统的界面。

StuMain类继承自JFrame类,实现了事件侦听的接口,它有一个不带参数的构造方法StuMain(),用来生成StuMain的实例。

StuMain类将所有的功能集中到菜单栏中,并通过调用其他模块来实现学生管理系统的各个功能。

(2)学生信息管理模块

学生信息管理模块主要由StuInfo.java、AddStuInfo.java、EditStuInfo.java、DelStuInfo.java、SelectCourse.java和StuInfoSearchSnum.java共6个文件组成。

StuInfo是AddStuInfo、EditStuInfo、DelStuInfo这3个类的超类,由于AddStuInfo、EditStuInfo和DelStuInfo的界面显示有共同之处,所以编写包含共有界面的StuInfo类,可以快速实现其3个子类的界面显示。

它们之间的构成关系如图1所示。

这6个类文件组成了主界面中“学生管理”菜单的内容,其中包括增加、修改、删除和学生选课功能。

图1学生信息管理功能结构图

其中StuInfoSearchSnum类是选择学号的类,该类利用getSnum()方法将选择出的学号返回给调用它的类。

调用它的类包括EditStuInfo类和DelStuInfo类。

(3)课程信息管理模块

课程信息管理模块主要由CourseInfo.java、AddCourseInfo.java、EditCourseInfo.java、DelCourseInfo.java、CourseInfoSearchCnum.java这5个文件组成,它们组成了主界面中“课程管理”菜单的内容,其中包括增加、修改和删除功能。

CourseInfo是AddCourseInfo、EditCourseInfo、DelCourseInfo这3个类的超类,由于AddCourseInfo、EditCourseInfo和DelCourseInfo的界面显示有共同之处,所以编写包含共有的CourseInfo类,可以快速实现其3个类的界面显示。

它们之间的构成关系如图2所示。

图2课程信息管理功能结构图

CourseInfoSearchCnum类是选择课程号的类,该类利用getCnum()方法将选择出的学号返回给调用它的类。

调用它的类包括EditCourseInfo类和DelCourseInfo类。

(4)成绩信息管理系统

成绩信息管理模块主要由GradeInfo.java、AddGradeInfo.java、EditGradeInfo.java这3个文件组成,这3个文件组成了主界面中“成绩管理”菜单的内容,其中包括增加和修改功能。

GradeInfo类是AddGradeInfo、EditGradeInfo这两个类的超类,由于AddGradeInfo和EditGradeInfo的界面显示有共同之处,所以编写包含共有界面的GradeInfo类,可以快速实现其两个子类的界面显示。

3个文件构成的关系如图3所示。

图3成绩信息管理功能结构图

(5)信息查询模块

信息查询模块主要包括学生查询、课程查询和成绩查询3个部分。

学生查询由StuSearchSnum.java、StuSearchSname.java、StuSearchSsex.java、StuSearchScollege.java、StuSearchSmajor.java和ResultStudent.java这6个文件组成,包括:

按照学号查询、按照学生姓名查询、按照性别查询、按照学院查询与按照专业查询。

StuSearchSnum.java类是按照学学号查询学生信息的类,支持学号在一定范围内搜索。

操作者只需输入需要查询的学号范围,系统会将范围内的信息显示在屏幕上。

StuSearchSname.java类是按照学生姓名查询学生信息的类,支持根据学生姓名进行搜索。

操作者输入需要查询的学生姓名,系统会将符合条件的信息显示在屏幕上。

同时,如果操作者不输入任何信息,系统将会搜索出所有的学生信息。

StuSearchSsex.java类、StuSearchScollege.java类、StuSearchSmajor.java类和ResultStudent.java类的实现功能与StuSearchSname.java类功能相似。

(6)数据库操作模块

Database.java类是对数据库进行操作的类,包括:

连接数据库、执行SQL语句、关闭数据库连接等;StuBean.java类是用语对学生相关信息进行数据库操作的类,包括:

学生信息的增加、修改、删除、查询等;CrsBean.java类似乎用于对课程相关信息进行数据库操作的类,包括:

课程信息的增加、修改、删除、查询等;csBean.java类是用语对选课信息及成绩的相关信息进行数据库操作的类,包括:

选课信息的、修改、查询,以及成绩的登记、修改、查询等。

3.设计结果与分析

(1)学生管理系统的主界面,如图4所示。

图4主界面

(2)添加学生信息界面,如图5所示。

图5添加学生信息界面

(3)若要修改学生信息,先单击“学号查询”选择要修改的学生学号,点击确定后,对所显示的学生信息进行修改。

运行界面如图6所示。

图6修改学生信息界面

(4)选择“学号”和所要选择的“课程”进行学生选课操作,运行界面如图7所示。

图7学生选课界面

(5)添加课程信息,运行效果如图8所示。

图8添加课程界面

(6)若要修改课程信息,单击“查询”按钮,选择所要修改课程的课程编号,之后该信息会自动显示出来,此时可进行信息的修改,运行效果如图9所示。

图9修改课程信息界面

(7)若要添加成绩信息,下拉列表中选择学号,课程名称,之后对该同学的成绩进行录入,运行效果如图10所示。

图10添加成绩界面

(8)信息查询包括学生查询、课程查询、成绩查询。

若按学号查询,则弹出输入学号的界面,如图11所示。

单击“确定“后,则显示所要查询的信息结果。

如图12所示。

图11按学号索引界面

图12学生信息查询结果界面

4.设计体会

通过这次课程设计,使我对JAVA这门课又做了一次系统的复习,对各个知识点也都有了更深刻的理解,让我掌握的更扎实,同时也增强了实际操作能力,了解了学生信息管理系统的工作流程以及工作模式,程序开发过程中涉及到了数据库的相关知识,使我对数据库的使用也更加的熟练,另一方面也对编程语言有了新的认识,为以后的学习打下了基础。

在本系统的开发过程中,在知识、经验方面都存在着不足。

另外,在整个开发的过程中,时间也比较仓促不能对学生信息管理系统的整个流程完全熟悉,在需求分析时未能做到完全满足用户的需求。

5.参考文献

[1]丁振凡.Java语言实用教程[M].北京:

北京邮电大学出版社,2005.2:

105-121

[2]宛延闿.实用Java程序设计教程[M].北京:

机械工业出版社,2006.4:

234-250

[3]张广彬,孟红蕊,张永宝.Java课程设计案例精编[M].北京:

清华大学出版社,2005.2:

355-363

[4]朱喜福.Java程序设计[M].北京:

人民邮电出版社,2005.9:

179-203

 

附录

(1)StuMS.java

importjavax.swing.UIManager;

importjava.awt.*;

publicclassStuMS{

booleanpackFrame=false;

publicStuMS(){

StuMainframe=newStuMain();

if(packFrame)

{frame.pack();}

else

{frame.validate();}

//设置运行时窗口的位置

DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();

DimensionframeSize=frame.getSize();

if(frameSize.height>screenSize.height){

frameSize.height=screenSize.height;

}

if(frameSize.width>screenSize.width){

frameSize.width=screenSize.width;

}

frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);

frame.setVisible(true);

}

publicstaticvoidmain(String[]args){

//设置运行风格

try{

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}

catch(Exceptione)

{e.printStackTrace();}

newStuMS();

}

}

(2)AddStuInfo.java

importjava.awt.event.*;

importjava.awt.*;

importjavax.swing.*;

publicclassAddStuInfoextendsStuInfo{

StuBeangetSnum=newStuBean();

publicAddStuInfo(){

this.setTitle("添加学生信息");

this.setResizable(false);

sNum.setEditable(false);

sNum.setText(""+getSnum.getStuId());

sName.setEditable(true);

sSex.setEditable(true);

sSethnic.setEditable(true);

sBirth.setEditable(true);

sYear.setEditable(true);

sMajor.setEditable(true);

sCollege.setEditable(true);

sHome.setEditable(true);

//设置运行时窗口的位置

DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();

this.setLocation((screenSize.width-400)/2,

(screenSize.height-300)/2+45);

}

publicvoiddownInit(){

addInfo.setText("增加");

addInfo.setFont(newFont("Dialog",0,12));

downPanel.add(addInfo);

clearInfo.setText("清空");

clearInfo.setFont(newFont("Dialog",0,12));

downPanel.add(clearInfo);

eixtInfo.setText("退出");

eixtInfo.setFont(newFont("Dialog",0,12));

downPanel.add(eixtInfo);

//添加事件侦听

addInfo.addActionListener(this);

clearInfo.addActionListener(this);

eixtInfo.addActionListener(this);

this.contentPane.add(downPanel,BorderLayout.SOUTH);

}

publicvoidactionPerformed(ActionEvente){

Objectobj=e.getSource();

if(obj==eixtInfo){//退出

this.dispose();

}

elseif(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.setEnabled(false);

eixtInfo.setEnabled(false);

StuBeanaddStu=newStuBean();

addStu.stuAdd(sName.getText(),sSex.getText(),sBirth.getText(),sHome.getText(),sSethnic.getText(),sYear.getText(),sMajor.getText(),sCollege.getText());

this.dispose();

AddStuInfoasi=newAddStuInfo();

asi.downInit();

asi.pack();

asi.setVisible(true);

}

elseif(obj==clearInfo){//清空

setNull();

sNum.setText(""+getSnum.getStuId());

}

}

}

(3)EditStuInfo.java

mportjava.awt.*;

importjava.sql.*;

importjava.awt.event.*;

importjavax.swing.*;

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);

}

publicvoiddownInit(){

searchInfo.setText("学号查询");

searchInfo.setFont(newFont("Dialog",0,12));

downPanel.add(searchInfo);

modifyInfo.setText("修改");

modifyInfo.setFont(newFont("Dialog",0,12));

downPanel.add(modifyInfo);

clearInfo.setText("清空");

clearInfo.setFont(newFont("Dialog",0,12));

downPanel.add(clearInfo);

eixtInfo.setText("退出");

eixtInfo.setFont(newFont("Dialog",0,12));

downPanel.add(eixtInfo);

searchInfo.setEnabled(true);

modifyInfo.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);

}

publicvoidactionPerformed(ActionEvente){

Objectobj=e.getSource();

String[]s=newString[8];

if(obj==eixtInfo){//退出

this.dispose();

}

elseif(obj==modifyInfo){//修改

StuBeanmodifyStu=newStuBean();

modifyStu.stuModify(sNum.getText(),sName.getText(),sSex.getText(),sBirth.getText(),sHome.getText(),sSethnic.getText(),sYear.getText(),sMajor.getText(),sCollege.getText());

modifyStu.stuSearch(sNum.getText());

s=modifyStu.stuSe

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1