




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计面向对象程序设计课程设计报告课程设计报告 题题 目:目:*课程设计课程设计 学学 院:院: 信息工程学院信息工程学院 姓姓 名:名: * * * 学学 号:号: * * 专专 业:业: 计算科学与技术计算科学与技术 班班 级:级: * 指导教师:指导教师: * 2015 年年 12 月月 目 录 目 录.1 摘 要.2 1.引 言.3 2.设计目的与任务.4 3. 设计方案.5 3.1总体设计.5 3.2开发环境.5 3.3层次图.5 3.4界面预览.5 3.4.1登录界面.5 3.4.2该管理员不存在( 用户名:name 用户密码:psw ).6 3.4.3学生信息管理界面.6 3.4.4填写学生信息.7 3.4.5录入学生信息.7 3.4.6查询学生信息.7 3.4.7修改学生信息.8 3.4.8删除学生信息.8 3.4.9显示所有学生信息.9 4.系统说明.10 5.设计体会与小结.11 6.附 录.12 6.1登录界面源代码 Login.java.12 6.2学生信息管理系统源码 Student.java.14 摘 要 随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增 长。面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。通过这样的 系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减 少管理方面的工作量。目前社会上信息管理系统发展飞快,各个企业事业单位都引入了 信息管理软件来管理自己日益增长的各种信息,学生管理系统也是有了很大的发展,商 业化的学生信息管理软件也不少。 该报告中的程序是简单的学生管理系统,该系统完全独立开发,力求使系统功能简 洁明了,但功能齐全且易于操作。使用 Java 程序编写,能够进行学生信息录入、修改、 查看、删除等操作。该程序主要用到了 Java swing 和事件监听等。 1. 引 言 Java 的前身是 Oak,它一开始只是被应用于消费性电子产品中。后来它的开发 者们发现它还可以被用于更大范围的 Internet 上。1995 年,Java 语言的名字从 Oak 编程了 Java。1997 年 J2SE1.1 发布。1998 年 J2SE1.2 发布,标志 Java2 的诞生。十 多年来,Java 编程语言及平台成功地运用在网络计算及移动等各个领域。Java 的体 系结构由 Java 语言、Java class 组成。它具有简单、面向对象、健壮、安全、结构 中立、可移植和高效能等众多优点。Java 支持多线程编程,Java 运行时系统在多线 程同步方面具有成熟的解决方案。Java 的平台标准有 Java ME,Java SE 和 Java EE。Java 发展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持 Java 的开发工具中主要的 7 有 Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper 和 Eclipse 等。其中 Java Development Kit 简称 JDK 是大多开发工具的基础。以上的每种开发工具都有优缺 点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等 因素来选择一种合适的开发工具。 在本程序设计中,因为需要开发的是学生管理 系统程序,规模较小,内容较少,所以选择了适合初学者使用的 JCreator 开发工具。 2.设计目的与任务 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信 息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决 策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信 息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查 询数据,这种管理方式存在着许多缺点,如:效率低、保密性差,人工的大量浪费;另外 时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随 着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进 入人类社会的各个领域并发挥着来越重要的作用。在计算机网络,数据库和先进的开 发平台上,利用现有的软件、硬件资源,开发一个具有开放体系结构的,易扩充的, 易维护的,具有良好人机交互界面的学生信息管理系统。 这个简单的学生信息管理系统包括以下两个基本功能: 管理员登陆 学生信息管理 本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范 化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改 、 增加、删除,针对这些要求设计了学生管理信息系统。 3.设计方案 3.1 总体设计 本程序要构建的学生管理系统程序其功能有以下几个方面: (1)首先是学生管理系统主界面“管理员登录界面” 。 (2)管理员登录之后的子界面“学生信息管理界面” 。 (3)学生信息管理界面可对学生信息进行填写操作。 (4)学生信息管理界面底端并含有“录入、查询、修改、删除、显示”五个操作按钮。 3.2 开发环境 Windows XP;myeclipse-8.5.0-win32 3.3 层次图 3.4 界面预览 3.4.1登录界面 学生信息管理系统 管理员登陆 学生信息管理 添 加 学 生 信 息 查 询 学 生 信 息 修 改 学 生 信 息 删 除 学 生 信 息 显 示 学 生 信 息 3.4.2该管理员不存在( 用户名:name 用户密码:psw ) 3.4.3学生信息管理界面 3.4.4填写学生信息 3.4.5录入学生信息 3.4.6查询学生信息 3.4.7修改学生信息 3.4.8删除学生信息 3.4.9显示所有学生信息 4.系统说明 1、该系统并未使用数据库,只是把信息存放在了一个新建立的文本文档中。 2、关于管理员信息,必须现在 C 盘建立一个名为 Login 的文本文档,在 Login 中存入用户名 和密码且必须分行写入。 3、若要修改学生信息必须先进行信息的查询,查询后方可进行信息修改。 5.设计体会与小结 通过这次课程设计,我们大家在老师的帮助下收获的不仅仅是课程上的知识得到 实际应用,还有编程的基本习惯和开发系统时应注意的流程。编程是个艰难的过程, 很多功能语句都需要上网或者是查其他书籍来查看他们的用法,课本上的东西对我们 来说远远不够,我们要把目光放长远一些。这次的课程设计使我对 JAVA 的许多东西都 有了更深一步的了解,以前对自己的要求是看得懂就行,现在才发现,光能看懂是远 远不够的,能看懂并不代表你会!课本被翻过很多遍,很多以前不知道的东西就这样豁 然开朗了。 本次 Java 课程设计的锻炼,不仅我们的分析问题跟解决问题的能力都得到明显的 提高,在这次事件过程中收获很多,对我们而言,知识上的收回,尽管遇到了困难, 但还是通过各种途径克服问题。做小小的测试,通过了就很开心,收获颇多,但是知 识还是欠缺,我们会继续努力。 6.附 录 6.1 登录界面源代码 Login.java package aa; import java.awt.event.*; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.*; import java.sql.*; class Login extends JFrame implements ActionListener Container cp=null; String name=null; String psw=null; JFrame f=null; JButton j1,j2; JTextField t1; JPasswordField t2; JLabel jlable1,jlable2; Color c; JPanel jp1,jp2; Login() f=new JFrame(学生管理系统); j1=new JButton(确定); j2=new JButton(取消); cp=f.getContentPane(); jlable1=new JLabel( 输入用户名); jlable2=new JLabel( 用户密码); jp1=new JPanel(); jp2=new JPanel(); t1=new JTextField(18); t2=new JPasswordField(18); jp1.add(jlable1); jp1.add(t1); jp1.add(jlable2); jp1.add(t2); JLabel JL=new JLabel(欢迎进入信 息工程学院管理系统,SwingConstants.CENTER); cp.add(JL,North); jp2.add(j1); jp2.add(j2); cp.add(jp1,Center); cp.add(South,jp2); jp1.setBackground(Color.lightGray); Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize(); int x=screen.width; /*取得显示器窗口的宽度*/ int y=screen.height; /*取得显示器窗口的高度*/ /setSize(x,y);/*让系统窗口平铺整个显示器窗口*/ f.setSize(300,300); int xcenter=(x-300)/2; int ycenter=(y-300)/2; f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f.setVisible(true); /- j1.addActionListener(this);/注册事件监听器 j2.addActionListener(this); f.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); public void confirm() throws IOException/验证用户和密码是否存在 File file =new File(C:/Login.txt); try if(!file.exists() file.createNewFile(); catch (IOException e) e.printStackTrace(); BufferedReader br = new BufferedReader(new FileReader(file); String temp=br.readLine(); String line; while(line=br.readLine()!=null) temp+=,+line; if(temp=null) System.out.println(); else String str=temp.split(,); name=str0; psw=str1; if(t1.getText().trim().equals(name) f.hide(); br.close(); else JOptionPane.showMessageDialog(null,该用户不存在,提示? ,JOptionPane.YES_NO_OPTION); t1.setText(); t2.setText(); public void actionPerformed(ActionEvent e) String cmd=e.getActionCommand(); if(cmd.equals(确定) try confirm(); catch (IOException e1) e1.printStackTrace(); else if(cmd.equals(取消) f.dispose(); public static void main(String args) Login a=new Login(); 6.2 学生信息管理系统源码 Student.java package aa; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*; public class Student implements java.io.Serializable String number,name,specialty,grade,borth,sex; public Student(); public void setNumber(String number)this.number=number; public String getNumber()return number; public void setName(String name)=name; public String getName() return name; public void setSex(String sex)this.sex=sex; public String getSex()return sex; public void setSpecialty(String specialty) this.specialty=specialty; public String getSpecialty() return specialty; public void setGrade(String grade)this.grade=grade; public String getGrade()return grade; public void setBorth(String borth)this.borth=borth; public String getBorth() return borth; class Test extends JFrame JLabel lb=new JLabel(录入请先输入记录、查询、删除请先输入学号?修改是对查询+内 容改后的保存?); JTextField 学号,姓名,专业,年级,出生; JRadioButton 男,女; ButtonGroup group=null; JButton 录入,查询,删除,修改,显示; JPanel p1,p2,p3,p4,p5,p6,pv,ph; Student 学生=null; Hashtable 学生散列表=null; File file=null; FileInputStream inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; public Test() super(学生信息管理系统); 学号=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(查询); 删除=new JButton(删除); 修改=new JButton(修改); 显示=new JButton(显示); 录入.addActionListener(new InputAct(); 查询.addActionListener(new InquestAct(); 修改.addActionListener(new ModifyAct(); 删除.addActionListener(new DeleteAct(); 显示.addActionListener(new ShowAct(); 修改.setEnabled(false); p1=new JPanel(); p1.add(new JLabel(学号:,JLabel.CENTER); p1.add(学号); p2=new JPanel(); p2.add(new JLabel(姓名:,JLabel.CENTER); p2.add(姓名); p3=new JPanel(); p3.add(new JLabel(性别:,JLabel.CENTER); p3.add(男); p3.add(女); p4=new JPanel(); p4.add(new JLabel(专业:,JLabel.CENTER); p4.add(专业); p5=new JPanel(); p5.add(new JLabel(年级:,JLabel.CENTER); p5.add(年级); p6=new JPanel(); p6.add(new JLabel(出生:,JLabel.CENTER); p6.add(出生); pv=new JPanel(); pv.setLayout(new GridLayout(6,1); pv.add(p1); pv.add(p2); pv.add(p3); pv.add(p4); pv.add(p5); pv.add(p6); ph=new JPanel(); ph.add(录入); ph.add(查询); ph.add(修改); ph.add(删除); ph.add(显示); file=new File(学生信息.txt); 学生散列表=new Hashtable(); if(!file.exists() try FileOutputStream out=new FileOutputStream(file); ObjectOutputStream objectOut=new ObjectOutputStream(out); objectOut.writeObject(学生散列表); objectOut.close(); out.close(); catch(IOException e) Container con=getContentPane(); con.setLayout(new BorderLayout(); con.add(lb,BorderLayout.NORTH); con.add(pv,BorderLayout.CENTER); con.add(ph,BorderLayout.SOUTH); setDefaultCloseOperation(EXIT_ON_CLOSE); setBounds(100,100,600,300); setVisible(true); public static void main(String args) new Test(); class InputAct implements ActionListener public void actionPerformed(ActionEvent e) 修改.setEnabled(false); 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)System.out.println(创建散列表出现问题?); if(学生散列表.containsKey(number) String warning=该生信息已存在? 请到修改页面修改?; JOptionPane.showMessageDialog(null,warning,警告, JOptionPane.WARNING_MESSAGE); /endif1 else String m=该生信息将被录入?; int ok=JOptionPane.showConfirmDialog(null,m,确认, JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE); if(ok=JOptionPane.YES_OPTION) String name=姓名.getText(); String specialty=专业.getText(); String grade=年级.getText(); String borth=出生.getText(); String sex=null; if(男.isSelected()sex=男.getText(); elsesex=女.getText(); 学生=new Student(); 学生.setNumber(number); 学生.setName(name); 学生.setSpecialty(specialty); 学生.setGrade(grade); 学生.setBorth(borth); 学生.setSex(sex); try outOne=new FileOutputStream(file); outTwo=new ObjectOutputStream(outOne); 学生散列表.put(number,学生); outTwo.writeObject(学生散列表); outTwo.close(); outOne.close(); catch(Exception ee)System.out.println(输出散列表出现问题?); 学号.setText(null); 姓名.setText(null); 专业.setText(null); 年级.setText(null); 出生.setText(null); /end else1 /endif0 else String warning=必须输入学号?; JOptionPane.showMessageDialog(null,warning, 警 告,JOptionPane.WARNING_MESSAGE); /end else0 /end actionPerformed /end class class InquestAct implements ActionListener public void actionPerformed(ActionEvent e) 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)System.out.println(散列表有问题?); if(学生散列表.containsKey(number)修改.setEnabled(true); Student stu=(Student)学生散列表.get(number); 姓名.setText(stu.getName(); 专业.setText(stu.getSpecialty(); 年级.setText(stu.getGrade(); 出生.setText(stu.getBorth(); if(stu.getSex().equals( 男)男.setSelected(true); else女.setSelected(true); else 修改.setEnabled(false); String warning=该学号不存在?; JOptionPane.showMessageDialog(null,warning, 警 告 ,JOptionPane.WARNING_MESSAGE); else 修改.setEnabled(false); String warning=必须输入学号?; JOptionPane.showMessageDialog(null,warning, 警 告 ,JOptionPane.WARNING_MESSAGE); class ModifyAct implements ActionListener public void actionPerformed(ActionEvent e) String number=学号.getText(); String name=姓名.getText(); String specialty=专业.getText(); String grade=年级.getText(); String borth=出生.getText(); String sex=null; if(男.isSelected()sex=男.getText(); elsesex=女.getText(); Student 学生=new Student(); 学生.setNumber(number); 学生.setName(name); 学生.setSpecialty(specialty); 学生.setGrade(grade); 学生.setBorth(borth); 学生.setSex(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(录入修改出现异常!); 修改.setEnabled(false); class DeleteAct implements ActionListener public void actionPerformed(ActionEvent e) 修改.setEnabled(false); String 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) Student stu=(Student)学生散列表.get(number); 姓名.setText(stu.getName(); 专业.setText(stu.getSpecialty(); 年级.setText(stu.getGrade(); 出生.setText(stu.getBorth(); if(stu.getSex().equals( 男)男.setSelected(true); else女.setSelected(true); String m=确定要删除该学生的记录吗?; int ok=JOptionPane.showConfirmDialog(null,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); 姓名.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); 年级.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议书中特定遗产继承权与财产分割协议示范
- 2025年火车焊工考试试题及答案
- 特岗教师计划对农村教育人力资本的影响
- 基于AHP法的金融审计效果评价体系构建
- 音乐产业音乐版权运营与音乐科技创新融合发展的市场竞争力提升策略研究
- 2025年六级数学月考试卷及答案
- DB65T 4410-2021 热泵干制红枣技术规程
- 医学影像技术专业试题及答案
- 中医学转专业试题及答案
- 复试专业英语试题及答案
- 北师大版六年级数学上册《百分数的认识》教学设计
- 2023八年级数学上册 第七章 平行线的证明4 平行线的性质教案 (新版)北师大版
- NB-T32042-2018光伏发电工程建设监理规范
- 博士高校面试答辩模板
- 《国家心力衰竭指南2023》(完整版)解读课件
- 深圳市劳动法律法规参考手册模板
- 在线网课知道知慧《战舰与海战》单元测试答案
- 2017一级建造师考试港口与航道工程实务真题及答案
- 部编小学语文单元作业设计四年级上册第八单元
- 班组长质量管理意识培训
- 陈旭大卫不可以 省赛一等奖
评论
0/150
提交评论