版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课设名称: 学生信息管理系统 院 (系): 信息科学与工程学院 姓名: 蒋登丽 学号: 201410411406 年 级: 2014级 专业班级: 计算机科学与技术4班 指导教师: 黄荣兵 时间: 2016年11月 目录第一部分 摘 要2第二部分 目的背景与意义4第三部分 需求分析4第四部分 系统设计44.1 结构设计44.2 功能结构图54.3 功能流程以及工作流描述6第五部分 数据库的设计65.1数据库设计65.2数据表的设计7第六部分 详细设计76.1 学生管理系统主界面模块76.2 学生信息管理模块86.3 课程信息管理模块106.4 查询模块11图6.5 数据库操作模块11第七部分
2、课程设计心得11第一部分 摘 要该项目开发的软件为学校学生信息管理系统软件,是鉴于目前学校学生人数剧增,学生信息呈爆炸性增长的前提下,学校对学生信息管理的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于所有教育单位(包括学校,学院等等)的学生信息的管理。 目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,学生管理系统也是有了很大的发展,商业化的学生信息管理软件也不少,但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作。学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要。
3、本文介绍了学生信息管理系统的开发整个过程,阐述了系统分析、系统设计、数据库设计和系统实施的全过程。在开发方法上本系统利用了软件工程化的思想和方法,总体上采用结构化生命周期开发方法,具体模块实施采用了原型法和面向对象系统开发方法。并采用java作为开发工具,mysql作为后台数据库。本系统具有学生管理、课程管理、成绩管理、信息查询等功能,分成四大模块,每个模块都相互联系,但不相互干扰,这符合了软件模块开发的思想。本系统完成了学生信息的增加、修改、删除、查询和选课,课程信息的增加、修改、删除、查询,成绩的添加、修改、查询等功能。【关键字】:信息管理系统、模块设计、软件工程。第二部分 目的背景与意义
4、学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着来越重要的作用。作为计算机应用的一部分,使用计
5、算机对学校的各类信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。第三部分 需求分析学生信息管理系统的功能总结起来,共需要以下几个方面:1. 学生信息管理管理所有学生的基本信息,包括增加、修改、删除等,也可以根据各种条件查询出需要的信息。2. 课程信息管理管理所有课程的基本信息,包括增加、修改、删除等,也可以根据各种条件查询出需要的信息。3. 选课与成绩管理根据学号进行选课,登记课程的成绩,可以根据学号查询出来选课信息与成绩
6、。第四部分 系统设计4.1 结构设计根据对系统的需求分析,本系统将分为4个模块:l 学生管理:管理学生的基本信息,包括个人信息的添加、修改、删除,以及选课信息的添加。l 课程管理:管理课程的基本信息,包括课程信息的添加、修改和删除。l 成绩管理:管理学生的选课的成绩信息,包括成绩的登记与修改。l 信息查询:查询已经登记的信息,包括学生的基本信息、课程的基本信息与成绩信息。4.2 功能结构图系统的功能结构如图1所示。学生管理系统学生管理课程管理成绩管理信息查询增加修改删除学生选课增加修改删除增加修改学生查询课程查询成绩查询按学号查询按姓名查询按专业查询按性别查询按学院查询按课程名称查询按授课教师
7、查询查询所有成绩按学分绩点查询按单科成绩查询图1 学生管理系统功能结构图4.3 功能流程以及工作流描述1. 增加学生信息系统操作人员打开学生信息添加界面,输入相关的信息(姓名、性别、民族、籍贯、出生日期、入学年份、专业和学院等),在数据库中添加相关数据。2. 修改学生信息根据学生的学号查询出该学生的相关信息,修改相关条目后保存在数据库中。3. 删除学生信息根据学生的学号查询出该学生的相关信息,确定删除后,在数据库中删除该信息。4. 学生选课选择学生学号与需要选择的课程,确定无误后保存,数据库中将自动添加新的选课记录。5. 增加课程信息系统操作人员根据打开的课程增加界面,输入相关信息(课程名称、
8、授课教师、课程学分、课程系数、上课地点等),在数据库中添加相关的数据。6. 修改课程信息根据课程号查询出该课程的相关信息,修改条目后保存在数据库中。7. 删除课程信息根据课程号查询出该课程的相关信息,确认删除后,在数据库中删除该信息。8. 登记成绩根据学号,以及该学生所选择的课程,进行成绩登记,为选课的同学将无法登记。9. 修改成绩对已经登记的成绩信息进行修改。10. 学生查询可以根据学生学号、学生姓名、学生性别、学生所学专业、学生所属学院来对学生信息进行查询,所有符合查询条件的学生信息将都被显示出来。11. 课程查询按照课程名称和授课教师的名称对课程详细信息进行查询,所有符合查询条件的课程信
9、息都将会被显示出来。12. 成绩查询:根据学生的学号来查询该学生所有课程的成绩。第五部分 数据库的设计5.1数据库设计此系统使用的是mysql数据库,由于此系统需要的数据量不是很大,所以选择比较简便的mysql数据库。此系统的数据库名称是studentsys,创建语句如下:5.2数据表的设计数据库中包含三个表,即是学生信息表(student)、课程信息表(course)和学生选课表(sc),设计要求如表13所示。表1 学生信息表(student)名称字段名称数据类型主键非空学号snumvarchar(20)yesyes学生姓名snamevarchar(10)nono性别ssexvarchar(
10、2)nono民族sethnicvarchar(4)nono籍贯shomevarchar(20)nono入学年份syearvarchar(10)nono专业smajorvarchar(10)nono学院scollegevarchar(10)nono出生日期sbirthvarchar(10)nono学分绩点spointvarchar(10)nono表2 课程信息表(course)名称字段名称数据类型主键非空课程编码cnumvarchar(10)yesyes课程名称cnamevarchar(20)nono授课教师cteachervarchar(10)nono上课地点cplacevarchar(10)
11、nono课程学分cpointsmallintnono课程系数cratiovarchar(2,2)nono表3 学生选课表(sc)名称字段名称数据类型主键非空学号snumvarchar(20)yesyes课程编码cnumvarchar(10)yesyes成绩gradefloat(4,2)nono第六部分 详细设计该系统由6个模块构成,包括学生管理系统主界面模块、学生信息管理模块、课程信息管理模块、成绩管理模块、信息查询模块和数据库操作模块,以下分别加以叙述:6.1 学生管理系统主界面模块学生管理系统的主界面模块包括stums.java和stumain.java两个文件。stums是学生管理系统的
12、主运行类,其中有整个程序的主方法main,该文件生成了stumain类的一个实例,从而生成了学生管理系统的主界面,如图2所示。stumain类继承了jframe类,实现了事件监听接口,它有一个不带参数的构造函数stumain(),用来生成stumain实例,stumain类将所有的功能集中到面板中,面板上的按键是按网格排布,生成按钮,通过按钮的响应函数调用其他模块的函数来实现学生管理系统的各个功能,以下是主界面的运行程序:图6.1.1 主界面运行程序6.2 学生信息管理模块学生信息管理模块主要由stuinfo.java、addstuinfo.java、editstuinfo.java、dels
13、tuinfo.java、selectcourse.java和stuinfosearchsnum.java这六个文件组成,每个java文件只有一个类,完全实现模块化设计,stuinfo类是addstuinfo、editstuinfo、delstuinfo的超类,因为这三个类生成的界面是相同的具有共同之处。selectcourse模块是选课模块,stuinfosearchsnum是查询模块,用于addstuinfo、editstuinfo、delstuinfo调用来查询学生信息以便增加、修改和删除学生信息。学生信息管理模块的几个界面如下:图 6.2.1 学生信息添加界面图6.2.2 学生信息修改界
14、面 图6.2.3 学生信息删除界面 图6.2.3 学生选课界面6.3 课程信息管理模块课程信息管理模块主要由courseinfo.java、addcourseinfo.java、editcourseinfo.java、delcourseinfo.java和stuinfosearchsnum.java这六个文件组成,每个java文件只有一个类,完全实现模块化设计,courseinfo类是addcourseinfo、editcourseinfo、delcourseinfo的超类,因为这三个类生成的界面是相同的具有共同之处。courseinfosearchsnum是查询模块,用于addcoursei
15、nfo、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中,代码在附
16、录里,这里就不重复了。第七部分 课程设计心得在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对学生信息管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。通过开发这个系统,我掌握了的项目基本开发过程,用到的知识巩固了我对java的学习,但在这次设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们
17、之间相互帮助的精神。第八部分 附录(部分代码)/database.java/import java.sql.*;import javax.naming.spi.dirstatefactory.result;/* * 连接数据库的类 */public class database private statement stmt=null;resultset rs=null;private connection conn=null;string sql;string strurl=jdbc:mysql:/:3306/studentsys;public database()/* *
18、打开数据库连接 */public void openconn()throws exceptiontryclass.forname(com.mysql.jdbc.driver); conn=drivermanager.getconnection(strurl,root,root);conn.setautocommit(false);catch(exception e) system.err.println(openconn:+e.getmessage();e.printstacktrace();/* * 执行sql语句,返回结果集rs */public resultset executequer
19、y(string sql)stmt = null;rs=null;trystmt=conn.createstatement(resultset.type_scroll_insensitive,resultset.concur_read_only);rs=stmt.executequery(sql);catch(sqlexception e)system.err.println(executequery:+e.getmessage();e.printstacktrace();return rs; /* * 执行sql语句 */public int executeupdate(string sql
20、)stmt=null; rs=null; int k=0;trystmt=conn.createstatement(resultset.type_scroll_insensitive,resultset.concur_read_only);k=stmt.executeupdate(sql);mit();catch(sqlexception e)system.err.println(executeupdate:+e.getmessage(); e.printstacktrace();return k;public void closestmt()trystmt.close();c
21、atch(sqlexception e)system.err.println(closestmt:+e.getmessage(); /* * 关闭数据库连接 */public void closeconn()tryconn.close();catch(sqlexception ex)system.err.println(aq.closeconn:+ex.getmessage(); /* *转换编码 */public static string togbk(string str)try if(str=null)str = ;elsestr=new string(str.getbytes(iso-
22、8859-1),gbk); catch (exception e) system.out.println(e);return str;/stubean.java/import java.util.*;import java.sql.*;import javax.swing.*;/* * 有关学生信息数据库操作的类 */public class stubean string sql;resultset rs = null;string snum;string sname;string ssex;string sbirth;string shome;string sethnic;string sy
23、ear;string smajor;string scollege;string scourse;string colname;/列名string colvalue;/列值string colvalue2;/列值int stuid;/学生的新学号/* * 添加学生信息 */public void stuadd(string snum,string name, string sex, string birth, string home, string ethnic, string year, string major, string college)database db = new datab
24、ase();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;elsestri
25、ng nums = 1;sql = insert into student(snum, sname,ssex,sbirth,shome,sethnic,syear,smajor,scollege) values (+snum+,+sname+,+ssex+,+sbirth+,+shome+,+sethnic+,+syear+,+smajor+,+scollege+);trydb.openconn();system.out.println(ksadhfasdf);db.executeupdate(sql);system.out.println(ksadhfasdf);joptionpane.sh
26、owmessagedialog(null,成功添加一条新的纪录!);catch(exception e)system.out.println(e);joptionpane.showmessagedialog(null, 保存失败, 错误, joptionpane.error_message); finally db.closestmt();db.closeconn();/* * 修改学生信息 */public void stumodify(string num, string name, string sex, string birth, string home, string ethnic,
27、 string year, string major, string college)database db = new database();this.snum = num;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.showmessagedia
28、log(null, 请输入学生姓名, 错误, joptionpane.error_message);return;else/sql = update student set sname = +sname+, ssex = +ssex+, sbirth = +sbirth+, shome = +shome+, sethnic = +sethnic+, syear = +syear+, smajor = +smajor+, scollege = +scollege+ where snum = +integer.parseint(snum)+;sql = update student set sna
29、me = +sname+, ssex = +ssex+, sbirth = +sbirth+, shome = +shome+, sethnic = +sethnic+, syear = +syear+, smajor = +smajor+, scollege = +scollege+ where snum = +snum+;trydb.openconn();int k = db.executeupdate(sql);if(k = 1)joptionpane.showmessagedialog(null,成功修改一条新的纪录!);catch(exception e)system.out.pri
30、ntln(e);joptionpane.showmessagedialog(null, 更新失败, 错误, joptionpane.error_message); finally db.closestmt();db.closeconn();/* * 删除学生信息 */public void studel(string num)database db = new database();this.snum = num;sql = delete from student where snum = +snum+;trydb.openconn();db.executeupdate(sql);joptio
31、npane.showmessagedialog(null,成功删除一条新的纪录!);catch(exception e)system.out.println(e);joptionpane.showmessagedialog(null, 删除失败, 错误, joptionpane.error_message); finally db.closestmt();db.closeconn();/* * 根据学号查询学生信息 */public string stusearch(string num)database db = new database();this.snum = num;string s
32、 = new string8;sql = select * from student where snum = +snum+;trydb.openconn();rs = db.executequery(sql);if(rs.next()s0 = rs.getstring(sname);s1 = rs.getstring(ssex);s2 = rs.getstring(sethnic);s3 = rs.getstring(shome);s4 = rs.getstring(syear);s5 = rs.getstring(smajor);s6 = rs.getstring(scollege);s7
33、 = rs.getstring(sbirth);elses = null;catch(exception e)finally db.closestmt();db.closeconn();return s;/* * 学生信息综合查询(按照一个条件进行查询) */public string stuallsearch(string colname,string colvalue)this.colname = colname;this.colvalue = colvalue;database db = new database();string sn = null;int row = 0;int i
34、= 0;db.togbk(colvalue);if(colvalue = null|colvalue.equals()sql = select * from student;elsesql = select * from student where +colname+ = +colvalue+;trydb.openconn();rs = db.executequery(sql);if(rs.last()row = rs.getrow();if(row = 0)sn = null;elsesn = new stringrow9;rs.first();rs.previous();while(rs.
35、next()sni0 = rs.getstring(snum);sni1 = rs.getstring(sname);sni2 = rs.getstring(ssex);sni3 = rs.getstring(sethnic);sni4 = rs.getstring(shome);sni5 = rs.getstring(syear);sni6 = rs.getstring(smajor);sni7 = rs.getstring(scollege);sni8 = rs.getstring(sbirth);i+;catch(exception e)finally db.closestmt();db
36、.closeconn();return sn;/* * 学生信息综合查询(查询某范围内的记录) */public string stuallsearch(string colname,string colvalue,string colvalue2)this.colname = colname;this.colvalue = colvalue;this.colvalue2 = colvalue2;database db = new database();string sn = null;int row = 0;int i = 0;sql = select * from student wher
37、e +colname+ between +colvalue+ and +colvalue2+;trydb.openconn();rs = db.executequery(sql);if(rs.last()row = rs.getrow();if(row = 0)sn = null;elsesn = new stringrow9;rs.first();rs.previous();while(rs.next()sni0 = rs.getstring(snum);sni1 = rs.getstring(sname);sni2 = rs.getstring(ssex);sni3 = rs.getstr
38、ing(sethnic);sni4 = rs.getstring(shome);sni5 = rs.getstring(syear);sni6 = rs.getstring(smajor);sni7 = rs.getstring(scollege);sni8 = rs.getstring(sbirth);i+;catch(exception e)finally db.closestmt();db.closeconn();return sn;public string stusearchbysimple(string course)this.scourse = course;resultset
39、rset,rrset;string lincnum = null;database db = new database();string sn = null;string snnstrings = null;int row = 0;int i = 0;int j = 0;string sql1 = select course.* from course where ame=+scourse+;string sql3 = null;trydb.openconn();rset = db.executequery(sql1);if(rset.last()row = rset.get
40、row();if(row = 0)lincnum = null;elserset.first();rset.previous();while(rset.next()lincnum = rset.getstring(cnum);system.out.println(lincnum);string sql2 = select sc.snum from sc where um=+lincnum+ order by sc.grade desc;rrset = db.executequery(sql2);if(rrset.last()row = rrset.getrow();if(row =
41、0)snnstrings = null;elsei = 0;snnstrings = new stringrow;sn = new stringrow9;system.out.println(+row);rrset.first();rrset.previous();while(rrset.next()snnstringsi = rrset.getstring(snum);sql3 = select * from student where snum=+snnstringsi+;rs = db.executequery(sql3);while(rs.next()snj0 = rs.getstri
42、ng(snum);snj1 = rs.getstring(sname);snj2 = rs.getstring(ssex);snj3 = rs.getstring(sethnic);snj4 = rs.getstring(shome);snj5 = rs.getstring(syear);snj6 = rs.getstring(smajor);snj7 = rs.getstring(scollege);snj8 = rs.getstring(sbirth);j+;i+;catch(exception e)e.printstacktrace();finally db.closestmt();db
43、.closeconn();system.out.println(sn11);return snpublic string stusearchbypoint()string scourse = 编译原理;resultset rset,rrset;string lincnum = null;database db = new database();string sn = null;string snnstrings = null;int row = 0;int i = 0;int j = 0;string sql1 = select course.* from course where cours
44、ame=+scourse+;string sql3 = null;trydb.openconn();rset = db.executequery(sql1);if(rset.last()row = rset.getrow();if(row = 0)lincnum = null;elserset.first();rset.previous();while(rset.next()lincnum = rset.getstring(cnum);system.out.println(lincnum);string sql2 = select sc.snum from sc where
45、um=+lincnum+ order by sc.grade desc;rrset = db.executequery(sql2);if(rrset.last()row = rrset.getrow();if(row = 0)snnstrings = null;elsei = 0;snnstrings = new stringrow;sn = new stringrow9;system.out.println(+row);rrset.first();rrset.previous();while(rrset.next()snnstringsi = rrset.getstring(snum);sq
46、l3 = select * from student where snum=+snnstringsi+;rs = db.executequery(sql3);while(rs.next()snj0 = rs.getstring(snum);snj1 = rs.getstring(sname);snj2 = rs.getstring(ssex);snj3 = rs.getstring(sethnic);snj4 = rs.getstring(shome);snj5 = rs.getstring(syear);snj6 = rs.getstring(smajor);snj7 = rs.getstring(scollege);snj8 = rs.getstring(sbirth);j+;i+;catch(e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沈阳医学院《医学法规》2025-2026学年期末试卷
- 上海中侨职业技术大学《劳动与社会保障法》2025-2026学年期末试卷
- 电力企业人力资源专员员工培训考试题目及答案
- 汽轮机转子装配调试工安全文化竞赛考核试卷含答案
- 出版物发行员风险评估与管理评优考核试卷含答案
- 碳排放核查员创新思维水平考核试卷含答案
- 保险箱柜制作工班组评比强化考核试卷含答案
- 变压器装配工岗前模拟考核试卷含答案
- 2026年财政衔接推进乡村振兴资金题库
- 2026年机关标准实施监督知识试题
- 2026年凉山州公开遴选(考调)公务员(84人)考试参考试题及答案解析
- 2025-2026学年 新人教版数学 八年级下册 第一次月考试卷(原卷)
- (三调)武汉市2026届高中毕业生三月调研考试化学试卷(含答案)
- 铁路危险货物运输及货物安检查危技术业务考核题库
- JJF 1083-2002光学倾斜仪校准规范
- GB/T 39504-2020病媒生物综合管理技术规范机场
- 全国优秀中医临床人才研修项目考试大纲
- 外墙保温技术标
- 产品碳足迹课件
- 中考英语专题-数词课件
- 连锁酒店住宿清单模板共份不同的模板
评论
0/150
提交评论