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

下载本文档

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

文档简介

1、课设名称:学生信息管理系统院 (系):信息科学与工程学院姓名:蒋登丽学号:201410411406年级:2014级专业班级:计算机科学与技术4 班指导教师:黄荣兵时间:2016年 11 月目录第一部分摘要 .2第二部分 目 的 背 景 与 意 义 .4第三部分 需 求 分 析.4第四部分 系 统 设 计.44.1结 构 设 计 .44.2功 能 结 构 图 .54.3功 能 流 程 以 及 工 作 流 描 述.6第 五 部 分 数 据 库 的 设 计 .65.1数 据 库 设 计 .65.2数 据 表 的 设 计 .7第六部分 详 细 设 计.76.1学 生 管 理 系 统 主 界 面 模 块

2、.76.2学 生 信 息 管 理 模 块 .86.3课 程 信 息 管 理 模 块 .106.4查 询 模 块 . 11图6.5数 据 库 操 作 模 块 .11第七部分课 程 设 计 心 得 .11第一部分摘 要该项目开发的软件为学校学生信息管理系统软件 , 是鉴于目前学校学生人数剧增信息呈爆炸性增长的前提下 , 学校对学生信息管理的自动化与准确化的要求日益强烈的背景, 学生下构思出来的, 该软件设计完成后可用于所有教育单位(包括学校, 学院等等)的学生信息的管理。目前社会上信息管理系统发展飞快, 各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息, 学生管理系统也是有了很大的发

3、展, 商业化的学生信息管理软件也不少,但本系统完全独立开发, 力求使系统功能简洁明了, 但功能齐全且易于操作。学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要。本文介绍了学生信息管理系统的开发整个过程,阐述了系统分析、计和系统实施的全过程。在开发方法上本系统利用了软件工程化的思想和方法,系统设计、数据库设总体上采用结构化生命周期开发方法,具体模块实施采用了原型法和面向对象系统开发方法。并采用JAVA作为开发工具,mysql 作为后台数据库。本系统具有学生管理、课程管理、成绩管理、信息查询等功能,分成四大模块,每个模块都相互联系, 但不相互干扰,这符合

4、了软件模块开发的思想。本系统完成了学生信息的增加、修改、删除、查询和选课,课程信息的增加、修改、删除、查询,成绩的添加、修改、查询等功能。【关键字】:信息管理系统、模块设计、软件工程。第二部分目的背景与意义学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要, 所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点 , 如 : 效率低、保密性差, 人工的大量浪费;另外时间一长,

5、 将产生大量的文件和数据 , 这对于查找、 更新和维护都带来了不少困难。随着科学技术的不断提高, 计算机科学日渐成熟 , 其强大的功能已为人们深刻认识, 它已进入人类社会的各个领域并发挥着来越重要的作用。作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理所无法比拟的优点 .例如 :检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。第三部分需求分析学生信息管理系统的功能总结起来,共需要以下几个方面:1. 学生信息管理管理所有学生的基本信息,包括增加、修改

6、、删除等,也可以根据各种条件查询出需要的信息。2. 课程信息管理管理所有课程的基本信息,包括增加、修改、删除等,也可以根据各种条件查询出需要的信息。3. 选课与成绩管理根据学号进行选课,登记课程的成绩,可以根据学号查询出来选课信息与成绩。第四部分系统设计4.1结构设计根据对系统的需求分析,本系统将分为4 个模块:学生管理:管理学生的基本信息,包括个人信息的添加、修改、删除,以及选课信息的添加。课程管理:管理课程的基本信息,包括课程信息的添加、修改和删除。成绩管理:管理学生的选课的成绩信息,包括成绩的登记与修改。信息查询:查询已经登记的信息,包括学生的基本信息、课程的基本信息与成绩信息。4.2功

