版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录设计总说明 -II1. 课程设计目的与需求分析 -3 1.1 课程设计目的 -3 1.2 需求分析 -32. 设计思路与主功能设计 -4 2.1 设计思路 -4 2.1.1 开发环境和软件 -42.1.2 数据库表结构 -42.1.3 程序设计图 -4 2.2 功能设计与介绍 -53. 具体功能的介绍和数据测试 -53.1 登录界面 -53.2 主功能界面 -7 3.2.1 查询 -7 3.2.2 添加 -9 3.2.3 修改 -10 3.2.4 删除 -12 3.2.5 关于 -13 3.2.6 退出 -134. 课程设计总结 -145. 附录(程度代码) -15 设计总说明1. 设计
2、概况 名称:学生学籍管理系统 用途:学校等机构 功能:实现对学生学籍信息的管理与维护等功能2. 设计说明学生学籍管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用SQLServer2005数据库作为后台的数据库进行信息的存储,用SQL语句完成添加,查询,修改,删除的操作。用ODBC驱动实现前台Java与后台SQL数据库的连接。Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。SQLServer2005数据库高效安全,两者结合可相互利用各自的优势。系统可供输入的属性有
3、“学号”,“姓名”,“性别”,“班级”,“学院”,“籍贯”。该系统实现的大致功能:1 管理员登陆界面。该界面可以输入管理员号,登陆密码。用户通过验证通过后方可进入管理系统。一定程度上保证了信息安全性,防止他人未经允许篡改学生信息。2 查询学生信息。可以选择由用户选择“显示系统中当前的所有学生信息”。也可以选择按照“某一个学号查询该学号的学生信息”。查询到的信息会在窗口中依次显示出来。3 添加学生信息。可以按照图形的界面的显示依次输入新学生的“学号”,“姓名”,“性别”,“班级”,“学院”,“籍贯”。完成新纪录的添加。4 修改学生信息。可以选择按照“学号”或者“姓名”找到该学生的学生信息并输入要
4、修改的属性,并输入新的数据。完成对学生记录的修改。5 删除学生记录。可以根据输入的“学号”或者”姓名”进行删除的操作。3本系统只实现了基本操作功能,对于添加管理员,修改登录密码和数据库信息备份等功能并未提供,便利性和安全性仍有不足,使用过程中造成的不便还请谅解! 学生学籍管理系统信管1081班,200811622124,吴晓阳 信管1081班,200811622104,陈秀丽指导教师:陈亮1 课程设计目的与需求分析1.1 课程设计目的本课程设计作为Java语言高级程序设计课程的延伸,在学生完成了Java语言高级程序设计课程的理论知识学习后,希望通过本次课程设计的实践操作,能够让学生懂得Java
5、的各种相关知识的使用,真正的提高学生独立开发设计Java程序,把课堂上的知识运用在实践上,一门编程语言只有在不断实践操作和练习上才会有进步。1.2需求分析在一些学校等机构,随着学生数量的不断增加,学生的信息不断增多,人工管理信息的难度也越来越大。而且效率也是很低的。所以如何自动高效地管理信息是这些年来许多人所研究的。随着这些年电脑计算机的速度质的提高,成本的下降,IT互联网大众趋势的发展。我们使用电脑的高效率才处理数据信息成为可能。 学生学籍管理系统的出现,正是管理人员与信息数据,计算机的进入互动时代的体现。友好的人机交互模式,清晰简明的图形界面,高效安全的操作使得我们对成千上万的信息的管理得
6、心应手。学生学籍管理系统,以SQL数据库作为后台信息存储,Java作为前台系统的语言。提供了对学生信息添加,查询,修改,删除的功能。实现了最基本的信息管理。2 设计思路与主功能设计 2.1 设计思路2.1.1 开发环境和软件 本学籍采用Java语言编写前台程序,后台采用SQL Server2005软件管理数据库,调试和运行皆由Eclipse SDK 完成。2.1.2 SQL数据库表结构 2.1.3 程序设计图删除修改添加查询登录退出失败成功登录验证学生学籍管理系统 2.2 功能设计与介绍 1) 显示已有学生信息2) 添加新的学生信息3) 修改已有学生信息4) 删除已有学生信息5) 关于学籍管理
7、系统6) 退出学籍管理系统3 具体功能的介绍和数据测试3.1 登录界面登录界面输入“管理员号”和“登录密码”,点击“确定”,通过验证则进入主功能菜单。如果输入错误则会有相应的警告! 1.当输入了一个未存在的管理员号时,会出现下图! 2当输入一个错误的密码时,会出现下图! 当前系统有两个管理员账号: 管理员号:200811622124 密码:123456 管理员号:200811622104 密码:123456 3.2 主功能界面3.2.1 查询 点击 , 则弹出下面的选择菜单。 1) 选择“显示所有学生记录”时,在控制台会显示当前系统中所有的学生记录 2) 选择“查询某个学生记录”时,会弹出一下
8、窗口要求用户输入“学号”。 当系统中有要查询的学号记录时,系统会显示查询到的详细信息。 如果没有查询到,则显示: 3.2.2 添加点击 ,会弹出输入框,如下图:在各个数据框中输入对应的信息(学号不能为空,且学号不能与已存在的记录重复),如果输入的新纪录的学号已经存在则: 如果添加的新纪录学号为空,则 如果输入的各项数据正常时,则点击“添加”按钮后,学生记录添加成功!3.2.3 修改点击 ,进行“修改”的操作,弹出下面的选择菜单。 1)选择按“学号”修改:将相应的数据填入输入框中,如果修改的记录不存在,则提示:如果数据正确且记录存在,则显示记录修改成功: 2) 按“姓名”修改,同上.3.2.4
9、删除点击 ,会显示下面的菜单。1) 选择按“学号”删除,出现以下窗口。 在弹出的窗口输入你要删除的记录的学号。如果要删除的记录不存在,则显示 如果输入的的学号存在,则删除成功。3.2.5 关于 点击 ,显示本学生管理系统的作者相关信息。 3.2.6 退出点击 ,退出本学籍管理系统。4 课程设计总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程. 本次课程设计虽然很辛苦,实在是受益匪浅。本来这门课的知识学的就不够扎实,本次课程设计,在设计过程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手但最终在图书
10、、同学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次课程设计我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。理论和实践的相结合是学习最有效的方法。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。附 录(程序代码)import
11、javax.swing.*;import java.awt.BorderLayout;import java.awt.Container;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.*;class DataBase / DataBase类public void Add(String xh,String xm,String xb,String xy,String bj,String jg) throws SQLEx
12、ception try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection c=DriverManager.getConnection("jdbc:odbc:studentdatabase"); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet r=s.executeQuery("select * from 学籍管理系统where
13、 学号='"+xh+"'"); r.last(); if(r.getRow()=1) JOptionPane.showMessageDialog( null ,"该学号的学生信息已存在"); else if(xh.equals("") JOptionPane.showMessageDialog( null ,"学号不能为空"); else s.executeUpdate(" insert into 学籍管理系统 values ('"+xh+"'
14、,'"+xm+"','"+xb+"','"+ xy+"','"+bj+"','"+jg+"')"); s.close(); c.close();JOptionPane.showMessageDialog( null ,"<html>"+"学号:"+xh+"<br>" +"姓名:"+xm+"<
15、;br>" +"性别:"+xb+"<br>"+"学院:"+xy+"<br>"+"班级:"+bj+"<br>"+"籍贯:"+jg+"<br> 学生记录添加成功!" ) ; catch(Exception e) JOptionPane.showMessageDialog( null , "数据添加异常!" ) ; Public void DisplayAll
16、(ResultSet r) try r.last(); System.out.println("数据库表共有"+r.getRow()+"行记录"); r.beforeFirst(); while(r.next() System.out.print("第"+r.getRow()+"行记录:"); System.out.print(" 学号为:"+r.getString("学号"); System.out.print(" 姓名为:"+r.getString(&
17、quot;姓名"); System.out.print(" 性别为:"+r.getString("性别"); System.out.print(" 学院为:"+r.getString("学院"); System.out.print(" 班级为:"+r.getString("班级"); System.out.println(" 籍贯为:"+r.getString("籍贯"); catch(Exception e) public
18、void DisplayOne(String str22) throws Exception try Connection c=DriverManager.getConnection("jdbc:odbc:studentdatabase"); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);ResultSet r=s.executeQuery("select * from 学籍管理系统 where 学号='"+s
19、tr22+"'"); r.last(); int cc=r.getRow(); if(cc=0) JOptionPane.showMessageDialog( null ,"未查询到相关信息!" ) ; elser.beforeFirst(); while(r.nexJOptionPane.showMessageDialog( null ,"<html>"+"学号:"+r.getString("学号")+"<br>" +"姓名:&qu
20、ot;+r.getString("姓名")+"<br>" +"性别:"+r.getString("性别")+"<br>" +"学院:"+r.getString("学院")+"<br>" +"班级:"+r.getString("班级")+"<br>" +"籍贯:"+r.getString("籍贯&quo
21、t;)+"<br> 已查询到相关记录!" ) ; catch(Exception e) public void DeleteXh(String str11) try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection c=DriverManager.getConnection("jdbc:odbc:studentdatabase"); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE,
22、 ResultSet.CONCUR_UPDATABLE); ResultSet r=s.executeQuery("select * from 学籍管理系统 where 学号='"+str11+"'"); r.last(); if(r.getRow()=1) s.executeUpdate("delete from 学籍管理系统 where 学号='"+str11+"'"); JOptionPane.showMessageDialog( null , "学生记录删除成功!&
23、quot; ) ; else JOptionPane.showMessageDialog( null ,"学籍系统中并无相关记录!" ); catch(Exception e) public void DeleteXm(String str13) try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection c=DriverManager.getConnection("jdbc:odbc:studentdatabase"); Statement s=c.createState
24、ment( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);ResultSet r=s.executeQuery("select * from 学籍管理系统 where 姓名='"+str13+"'"); r.last(); if(r.getRow()=1) s.executeUpdate("delete from 学籍管理系统 where 姓名='"+str13+"'"); JOptionPane.showM
25、essageDialog( null , "学生记录删除成功!" ) ; else JOptionPane.showMessageDialog( null ,"学籍系统中并无相关记录!" ) ; catch(Exception e) public void UpdateXh(String xg,String str15,String str16) try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection c=DriverManager.getConnection(&quo
26、t;jdbc:odbc:studentdatabase"); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet r=s.executeQuery("select * from 学籍管理系统 where 学号='"+xg+"'"); r.last(); if(r.getRow()=1) s.executeUpdate("update 学籍管理系统 set "
27、+str15+"='"+str16+"' where 学号='"+xg+"'"); JOptionPane.showMessageDialog( null , "学生记录修改成功!" ) ; elseJOptionPane.showMessageDialog( null ,"学籍系统中并无相关记录!" ) ; ; catch(Exception e) JOptionPane.showMessageDialog( null ,"学籍系统中并无相关记录!&q
28、uot; ) ; public void UpdateXm(String str18,String str19,String str20) try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection c=DriverManager.getConnection("jdbc:odbc:studentdatabase");Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE
29、); ResultSet r=s.executeQuery("select * from 学籍管理系统 where 姓名='"+str18+"'"); r.last(); if(r.getRow()=1) s.executeUpdate("update 学籍管理系统 set "+str19+"='"+str20+"' where 姓名='"+str18+"'"); /直接执行SQL语句修改 JOptionPane.showMes
30、sageDialog( null , "学生记录修改成功!" ) ; elseJOptionPane.showMessageDialog( null ,"学籍系统中并无相关记录!" ) ; ; catch(Exception e) JOptionPane.showMessageDialog( null ,"学籍系统中并无相关记录!" ) ; class J_ActionListener1 extends JFrame implements ActionListener /创建J_ActionListener1类监听功能选项面板&quo
31、t;显示已有学生信息"的按钮 public void actionPerformed(ActionEvent e) JButton b1=(JButton)e.getSource();Object aa= JOptionPane.showInputDialog(null, "请选择按何种方式查询","选择", JOptionPane.QUESTION_MESSAGE,null, new String "显示所有学生记录","查询某个学生记录","显示所有学生记录");if(aa=&qu
32、ot;显示所有学生记录") try Connection c = DriverManager.getConnection("jdbc:odbc:studentdatabase"); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet r=s.executeQuery("select * from 学籍管理系统"); DataBase a =new DataBase(); a. DisplayA
33、ll(r); catch (SQLException e1) elsetryConnection c= DriverManager.getConnection("jdbc:odbc:studentdatabase"); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); DataBase a=new DataBase(); String str11=JOptionPane.showInputDialog("请输入要查询的记录的学号&
34、quot;); a.DisplayOne(str11); catch (Exception e1) class J_ActionListener2 extends JFrame implements ActionListener Public void actionPerformed(ActionEvent e) JButton b2=(JButton)e.getSource(); try new J_ActionListener6(); catch (Exception e2) Class J_ActionListener6 extends J_ActionListener2 impleme
35、nts ActionListener DataBase a = new DataBase(); JTextField jtf1 = new JTextField(); JTextField jtf2 = new JTextField() ; JTextField jtf3 = new JTextField() ; JTextField jtf4 = new JTextField() ; JTextField jtf5 = new JTextField() ; JTextField jtf6 = new JTextField() ; JButton btn = null ; J_ActionLi
36、stener6() this.setTitle("请输入数据:") ; /创建框架的标题 this.setBounds(250, 100, 220,320) ; /框架的大小和坐标 this.setResizable(false); this.setVisible(true); this.setLayout(null) ; JLabel jlb1 = new JLabel("学号:") ; /创建"学号"的标签 jlb1.setBounds(43,23,100,25) ; this.add(jlb1) ; JLabel jlb2 =
37、new JLabel("姓名:") ; jlb2.setBounds(43,58,100,25) ; this.add(jlb2) ; JLabel jlb3 = new JLabel("性别:") ; jlb3.setBounds(43,93,100,25) ; this.add(jlb3) ; JLabel jlb4 = new JLabel("学院:") ; jlb4.setBounds(43,128,100,25) ; this.add(jlb4) ; JLabel jlb5 = new JLabel("班级:&qu
38、ot;) ; jlb5.setBounds(43,163,100,25) ; this.add(jlb5) ; JLabel jlb6 = new JLabel("籍贯:") ; jlb6.setBounds(43,198,100,25) ; this.add(jlb6) ; jtf1.setBounds(80,25,100,25) ; this.add(jtf1) ; jtf2.setBounds(80,60,100,25) ; this.add(jtf2) ; jtf3.setBounds(80,95,100,25) ; this.add(jtf3) ; jtf4.se
39、tBounds(80,130,100,25) ; this.add(jtf4) ; jtf5.setBounds(80,165,100,25) ; this.add(jtf5) ; jtf6.setBounds(80,200,100,25) ; this.add(jtf6) ; btn = new JButton("添加") ; btn.setBounds(68,245,80,30) ; /设置按钮的大小和位置 this.add(btn) ; /将按钮添加进面板里 btn.addActionListener(this) ; (JComponent) this.getCont
40、entPane().setOpaque(false); .URL url = JavaSql.class.getResource("背景1.jpg");ImageIcon img = new ImageIcon(url); JLabel background = new JLabel(img); this.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE);background.setBounds(0,0,img.getIconWidth(),img.getIconHeight();public v
41、oid actionPerformed(ActionEvent e) JButton btn=(JButton)e.getSource(); String xh = jtf1.getText() ; String xm = jtf2.getText() ; String xb = jtf3.getText() ; String xy = jtf4.getText() ; String bj = jtf5.getText() ; String jg = jtf6.getText() ; try a.Add(xh,xm,xb,xy,bj,jg); this.setVisible(false); c
42、atch (SQLException e1) class J_ActionListener3 extends JFrame implements ActionListener /创建J_ActionListener3监听功能面板”修改已有学生信息“的按钮 final DataBase a=new DataBase(); JFrame xiugai=new JFrame(); String b=null; public void jiemian() /在J_ActionListener3类里添加jiemian()方法,创建按学号修改数据的界面 this.setTitle("请输入数据:
43、") ; this.setSize(230,320) ; this.setLocation(200,130); this.setResizable(false); this.setVisible(true); JLabel jlb1 = new JLabel("请输入要修改的学生的"+b) ; /设置3个标签 JLabel jlb2 = new JLabel("请输入要修改的属性") ; JLabel jlb3 = new JLabel("请输入新的数据") ; final JTextField jtf1 = new JTe
44、xtField() ; /设置三个文本框 final JTextField jtf2 = new JTextField() ; final JTextField jtf3 = new JTextField() ; JButton xg=new JButton("修改"); /创建”修改“按钮 Container c=getContentPane();c.setLayout(null);jlb1.setBounds(20,15,170,30);c.add(jlb1);jlb2.setBounds(20,80,170,30);c.add(jlb2);jlb3.setBounds
45、(20,145,170,30);c.add(jlb3);jtf1.setBounds(20,45,170,30);c.add(jtf1);jtf2.setBounds(20,110,170,30);c.add(jtf2);jtf3.setBounds(20,180,170,30);c.add(jtf3);xg.setBounds(80,230,60,35); c.add(xg);xg.addActionListener(new ActionListener() /为”修改“按钮添加事件触发 public void actionPerformed( ActionEvent e) / 当修改的按钮被点击时执行 JButton xg=(JButton)e.getSource(); String xuehao=jtf1.getText(); /获取文本框的数据 String shuxin=jtf2.getText(); String xinshuju=jtf3.getText(); a.UpdateXh(xuehao,shuxin,xinshuju); setVisible(false); );(JComponent) this.getContentPane().setOpaque(false); /设置背景图片 .URL url = JavaSql.class.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版市政工程挖掘机租赁及施工配合合同协议书3篇
- 2025版智能交通管理系统软件开发与运营服务合同3篇
- 2025版城市绿地养护劳务分包合同模板4篇
- 企业人力资源管理概念
- 二零二五版知识产权保密与竞业限制服务合同3篇
- 塑料薄膜光学性能研究考核试卷
- 2025版事业单位教师岗位聘用合同续签协议书3篇
- 2025年度码头转租及船舶停靠服务外包合同4篇
- 04毛首鞭形线虫简称鞭虫47课件讲解
- 2025年食品行业食品安全风险评估合同范本3篇
- 垃圾处理厂工程施工组织设计
- 天疱疮患者护理
- 2025年蛇年新年金蛇贺岁金蛇狂舞春添彩玉树临风福满门模板
- 《建筑制图及阴影透视(第2版)》课件 4-直线的投影
- 新生物医药产业中的人工智能药物设计研究与应用
- 防打架殴斗安全教育课件
- 损失补偿申请书范文
- 压力与浮力的原理解析
- 铁路损伤图谱PDF
- 装修家庭风水学入门基础
- 移动商务内容运营(吴洪贵)任务二 社群的种类与维护
评论
0/150
提交评论