




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JAVA 技术大作业 院 (系) 电气与信息工程学院 专业班级 计算机科学与技术 09-02 学生姓名 桂 林 学号 2008441106 成绩 2011 年 08 月 31 日 摘要 随着高校的扩招,大学生的数量也不断的在增加,传统的“一支笔,一本通 讯录”的学籍管理方式也慢慢的无法适应形势的变化。随着信息技术的发展,计 算机已被广泛的用于社会的各个领域,成为推动社会发展的技术动力。而在计算 机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信 息产品的开发和信息技术市场的进一步的开拓。软件产业已成为社会信息化进程 中的一个战略性产业。在软件技术的应用中软件的开发技术尤其是
2、应用型软件产 品的开发技术成了重中之重。不断开发适应用户需求、市场需要的新型软件产品。 随着社会的发展,软件也在不断的更新换代。 由于有些学校里对学生的成绩、入学、毕业等的一些繁琐处理都是通过手工 进行记载并进行处理的,对学生数据的处理工作量特别大,不仅浪费大量的人力 物力,而且还很容易出错。如果有这样一套完整的学籍管理软件,只需点击几下 鼠标就可完成所需操作,那样就会大大的提高教师的工作效率和管理水平。并能 进一步提高学校的工作效率并使学校实施规范化管理。 学生学籍管理系统是一个教育单位不可缺少的部分。它的内容对于学校的决 策者和管理者乃至教师和学生来说都至关重要, 所以学生学籍管理系统应该
3、能够 为用户提供充足的信息和快捷的查询手段。一直以来人们使用传统人工的方式管 理学生工作, 这种管理方式存在着许多缺点, 如: 效率低、保密性差, 另外时间 一长, 将产生大量的冗余文件和数据, 这给查找、更新和维护工作都带来了很大 的困难。鉴于学生学籍管理中存在的诸多问题, 我们在此次课程设计中以学生学 籍管理系统为研究课题,对此系统进行了全面的设计。 关键词 查询,学籍管理,学生信息 目 录 摘要 . 目 录 . 1 设计目的与内容 .1 1.1 课程设计目的 .1 1.2 课程设计内容 .1 2 具体要求 .2 2.1 设计要求 .2 2.2 开发环境 .2 3 总体设计思路 .3 3.
4、1 系统的功能模块划分.3 3.2 系统总体功能框图 .3 4 详细设计 .4 4.1 程序流程图如下.4 4.2 主界面函数的设计.4 4.3 录入界面设计.5 4.5 修改界面和函数的设计.8 4.6 删除界面和函数的设计.12 5 功能调试与测试 .15 5.1 主界面和函数的测试.15 5.2 学生信息的录入测试:.16 5.3 学生信息的查询测试:.16 5.4 修改学生信息的测试:.17 5.5 删除学生信息的测试:.18 6 总结 .19 致谢 .20 参考文献 .21 附源程序 .23 1 设计目的与内容 1.1 课程设计目的 通过设计图形用户界面的学籍管理系统,提高学生 Ja
5、va 语言的综合运用。 Java 语言是从事软件开发的一门必修的专业基础课,这次的课程设计目的将 Java 的知识点系统的结合起来,理解并加深对教师所授内容的理解和掌握,掌 握其开发技巧,为以后从事 Java 程序开发打下基础。 1.2 课程设计内容 “录入学生基本信息功能的界面。用户可以通过菜单选项让程序呈现“录 入学生基本信息”功能的界面,通过该界面可以录入学生的学号、姓名、性别、 出生日期、专业和照片等信息。 修改学生基本信息功能的界面。用户可以通过菜单选项让程序呈现“修改 学生基本信息”功能的界面,通过该界面可以对已录入的学生信息进行修改。 查询学生基本信息功能的界面。用户可以通过菜单
6、选项让程序呈现“查询 与打印学生基本信息”功能的界面,通过该界面可以对已录入的学生信息进行 查询。 删除学生基本信息功能的界面。用户可以通过菜单选项让程序呈现“删除 学生基本信息”功能的界面,通过该界面可以删除已录入的学生信息。 2 具体要求 2.1 设计要求 要求设计出图形用户界面学籍管理系统,实现学生信息的录入、查询、修 改、删除等。 界面要求: a.尽量使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。 b.若无法实现图形界面,则在命令行方式下也需要提供菜单,方便用户 操作。 其他要求: a. 标识符命名遵循 Windows 命名规范。 b. 能够注意各种异常处理,注重提高程序运
7、行效率。 2.2 开发环境 NetBeans IDE 6.8 并装有 Jdk 的计算机。 3 总体设计思路 3.1 系统的功能模块划分 通过“public class StudentManager extends JFrame implements ActionListener”此类来生成学籍管理系统的主界面再通过函数 public void actionPerformed(ActionEvent e)来实现对各个类得调用。如:调用 StudentSituation 类来完成对基本信息录入;调用 ModifySituation 类来完成对学 生基本信息修改;调用 Inquest 类来完成对学生
8、基本信息查询;调用 Delete 类来 完成对学生基本信息删除。 3.2 系统总体功能框图 学籍管理系统 录入系统修改系统删除系统查询系统 3-1 学籍管理系统功能总框图 4 详细设计 4.1 程序流程图如下 登录 主界面函数 菜单选择函数 b) 结束 删除 修改 查询 录入 录入界面 查询界面 修改界面 删除界面 主界面函数 4.2 主界面函数的设计 主界面主要是用来调用程序中的给个类来实现对学生信息的管理和一个欢 迎界面的设计以及菜单项的内容。 主界面主要是通过 StudentManager.StudentManager()函数来实现一个欢迎界 面和菜单选项(包括录入学生基本信息、修改学生
9、基本信息、查询学生基本信 息、删除学生基本信息) ,然后再通过 StudentManager.actionPerformed(ActionEvent)函数来实现对各个类得调用从而实 现对信息的录入、修改、查询、删除等事件的处理。 4.3 录入界面设计 录入信息的界面主要是通过 StudentSituation 类来实现的。其中通过函数 StudentSituation.StudentSituation(File)来实现界面的内容。通过函数 StudentSituation.actionPerformed(ActionEvent)来实现具体内容的录入。具 体设计如下: public void a
10、ctionPerformed(ActionEvent e) if(e.getSource()=录入) String number=; number=学号.getText(); if(number.length()0) try inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); catch(Exception ee) if(基本信息表.containsKey(number) St
11、ring warning=该生基本信息已存在,请到修改页面修 改!; JOptionPane.showMessageDialog(this,warning,警 告,JOptionPane.WARNING_MESSAGE); else String m=基本信息将被录入!; int ok=JOptionPane.showConfirmDialog(this,m, 确认,JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE); if(ok=JOptionPane.YES_OPTION) String name=姓名.getText()
12、; String discipling=专业.getText(); String grade=年级.getText(); String borth=出生.getText(); String sex=null; if(男.isSelected() sex=男.getText(); else sex=女.getText(); 学生=new Student(); 学生.setNumber(number); 学生.setName(name); 学生.setDiscipling(discipling); 学生.setGrade(grade); 学生.setBorth(borth); 学生.setSex(
13、sex); try outOne=new FileOutputStream(file); outTwo=new ObjectOutputStream(outOne); 基本信息表.put(number,学生); outTwo.writeObject(基本信息表); outTwo.close(); outOne.close(); 学号.setText(null); 姓名.setText(null); 专业.setText(null); 年级.setText(null); 出生.setText(null); catch(Exception ee) System.out.println(ee); e
14、lse String warning=必须要输入学号!; JOptionPane.showMessageDialog(this,warning,警告 ,JOptionPane.WARNING_MESSAGE); if(e.getSource()=重置) 学号.setText(null); 姓名.setText(null); 专业.setText(null); 年级.setText(null); 出生.setText(null); 4.4.4 查询界面函数的设计 查询信息的界面主要是通过 Inquest 类来实现的。其中通过函数 Inquest.Inquest(JFrame, File)来实现界
15、面的设计和外观。通过函数 Inquest.actionPerformed(ActionEvent)来实现具体信息的输出。输出信息具 体设计如下: public void actionPerformed(ActionEvent e) 姓名.setText(null); 专业.setText(null); 年级.setText(null); 出生.setText(null); if(e.getSource()=查询|e.getSource()=学号) String number=; number=学号.getText(); if(number.length()0) try inOne=new Fi
16、leInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); catch(Exception ee) if(基本信息表.containsKey(number) Student stu=(Student)基本信息表.get(number); 姓名.setText(stu.getName(); 专业.setText(stu.getDisciping(); 年级.setText(stu.getGrade(); 出生.
17、setText(stu.getBorth(); if(stu.getSex().equals(男) 男.setSelected(true); else 女.setSelected(true); else String warning=该学号不存在!; JOptionPane.showMessageDialog(this,warning,警 告,JOptionPane.WARNING_MESSAGE); else String warning=必须要输入学号!; JOptionPane.showMessageDialog(this,warning,警告 ,JOptionPane.WARNING_
18、MESSAGE); 4.5 修改界面和函数的设计 修改信息的界面主要是通过 ModifySituation 类来实现的。其中通过函数 ModifySituation.ModifySituation(File)来实现界面的设计和外观。通过函数 ModifySituation.actionPerformed(ActionEvent)来实现具体信息的修改和保 存。信息修改的具体设计如下: public void actionPerformed(ActionEvent e) if(e.getSource()=开始修改|e.getSource()=学号) String number=; number=学
19、号.getText(); if(number.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); Student stu=(Student)基本信息表.get(number); 姓名.setText(stu
20、.getName(); 专业.setText(stu.getDisciping(); 年级.setText(stu.getGrade(); 出生.setText(stu.getBorth(); if(stu.getSex().equals(男) 男.setSelected(true); else 女.setSelected(true); else 录入修改.setEnabled(false); String warning=该学号不存在!; JOptionPane.showMessageDialog(this,warning,警 告,JOptionPane.WARNING_MESSAGE);
21、学号.setText(null); 姓名.setText(null); 专业.setText(null); 年级.setText(null); 出生.setText(null); else 录入修改.setEnabled(false); String warning=必须要输入学号!; JOptionPane.showMessageDialog(this,warning,警告 ,JOptionPane.WARNING_MESSAGE); 学号.setText(null); 姓名.setText(null); 专业.setText(null); 年级.setText(null); 出生.setT
22、ext(null); else if(e.getSource()=录入修改) String number=; number=学号.getText(); if(number.length()0) try inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); catch(Exception ee) if(基本信息表.containsKey(number) String questio
23、n=该生基本信息已存在,您想修改他 (她)的基本信息吗?; JOptionPane.showMessageDialog(this,question,警 告,JOptionPane.QUESTION_MESSAGE); String m=基本信息将被修改!; int ok=JOptionPane.showConfirmDialog(this,m,确 认,JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE); if(ok=JOptionPane.YES_OPTION) String name=姓名.getText(); String
24、 discipling=专业.getText(); String grade=年级.getText(); String borth=出生.getText(); String sex=null; if(男.isSelected() sex=男.getText(); else sex=女.getText(); Student 学生=new Student(); 学生.setNumber(number); 学生.setName(name); 学生.setDiscipling(discipling); 学生.setGrade(grade); 学生.setBorth(borth); 学生.setSex(
25、sex); try outOne=new FileOutputStream(file); outTwo=new ObjectOutputStream(outOne); 基本信息表.put(number,学生); outTwo.writeObject(基本信息表); outTwo.close(); outOne.close(); 学号.setText(null); 姓名.setText(null); 专业.setText(null); 年级.setText(null); 出生.setText(null); catch(Exception ee) System.out.println(ee); 录
26、入修改.setEnabled(false); else if(ok=JOptionPane.NO_OPTION) 录入修改.setEnabled(true); else String warning=该学号没有基本信息,不能修改!; JOptionPane.showMessageDialog(this,warning,警告 ,JOptionPane.WARNING_MESSAGE); 录入修改.setEnabled(false); else String warning=必须要输入学号!; JOptionPane.showMessageDialog(this,warning,警告 ,JOpti
27、onPane.WARNING_MESSAGE); 录入修改.setEnabled(false); if(e.getSource()=重置) 学号.setText(null); 姓名.setText(null); 专业.setText(null); 年级.setText(null); 出生.setText(null); 4.6 删除界面和函数的设计 删除信息的界面主要是通过 Delete 类来实现的。其中通过函数 Delete.Delete(File)来实现界面的设计和外观。通过函数 Delete.actionPerformed(ActionEvent)来实现具体数据的删除和管理。信息删 除的具
28、体设计如下: public void actionPerformed(ActionEvent e) if(e.getSource()=删除|e.getSource()=学号) String number=; number=学号.getText(); if(number.length()0) try inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); catch(Exceptio
29、n ee) if(基本信息表.containsKey(number) Student stu=(Student)基本信息表.get(number); 姓名.setText(stu.getName(); 专业.setText(stu.getDisciping(); 年级.setText(stu.getGrade(); 出生.setText(stu.getBorth(); if(stu.getSex().equals(男) 男.setSelected(true); else 女.setSelected(true); String m=确定要删除该学号及全部信息吗?; int ok=JOptionP
30、ane.showConfirmDialog(this,m,确 认,JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if(ok=JOptionPane.YES_OPTION) 基本信息表.remove(number); try outOne=new FileOutputStream(file); outTwo=new ObjectOutputStream(outOne); outTwo.writeObject(基本信息表); outTwo.close(); outOne.close(); 学号.setText(null); 姓名
31、.setText(null); 专业.setText(null); 年级.setText(null); 出生.setText(null); catch(Exception ee) System.out.println(ee); else if(ok=JOptionPane.NO_OPTION) 学号.setText(null); 姓名.setText(null); 专业.setText(null); 年级.setText(null); 出生.setText(null); else String warning=该学号不存在!; JOptionPane.showMessageDialog(thi
32、s,warning,警 告,JOptionPane.WARNING_MESSAGE); else String warning=必须要输入学号!; JOptionPane.showMessageDialog(this,warning,警告 ,JOptionPane.WARNING_MESSAGE); 5 功能调试与测试 5.1 主界面和函数的测试: 图 5.1 主界面函数 5.2 学生信息的录入测试: 图 5.2 录入学生信息 5.3 学生信息的查询测试: 图 5.3 查询信息 5.4 修改学生信息的测试: 图 5.4 修改信息 5.5 删除学生信息的测试: 图 5.5 删除信息 6 总结 这
33、次的课程设计主要有以下几点心得 (1)确定课题后,先将熟悉该课程主要设计的主要目的,熟读设计要求。 (2)编写程序之前首先要进行总体设计,确定该设计需要由哪几部分组成, 并确定各部分的功能,确定主类。 (3)分析完成之后画出程序流程图,并开始编写程序。在编写程序的过程中 要注意不能将关键字打错,这样的错误不容易查出。 (4)在程序打包时要先给电脑安装 Jdk,若不安装,则在 Dos 环境下会出现 找不到源文件的提示。 这次的课程设计不仅仅巩固了 java 的知识,也让我对编程的步骤有了新的 理解,以前总是先看程序,再理清各部分之间的关系,最后才会画出程序流程 图,这次的课程设计纠正了以前的错误
34、,也为以后编写 java 程序奠定了一定 的基础。 致谢 首先要感谢同学的帮忙,在他们的帮助下我才能完成这次课程设计。在这 次课程设计中我遇到了很多困难,在遇到这些困难的时候,我觉得很烦,有点 想放弃。但我们宿舍的人安慰我说:“加油,努力就一定能完成的。 ”在他们的 鼓励下,我又重新鼓起勇气,继续做下去,所以我要感谢我们宿舍的舍友。在 完成程序的过程中难免会出现好多问题,俗话说:“当局者迷,旁观者清” 。我 总是发现不了自己的错误,然后我就会让同学帮我看看。最后在同学的帮助下 终于把程序做出来了。我对他们深表感谢。我要感谢我们指导老师,他给我提 出了许多宝贵的指导。在他的帮助下我可以把它搞得更
35、加完美。在这里我感谢 每一个帮助过我的人,感谢他们对我的帮助。同时我还要感谢学校给我们提供 优良的上机环境,让我们能够在良好的环境下完成本次课程设计。 参考文献 1耿祥义,张跃平.Java2 实用教程(第三版)M . 北京:清华大学出版社, 2006 2耿祥义.Java 课程设计(第二版)M . 北京:清华大学出版社,2004 3张跃平.Java2 实用教程实验指导与习题解答(第二版)M. 北京:清华大 学出版社,2004 附源程序 /*主界面的设计*/ import java.awt.*; import java.awt.event.*; import javax.swing.*; impo
36、rt java.io.*; import java.util.Hashtable; public class StudentManager extends JFrame implements ActionListener StudentSituation 基本信息录入=null; ModifySituation 基本信息修改=null; Inquest 基本信息查询=null; Delete 基本信息删除=null; JMenuBar bar; JMenu fileMenu; JMenuItem 录入,修改,查询,删除; Container con=null; Hashtable 基本信息=n
37、ull; File file=null; CardLayout card=null; JLabel label=null; JPanel pCenter; public StudentManager() setTitle(学籍管理系统); 录入=new JMenuItem(录入学生基本信息); 修改=new JMenuItem(修改学生基本信息); 查询=new JMenuItem(查询学生基本信息); 删除=new JMenuItem(删除学生基本信息); bar=new JMenuBar(); fileMenu=new JMenu(菜单选项); fileMenu.add(录入); file
38、Menu.add(修改); fileMenu.add(查询); fileMenu.add(删除); bar.add(fileMenu); setJMenuBar(bar); label=new JLabel(欢迎使用学籍管理系统,JLabel.CENTER); label.setFont(new Font(TimesRoman,Font.BOLD,24); label.setForeground(Color.red); 基本信息=new Hashtable(); 录入.addActionListener(this); 修改.addActionListener(this); 查询.addActi
39、onListener(this); 删除.addActionListener(this); card=new CardLayout(); con=getContentPane(); pCenter=new JPanel(); pCenter.setLayout(card); pCenter.setBackground(Color.green); file=new File(基本信息.txt); if(!file.exists() try FileOutputStream out=new FileOutputStream(file); ObjectOutputStream objectOut=n
40、ew ObjectOutputStream(out); objectOut.writeObject(基本信息); objectOut.close(); out.close(); catch(IOException e) 基本信息录入=new StudentSituation(file); 基本信息修改=new ModifySituation(file); 基本信息查询=new Inquest(this,file); 基本信息删除=new Delete(file); pCenter.add(欢迎语界面,label); pCenter.add(录入界面,基本信息录入); pCenter.add(修改界面,基本信息修改); pCenter.add(删除界面,基本信息删除); con.add(pCenter,BorderLayout.CENTER); con.validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); setVisible(true); setBounds(100,50,420,380); va
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陶瓷鉴赏题目及答案
- 其他收入管理办法
- 养狗管理办法实施
- 兽医经营管理办法
- 内控管理办法银行
- 内部师资管理办法
- 军事用海管理办法
- 军工项目管理办法
- 军队转业管理办法
- 农场预算管理办法
- 卷烟真伪鉴别知识
- 2022年百色市右江区辅警考试试卷真题
- 药理学绪论-课件
- JGJ106-2014 建筑基桩检测技术规范
- 2022年06月辽宁经济管理干部学院(辽宁经济职业技术学院)公开招聘高层次人才笔试题库含答案解析
- 电脑基础知识培训ppt课件-电脑基础知识培训课件
- 龙湖集团招标管理原则
- 近亲属任职情况申报表
- GB/T 9124.1-2019钢制管法兰第1部分:PN系列
- GB/T 6433-2006饲料中粗脂肪的测定
- GB/T 20145-2006灯和灯系统的光生物安全性
评论
0/150
提交评论