7、能结构图系统的功能结构如图1 所示。增加学生修改管理删除学生选课增加课程管修改理学生管删除理系统成增加绩管理修改学生查询信息查课程查询询成绩查询图 1 学生管理系统功能结构图按学号查询按姓名查询按专业查询按性别查询按学院查询按课程名称查询按授课教师查询查询所有成绩按学分绩点查询按单科成绩查询4.3功能流程以及工作流描述1. 增加学生信息系统操作人员打开学生信息添加界面,输入相关的信息(姓名、性别、民族、籍贯、出生日期、入学年份、专业和学院等),在数据库中添加相关数据。2. 修改学生信息根据学生的学号查询出该学生的相关信息,修改相关条目后保存在数据库中。3. 删除学生信息根据学生的学号查询出该学

8、生的相关信息,确定删除后,在数据库中删除该信息。4. 学生选课选择学生学号与需要选择的课程,确定无误后保存,数据库中将自动添加新的选课记录。5. 增加课程信息系统操作人员根据打开的课程增加界面, 输入相关信息(课程名称、授课教师、课程学分、课程系数、上课地点等) ,在数据库中添加相关的数据。6. 修改课程信息根据课程号查询出该课程的相关信息,修改条目后保存在数据库中。7. 删除课程信息根据课程号查询出该课程的相关信息,确认删除后,在数据库中删除该信息。8. 登记成绩根据学号,以及该学生所选择的课程,进行成绩登记,为选课的同学将无法登记。9. 修改成绩对已经登记的成绩信息进行修改。10. 学生查

9、询可以根据学生学号、 学生姓名、 学生性别、学生所学专业、学生所属学院来对学生信息进行查询,所有符合查询条件的学生信息将都被显示出来。11. 课程查询按照课程名称和授课教师的名称对课程详细信息进行查询,将会被显示出来。所有符合查询条件的课程信息都12.成绩查询:根据学生的学号来查询该学生所有课程的成绩。第五部分数据库的设计5.1 数据库设计的此系统使用的是mysql 数据库,由于此系统需要的数据量不是很大,mysql 数据库。此系统的数据库名称是studentsys ,创建语句如下:所以选择比较简便5.2 数据表的设计数据库中包含三个表,即是学生信息表(student )、课程信息表(Cour

10、se )和学生选课表( SC ),设计要求如表13 所示。表 1学生信息表 (Student)名称字段名称数据类型主键非空学号SnumVarchar(20)YesYes学生姓名SnameVarchar(10)NoNo性别SsexVarchar(2)NoNo民族SethnicVarchar(4)NoNo籍贯ShomeVarchar(20)NoNo入学年份SyearVarchar(10)NoNo专业SmajorVarchar(10)NoNo学院ScollegeVarchar(10)NoNo出生日期SbirthVarchar(10)NoNo学分绩点SpointVarchar(10)NoNo表 2 课

11、程信息表 (Course)名称字段名称数据类型主键非空课程编码CnumVarchar(10)YesYes课程名称CnameVarchar(20)NoNo授课教师CteacherVarchar(10)NoNo上课地点CplaceVarchar(10)NoNo课程学分CpointSmallintNoNo课程系数CratioVarchar(2,2)NoNo表 3学生选课表 (SC)名称字段名称数据类型主键非空学号SnumVarchar(20)YesYes课程编码CnumVarchar(10)YesYes成绩GradeFloat(4,2)NoNo第六部分详细设计该系统由 6 个模块构成, 包括学生管理

12、系统主界面模块、 学生信息管理模块、 课程信息管理模块、成绩管理模块、信息查询模块和数据库操作模块,以下分别加以叙述:6.1学生管理系统主界面模块学生管理系统的主界面模块包括StuMS.java和 StuMain.java两个文件。 StuMS 是学生管理系统的主运行类,其中有整个程序的主方法main ,该文件生成了StuMain 类的一个实例,从而生成了学生管理系统的主界面,如图2 所示。 StuMain 类继承了JFrame 类,实现了事件监听接口,它有一个不带参数的构造函数StuMain(), 用来生成StuMain实例, StuMain 类将所有的功能集中到面板中, 面板上的按键是按网

