




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海电力学院期末作业:简单的学籍管理系统 课 程: Web应用程序设计 院 系: 电气工程学院 专 业: 电力系统及其自动化 学生姓名: 张富杰 学号:17103060 指导教师: 曹渝昆 2017年1月6日目录一、设计思路3二具体实现3三运行调试与分析3四设计体会与小结8五程序代码8一、设计思路随着社会经济的发展,入学的同学越来越多,为方便对同学学籍信息的的管理,设计学籍管理软件来管理本班级同学的学籍信息。该软件应支持添加、删除、修改、查询功能。 查询方式主要是支持学号查询,例如:输入“1”,则显示该学生的信息。 运用流式、卡片、整体布局方式对系统的主界面和各功能界面进行设计; 通过连接数据库的方式来实现对数据的存储;各功能实现时访问数据库,并对数据信息进行读取,运用Java语句对其进行输出,学号查询时显示在文本框中;系统提示功能用来提醒用户的错误操作和输入时的错误信息,提醒用户进行改正。二具体实现1 向班级里插入一个学生,但必须是插在已经建立的班级里。2 输入学生信息,建立一个班级。3 修改一个学生的所有资料。4 删除某班的一个学生及其所有资料。5 删除一个班级。 6根据学生姓名查找某个学生信息。每种功能通过一个类来实现:类分分为主类、查询类、修改类、添加类、增加类。主类各功能界面的连接;精确查询类(SearchStudent)实现根据学生姓名查找某个学生信息;修改类(MdifyStudent)实现修改一个学生的所有资料;添加类(AddStudent)实现向班级里插入一个学生,但必须是插在已经建立的班级里。;删除类(DeleteStudent)实现删除某班的一个学生及其所有资料。;删除类(DeleteClass)实现删除一个班级;建立类(BuiltClass)实现输入学生信息建立一个班级。三运行调试与分析系统的详细设计代码请查阅附带的代码。以下仅对各个界面进行截图展示:图1:管理界面图2:添加学生到指定的班级界面图3:删除一个学生信息界面图4:修改一个学生信息界面图5:查询某个学生信息界面图6删除一个班级界面图7:输入一个学生建立一个班级界面运行JAVA程序中的StudentManager文件,显示系统的主界面,如图1所示,主界面有进入其他子功能的按钮,选择相应的按钮便可进入相应的功能。添加学生到指定班级功能如图2所示,根据提示输入要添加的信息,点击确定,将弹出提示框,确认是否添加。输入一个学生建立一个班级功能如图7所示,根据提示输入要添加的信息,点击确定,将弹出提示框,确认是否建立。删除一个班级信息功能如图6所示,根据提示输入班级号,点击删除。删除一个学生信息功能如图3所示,根据提示输入学号,点击删除。修改一个学生信息功能如图4所示,首先输入要修改的人姓名,点击开始修改,在下面的文本框现实当前数据库内所存该人的信息,同时录入修改键变化为可点击,在文本框内输入要修改的学号,点击录入修改,系统将新信息录如数据库。点击查询某个学生信息按钮,将弹出查询对话框, 输入姓名便可以精确查询到此人的所有学籍信息。查询如图5所示,将显示数据库中所存的所有号码信息。四设计体会与小结期末大作业的课设,自己通过查找资料、复习课本、编程调试,写实验报告等环节,进一步掌握了以前学到的知识,并且还对GUI组键的应用有了更深入的认识与掌握,另外还学到了一些新东西,比如JAVA 的SWING、AWT包,以前是没有接触过的,可是通过这次课程设计使得我们对这个包更了解。通过与数据库的连接掌握了Java与数据库的连接技术。 通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习java语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。五程序代码package simplebighomework;import javax.swing.*; import java.awt.*;import java.awt.event.*;import java.sql.*;public class StudentManager extends JFrame implements ActionListener /继承JFrame类JMenuBar jmb; /菜单栏JMenu Message; /菜单JMenuItem Item1,Item2,Item3,Item4,Item5,Item6; /菜单项public StudentManager(String s) /构造函数 StudentManage/添加按键jmb = new JMenuBar();Message = new JMenu(学生信息);Item1 = new JMenuItem(增加学生信息到指定班级); /菜单名Item2 = new JMenuItem(删除一个学生学籍信息);Item3 = new JMenuItem(修改一个学生信息);Item4 = new JMenuItem(查询某个学生信息);Item5 = new JMenuItem(删除一个班级信息);Item6 = new JMenuItem(输入一个学生建立一个班级);Message.add(Item1);Message.add(Item2);Message.add(Item3);Message.add(Item4);Message.add(Item5);Message.add(Item6);jmb.add(Message);Item1.addActionListener(this);Item2.addActionListener(this);Item3.addActionListener(this);Item4.addActionListener(this);Item5.addActionListener(this);Item6.addActionListener(this);setTitle(s); /设置窗口标题setBounds(500,300,500,500); /窗口的位置setVisible(true); /组件可见setJMenuBar(jmb); /菜单栏validate(); /再次布置容器及其组件setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/设置隐藏,关闭,放大窗口public void actionPerformed(ActionEvent e) /ActionEvent包含一个事件,该事件为执行动作事件 点击按钮等if (e.getSource() = Item1) /e.getSource() = Item2) 返回的当前动作所指向的对象,包含对象的所有信息。 AddStudent ad = new AddStudent(); else if (e.getSource() = Item2) /通过获取事件源,获取相应的对象DeleteStudent ds = new DeleteStudent(); else if (e.getSource() = Item3) ModifyStudent ms = new ModifyStudent(); else if (e.getSource() = Item4) SearchStudent ss = new SearchStudent(); else if (e.getSource() = Item5) DeleteClass dc = new DeleteClass(); else if (e.getSource() = Item6) BuiltClass bc = new BuiltClass();public static void main(String args) StudentManager stu=new StudentManager(学生管理系统);package simplebighomework;import javax.swing.*; import java.awt.*;import java.awt.event.*;import java.sql.*; public class AddStudent extends JFrame implements ActionListener /继承java的窗口体类JLabel JL = new JLabel(添加学生到指定班级, JLabel.CENTER); JLabel JLNumber = new JLabel(学号:); /显示输入学号JTextField JTNumber = new JTextField(); /创建文本框JLabel JLName = new JLabel(姓名:);JTextField JTName = new JTextField();JLabel JLClass = new JLabel(班级:);ButtonGroup BG = new ButtonGroup();JRadioButton JRB1 = new JRadioButton(一班);JRadioButton JRB2 = new JRadioButton(二班);JButton JBAdd = new JButton(添加); /创建按钮JButton JBExit = new JButton(退出); public AddStudent() this.setTitle(添加学生到指定班级);this.setLayout(null);JL.setBounds(100, 30, 200, 40);this.add(JL);JLNumber.setBounds(140, 80, 100, 20); /x轴和y轴,宽高this.add(JLNumber);JTNumber.setBounds(180, 80, 80, 20);this.add(JTNumber); JLName.setBounds(140, 120, 60, 20);this.add(JLName);JTName.setBounds(180, 120, 80, 20);this.add(JTName);JLClass.setBounds(140, 160, 100, 20);this.add(JLClass);JRB1.setBounds(180, 160, 60, 20);JRB2.setBounds(240, 160, 60, 20);this.add(JRB1);this.add(JRB2);BG.add(JRB1);BG.add(JRB2);JBAdd.setBounds(120, 220, 60, 20);this.add(JBAdd);JBAdd.addActionListener(this);JBExit.setBounds(200, 220, 60, 20);this.add(JBExit);JBExit.addActionListener(this);this.setBounds(500, 300, 500, 400); /添加窗口的位置this.setVisible(true);public void actionPerformed(ActionEvent e) / 监听接口if (e.getSource() = JBAdd) /点击建立的时候生效String snumber = JTNumber.getText(); /获取文本框中的信息String sname = JTName.getText();String sclass = 一班;if (JRB1.isSelected() /单选按钮sclass = 一班;else sclass = 二班; Connection con; /声明Connection对象 String driver = com.mysql.jdbc.Driver; /驱动程序名 /遍历查询结果集 try Class.forName(driver); /加载驱动程序 con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/database?useUnicode=true&characterEncoding=utf-8&useSSL=false,root,zf; /1.getConnection()方法,连接MySQL数据库! Statement statement = con.createStatement(); /2.创建statement类对象,用来执行SQL语句! String sql = select * from student where id=+snumber+; /要执行的SQL语句 ResultSet rs = statement.executeQuery(sql); /3.ResultSet类,用来存放获取的结果集!if (rs.next() JOptionPane.showMessageDialog(null, 该号已经存在); /提示else sql = insert into student values( + snumber + ,+ sname + , + sclass +);int i = statement.executeUpdate(sql); /执行SQL语句,把返回值赋给iif (i 0)JOptionPane.showMessageDialog(null, 建立成功); /提示成功elseJOptionPane.showMessageDialog(null, 添加失败); /提示失败catch (Exception ee) /捕获异常 if (e.getSource() = JBExit) /退出按钮监视setVisible(false);public static void main(String args) new BuiltClass();package simplebighomework;import javax.swing.*; import java.awt.*;import java.awt.event.*;import java.sql.*; public class BuiltClass extends JFrame implements ActionListener JLabel JL = new JLabel(输入一个学生建立一个班级, JLabel.CENTER); /什么意思JLabel JLNumber = new JLabel(学号:); /显示输入学号JTextField JTNumber = new JTextField(); /创建文本框JLabel JLName = new JLabel(姓名:);JTextField JTName = new JTextField();JLabel JLClass = new JLabel(班级:);JTextField JTClass = new JTextField();JButton JBAdd = new JButton(建立); /创建按钮JButton JBExit = new JButton(退出); /什么意思public BuiltClass() this.setTitle(输入一个学生建立一个班级);this.setLayout(null);JL.setBounds(100, 30, 200, 40);this.add(JL);JLNumber.setBounds(140, 80, 100, 20); /x轴和y轴,宽高this.add(JLNumber);JTNumber.setBounds(180, 80, 80, 20);this.add(JTNumber); JLName.setBounds(140, 120, 60, 20);this.add(JLName);JTName.setBounds(180, 120, 80, 20);this.add(JTName);JLClass.setBounds(140, 160, 100, 20);this.add(JLClass);JTClass.setBounds(180, 160, 80, 20);this.add(JTClass);JBAdd.setBounds(120, 220, 60, 20);this.add(JBAdd);JBAdd.addActionListener(this);JBExit.setBounds(200, 220, 60, 20);this.add(JBExit);JBExit.addActionListener(this);this.setBounds(500, 300, 500, 400);this.setVisible(true);public void actionPerformed(ActionEvent e) /什么意思? 监听接口if (e.getSource() = JBAdd) /点击建立的时候生效String snumber = JTNumber.getText(); /获取文本框中的信息String sname = JTName.getText();String sclass = JTClass.getText(); Connection con; /声明Connection对象 String driver = com.mysql.jdbc.Driver; /驱动程序名 /遍历查询结果集 try Class.forName(driver); /加载驱动程序 con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/database?useUnicode=true&characterEncoding=utf-8&useSSL=false,root,zf; /1.getConnection()方法,连接MySQL数据库! Statement statement = con.createStatement(); /2.创建statement类对象,用来执行SQL语句! String sql = select * from student where id=+snumber+; ResultSet rs = statement.executeQuery(sql); /3.ResultSet类,用来存放获取的结果集!if (rs.next() JOptionPane.showMessageDialog(null, 该号已经存在); /提示else sql = insert into student values( + snumber + ,+ sname + , + sclass +);int i = statement.executeUpdate(sql); /执行SQL语句,把返回值赋给iif (i 0)JOptionPane.showMessageDialog(null, 建立成功); /提示成功elseJOptionPane.showMessageDialog(null, 添加失败); /提示失败catch (Exception ee) /什么意思? if (e.getSource() = JBExit) /什么意思?setVisible(false);public static void main(String args) new BuiltClass();package simplebighomework;import javax.swing.*; import java.awt.*;import java.awt.event.*;import java.sql.*; public class DeleteClass extends JFrame implements ActionListener JLabel JL = new JLabel(删除一个班级信息, JLabel.CENTER);JLabel JLClass = new JLabel(班级:); /显示班级窗口JTextField JTClass = new JTextField(); /输入班级的窗口JButton JBDel = new JButton(删除);JButton JBExit = new JButton(退出); public DeleteClass() this.setTitle(删除一个班级信息);this.setLayout(null);JL.setBounds(100, 30, 200, 40);this.add(JL); JLClass.setBounds(140, 80, 60, 20);this.add(JLClass);JTClass.setBounds(180, 80, 80, 20);this.add(JTClass); JBDel.setBounds(120, 120, 60, 20);this.add(JBDel);JBDel.addActionListener(this);JBExit.setBounds(200, 120, 60, 20);this.add(JBExit);JBExit.addActionListener(this);this.setBounds(500, 300, 500, 400);this.setVisible(true);public void actionPerformed(ActionEvent e) /执行操作if (e.getSource() = JBDel) String sclass = JTClass.getText(); /获取文本中输入的班级 Connection con; /声明Connection对象 String driver = com.mysql.jdbc.Driver; /驱动程序名 /遍历查询结果集 try Class.forName(driver); /加载驱动程序 con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/database?useUnicode=true&characterEncoding=utf-8&useSSL=false,root,zf; /1.getConnection()方法,连接MySQL数据库! Statement statement = con.createStatement(); /2.创建statement类对象,用来执行SQL语句! String sql = select * from student where class=+sclass+; ResultSet rs = statement.executeQuery(sql); /3.ResultSet类,用来存放获取的结果集!if (rs.next() sql = delete from student where class= + sclass + ;int n = statement.executeUpdate(sql);if (n 0)JOptionPane.showMessageDialog(null, 删除成功);elseJOptionPane.showMessageDialog(null, 删除失败); else JOptionPane.showMessageDialog(null, 不存在该班级);catch (Exception er) if (e.getSource() = JBExit) setVisible(false);public static void main(String args) new DeleteClass();package simplebighomework;import javax.swing.*; import java.awt.*;import java.awt.event.*;import java.sql.*; public class DeleteStudent extends JFrame implements ActionListener JLabel JL = new JLabel(删除一个学生信息, JLabel.CENTER);JLabel JLNumber = new JLabel(学号:); /显示输入“学号”JTextField JTNumber = new JTextField(); / 输入学号的文本框JLabel JLClass = new JLabel(班级:); /显示输入“班级”JTextField JTClass = new JTextField(); / 输入班级的文本框JLabel JLName = new JLabel(姓名:); /显示输入“姓名”JTextField JTName = new JTextField(); / 输入姓名的文本框JButton JBDel = new JButton(删除); /删除键JButton JBExit = new JButton(退出); /退出键 public DeleteStudent() this.setTitle(删除一个学生信息);this.setLayout(null);JL.setBounds(100, 30, 200, 40);this.add(JL);JLNumber.setBounds(140, 80, 100, 20); /x轴和y轴,宽高this.add(JLNumber);JTNumber.setBounds(180, 80, 80, 20);this.add(JTNumber); JLName.setBounds(140, 120, 80, 20); /x轴和y轴,宽高this.add(JLName);JTName.setBounds(180, 120, 80, 20);this.add(JTName); JLClass.setBounds(140, 160, 80, 20); /x轴和y轴,宽高this.add(JLClass);JTClass.setBounds(180, 160, 80, 20);this.add(JTClass); JBDel.setBounds(120, 200, 60, 20);this.add(JBDel);JBDel.addActionListener(this);JBExit.setBounds(200, 200, 60, 20);this.add(JBExit);JBExit.addActionListener(this);this.setBounds(500, 300, 500, 400);this.setVisible(true);public void actionPerformed(ActionEvent e)if (e.getSource() = JBDel) String snumber = JTNumber.getText(); /获取输入的学号 Connection con; /声明Connection对象 String driver = com.mysql.jdbc.Driver; /驱动程序名 /遍历查询结果集 try Class.forName(driver); /加载驱动程序 con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/database?useUnicode=true&characterEncoding=utf-8&useSSL=false,root,zf; Statement statement = con.createStatement(); /2.创建statement类对象,用来执行SQL语句! String sql = select * from student where id=+snumber+; ResultSet rs = statement.executeQuery(sql); /3.ResultSet类,用来存放获取的结果集!if (rs.next() sql = delete from student where id= + snumber + ;int n = statement.executeUpdate(sql);if (n 0)JOptionPane.showMessageDialog(null, 删除成功); /执行了返回删除成功 else JOptionPane.showMessageDialog(null, 删除失败); else JOptionPane.showMessageDialog(null, 不存在该学号学生);catch (Exception er) if (e.getSource() = JBExit) setVisible(false); public static void main (String args) new DeleteStudent();package simplebighomework;import javax.swing.*; import java.awt.*;import java.awt.event.*;import java.sql.*;public class ModifyStudent extends JFrame implements ActionListener JLabel JL = new JLabel(修改一个学生信息, JLabel.CENTER);JLabel JLNumber = new JLabel(学号:); /显示学号JTextField JTNumber = new JTextField(); /创建用于输入学号的文本JLabel JLName = new JLabel(姓名:);JTextField JTName = new JTextField();JLabel JLClass = new JLabel(班级:);JTextField JTClass = new JTextField();JButton JBGet = new JButton(修改); /修改按钮JButton JBExit = new JButton(退出); public ModifyStudent() this.setTitle(修改一个学生信息);this.setLayout(null);JL.setBounds(100, 30, 200, 40);this.add(JL);JLNumber.setBounds(140, 80, 100, 20); /x轴和y轴,宽高this.add(JLNumber);JTNumber.setBounds(180, 80, 80, 20);this.add(JTNumber); JLName.setBounds(140, 120, 60, 20);this.add(JLName);JTName.setBounds(180, 120, 80, 20);this.add(JTName);JLClass.setBounds(140, 160, 100, 20);this.add(JLClass);JTClass.setBounds(180, 160, 80, 20);this.add(JTClass);JBGet.setBounds(120, 220, 60, 20);this.add(JBGet);JBGet.addActionListener(this);JBExit.setBounds(200, 220, 60, 20);this.add(JBExit);JBExit.addActionListener(this);this.setBounds(500, 300, 500, 400);this.setVisible(true);public void actionPerformed(ActionEvent e) if (e.getSource() = JBGet) String snumber = JTNumber.getText(); /读取文本中输入的学号String sname = JTName.getText();String sclass = JTClass.getText(); Connection con; /声明Connection对象 String driver = com.mysql.jdbc.Driver; /驱动程序名 /遍历查询结果集 try Class.forName(driver
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 省中医院护理查房
- 重庆应用技术职业学院《中药炮制学》2023-2024学年第一学期期末试卷
- 铁岭师范高等专科学校《人际沟通与演讲》2023-2024学年第一学期期末试卷
- 《高效专利检索策略》课件
- 兰州交通大学《图案创意与应用》2023-2024学年第二学期期末试卷
- 云南民族大学《动画与游戏中的音乐素材》2023-2024学年第二学期期末试卷
- 濮阳科技职业学院《大学英语精读2》2023-2024学年第一学期期末试卷
- 桩板墙喷浆施工方案
- 石家庄信息工程职业学院《水文气象学》2023-2024学年第二学期期末试卷
- 西安高新科技职业学院《数学建模Ⅱ》2023-2024学年第二学期期末试卷
- 小学数学跨学科主题学习的系统设计与实施
- 酱酒销售技巧培训
- 2025中考化学详细知识点
- 2025届辽宁省锦州市凌海市市级名校中考化学模拟试卷含解析
- 导数大题题型分类
- 2025陕煤集团榆林化学限责任公司招聘596人高频重点模拟试卷提升(共500题附带答案详解)
- DB23-T 3919-2024 大跨钢结构技术标准
- 2024年上海奉贤区招录储备人才笔试真题
- 2025河南中烟许昌卷烟厂招聘10人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年中国国新基金管理有限公司招聘笔试参考题库含答案解析
- 2025年福建泉州发展集团有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论