学生信息管理系统课程设计报告Word格式.docx
- 文档编号:17054436
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:42
- 大小:175.42KB
学生信息管理系统课程设计报告Word格式.docx
《学生信息管理系统课程设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统课程设计报告Word格式.docx(42页珍藏版)》请在冰豆网上搜索。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着来越重要的作用。
作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理所无法比拟的优点.例如:
检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。
第三部分需求分析
学生信息管理系统的功能总结起来,共需要以下几个方面:
1.学生信息管理
管理所有学生的基本信息,包括增加、修改、删除等,也可以根据各种条件查询出需要的信息。
2.课程信息管理
管理所有课程的基本信息,包括增加、修改、删除等,也可以根据各种条件查询出需要的信息。
3.选课与成绩管理
根据学号进行选课,登记课程的成绩,可以根据学号查询出来选课信息与成绩。
第四部分系统设计
4.1结构设计
根据对系统的需求分析,本系统将分为4个模块:
●学生管理:
管理学生的基本信息,包括个人信息的添加、修改、删除,以及选课信息的添加。
●课程管理:
管理课程的基本信息,包括课程信息的添加、修改和删除。
●成绩管理:
管理学生的选课的成绩信息,包括成绩的登记与修改。
●信息查询:
查询已经登记的信息,包括学生的基本信息、课程的基本信息与成绩信息。
4.2功能结构图
系统的功能结构如图1所示。
图1学生管理系统功能结构图
4.3功能流程以及工作流描述
1.增加学生信息
系统操作人员打开学生信息添加界面,输入相关的信息(姓名、性别、民族、籍贯、出生日期、入学年份、专业和学院等),在数据库中添加相关数据。
2.修改学生信息
根据学生的学号查询出该学生的相关信息,修改相关条目后保存在数据库中。
3.删除学生信息
根据学生的学号查询出该学生的相关信息,确定删除后,在数据库中删除该信息。
4.学生选课
选择学生学号与需要选择的课程,确定无误后保存,数据库中将自动添加新的选课记录。
5.增加课程信息
系统操作人员根据打开的课程增加界面,输入相关信息(课程名称、授课教师、课程学分、课程系数、上课地点等),在数据库中添加相关的数据。
6.修改课程信息
根据课程号查询出该课程的相关信息,修改条目后保存在数据库中。
7.删除课程信息
根据课程号查询出该课程的相关信息,确认删除后,在数据库中删除该信息。
8.登记成绩
根据学号,以及该学生所选择的课程,进行成绩登记,为选课的同学将无法登记。
9.修改成绩
对已经登记的成绩信息进行修改。
10.学生查询
可以根据学生学号、学生姓名、学生性别、学生所学专业、学生所属学院来对学生信息进行查询,所有符合查询条件的学生信息将都被显示出来。
11.课程查询
按照课程名称和授课教师的名称对课程详细信息进行查询,所有符合查询条件的课程信息都将会被显示出来。
12.成绩查询:
根据学生的学号来查询该学生所有课程的成绩。
第五部分数据库的设计
5.1数据库设计
此系统使用的是mysql数据库,由于此系统需要的数据量不是很大,所以选择比较简便的mysql数据库。
此系统的数据库名称是studentsys,创建语句如下:
5.2数据表的设计
数据库中包含三个表,即是学生信息表(student)、课程信息表(Course)和学生选课表(SC),设计要求如表1~3所示。
表1学生信息表(Student)
名称
字段名称
数据类型
主键
非空
学号
Snum
Varchar(20)
Yes
学生姓名
Sname
Varchar(10)
No
性别
Ssex
Varchar
(2)
民族
Sethnic
Varchar(4)
籍贯
Shome
入学年份
Syear
专业
Smajor
学院
Scollege
出生日期
Sbirth
学分绩点
Spoint
表2课程信息表(Course)
课程编码
Cnum
课程名称
Cname
授课教师
Cteacher
上课地点
Cplace
课程学分
Cpoint
Smallint
课程系数
Cratio
Varchar(2,2)
表3学生选课表(SC)
成绩
Grade
Float(4,2)
第六部分详细设计
该系统由6个模块构成,包括学生管理系统主界面模块、学生信息管理模块、课程信息管理模块、成绩管理模块、信息查询模块和数据库操作模块,以下分别加以叙述:
6.1学生管理系统主界面模块
学生管理系统的主界面模块包括StuMS.java和StuMain.java两个文件。
StuMS是学生管理系统的主运行类,其中有整个程序的主方法main,该文件生成了StuMain类的一个实例,从而生成了学生管理系统的主界面,如图2所示。
StuMain类继承了JFrame类,实现了事件监听接口,它有一个不带参数的构造函数StuMain(),用来生成StuMain实例,StuMain类将所有的功能集中到面板中,面板上的按键是按网格排布,生成按钮,通过按钮的响应函数调用其他模块的函数来实现学生管理系统的各个功能,以下是主界面的运行程序:
图6.1.1主界面运行程序
6.2学生信息管理模块
学生信息管理模块主要由StuInfo.java、AddStuInfo.java、EditStuInfo.java、DelStuInfo.java、SelectCourse.java和StuInfoSearchSnum.java这六个文件组成,每个java文件只有一个类,完全实现模块化设计,StuInfo类是AddStuInfo、EditStuInfo、DelStuInfo的超类,因为这三个类生成的界面是相同的具有共同之处。
SelectCourse模块是选课模块,StuInfoSearchSnum是查询模块,用于AddStuInfo、EditStuInfo、DelStuInfo调用来查询学生信息以便增加、修改和删除学生信息。
学生信息管理模块的几个界面如下:
图6.2.1学生信息添加界面
图6.2.2学生信息修改界面
图6.2.3学生信息删除界面
图6.2.3学生选课界面
6.3课程信息管理模块
课程信息管理模块主要由CourseInfo.java、AddCourseInfo.java、EditCourseInfo.java、DelCourseInfo.java和StuInfoSearchSnum.java这六个文件组成,每个java文件只有一个类,完全实现模块化设计,CourseInfo类是AddCourseInfo、EditCourseInfo、DelCourseInfo的超类,因为这三个类生成的界面是相同的具有共同之处。
CourseInfoSearchSnum是查询模块,用于AddCourseInfo、EditCourseInfo、DelCourseInfo调用来查询课程以便增加、修改和删除课程。
课程信息管理模块的几个界面如下:
图6.3.1课程信息增加界面
图6.3.1课程信息修改界面
图6.3.1课程信息删除界面
6.4查询模块
查询模块分学生信息查询、课程信息查询和成绩查询:
界面如下:
图6.4查询模块
图6.5数据库操作模块
数据库操作模块包括连接数据库和数据库操作,连接数据库在类DataBase.java中,操作数据库类分别在几个不同的类里,学生信息操作在StuBean.java,选课操作在Csbean.java中,课程操作在CrsBean.java中,代码在附录里,这里就不重复了。
第七部分课程设计心得
在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。
另外,在整个开发的过程中,时间也比较仓促。
因此,该系统必然会存在一些缺陷和不足。
因为对学生信息管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。
尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。
通过开发这个系统,我掌握了的项目基本开发过程,用到的知识巩固了我对JAVA的学习,但在这次设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
第八部分附录(部分代码)
//////////////////////////////////Database.java//////////////////////
importjava.sql.*;
importjavax.naming.spi.DirStateFactory.Result;
/**
*连接数据库的类
*/
publicclassDatabase{
privateStatementstmt=null;
ResultSetrs=null;
privateConnectionconn=null;
Stringsql;
Stringstrurl="
jdbc:
mysql:
//127.0.0.1:
3306/studentsys"
;
publicDatabase(){
}
/**
*打开数据库连接
publicvoidOpenConn()throwsException{
try{
Class.forName("
com.mysql.jdbc.Driver"
);
conn=DriverManager.getConnection(strurl,"
root"
"
conn.setAutoCommit(false);
}
catch(Exceptione){
System.err.println("
OpenConn:
"
+e.getMessage());
e.printStackTrace();
}
*执行sql语句,返回结果集rs
publicResultSetexecuteQuery(Stringsql){
stmt=null;
rs=null;
try{stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
catch(SQLExceptione){
executeQuery:
returnrs;
*执行sql语句
publicintexecuteUpdate(Stringsql){
stmt=null;
rs=null;
intk=0;
try{stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
k=stmt.executeUpdate(sql);
mit();
executeUpdate:
returnk;
publicvoidcloseStmt(){
stmt.close();
closeStmt:
*关闭数据库连接
publicvoidcloseConn(){
conn.close();
catch(SQLExceptionex){
aq.closeConn:
+ex.getMessage());
/*
*转换编码
publicstaticStringtoGBK(Stringstr){
try{
if(str==null)
str="
else
str=newString(str.getBytes("
ISO-8859-1"
),"
GBK"
catch(Exceptione){System.out.println(e);
}
returnstr;
//////////////////////////////////StuBean.java//////////////////////////////
importjava.util.*;
importjavax.swing.*;
*有关学生信息数据库操作的类
publicclassStuBean{
ResultSetrs=null;
StringsNum;
StringsName;
StringsSex;
StringsBirth;
StringsHome;
StringsEthnic;
StringsYear;
StringsMajor;
StringsCollege;
StringsCourse;
StringcolName;
//列名
StringcolValue;
//列值
StringcolValue2;
intstuId;
//学生的新学号
*添加学生信息
*/
publicvoidstuAdd(StringSnum,Stringname,Stringsex,Stringbirth,Stringhome,Stringethnic,Stringyear,Stringmajor,Stringcollege){
DatabaseDB=newDatabase();
this.sNum=Snum;
this.sName=name;
this.sSex=sex;
this.sBirth=birth;
this.sHome=home;
this.sEthnic=ethnic;
this.sYear=year;
this.sMajor=major;
this.sCollege=college;
if(sName==null||sName.equals("
)){
JOptionPane.showMessageDialog(null,"
请输入学生姓名"
"
错误"
JOptionPane.ERROR_MESSAGE);
return;
else{
StringnumS="
1"
sql="
insertintostudent(snum,sname,ssex,sbirth,shome,sethnic,syear,smajor,scollege)values('
+sNum+"
'
'
+sName+"
+sSex+"
+sBirth+"
+sHome+"
+sEthnic+"
+sYear+"
+sMajor+"
+sCollege+"
)"
try{
DB.OpenConn();
System.out.println("
ksadhfasdf"
DB.executeUpdate(sql);
JOptionPane.showMessageDialog(null,"
成功添加一条新的纪录!
}
catch(Exceptione){
System.out.println(e);
JOptionPane.showMessageDialog(null,"
保存失败"
finally{
DB.closeStmt();
DB.closeConn();
*修改学生信息
publicvoidstuModify(Stringnum,Stringname,Stringsex,Stringbirth,Stringhome,Stringethnic,Stringyear,Stringmajor,Stringcollege){
this.sNum=num;
//sql="
updatestudentsetsname='
ssex='
sbirth='
shome='
sethnic='
syear='
smajor='
scollege='
wheresnum="
+Integer.parseInt(sNum)+"
wheresnum='
intk=DB.executeUpdate(sql);
if(k==1)JOptionPane.showMessageDialog(null,"
成功修改一条新的纪录!
System.out.println
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统 课程设计 报告