《java的学生信息管理系统.pdf》由会员分享,可在线阅读,更多相关《java的学生信息管理系统.pdf(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 1。学生信息管理系统概述学生信息管理系统概述1.11.1系统开发背景系统开发背景学生信息管理系统是学校管理的重要工具,是学校不可或缺的部分。随着在校大学生人数的不断增加,教务系统的数量也不断的上涨,。学校工作繁杂、资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。并且这种传统的方式存在着很多的弊端,如:保密性差、查询不便、效率低,很难维护和更新等。然而,本系统针对以上缺点能够极大地提高学生信息管理的效率,也是科学化、正规化的管理,与世界接轨的重要条件。学生信息管理系统具有手工管理所无法比拟的优点.如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、
2、成本低等。这些优点能够极大地提高学生信息管理的效率。1 1。2 2开发意义开发意义随着这些年电脑计算机的速度质的提高,成本的下降,IT 互联网大众趋势的发展。我们使用电脑的高效率才处理数据信息成为可能。学生学籍管理系统的出现,正是管理人员与信息数据,计算机的进入互动时代的体现。友好的人机交互模式,清晰简明的图形界面,高效安全的操作使得我们对成千上万的信息的管理得心应手.通过这个系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量 毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义1.31.3 系统使用范围系统
3、使用范围本系统的设计考虑了系统的通用性,可以应用于教育系统的各种类型院校。系统开发技术2 2。系统需求分析系统需求分析2.12.1开发环境和软件开发环境和软件(1)操作系统:Windows 7(2)数据库软件:SQL Server 2005(3)Java 开发工具:Eclipse2 2。2 2系统设计与功能分析系统设计与功能分析学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用 java 语言编写,用SQLServer2005 数据库作为后台的数据库进行信息的存储,用SQL 语句完成学生学籍信息的添加,查询,修改,删除的操作以及成
4、绩的录入,修改,删除等.用 ODBC 驱动实现前台 Java 与后台 SQL 数据库的连接。Java 语言跨平台性强,可以在windows,linux,ubuntu 等系统下使用,方便简单,安全性好。SQLServer2005 数据库高效安全,两者结合可相互利用各自的优势。该系统实现的大致功能:1用户登陆界面。该界面可以选择使用者的身份学生.不同的身份有不同的操作界面和功能权限。ID 号和密码输入正确即可登录。学生管理界面。提供了学生学籍信息的查询,相关科目的成绩查询和排名,修改登录密码等功能.2管理员管理界面。拥有最高的权限。允许添加教师信息和课程信息等。3登录的用户信息分别存储在 SQL
5、数据库的“管理员信息表”,“学籍信息表”中,如果用户信息不存在则三张表中,将会无权利登录本管理系统.保证了本学生管理系统的安全性。3 3数据库设计数据库设计3 3。1 1系统概念结构设计系统概念结构设计学号生源地姓名学院学籍入学年份专业籍贯性别图 3-1 学籍管理系统学号操作系统计算机网络高等数学成绩专业英语数据库JAVA程序设计应用集成数据挖掘图 3-2 成绩管理系统管理员号管理员图 3-4 管理员系统登录密码查看成绩查看信息查看信息修改信息查询判 断 是 管理员/学生登录验证登录学籍管理系统添加图 34 学籍管理系统流程图实体属性表:实体属性表:实体管理员学籍成绩管理员号,登录密码学号,姓
6、名,性别,籍贯,生源地,入学年份,学院,专业学号,数据库,JAVA 程序设计,高等数学,应用集成,操作系统,专业英语,计算机网络属性3 3。2 2系统逻辑结构设计系统逻辑结构设计管理员信息表:管理员信息表:字段名字段名管理员号登录密码类型类型空值空值约束条件约束条件主键varchar(10)not nullvarchar(10)not null成绩信息表成绩信息表:字段名字段名学号数据库类型类型空值空值约束条件约束条件主键,外键varchar(15)not nullfloatnot nullnot nullnot nullnot nullnot nullnot nullnot nullnot
7、nullJAVA 程序设float计计算机网络高等数学专业英语应用集成操作系统数据挖掘floatfloatfloatfloatfloatfloat学籍信息表:学籍信息表:字段名字段名学号姓名性别籍贯生源地学院专业类型类型intchar(2)空值空值not nullnot null约束条件约束条件主键varchar(30)not null入学年份 datatimechar(10)Char(20)not nullChar(20)not nullChar(20)not null3.33.3 数据库实现数据库实现3 3。3 3。1 SQL1 SQL 语句实现语句实现(1 1)学籍信息表创建:)学籍信息
8、表创建:create table 学籍信息表(学号varchar(15)primary key,姓名varchar(8)not null,性别varchar(4),入学年份datatime,not null,学院varchar(8)not null,专业varchar(8)not null,籍贯varchar(5),生源地archar(6)not null)(2)成绩信息表创建:create table 成绩信息表(学号varchar(15),数据库 float,not null,数据挖掘flaoat,not null计算机网络 float,not null,Java程序设计 float,no
9、t null,应用集成 float,not null,foreign key(学号)references 学籍信息表(学号),)(3)管理员信息表创建:create table 课程信息表(管理员号 varchar(8)primary key,登录密码 varchar(12)not null)视图的创建:“学生成绩信息”视图创建:create view 学生成绩信息asSELECT学籍信息表.学号,学籍信息表.姓名,学籍信息表.性别,课程信息表。入学年份,成绩信息表。学院,成绩信息表.专业FROM成绩信息表JOIN学籍信息表 ON成绩信息表.学号=学籍信息表.学号4.4.系统模块详细设计系统模
10、块详细设计4.14.1 登录模块登录模块4 4。2 2 添加学生信息界面添加学生信息界面4 4。3 3 添加学生成绩界面添加学生成绩界面5.5.系统测试系统测试5.15.1 测试登陆测试登陆5 5。2 2 查询学生成绩界面查询学生成绩界面5.35.3 测试添加学生成绩测试添加学生成绩5.45.4 测试查询分数测试查询分数6 6附录(代码附录(代码)由于篇幅有限,所以只附上主要功能的代码由于篇幅有限,所以只附上主要功能的代码:6.16.1 登陆界面代码登陆界面代码import java.awt。*;import javax.swing。*;import java.awt。event.*;impo
11、rt java.sql.;public class systems extends JFrame implements ActionListenerstatic systems ss;JPanel panel=new JPanel();JLabel label1=new JLabel(输入学号:);JLabel label3=new JLabel(”欢迎来到学生信息管理系统”);JTextField name=new JTextField();JLabel label2=new JLabel(密码:”);JPasswordField pwd=new JPasswordField();JButt
12、on Enter=new JButton(”登录);JButton Exit=new JButton(退出”);String url=D:Systemstitle.jpg;ButtonGroup bgp=new ButtonGroup();JRadioButton stu=new JRadioButton(学生”);JRadioButton tch=new JRadioButton(教师);public systems()super(”学生信息管理系统”);this。setResizable(false);JLabel img=new JLabel(new ImageIcon(url);img
13、。setBounds(0,0,500,100);panel。add(img);stu.setBounds(165,210,70,20);tch.setBounds(265,210,70,20);bgp。add(stu);bgp.add(tch);panel.add(stu);panel。add(tch);Enter.setBounds(150,250,80,20);Exit.setBounds(270,250,80,20);Enter.addActionListener(this);Exit.addActionListener(this);panel。add(Enter);panel.add(
14、Exit);panel。setLayout(null);this.add(panel);label1。setBounds(135,130,100,25);panel.add(label1);label3。setBounds(70,20,380,100);label3.setFont(new Font(Serif,Font。PLAIN,30);panel。add(label3);name.setBounds(265,130,100,25);panel.add(name);label2.setBounds(135,165,100,25);panel.add(label2);pwd。setBound
15、s(265,165,100,25);panel.add(pwd);this。setBounds(100,100,500,350);this。setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public void actionPerformed(ActionEvent e)if(e.getSource()=Enter)String username,password;username=name.getText();password=pwd。getText();tryClass。forName(”sun。jd
16、bc.odbc.JdbcOdbcDriver);catch(ClassNotFoundException ce)JOptionPane。showMessageDialog(ss,ce.getMessage();if(stu。isSelected()tryConnection con=DriverManager.getConnection(jdbc:odbc:sysdb,”sa”,”);Statement stmt=con。createStatement();ResultSet rs=stmt。executeQuery(”select*from STU”);while(rs。next()if((
17、rs。getString(ID”)。equals(username))&(rs.getString(Pwd)。equals(password)))JOptionPane。showMessageDialog(ss,登陆成功”);Students stu=new Students();elseJOptionPane.showMessageDialog(ss,”登录失败);rs.close();stmt。close();catch(SQLException se)JOptionPane.showMessageDialog(ss,se.getMessage());else if(tch。isSelec
18、ted())tryConnection con=DriverManager.getConnection(”jdbc:odbc:systchdb”,sa,”);Statement stmt=con.createStatement();ResultSet rs=stmt。executeQuery(”select from TCH);while(rs。next()if((rs.getString(”ID).equals(username))&(rs.getString(”Pwd)。equals(password))JOptionPane.showMessageDialog(ss,登陆成功);else
19、JOptionPane.showMessageDialog(ss,”登录失败);catch(SQLException se)JOptionPane。showMessageDialog(ss,se。getMessage();elseSystem.exit(0);public static void main(String args)systems sys=new systems();6.26.2 查询学生成绩查询学生成绩importimport java。awt.*;importimport javax.swing.*;importimport java。awt.event.*;importim
20、portjava。awt。font。*;importimport java.sql.*;publicclasspublicclassScoreextendsextends JFrame implementsimplements ActionListenerstaticstatic Score s;JLabel title=newnew JLabel(查询成绩”,JLabel。CENTER);Font f=newnew Font(楷体”,Font。BOLD+Font。ITALIC,16);JPanel jpl=newnew JPanel();JLabel label1=newnew JLabel
21、(”请输入学号:”,JLabel。CENTER);JTextField num=newnew JTextField();JButton serch=newnew JButton(查询成绩”);JButton reset=newnew JButton(重置);JLabel label2=newnew JLabel(计算机网络:”,JLabel.LEFT);JLabel label3=newnew JLabel(”操作 系 统:,JLabel.LEFT);JLabel label4=newnew JLabel(专业英语:”,JLabel.LEFT);JLabel label5=newnew JLa
22、bel(”数 据 挖 掘:”,JLabel.LEFT);JLabel label6=newnew JLabel(Java程序设计:”,JLabel.LEFT);JLabel label7=newnew JLabel(”数据库:”,JLabel.LEFT);JLabel label8=newnew JLabel(”高等数学:,JLabel。LEFT);JLabel label9=newnew JLabel(”应用集成:”,JLabel。LEFT);JTextField txt=newnew JTextField(),newnew JTextField(),newnew JTextField(),
23、newnewJTextField(),newnew JTextField(),newnew JTextField(),newnew JTextField(),newnew JTextField();staticintstaticintp=140;publicpublic Score()supersuper(查询分数”);thisthis。setResizable(falsefalse);thisthis。setSize(500,550);thisthis.setVisible(truetrue);thisthis。setDefaultCloseOperation(JFrame.EXIT_ON_
24、CLOSE);title.setFont(f);thisthis。add(jpl);jpl.setLayout(nullnull);title。setBounds(100,20,300,20);jpl。add(title);label1.setBounds(100,60,90,20);jpl。add(label1);num.setBounds(210,60,140,20);jpl。add(num);serch.setBounds(130,100,90,20);reset.setBounds(240,100,90,20);jpl.add(serch);jpl.add(reset);serch.a
25、ddActionListener(thisthis);reset。addActionListener(thisthis);label2。setBounds(100,140,140,20);label3。setBounds(100,180,140,20);label4。setBounds(100,220,140,20);label5。setBounds(100,260,140,20);label6.setBounds(100,300,140,20);label7.setBounds(100,340,140,20);label8。setBounds(100,380,140,20);label9。s
26、etBounds(100,420,140,20);jpl.add(label2);jpl.add(label3);jpl.add(label4);jpl.add(label5);jpl。add(label6);jpl.add(label7);jpl。add(label8);jpl。add(label9);forfor(intint i=0;itxt。length;i+)txti.setBounds(260,p,140,20);jpl.add(txti);p=p+40;publicvoidpublicvoid actionPerformed(ActionEvent e)if if(e.getSo
27、urce()=serch)String id=num.getText();trytryClass。forName(”sun.jdbc。odbc.JdbcOdbcDriver”);catchcatch(ClassNotFoundException ce)JOptionPane.showMessageDialog(s,ce.getMessage();trytryConnection con=DriverManager。getConnection(”jdbc:odbc:sysdb”,”sa”,”);Statement stmt=con。createStatement();ResultSet rs=s
28、tmt。executeQuery(”select 计算机系成绩.from STU,计算机系成绩 whereSTU.ID=+id+”AND STU。ID=计算机系成绩。SID);whilewhile(rs.next()forfor(intint i=0;itxt.length;i+)txti。setText(rs.getString(i+2));catchcatch(SQLException se)JOptionPane。showMessageDialog(s,se。getMessage());elseelseforfor(intint i=0;itxt.length;i+)txti.setTe
29、xt();num。setText(”);publicstaticvoidpublicstaticvoid main(String args)Score s=newnew Score();6 6。3 3 添加学生成绩添加学生成绩import java.awt.;import javax。swing。;import java。awt。event。*;import java。sql.*;public class Addscore extends JFrame implements ActionListenerstatic Addscore ss;JLabel label=new JLabel(学号:
30、”),new JLabel(”计算机网络:”),new JLabel(”操作系统:),new JLabel(专业英语:”),new JLabel(”数据挖掘:”),new JLabel(”Java程序设计:”),new JLabel(”数据库:),new JLabel(高等数学:),new JLabel(”应用集成:”);JTextField txt=new JTextField(),new JTextField(),new JTextField(),new JTextField(),new JTextField(),new JTextField(),new JTextField(),new
31、JTextField(),newJTextField();JButton add=new JButton(”添加”);JButton reset=new JButton(”重置);JPanel jpl=new JPanel();JLabel title=new JLabel(添加学生成绩”,JLabel。CENTER);Font f=new Font(”黑体,Font。BOLD,16);int s=100;public Addscore()super(添加学生信息);this.setResizable(false);this.setSize(500,600);this。setDefaultCl
32、oseOperation(EXIT_ON_CLOSE);this.setVisible(true);this.add(jpl);add。addActionListener(this);reset。addActionListener(this);jpl.setLayout(null);title.setBounds(150,40,200,20);title.setFont(f);title。setForeground(Color。red);jpl.setBackground(Color。LIGHT_GRAY);jpl。add(title);for(int i=0;i label.length;i
33、+)labeli.setBounds(100,s,140,20);jpl.add(labeli);txti.setBounds(260,s,140,20);jpl。add(txti);s=s+40;add.setBounds(150,s,80,20);reset。setBounds(250,s,80,20);jpl.add(add);jpl。add(reset);public void actionPerformed(ActionEvent e)if(e。getSource()=add)tryClass。forName(”sun.jdbc.odbc。JdbcOdbcDriver”);catch
34、(ClassNotFoundException ce)JOptionPane.showMessageDialog(ss,ce.getMessage());tryConnection con=DriverManager.getConnection(”jdbc:odbc:sysdb”,sa”,);Statement stmt=con。createStatement();int a=stmt。executeUpdate(”insert into 计算机系成绩(SID,计算机网络,操作系统,专业英语,数据挖掘,Java 程序设计,数据库,高等数学,应用集成)values(”+txt0.getText(
35、)+,”+txt1。getText()+”,+txt2.getText()+,”+txt3。getText()+,”+txt 4.getText()+”,”+txt 5.getText()+”,+txt6.getText()+,+txt 7.getText()+”,+txt8。getText()+)”);if(a=1)JOptionPane.showMessageDialog(ss,添加成功”);elseJOptionPane.showMessageDialog(ss,”添加失败”);catch(SQLException se)JOptionPane.showMessageDialog(ss,
36、se.getMessage();elsefor(int i=0;itxt.length;i+)txti.setText(”);txt0.requestFocus();public static void main(String args)Addscore as=new Addscore();6.46.4 添加学生信息代码添加学生信息代码import java。awt.;import javax。swing.*;import java。awt。event.;import java.sql.*;public class AddMsg extends JFrame implements Action
37、Listenerstatic AddMsg s;/*添加学生信息控件/JPanel jpl=new JPanel();JLabel label1=new JLabel(”添加基本信息”,JLabel。CENTER);JLabel label2=new JLabel(学号:”,JLabel。CENTER);JLabel label3=new JLabel(姓名:,JLabel.CENTER);JLabel label4=new JLabel(”性别:”,JLabel.CENTER);JLabel label5=new JLabel(”班级:”,JLabel。CENTER);JLabel labe
38、l6=new JLabel(学院:”,JLabel.CENTER);JLabel label7=new JLabel(”专业:”,JLabel.CENTER);JLabel label8=new JLabel(籍贯:,JLabel。CENTER);JLabel label9=new JLabel(”生源地:”,JLabel。CENTER);JLabel label10=new JLabel(入学年份:”,JLabel.CENTER);JTextField num=new JTextField(2);JTextField nam=new JTextField(4);ButtonGroup bgp
39、=new ButtonGroup();JRadioButton man=new JRadioButton(”男);JRadioButton women=new JRadioButton(女);JTextField clas=new JTextField();JTextField scl=new JTextField();JTextField sc2=new JTextField();JTextField sc3=new JTextField();JTextField sc4=new JTextField();JTextField sc5=new JTextField();JButton res
40、et=new JButton(”重置);JButton addmsg=new JButton(”添加”);public AddMsg()super(添加学生信息”);this。setResizable(false);this.setSize(450,580);this。setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(jpl);jpl。setLayout(null);addmsg。addActionListener(this);reset.addActionListener(this);/
41、插入面板/label1.setBounds(100,20,300,20);jpl.add(label1);label2.setBounds(100,50,70,20);jpl.add(label2);num。setBounds(190,50,140,20);jpl.add(num);label3.setBounds(100,90,70,20);jpl。add(label3);nam.setBounds(190,90,140,20);jpl。add(nam);label4.setBounds(100,130,70,20);jpl。add(label4);man。setBounds(190,130
42、,60,20);women。setBounds(270,130,60,20);jpl。add(man);jpl。add(women);bgp.add(man);bgp。add(women);label5。setBounds(100,170,70,20);jpl。add(label5);clas.setBounds(190,170,140,20);jpl.add(clas);label6。setBounds(100,210,70,20);jpl.add(label6);scl.setBounds(190,210,140,20);jpl.add(scl);label7。setBounds(100,
43、250,70,20);jpl。add(label7);sc2.setBounds(190,250,140,20);jpl.add(sc2);label8。setBounds(100,290,70,20);jpl。add(label8);sc3。setBounds(190,290,140,20);jpl。add(sc3);label9。setBounds(100,330,70,20);jpl。add(label9);sc4。setBounds(190,330,140,20);jpl.add(sc4);label10。setBounds(100,370,70,20);jpl。add(label10
44、);sc5.setBounds(190,370,140,20);jpl.add(sc5);reset.setBounds(120,410,90,20);addmsg.setBounds(240,410,90,20);jpl.add(reset);jpl.add(addmsg);public void actionPerformed(ActionEvent e)if(e.getSource()=addmsg)String sex;if(man.isSelected()sex=男”;elsesex=”女;tryClass。forName(sun.jdbc.odbc。JdbcOdbcDriver”)
45、;catch(ClassNotFoundException ce)JOptionPane.showMessageDialog(s,ce。getMessage();tryConnection con=DriverManager。getConnection(jdbc:odbc:sysdb”,”sa”,”)Statement stmt=con。createStatement();int a=stmt。executeUpdate(insert into STU(ID,Pwd,Name,Sex,Class,Collage)values(”+num.getText()+,”+”12345678,+nam.
46、getText()+”,”+sex+”,+clas.getText()+,+scl。getText()+”)”)if(a=1)JOptionPane。showMessageDialog(s,”已成功添加”);elseJOptionPane。showMessageDialog(s,”添加失败”);stmt。close();catch(SQLException se)JOptionPane。showMessageDialog(s,se.getMessage());elsenum.setText(”);nam.setText(”);clas.setText(”)scl.setText(”);num.
47、requestFocus();public static void main(String args)AddMsg amg=new AddMsg();7 7课程设计总结课程设计总结此次的课程设计是一个新的体验、挑战,通过此次课程设计我们学会了综合运用所学的应用集成知识,发现,提出,分析和解决实际问题,锻炼实践能力,对我们的实际工作能力进行了具体训练和考察。此次的设计是一个新的体验、新的挑战,我在此过程中不但应用了所学的知识,而且还不断的学习新的知识、工具,以完成设计的需要,在设计的过程中我深深体会到作为 1 个学习计算机专业的人士,为了实现 1 个模块的代码、为了 1 个设计的实现思想、经常绞
48、尽脑汁来达到设计所要达到的目的,。本次课程设计虽然时间不长但是受益匪浅。本来这门课的理论知识学的不够扎实,在本次课程设计过程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手但最终在图书、同学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次课程设计我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,我发现通过此次课程设计我想、这一学期所学到的知识都得到了加深。理论和实践的相结合是学习最有效的方法。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。此外,由于这是 1 个新的尝试,还有我有限的知识和仓促的时间所限,所以设计过程中难免有缺点和不足的地方,望各位老师能给予我批评指正.8.8.参考文献参考文献1软件工程与软件文档写作文斌 刘长青 田原 编著2JSP 动态 WEB 技术实例教程 聂哲 主编3Sqlserver2000 数据库原理与应用 仝春灵 沈祥玖 主编4数据集成与应用集成 田原 编著5 张同光等,信息安全技术实用教程,机械工业出版社,2008.7