已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计说明书 No24班级系统管理1.课程设计目的Java语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。通过此次课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。通过课程设计可以培养学生综合应用java的各种编程知识和技巧进行程序设计的能力。同时,培养学生自主学习和独立创新的精神,是人才培养体系中极为重要的一环。2.设计方案论证2.1概要设计2.1.1需求分析当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。管理信息系统是进行信息的采集、存储、加工、维护和使用的系统,它是随着管理科学和技术科学的发展而形成的。学生管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生管理系统应该能够为用户提供充足的信息和快捷的查询手段,对学生来说可以轻松的查阅自己在校的成绩以及信息等。但是一直以来人们都是靠传统人工的方式管理学生信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生成绩管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样的一套学生信息管理系统成为很有必要的事情。2.1.2系统设计开发思想 班级管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 经过分析,我们使用 JDK和Eclipse等作为开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。本系统目的是对学校的学生的信息进行管理,因此在设计本系统时,力图做到能使其真正的实用和方便。这就要求利用面向对象技术的开发方法结合原型法和结构化开发方法来编写整个管理信息系统。2.1.3系统设计及功能一切办公全部电脑化,而且打印出符合教务要求的报表,能够应用到实际应用中。系统开发的总体任务就是要实现学生信息关系的系统化、规范化,自动化,实现作业的迅速性。 系统功能分析是在系统开发的总体任务的基础上完成的。这次设计中的班级管理系统需要完成的功能主要有: (1)有关各种信息的录入,包括学生学号,专业信息以及家庭住址等基本信息。(2)能录入每学期所学课程、录入学生基本情况以及学生各种信息的添加、查询、修改及删除操作。(3)可以查看学生的信息,也可以对相关的学生信息进行查询。2.2详细设计2.2.1系统的功能图根据本次课程设计的目的和以上的问题描述,把该班级管理系统分为五个模块: 录入模块(StudentSituation)、查询模块(Inques) 、删除模块(Delete)和修改模 块(ModifySituation)、添加模块(AddItem)。各个模块包括对学生学号、姓名、所学专业、家庭住址、出生日期等信息的操作。系统的功能图如图1所示:班级管理系统查询添加删除修改图1 系统的功能图2.2.2 系统主要类定义系统的结构图由于在本班级管理系统中各个模块操作的变量和方法大体相同,在程序中,查询模块(Inques) 、删除模块(Delete)、添加模块(AddItem)和修改模块 (ModifySituation)所操作的变量都是学生的学号,姓名,性别,所学专业,家庭住 址以及出生年月等,所以把这四个模块都定义为主类(Student)的子类。类之间的主要关系如2图所示:Student(主类)DeleteInquestModiifyAddItem图2 类之间的关系图各主类的主要作用如下:(1)Student.java该java文件的类负责创建班级学生管理系统的主窗口。该类包含 main方法main方法是程序执行的入口,即程序从该类开始执行。 (2)AddItem.java该文件的类负责创建班级学生管理系统的学生信息添加界面。 (3)Modify.java该文件的类负责创建班级学生管理系统的学生基本信息修改界面。 (4)Inquest.java该文件的类负责创建班级学生管理系统的学生基本信息查询界面。 (5)Delete.java该文件的类负责创建班级学生管理系统的学生信息删除界面。 2.2.3系统数据流程图系统数据流程图如图3所示:班级信息管理系统管理员添加数据修改数据查询数据删除数据图3 系统数据流程图2.2.4 主类Student.java类该java文件是整个系统的主类,起到支柱作用。该类包含main方法,main方法是程序执行的入口,即程序从该类开始执行。在该主类Student.java所包含的主要方法和主要成员变量如表1和表2所示:表1 主要方法名称功能备注Student创建程序主窗口构造方法actionPerformed处理ActionEvent事件接口事件main系统主方法,程序开始行主方法入口表2 主要成员变量成员变量描述变量类型变量名称基本信息添加界面AddItem基本信息添加基本信息修改界面Modify基本信息修改基本信息查询界面Inquest基本信息查询基本信息删除界面Delete基本信息删除主界面选项JMenu添加,修改,查询,删除2.2.5添加界面AddItem.java类该java类负责学生管理系统的学生信息的添加。该界面包括对学生学号,姓名,专业信息,家庭住址的录入,该类的主要成员变量和主要方法如表3和表4所示: 表3 主要成员变量属性描述变量类型变量名称学生基本信息的文本JTextField学号,姓名,所学专业等表4 主要方法定义名称功能备注actionPerformed处理ActionEvent件接口方法2.2.6修改界面Modify.java类该java类负责班级学生管理系统的学生基本信息的修改,在该类中可以对各个成员变量进行修改,可以修改学生学号,姓名,所学专业,家庭住址。主要的成员变量如表5所示,主要方法如表6所示:表5 主要成员变量描述变量类型变量名称输入学生基本信息的文本条JTextField学号,姓名,所学专业等表6 主要方法名称功能备注Modify创建学生信息修改界面构造方法actionPerform处理ActionEvent事件接口方法2.2.7查询界面Inquest.java类该java类负责班级学生管理系统的学生基本信息的查询,在该类中所操作的数据成员变量与录入界面相同,也包括学生学号,姓名,所学专业,家庭住址。在该类中定义了一个构造方法创建查询界面(Inquest),和一个接口方法(actionPerformed)该类的主要成员变量和主要方法如表7和表8所示:表7 主要成员变量属性描述变量类型变量名称显示学生基本信息文本JTextField学号,姓名,所学专业等 表8 主要方法定义名称功能备注Inquest创建查询界面构造方法actionPerformed处理ActionEvent事件接口方法在该类的方法实现中主要通过一组条件判断语句实现, 查询模块可按如图4所示的程序流程图进行:输入查询信息接收查询信息查找存在?输出所查找的信息你所查找的用户不存在N图4 查询模块流程图2.2.8 删除界面Delete.java类该java类负责班级学生管理系统的学生信息的删除。当用户要删除某一个学生的信息时,输入要删除的学生学号,这时系统会提示用户是否要删除所选择的学生信息,删除后在学生信息表中会删除该学生的记录。在该类中定义的主要成员变量和主要方法如表9和表10所示:表9 主要成员变量描述变量类型变量名称显示学生基本信息的文本条JTextField学号,姓名,所学专业等表10 主要方法名称功能备注Delete创建学生信息删除界面构造方法actionPerformed处理ActionEvent接口方法2.2.9 学生对象Stu.java类 因为java编程语言是面向对象的语言,所以必须把学生共同拥有的属性和方法封装在同一个类里。Stu.java类封装了学生的基本信息,可以通过此类创建的对象来描述每个学生的各种信息资料。在该类中所定义的主要成员变量如表11所示:表11 主要成员变量描述变量类型变量名称学号StringID姓名StringName所学专业StringMajor家庭住址StringAddress性别StringSex3.设计结果与分析根据以上所述的程序分析,编写代码并运行。由于java程序对各变量的大小写要求比较严格,所以在程序调试阶段花了不少时间,而且程序的运行环境为JDK1.4.2,图形界面的输出要编写大量的代码实现。如果在编程环境为JBuilder,可能会比较简洁一点。(1)程序运行的主要界面如5所示:图5 程序运行的主要界面(2)录入窗口界面系统主窗口进入主界面窗口后,点击“录入学生基本信息”下拉菜单项,填写完学生基本 信息点击录入,在弹出的对话框中选择“是” ,这样用户就可以录入学生的基本 信息。具体功能演示如下图6所示:图6录入学生基本信息(3)学生信息删除界面同样,当用户想要删除某个学生的基本信息时,也只需输入待删除学生的学号,点击 “删除” 在弹出的对话框中点击确定,即可完成对学生基本信息的删除操作。程序运行界面如图7所示:图7学生信息删除界面确认删除信息,如图8所示:图8确认删除(4)学生信息查询界面 当用户想要查询某个学生的基本信息时,只需要在查询界面中输入待查询学 生的学号,点击“查询”即可查询到学生的基本信息。具体功能图如图9所示:图9 学生信息查询界面(5)当用户想要修改某一学生的基本信息时, 输入待修改学生的学号, 点击开始修改,即可对学生信息中的任意一项进行修改。当修改完成时,点击录入修改。 在如图10所示的对话框中选择“确定” ,即可完成对学生信息的修改。图10 修改学生信息通过上述过程的设计思想和详细设置,在调试程序时遇到了不少问题,正应了那句编程的老话,程序不是编出来的,而是一步一步调出来的,根据编译结果的提示,一步一步将其改正,最终程序运行正常,与预想的结果相比还有些不尽人意的地方,但是基本框架及各个部件所实现的功能已经达到预定要求,完全的实现了对学生各种信息的输入、删除、修改、查找等基本功能,已经满足要求,如在仔细修改,可以达到更好的效果。4.设计体会课程设计是培养学生综合运用所学知识,发现提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学生来说掌握计算机开发技术是十分重要的。经过一个星期的上机实践学习,使我对java编程语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,回顾起此次课程设计,至今我仍感慨颇多,的确,从理论到实践,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到了许多问题,都是自己平时没有好好听课复习所造成的,但是在老师和同学的帮助下,终于解决了问题,还有就是在程序运行的时候出现的一些小的程序问题,经过同学的帮助修改,终于可以运行了,看着自己劳动的成果,真的很高兴,这门课没有白学。通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习java这种编程语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。5.参考文献1张思民,梁维娜.Java程序设计实践教程M.北京:清华大学出版社,2006.8:27-302宛延周. Java编程技巧M. 机械工业出版社,2005.1:43-513张杰. Java进阶教程M. 机械工业出版社,2004.9:54-604 郭雪妍. Java语言程序设计M. 机械工业出版社,2003.6:67-805赵文靖. Java程序设计基础与上机指导M, 第2版. 北京: 电子工业出版社, 2003.4:305-3506 赵祖荫. Java程序设计实例教程 M,第1 版. 北京:清华大学出版社2004.9:95-181附录:import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class AddItem extends JPanel implements ActionListener Hashtable 基本信息表=null; JTextField 学号,姓名,所学专业,家庭住址; JRadioButton 男,女; AddItem 学生=null; ButtonGroup group=null; JButton 录入,重置; FileInputStream inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; File file=null; public AddItem (File file) 学号=new JTextField(10); 姓名=new JTextField(10); 所学专业=new JTextField(10); 家庭住址=new JTextField(10); 男=new JRadioButton(男,true); 女=new JRadioButton(女,false);group.add(男); group.add(女); 录入=new JButton(录入); 重置=new JButton(重置); 录入.addActionListener(this);重置.addActionListener(this); Box box1=Box.createHorizontalBox(); box1.add(new JLabel(学号:,JLabel.CENTER); box1.add(学号); Box box2=Box.createHorizontalBox(); box2.add(new JLabel(姓名:,JLabel.CENTER); box2.add(姓名); Box box3=Box.createHorizontalBox(); box3.add(new JLabel(性别:,JLabel.CENTER); box3.add(男); box3.add(女); Box box4=Box.createHorizontalBox(); box4.add(new JLabel(所学专业:,JLabel.CENTER); box4.add(所学专业); Box box5=Box.createHorizontalBox(); Box boxH=Box.createVerticalBox(); boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box4); boxH.add(box5); boxH.add(box6); boxH.add(Box.createVerticalGlue(); JPanel pCenter=new JPanel(); pCenter.add(boxH); setLayout(new BorderLayout(); add(pCenter,BorderLayout.CENTER); JPanel pSouth=new JPanel(); pSouth.add(录入); pSouth.add(重置);add(pSouth,BorderLayout.SOUTH); validate(); public void actionPerformed(ActionEvent e) if(e.getSource()=录入) String ID=; ID=学号.getText();if(ID.length()0) try inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); catch(Exception e)if(基本信息表.containsKey(number) String warning=该生基本信息已存在,请到修改页面修改!; JOptionPane.showMessageDialog(this,warning,”警告”)import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Modify extends JPanel implements ActionListener Hashtable 基本信息表=null; JTextField 学号,姓名,所学专业,家庭住址; JRadioButton 男,女; ButtonGroup group=null; JButton 开始修改,录入修改,重置; FileInputStream inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; File file=null; public Modify(File file) this.file=file; 学号=new JTextField(10); 姓名=new JTextField(10); 所学专业=new JTextField(10); 家庭住址=new JTextField(10); 出生=new JTextField(10); group=new ButtonGroup(); 男=new JRadioButton(男,true); 女=new JRadioButton(女,false); group.add(男); group.add(女); 开始修改=new JButton(开始修改); 录入修改=new JButton(录入修改); 录入修改.setEnabled(false); 重置=new JButton(重置); 学号.addActionListener(this); 开始修改.addActionListener(this);录入修改.addActionListener(this);重置.addActionListener(this);Box box1=Box.createHorizontalBox(); box1.add(new JLabel(输入要修改信息的学号:,JLabel.CENTER); box1.add(学号); box1.add(开始修改); Box box2=Box.createHorizontalBox(); box2.add(new JLabel(新)姓名:,JLabel.CENTER);box2.add(姓名); Box box3=Box.createHorizontalBox(); box3.add(new JLabel(新)性别:,JLabel.CENTER); box3.add(男); box3.add(女); Box box4=Box.createHorizontalBox(); box4.add(new JLabel(新)所学专业:,JLabel.CENTER); box4.add(所学专业); Box box5=Box.createHorizontalBox(); box5.add(new JLabel(新)家庭住址:,JLabel.CENTER); box5.add(家庭住址);public void actionPerformed(ActionEvent e) if(e.getSource()=开始修改|e.getSource()=学号) String number=; ID=学号.getText(); if(ID.length()0) try inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE); 录入修改.setEnabled(false); if(e.getSource()=重置) 学号.setText(null); 姓名.setText(null); 所学专业.setText(null); 家庭住址.setText(null); import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Delete extends JPanel implements ActionListener Hashtable 基本信息表=null; JTextField 学号,姓名,所学专业,家庭住址; JRadioButton 男,女; JButton 删除;ButtonGroup group=null;FileInputStream inOne=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; File file=null; public Delete(File file) this.file=file; 学号=new JTextField(10); 删除=new JButton(删除); 学号.addActionListener(this);删除.addActionListener(this); 姓名=new JTextField(10); 姓名.setEditable(false); 所学专业=new JTextField(10); 所学专业.setEditable(false); 家庭住址=new JTextField(10); 家庭住址.setEditable(false);男=new JRadioButton(男,false); 女=new JRadioButton(女,false);public void actionPerformed(ActionEvent e) if(e.getSource()=删除|e.getSource()=学号) String number=; ID=学号.getText();public void actionPerformed(ActionEvent e) if(e.getSource()=开始修改|e.getSource()=学号) String ID=; ID=学号.getText(); if(ID.length()0) try inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); catch(Exception ee) if(基本信息表.containsKey(number) 录入修改.setEnabled(true); Stu stu=(Stu)基本信息表.get(number); 姓名.setText(stu.getName(); 所学专业.setText(stu.getDisciping(); 家庭住址.setText(stu.getGrade(); if(stu.getSex().equals(男) 男.setSelected(true); else 女.setSelected(true); import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Inquest extends JDialog implements ActionListener Hashtable 基本信息表=null; JTextField 学号,姓名,所学专业,家庭住址; JRadioButton 男,女;JButton 查询;ButtonGroup group=null; FileInputStream inOne=null; ObjectInputStream inTwo=null; File file=null; public Inquest(JFrame f,File file) super(f,查询对话框,false); this.file=file;学号=new JTextField(10); 查询=new JButton(查询); 学号.addActionListener(this); 查询.addActionListener(this); 姓名=new JTextField(10); 姓名.setEditable(false); 所学专业=new JTextField(10); 所学专业.setEditable(false); 家庭住址=new JTextField(10); 家庭住址.setEditable(false); 男=new JRadioButton(男,false); 女=new JRadioButton(女,false);group=new ButtonGroup(); group.add(男);public void actionPerformed(ActionEvent e) 姓名.setText(null); 所学专业.setText(null); 家庭住址.setText(null); if(e.getSource()=查询|e.getSource()=学号) String ID=; ID=学号.getText(); if(number.length()0) try inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); catch(Exception e) if(基本信息表.containsKey(number) Stu stu=(Stu)基本信息表.get(number); 姓名.setText(stu.getName();所学专业.setText(stu.getDisciping(); 家庭住址.setText(stu.getGrade(); String warning=该学号不存在!; String warning=必须要输入学号!; JOptionPane.showMessageDialog(this,warni,“警告,JOptionPane.WARNING_MESSAGE); import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.Hashtable;public class Student extends JFrame implements ActionListener AddItem 基本信息录入=null; Modify 基本信息修改=null; Inquest 基本信息查询=null; Delete 基本信息删除=null; JMenuBar bar; JMenu fileMenu; JMenuItem 录入,修改,查询,删除,退出; Container con=null; Hashtable 基本信息=null; File file=null; CardLayout card=null; JLabel label; JPanel pCenter; public Student() setTitle(欢迎进入管理系统); 录入=new JMenuItem(录入学生基本信息); 修改=new JMenuItem(修改学生基本信息); 查询=new JMenuItem(查询学生基本信息); 删除=new JMenuItem(删除学生基本信息); 退出=new JMenuItem(退出本系统);退出.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床护理技能竞赛竞赛流程
- 护理实践操作视频教学
- 护理实践中的护理咨询与健康管理
- 压疮护理中的心理支持
- 护理护理科学学进展
- 护理服务质量管理与改进
- 企业排污许可证申请
- 幼儿园活动心得体会范文
- 护理工作压力管理:应对工作压力
- 休克患者的液体管理新技巧
- 三级安全教育切割作业测试试题附答案
- 2026年中级注册安全工程师《其他安全实务》能力检测及参考答案详解(模拟题)
- 叉车充电安全须知培训课件
- 医院投诉处理流程标准化手册
- 2026云南昆明巫家坝建设发展有限责任公司校园招聘15人备考题库及答案详解(网校专用)
- 2025-2026学年黑龙江省齐齐哈尔市建华区八年级(上)期末英语试卷(含答案)
- 2026年护理安全警示教育与质量提升实践
- 兽药GMP基本知识培训
- 特色小镇文化旅游产业开发项目2025年文化创意产业融合与技术创新可行性分析报告
- 民航企安全管理人员培训班考试题及答案
- 土地安置协议书
评论
0/150
提交评论