




免费预览已结束,剩余15页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
java高级开发课程设计Java高级开发课程设计题目:基于SWING和MyBatis的学生成绩管理系统设计与实现学号:2012姓名:郑莹莹 专业:计算机应用班级:应用1班2014年6月20日目录1.背景简介22.需求分析32.1 功能需求32.2性能需求42.3 使用技术和开发平台53.系统设计53.1 界面设计53.2 功能设计63.3 数据库表设计73.3.1 E-R图73.3.2关系模式93.3.3 数据库管理系统93.3.4数据库命名93.3.5数据库表93.4 代码设计104.系统实现与测试144.1 功能模块测试144.2 系统测试截图155.总结与展望181. 背景简介 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生成绩进行管理,具有手工管理无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、成本低、效率高等。这些优点能够极大地提高学生选课系统的效率,也是企业、学校的科学化、正规化管理和与世界接轨的重要条件。因此,开发这样一套管理系统已成为很有必要的事情。学生成绩管理系统是一个学校中不可缺少的部分。成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式对课程进行查询、更新等,这种管理方式存在着许多缺点,如:效率低、执行速度慢,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。 JAVA是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。使用JAVA语言建立一个课程管理系统,使学生成绩信息管理工作规范化,系统化,程序化,提高信息处理的速度和准确性,能够及时,准确,有效的查询和修改成绩。2.需求分析2.1 功能需求本次设计的学生选课系统是一个面向管理员、学生和教师这三个对象的教务平台。对学生的课程成绩进行录入、修改查询等基本功能。对教师或系统管理人员可以登录系统进行成绩录入等管理,学生只能登录系统进行成绩查询。学生成绩管理系统的要求是能够管理学生成绩信息,主要涉及到学生的基本信息、成绩信息和学校的授课计划信息的管理。学生的成绩是需要由人工录入的,因此系统就需要设计一个学生成绩信息录入的窗口来录入期考成绩,并且在这个窗口中放入一个数据窗口来实现录入这方面信息的功能。系统还要求具有查询期考成绩的功能,因此为了显示查询结果,就要设计一个数据窗口,并将其放在查询期考成绩的窗口中实现查询功能。由于查询成绩和录入成绩有区别,因此为了更好的实现相应的功能,设计的数据窗口也要不同,分别采用两种风格的数据窗口实现。系统要求能够录入授课计划和学生基本信息,必须设计录入授课计划窗口和录入学生基本信息窗口来实现相应功能。由于该系统是学校管理学生成绩信息的系统,因此必须具有一定的保密性,需要特定的人员才可以修改,因此需要设计一个用户登陆的窗口,使具有访问权限的用户才能登录此系统。为了简单化,我们的用户名和用户密码和数据库本身的用户名密码相同。系统的主窗口要能够在用户选中相应操作后,调出相应的窗口来使用户在窗口中完成相应的功能。2.2性能需求一般用户并不具备计算机专业知识,若程序性能有一定的缺陷或可对其隐藏,但一旦异常暴露,对于计算机专业知识较少的用户来说将一发不可收拾。对于一个专业的开发人员来讲,其项目在满足用户提出的功能实现外,首先应保证性能良好。综上所属,本系统的性能需求大致如下:系统的多数模块(尤其是后台几乎所有的)都有相应的特殊操作,所以在进入模块之前要对用户所具有的权限等用户信息做出严格检测,预防非法操作。数据库的连接应采用连接池技术,合理、有效的分配、回收资源。系统运行过程中会产生许多异常(其中大多数是预期效果),要有良好的异常处理机制,即要显示界面友好又要体现程序严谨。学生在查询成绩时,系统设计要充分考虑到线程之间的并发与冲突。注重系统所需时间与空间上的资源消耗和运行效果。2.3 使用技术和开发平台鉴于数据库的选择,本系统仅能在Windows系统上运行,需装有MySQL。在工程中,本系统采用MyEclipse作为开发及测试环境。3.系统设计3.1 界面设计登录界面有账号,密码,管理员账号以字母A开头,教师账号以字母T开头,学生账号以字母S开头,登录账号或密码输入错误会弹出相应的提示对话框。3.2 功能设计学生成绩管理系统教师登录模块学生登录模块登录模块管理员登录模块教师信息管理模块学生信息管理模块教师录入成绩模块教师密码修改模块学生密码修改模块学生查询成绩模块图3-1 系统功能结构图各模块功能:l 学生信息管理模块:管理员用于添加和删除学生信息的模块。l 教师信息管理模块:管理员用于添加和删除教师信息的模块。l 教师密码修改模块和学生密码修改模块:管理员添加的用户帐号的初始密码与用户的帐号相同,用户通过密码修改模块可以自己需改密码。l 教师录入成绩模块:教师可以浏览选修自己课程的学生的信息并且录入该学生的成绩。l 学生查询成绩模块:通过表格的形式将该学生选择了的课程列出来,如果教师有录入成绩,则可以看到自己的课程成绩。3.3 数据库表设计3.3.1 E-R图学生管理学号姓名年级生日性别班别语文数学数学图3-2 学生信息E-R图学生查找增加学生单个查询删除学生修改学生图3-2 学生管理E-R图学生查找查看全体按专业查找按年级查找按班别查找图3-3 学生查找E-R图成绩管理单科排名挂科学生总分排名合格学生图3-4 成绩管理E-R图3.3.2关系模式 学生信息(学号,姓名,性别,生日,年级,班别,语文,数学,英语,专业)学生管理(增加学生,删除学生,修改学生,单个查询)学生查找(查看全体,按年级查找,按班别查找,按专业查找)成绩管理(单科排名,总分排名,合格学生,各科学生)3.3.3 数据库管理系统MySQL3.3.4数据库命名studentmanagerment3.3.5数据库表Logon(登录帐号密码)(主要用来保存用户登录信息)字段名数据类型长度是否为空是否主键userchar10不为空主键passwordchar10StudentTable1(学生信息表)(主要用来保存成绩信息)字段名数据类型长度主键否是否为空描述NumChar10主键不为空学生学号NameChar10不为空学生姓名SexChar2不为空学生性别BirthDatetime8学生生日Classchar16所在班级GradeChar20学生成绩MajorChar10主修ChineseFloat10语文成绩EnglishFloat10英语成绩MathsFloat10数学成绩TotalFloat10 总成绩CourseTable(课程信息表)字段名数据类型长度主键否是否为空描述CourseIDChar16主键不为空课程编号CourseNameChar16不为空课程名PointChar8不为空学分StuNumberDatetime4不为空选课人数3.4 代码设计Login.javapackage scoreManagement;import java.awt.*;import java.awt.event.*;import javax.swing.*;/登录界面public class Login extends JFrame implements ActionListenerJButton b1=new JButton(登录);JButton b2=new JButton(退出);JLabel la1=new JLabel(用户名);JLabel la2=new JLabel(密 码);JPanel p1=new JPanel();JPanel p2=new JPanel();JPanel p3=new JPanel();JTextField name=new JTextField(15);JPasswordField pw=new JPasswordField(15);public Login()/*setBak(); /调用背景方法 Container c = getContentPane(); /获取JFrame面板 JPanel jp = new JPanel(); /创建个JPanel jp.setOpaque(false); /把JPanel设置为透明 这样就不会遮住后面的背景 这样你就能在JPanel随意加组件了 c.add(jp); setSize(540, 450); setVisible(true);*/ /*JLabel p=new JLabel(); p.setOpaque(true); p.setBackground(Color.red);*/*JLabel p=new JLabel();JLabel l=new JLabel();Icon icon=new ImageIcon(D:a.jpg); /在此直接创建对象l.setIcon(icon);l.setBounds(0, 0, icon.getIconWidth(),icon.getIconHeight();p.add(l,new Integer(Integer.MIN_VALUE);getContentPane().add(p); pack(); /窗口适应组件大小 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /用来关闭窗口的*/setVisible(true);setTitle(学生成绩管理系统);getContentPane().setLayout(new GridLayout(3,1);getContentPane().add(p1);getContentPane().add(p2);getContentPane().add(p3);p1.add(la1);p1.add(name);p2.add(la2);p2.add(pw);p3.add(b1);p3.add(b2);setBounds(500, 250, 100, 100);pack();setVisible(true);pw.setEchoChar(*);b1.addActionListener(this);b2.addActionListener(this); /* public void setBak() (JPanel)this.getContentPane().setOpaque(false); ImageIcon img = new ImageIcon(D:/a.jpg); /添加图片 JLabel background = new JLabel(img);this.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE); background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight(); */public void actionPerformed(ActionEvent e) if(e.getActionCommand()=登录)String password=pw.getText();String user=name.getText();if(user.equals(wujingjing) & password.equals(201231526)Function function=new Function();function.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(false);elseJOptionPane.showMessageDialog(null, 用户名或密码错误, Error, JOptionPane.INFORMATION_MESSAGE);else if(e.getActionCommand()=退出)System.exit(0);DateBaseCreate.javapackage scoreManagement;import java.awt.*;import java.awt.event.*;import javax.swing.*;/登录界面public class Login extends JFrame implements ActionListenerJButton b1=new JButton(登录);JButton b2=new JButton(退出);JLabel la1=new JLabel(用户名);JLabel la2=new JLabel(密 码);JPanel p1=new JPanel();JPanel p2=new JPanel();JPanel p3=new JPanel();JTextField name=new JTextField(15);JPasswordField pw=new JPasswordField(15);public Login()/*setBak(); /调用背景方法 Container c = getContentPane(); /获取JFrame面板 JPanel jp = new JPanel(); /创建个JPanel jp.setOpaque(false); /把JPanel设置为透明 这样就不会遮住后面的背景 这样你就能在JPanel随意加组件了 c.add(jp); setSize(540, 450); setVisible(true);*/ /*JLabel p=new JLabel(); p.setOpaque(true); p.setBackground(Color.red);*/*JLabel p=new JLabel();JLabel l=new JLabel();Icon icon=new ImageIcon(D:a.jpg); /在此直接创建对象l.setIcon(icon);l.setBounds(0, 0, icon.getIconWidth(),icon.getIconHeight();p.add(l,new Integer(Integer.MIN_VALUE);getContentPane().add(p); pack(); /窗口适应组件大小 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /用来关闭窗口的*/setVisible(true);setTitle(学生成绩管理系统);getContentPane().setLayout(new GridLayout(3,1);getContentPane().add(p1);getContentPane().add(p2);getContentPane().add(p3);p1.add(la1);p1.add(name);p2.add(la2);p2.add(pw);p3.add(b1);p3.add(b2);setBounds(500, 250, 100, 100);pack();setVisible(true);pw.setEchoChar(*);b1.addActionListener(this);b2.addActionListener(this); /* public void setBak() (JPanel)this.getContentPane().setOpaque(false); ImageIcon img = new ImageIcon(D:/a.jpg); /添加图片 JLabel background = new JLabel(img);this.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE); background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight(); */public void actionPerformed(ActionEvent e) if(e.getActionCommand()=登录)String password=pw.getText();String user=name.getText();if(user.equals(wujingjing) & password.equals(201231526)Function function=new Function();function.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(false);elseJOptionPane.showMessageDialog(null, 用户名或密码错误, Error, JOptionPane.INFORMATION_MESSAGE);else if(e.getActionCommand()=退出)System.exit(0);4.系统实现与测试4.1 功能模块测试由于时间和自身能力所限,我们只进行了功能测试(黑盒测试)。1)登陆界面测试2)学生信息查询,删除,修改,添加及导入导出功能的测试3)课程信息查询,删除,修改,添加及导入导出功能的测试4)成绩信息查询,删除,修改,添加及导入导出功能的测试经过测试本系统基本实现了所要求的功能,能够比较方便的,快捷的完成所执行操作。4.2 系统测试截图部分截图如下:图4.1-1 登录页面图4.1-2 主界面图4.1-3增删改查页面图4.1-4查看全体成绩页面图4.1-5 按成绩查找页面图4.1-6 按班级查询页面5.总结与展望该系统主要实现了学生成绩管理的功能,从需求分析,界面的搭建,到数据库的连接,表格,存储过程和存储过程等的建立,在这段时间的摸索中,我确实学到了很多东西,特别是对以前不太了解的Java Swing组件有了更深刻的了解。比如JTable,对于它的用法我在网上找了很多资料,JTable的建立有各种不同的方法,可以使用DefaultTableModel类来实现;然后再table.setModel(dtm); 或者继承AbstractTableModel类,还有对于如何在JTable中添加Swing组件,原本我是直接新建一个JcheckBox对象直接添加到表格的 单元格里,结果发现只能显示出一串字符串,上网查找后才知道,要用DefaultCellEditor来添加S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产品质量检测报告及问题分析模板
- 2025年农村集体产权制度改革与农村改革衔接考核试卷
- 2025年危险货物道路运输限速路段管理考核试卷
- 考点解析-人教版八年级上册物理物态变化《熔化和凝固》专项测试试题(解析版)
- 2025年建筑施工建筑垃圾分类处理交底制度考核试卷
- 2025年高中新课程改革作业分层设计实践研究考核试卷
- 以生为本:让学生的思维在数学课堂中可见
- 计数单位统领下数概念的整体性建构
- 难点解析人教版八年级物理上册第4章光现象-光的色散必考点解析试卷(含答案详解)
- 2025年建筑工地劳务合同协议(木工钢筋)
- 浙江省台州市山海协作体2024-2025学年高一上学期期中联考物理试题(含答案)
- 人教版初中地理七年级上全册重点知识点归纳总结(复习必背)
- 家庭教育中的孩子品格养成
- 第2讲科研不端不当行为及其桅
- 拼多多市场营销案例分析
- 自考《兽医内科学与兽医临床诊断学》考试复习题库大全(含答案)
- 陶杰版材料科学基础-第1章-晶体学基础
- GB/T 27418-2017测量不确定度评定和表示
- GA/T 452.2-2021居民身份证打印技术规范第2部分:打印设备技术要求
- FZ/T 10020-2011纺织上浆用聚丙烯酸类浆料试验方法粘度测定
- DBJ∕T15-234-2021 广东省绿色建筑检测标准
评论
0/150
提交评论