




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
成绩数据库课程设计 课程名称_数据库系统_题目名称_学生缴费注册管理系统学生学院_计算机学院_专业班级_学 号_学生姓名_ _指导教师_左亚尧_2013 年 1 月 目录1 引言11.1课程设计选题.11.2课程设计的目的.11.3本选题的设计背景.12 系统设计分析.22.1 功能及性能分析.22.1.1 功能需求22.1.2 性能需求22.1.3 系统流程图22.1.4数据字典.32.2 系统的开发运行环境.33 系统设计43.1 数据库逻辑设计.43.1.1 数据库的关系模型43.1.2 整体E-R图.43.1.3 系统结构图53.2 数据库的数据完整性设计.53.3数据库性能检测与备份设计.63.4 系统功能测试63.4.1管理员的功能测试.63.4.2学生的功能测试.83.5系统安装使用说明.94 详细设计代码.94.1 数据库实现.94.2 系统各功能模块的实现.104.2.1登陆界面模块.104.2.2学生缴费信息管理模块(管理员的界面).164.2.3学生缴费信息管理模块(学生用户的界面).285.小结.326.参考文献.331 引 言1.1课程设计选题学生缴费注册管理系统1.2课程设计的目的通过数据库系统课程设计,熟悉MySQL SERVER数据库管理系统的结构与组成;掌握MySQL SERVER数据库管理系统的应用技术和的使用;应用eclipse开发工具实践学生缴费注册管理系统的数据库应用系统的设计方法、开发过程和MySQL SERVER数据库的管理与维护。最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力。1.3本选题的设计背景 据调查,每年新生进校报到和老生返校缴费时,每个收费员每天要写几百张收据,工作强度大,身体疲劳不说,在学生缴费的高峰时段,紧张和忙碌中特别容易出差错,给工作造成麻烦,给学校造成损失。另外随着学生数量的增加,其工作量也将大大增加,这无疑会进一步增加财务人员的工作量和劳动强度,同时也将产生大量的纸质收据,这给学生缴费信息的查找、更新和维护都带来了不少困难。据调查,目前我国各农村学校中,还有相当一部分学生缴费的管理依然停留在纸介质的基础上,这样的管理机制已经不能适应时代发展的需要,也不能满足学校管理工作逐步走向规范化、科学化和自动化的要求。随着计算机科学与技术的日渐成熟和计算机应用的普及,计算机已进入到人类社会的各个领域,并发挥着越来越重要的作用。这种传统的人工管理模式必然被以计算机为物质基础的信息管理方式所取代。 作为计算机应用的一部分,使用计算机对学生缴费信息进行管理,有着人工管理所无法比拟的优点,如:检索迅速、查找方便、正确率高、存储量大、保密性好、寿命长、成本低等,这些优点能够极大地提高学生缴费管理的工作效率,也是学校向科学化、正规化管理发展的必要条件。因此,开发一套能够为用户提供充足的信息和快捷的查询手段的学生缴费管理系统具 有非常重要的意义。通过对当前系统进行详细调查,了解手工管理的处理流程是:新入学的新生和返校报到注册的老生,都要到学校财务部门设立的学杂费收费点办理缴费手续,财务人员对缴费的学生进行登记,缴纳的各种学杂费要入账,并开具发票,存根建档。不能按时缴费的学生要出具证明,办理缓交手续并记录在案。平时,各级领导和管理人员根据需要还要对学生的缴费情况进行各项统计和查询。使用计算机进行学生缴费管理,除了能够实现手工处理的各项工作外,还应该对所有数据信息进行维护,并向用户提供快速、灵活、多样的查询功能。2 系统设计分析2.1 功能及性能分析2.1.1 功能需求从总体上考虑,系统应该实现下列功能:对管理员来说,包括学生缴费信息查询,管理员可以查看学生的缴费时间、应缴费用和实缴费用。还可以增加新生缴费信息和删除学生无效的缴费信息。对学生来说,也可以进行学生缴费信息查询,可以查看自己的缴费时间、应缴费用和实缴费用。2.1.2 性能需求系统性能设计应满足如下要求: 保证系统数据安全性:由于学生缴费信息关系到学生财产安全,非常重要,不能让某些人冒充管理员,蓄意增添学生缴费信息而逃避交学费,所以要在用户登录界面设置密码,并且设置管理员才有增加和删除学生缴费信息的权限。保证系统数据一致性:数据库中的所有信息在任何操作下都能够保持一致,如一旦管理员添加了某学生的缴费信息,该学生登录用户界面,进行学生缴费信息查询就可以立即看到。 2.1.3系统流程图开始结束登陆界面进入学生缴费注册管理系统用户名和密码正确否是2.1.4数据字典该软件的数据库由下述三张数据表组成:用户表:users学生基本信息表:student缴费信息表:jiaofei表的具体内容如下:用户表:users字段名代码类型约束用户名usernamechar(10)primary key密码passwordchar(6)学生基本信息表:student字段名代码类型约束学号snochar(10)primary key姓名snamechar(8)性别sexchar(2)班级classchar(10)缴费信息表:jiaofei字段名代码类型约束学号snochar(10)primary key缴费时间iftimechar(10)应缴费用yjfeeint实缴费用sjfeeint2.2 系统的开发运行环境本系统开发平台: eclipse + MySQL SERVER本系统运行环境: Windows 73 系统设计3.1数据库逻辑设计3.1.1数据库的关系模型:用户(用户名,密码)学生(学号,姓名,性别,班级);主键是学号缴费情况(学号,缴费时间,应缴费用,实缴费用);主键是学号 3.1.2整体E-R图整体E-R图如下:用户缴费情况学生学号姓名性别班级学号缴费时间应缴费用实缴费用用户名密码缴费管理对应管理员1nn1n13.1.3系统结构图如下学生缴费注册系统 学生 管理员查询个人缴费信息查询学生缴费信息增加学生缴费信息删除学生缴费信息3.2数据库的数据完整性设计create table users (username char(10) primary key, password char(6) not null ) create table student( sno char(10) primary key, sname char(8) not null, sex char(2),class char(10) ) create table jiaofei( sno char(10) primary key,iftime char(10),yjfee int,sjfee int)3.3数据库性能检测与备份设计将鼠标放在所要备份的数据库上,点击右键,选择备份选项,选择路径,就可以将数据库备份到指定路径下。并且把数据库的创建代码、创建表的代码、插入数据的代码等全部复制放到硬盘或移动设备中,以防意外的发生导致数据的丢失。3.4系统功能测试3.4.1管理员的功能测试:首先登录 进入主界面学生缴费注册管理系统 1.查询学生缴费信息:可得学生缴费情况表(学号,缴费时间,应缴费用,实缴费用)如下:2.增加学生缴费信息 通过查询,可以看到学号为3210006222的学生缴费信息已经被添加3.删除学生缴费信息通过查询,可以看到学号为3210006222的学生缴费信息已经被删除:3.4.2学生的功能测试首先登录 进入主界面学生缴费注册管理系统 查询学生本人的缴费信息3.5系统安装使用说明在该学生信息管理系统实现中,我使用的是mysql-5.5.29和eclispe,在安装mysql时要要注意在要选择windows身份认证和sql身份认证选项,而不能选择windows身份认证选项。因为在用java与数据库建立连接时需要用户身份的认证,如果选择了windows身份认证时,则必须再次设置为windows身份认证和sql身份认证选项,否则连接将会失败。而在安装eclispe前要先安装jdk,并将jdk中包含有javac和java等命令的文件夹的路径添加到环境变量的path中,这样eclispe才能正常使用;要与数据库建立连接,还必须在eclispe中为所建立的工程添加mysql的驱动,否则,无法与mysql中的数据库建立连接。4详细设计代码4.1数据库实现1.创建数据库:use master gocreate database sfon(name=sf_dat,filename=f:卓灵data.mdf,size=30MB,maxsize=150MB,filegrowth=20%)log on(name=sf_log,filename=f:卓灵data.ndf,size=3MB,maxsize=15MB,filegrowth=1MB)go2.创建模型CREATE SCHEMA AUTHORIZATION ZHONG4.2系统功能模块的设计与实现4.2.1登陆界面模块/登录界面(JFrame框架,JLable标签,JComboBox组合框)public class Login extends JFrame implements ActionListener,ItemListener/容器JPanel p1 = null;JPanel p2 = null;JPanel p3 = null;JLabel userName = new JLabel(用户:);JTextField txtUser = new JTextField();JLabel password = new JLabel(密码:);JPasswordField txtpwd = new JPasswordField(6);JLabel role = new JLabel(角色:);JComboBox choiceRole = new JComboBox();/组合框(单击后下拉一个列表)。JButton loginButton = new JButton(登录);JButton cancelButton = new JButton(取消);JLabel imageLabel;Icon image;static int OK = 1;static int CANCEL = 0;int actionCode = 0;Connection con = null;java.sql.Statement stmt = null;ResultSet rs = null;/表示数据库结果集的数据表,通常通过执行查询数据库的语句生成.int qxian = 0;/用于接收当前组合框列表中选择的选项的整数,0表示第一项,-1表示选项不在列表中。public Login()super(登录界面);p1 = new JPanel();p2 = new JPanel();p3 = new JPanel();choiceRole.addItem(管理员);choiceRole.addItem(学生);image = new ImageIcon();imageLabel = new JLabel(image);p1.add(imageLabel);this.setLayout(new FlowLayout();/流水布局(从做到右排列,不够换新行,不满放中间)this.setBounds(100, 100, 246, 200);p2.setLayout(new GridLayout(3, 2);/网格布局p2.add(userName);p2.add(txtUser);p2.add(password);p2.add(txtpwd);p2.add(role);p2.add(choiceRole);p3.add(loginButton);/默认为边界布局(即东南西北中)p3.add(cancelButton);this.add(p1);this.add(p2);this.add(p3);this.setResizable(false);/设置此 frame 是不可以由用户调整大小。/*提供一个关于新创建的 JFrame 是否应该具有当前外观为其提供的 Window 装 * 饰(如边框、关闭窗口的小部件、标题等等)的提示*/this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);loginButton.addActionListener(this);choiceRole.addItemListener(this);cancelButton.addActionListener(this);public void connectDB() throws Exceptiontry Class.forName(org.gjt.mm.mysql.Driver); catch (ClassNotFoundException e) e.printStackTrace();try con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/sf,root,1234);stmt = con.createStatement(); catch (SQLException e) e.printStackTrace();public void closeDB() throws SQLExceptionstmt.close();con.close();Overridepublic void itemStateChanged(ItemEvent e) /SELECTED:此状态更改值指示项被选定。if(e.getStateChange() = ItemEvent.SELECTED)JComboBox jcb = (JComboBox) e.getSource();/最初发生 Event 的对象。qxian = jcb.getSelectedIndex();/返回列表中与给定项匹配的第一个选项。(0为选项一)SuppressWarnings(deprecation)Overridepublic void actionPerformed(ActionEvent e) Object source = e.getSource();/最初发生 Event 的对象。String user_name = null;String password = null;boolean success = false;if(source = loginButton)if(txtUser.getText().equals() | txtpwd.getText().equals()JOptionPane.showMessageDialog(null, 登录名和密码不能为空!);/*JOptionPane.showMessageDialog(Component,String)中, * component为父对话框,string为在对话框中显示的文字;参数设为 null时, * 默认的 Frame 用作父级,并且对话框将居中位于屏幕上*/elsetry this.connectDB(); catch (Exception e2) / TODO Auto-generated catch blocke2.printStackTrace();try rs = stmt.executeQuery(select * from users where username= + + txtUser.getText() + );/通过执行查询数据库的语句生成的数据库结果集的数据表while(rs.next()/*trim()返回字符串的副本,忽略前导空白和尾部空白; * resultSet.getString(String) 以 Java 编程语言中 * String 的形式检索此 ResultSet 对象的当前行中指定列的值。*/user_name = rs.getString(username).trim();password = rs.getString(password).trim();if(txtUser.getText().equals(user_name)if(txtpwd.getText().equals(password)actionCode = OK;this.setVisible(false);if(qxian = 0)new AdminFrame (txtUser.getText();/进入管理员界面if(qxian = 1)new StuFrame(txtUser.getText();/进入学生界面success = true;break;elseJOptionPane.showMessageDialog(null, 密码错误);txtpwd.setText();success = true;if(!success)JOptionPane.showMessageDialog(null, 登录名错误!);txtUser.setText();txtpwd.setText(); catch (SQLException e1) e1.printStackTrace();if(source = cancelButton)txtpwd.setText();txtUser.setText();4.2.2学生缴费信息的管理模块(即管理员的界面):public class AdminFrame extends JFrame implements ActionListenerString name;JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();JButton selectButton = new JButton(学生缴费信息查询);JButton closeButton = new JButton(退出管理系统);JButton delete = new JButton(删除);JButton update = new JButton(增加);JLabel l = new JLabel(管理员);SuppressWarnings(deprecation)public AdminFrame(String name) super(学生缴费注册管理系统); = name;this.setSize(250, 200);this.add(North,p1);this.add(Center,p2);this.add(South,p3);p1.add(l);p2.add(selectButton);p2.add(delete);p2.add(update);p3.add(closeButton);selectButton.addActionListener(this);delete.addActionListener(this);update.addActionListener(this);closeButton.addActionListener(this);this.setResizable(false);/用户不可随意更改界面大小this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.show();Overridepublic void actionPerformed(ActionEvent e) if(e.getActionCommand() = 学生缴费信息查询)try new Check(name); catch (Exception e1) e1.printStackTrace();if(e.getActionCommand() = 删除)new MDelete(name);if(e.getActionCommand() = 增加)new MAddStudent(name);if(e.getActionCommand() = 退出管理系统)System.exit(0);管理员各种权限的实现1.管理员的查询功能public class Check extends JFrame String name;JTable table = new JTable();JPanel p = new JPanel();JScrollPane sPanel = new JScrollPane();Connection con = null;java.sql.Statement stmt = null;ResultSet rs = null;int i = 0;SuppressWarnings(deprecation)public Check(String name) throws Exception = name;sPanel.setViewportView(p);this.add(sPanel);this.setBounds(500, 200, 460, 150);this.setResizable(false);this.show();display();public void connectDB() throws ClassNotFoundException, SQLExceptionClass.forName(org.gjt.mm.mysql.Driver);con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/sf,root,1234);stmt = con.createStatement();public void closeDB() throws SQLExceptionstmt.close();con.close();public void display() throws ExceptionconnectDB();List al = new ArrayList();try rs = stmt.executeQuery(select * from jiaofei);while(rs.next()al.add(rs.getString(sno);al.add(rs.getString(iftime);al.add(rs.getString(yjfee);al.add(rs.getString(sjfee);i+;/取符合条件的记录数 catch (SQLException e) e.printStackTrace();Object playerInfo = new Objecti6;String columnNames = 学号, 缴费时间, 应缴费用, 实缴费用;try rs = stmt.executeQuery(select * from jiaofei);int j = 0;while(rs.next()playerInfoj0 = rs.getString(sno);playerInfoj1 = rs.getString(iftime);playerInfoj2 = rs.getString(yjfee);playerInfoj3 = rs.getString(sjfee);+j; catch (SQLException e) e.printStackTrace();table = new JTable(playerInfo, columnNames);p.add(table);2.管理员增加学生缴费信息功能:public class MAddStudent extends JFrame implements ActionListenerString sno;JButton button1 = new JButton(确定);JButton button2 = new JButton(取消);JPanel p1 = new JPanel();JPanel p2 = new JPanel();JTextField txtfile = new JTextField6;JLabel lable = new JLabel6;Connection con = null;java.sql.Statement stmt = null;ResultSet rs = null;public MAddStudent(String sno) this.sno = sno;this.setSize(300, 300);this.setLayout(new FlowLayout();button1.addActionListener(this);button2.addActionListener(this);this.setResizable(false);p1.setLayout(new GridLayout(6, 2);lable0 = new JLabel(新生学号:);lable1 = new JLabel(姓名:);lable2 = new JLabel(性别:);lable3 = new JLabel(班级);lable4 = new JLabel(缴费时间);lable5 = new JLabel(实交费用);for(int i = 0; i 6; i+)txtfilei = new JTextField(10);p1.add(lablei);p1.add(txtfilei);p2.add(button1);p2.add(button2);this.add(Center,p1);this.add(South,p2);this.setVisible(true);public void connectDB() throws ExceptionClass.forName(org.gjt.mm.mysql.Driver).newInstance();con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/sf,root,1234);stmt = con.createStatement();public void closeDB() throws SQLExceptionstmt.close();con.close();Overridepublic void actionPerformed(ActionEvent e) try connectDB(); catch (ClassNotFoundException e2) e2.printStackTrace(); catch (SQLException e2) e2.printStackTrace(); catch (Exception e3) e3.printStackTrace();if(e.getActionCommand() = 确定)for(int i = 0; i 6; i+)if(txtfilei.getText().equals()JOptionPane.showMessageDialog(null, 不能有空内容!);try closeDB(); catch (SQLException e1) e1.printStackTrace();return;ResultSet rs0 = null;try rs0 = stmt.executeQuery(select * from student where +sno= + txtfile0.getText() + ); catch (SQLException e2) e2.printStackTrace();try if(rs0.next()JOptionPane.showMessageDialog(null, 该学生已存在!);return;elsetry int rs1 = stmt.executeUpdate(insert into student values(+ txtfile0.getText() + , + txtfile1.getText() + , +txtfile2.getText() + , + txtfile3.getText()+ ););JOptionPane.showMessageDialog(null, 新生已成功添加!);/*-*/String stu = 学生;String s = txtfile0.getText().substring(4, 10);int rs2 = stmt.executeUpdate(insert into users values( + txtfile0.getText() +, + s +, + stu +); );JOptionPane.showMessageDialog(null, 用户名单已更新!);/*-*/stmt.executeUpdate(insert into jiaofei values( + txtfile0.getText()+ , + txtfile4.getText() + , + 5000 + , + txtfile5.getText() + );JOptionPane.showMessageDialog(null, 缴费信息已被更新!); catch
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业服务合同标准模板简易版
- 农村环境治理技术合作协议方案书
- 委托代理合同范本及注意事项
- 事业单位会计招聘合同范本
- 二零二五年农业现代化示范区萝卜种植项目合同
- 二零二五年度茶楼转让及茶艺表演服务协议合同范本
- 二零二五年度企业信用贷款服务合同范本
- 二零二五版数据中心备用电源电气安装服务合同
- 2025版面料行业人才招聘与培训服务合同
- 二零二五年度矿产品矿产资源评估与咨询服务合同
- 2025北师大版三年级数学上册 第二单元 测量(二) 单元教学设计
- MSA-GRR数据自动生成工具
- 医美项目规划方案(3篇)
- 2025年XRF考试题目及答案
- 2025年全国反诈骗知识竞赛试题含答案
- 电网采购管理办法
- 2025江苏徐州沛县经济开发区发展集团招聘工作人员拟聘用人员笔试历年参考题库附带答案详解
- 2025年《健康知识》竞赛题库含试题及答案
- 心之所向·素履以往+课件-2025-2026学年高三上学期开学第一课主题班会
- 残疾预防日班会课件
- 茶叶加工工安全技术操作规程
评论
0/150
提交评论