13、格排布, 生成按钮, 通过按钮的响应函数调用其他模块的函数来实现学生管理系统的各个功能,以下是主界面的运行程序:图主界面运行程序6.2学生信息管理模块学生信息管理模块主要由StuInfo.java、 AddStuInfo.java、 EditStuInfo.java、DelStuInfo.java、SelectCourse.java和 StuInfoSearchSnum.java这六个文件组成,每个java 文件只有一个类,完全实现模块化设计,StuInfo 类是 AddStuInfo、 EditStuInfo、 DelStuInfo 的超类,因为这三个类生成的界面是相同的具有共同之处。Sel

14、ectCourse模块是选课模块,StuInfoSearchSnum是查询模块,用于 AddStuInfo 、 EditStuInfo 、DelStuInfo 调用来查询学生信息以便增加、修改和删除学生信息。学生信息管理模块的几个界面如下:图学生信息添加界面图学生信息修改界面图学生信息删除界面图学生选课界面6.3课程信息管理模块课程信息管理模块主要由CourseInfo.java、 AddCourseInfo.java、 EditCourseInfo.java、DelCourseInfo.java 和 StuInfoSearchSnum.java 这六个文件组成,每个 java 文件只有一个类

15、,完全实现模块化设计, CourseInfo 类是 AddCourseInfo 、 EditCourseInfo 、 DelCourseInfo 的超类,因为这三个类生成的界面是相同的具有共同之处。CourseInfoSearchSnum是查询模块,用于 AddCourseInfo 、 EditCourseInfo 、DelCourseInfo 调用来查询课程以便增加、修改和删除课程。课程信息管理模块的几个界面如下:图课程信息增加界面图课程信息修改界面图课程信息删除界面6.4查询模块查询模块分学生信息查询、课程信息查询和成绩查询:界面如下:图6.4 查询模块图 6.5 数据库操作模块数据库操作

16、模块包括连接数据库和数据库操作,连接数据库在类DataBase.java中,操作数据库类分别在几个不同的类里,学生信息操作在StuBean.java,选课操作在Csbean.java中,课程操作在CrsBean.java中,代码在附录里,这里就不重复了。第七部分课程设计心得在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对学生信息管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作

17、方便、效率高、安全性好等优点是本管理系统所必需的。通过开发这个系统,我掌握了的项目基本开发过程,用到的知识巩固了我对JAVA 的学习,但在这次设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。第八部分附录(部分代码)/Database.java/* 连接数据库的类*/public class Database private Statement stmt=null;ResultSet rs=null;private Connection conn=null;String sql;public Database()/* 打开数据库连接*

18、/public void OpenConn()throws Exceptiontryconn=DriverManager.getConnection(strurl,"root","root");conn.setAutoCommit(false);catch(Exception e)e.printStackTrace();/* 执行 sql 语句,返回结果集 rs*/public ResultSet executeQuery(String sql)stmt = null;rs=null;trystmt=conn.createStatement(Result

19、Set.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs=stmt.executeQuery(sql);catch(SQLException e)e.printStackTrace();return rs;/* 执行 sql 语句*/public int executeUpdate(String sql)stmt=null;rs=null;int k=0;trystmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

20、k=stmt.executeUpdate(sql);mit();catch(SQLException e)e.printStackTrace();return k;public void closeStmt()trystmt.close();catch(SQLException e)/* 关闭数据库连接*/public void closeConn()tryconn.close();catch(SQLException ex)/* 转换编码*/public static String toGBK(String str)try if(str=null)str = ""else

21、str=new String(str.getBytes("ISO-8859-1"),"GBK");return str;/StuBean.java/import/* 有关学生信息数据库操作的类*/public class StuBean String sql;ResultSet rs = null;String sNum;String sName;String sSex;String sBirth;String sHome;String sEthnic;String sYear;String sMajor;String sCollege;String s

22、Course;String colName;/列 名列 值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 Database();this.sNum = Snum;this.sName = name;this.sSex = se

23、x;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;elseString numS=

24、 "1"sql="insertintostudent(snum,sname,ssex,sbirth,shome,sethnic,syear,smajor,scollege) values ('"+sNum+"','"+sName+"','"+sSex+"',' "+sBirth+"','"+sHome+"','"+sEthnic+"','&qu

25、ot;+ sYear+"','"+sMajor+"','"+sCollege+"')"tryDB.OpenConn();DB.executeUpdate(sql);JOptionPane.showMessageDialog(null,"成功添加一条新的纪录! ");catch(Exception e)JOptionPane.showMessageDialog(null, "保存失败 ", " 错 误 ", JOptionPane.ERR

26、OR_MESSAGE);finally DB.closeStmt();DB.closeConn();/* 修改学生信息*/publicvoidstuModify(Stringnum,Stringname,Stringsex,Stringbirth,String home, String ethnic, String year, String major, Stringcollege) Database DB = new Database();this.sNum = num;this.sName = name;this.sSex = sex;this.sBirth = birth;this.sH

27、ome = 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/sql = "update student set sname = &

28、#39;"+sName+"', ssex = '"+sSex+"',sbirth= '"+sBirth+"',shome='"+sHome+"',sethnic='"+sEthnic+"',syear'"+sYear+"',smajor='"+sMajor+"',scollege= '"+sCollege+"'wher

29、esnum"+Integer.parseInt(sNum)+""sql= "updatestudentset sname= '"+sName+"',ssex= '"+sSex+"',sbirth= '"+sBirth+"',shome='"+sHome+"',sethnic='"+sEthnic+"',syear'"+sYear+"',sma

30、jor='"+sMajor+"',scollege= '"+sCollege+"'wheresnum='"+sNum+"'"tryDB.OpenConn();int k = DB.executeUpdate(sql);if(k=1)JOptionPane.showMessageDialog(null,"成功修改一条新的纪录! ");catch(Exception e)JOptionPane.showMessageDialog(null, " 更 新

31、 失 败 ", " 错 误 ", 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)

32、;JOptionPane.showMessageDialog(null,"成功删除一条新的纪录!");catch(Exception e)JOptionPane.showMessageDialog(null, " 删 除 失 败 ", " 错 误 ", JOptionPane.ERROR_MESSAGE);finally DB.closeStmt();DB.closeConn();/* 根据学号查询学生信息*/public String stuSearch(String num)Database DB = new Database()

33、;this.sNum = num;String s = 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.getStrin

34、g("shome");s4= rs.getString("syear");s5= rs.getString("smajor");s6= rs.getString("scollege");s7= rs.getString("sbirth");elses = null;catch(Exception e)finally DB.closeStmt();DB.closeConn();return s;/* 学生信息综合查询 (按照一个条件进行查询 )*/public String stuAllSearc

35、h(String colname,String colvalue)this.colName = colname;this.colValue = colvalue;Database DB = new Database();String sn = null;int row = 0;int i = 0;DB.toGBK(colvalue);if(colValue = null|colValue.equals("")sql = "select * from student"elsesql = "select * from student where &

36、quot;+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.next()sni0 = rs.getString("snum");sni1 = rs.getString("sname");sni2

37、 = 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)fina

38、lly DB.closeStmt();DB.closeConn();return sn;/* 学生信息综合查询 (查询某范围内的记录 )*/publicStringstuAllSearch(Stringcolname,Stringcolvalue,Stringcolvalue2)this.colName = colname;this.colValue = colvalue;this.colValue2 = colvalue2;Database DB = new Database();String sn = null;int row = 0;int i = 0;sql = "select* fromstudentwhere"+colName+"between"+colValue+"and "+colValue2+""tryDB.Ope

温馨提示

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

评论

0/150

提交评论