Java程序设计作业.doc_第1页
Java程序设计作业.doc_第2页
Java程序设计作业.doc_第3页
Java程序设计作业.doc_第4页
Java程序设计作业.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

密 号:密 号:密号研究生请勿填写山东理工大学研究生课程考试答 题 纸题号分 数阅卷人123456789101112总分 姓 名 任珈漪 学 号专 业 计算机技术 考 试 科 目 Java语言程序设计 考 试 时 间 2014年12月29日 注意事项1. 以上各项除试卷密号之外必须填写清楚。2. 可正反两面书写。3. 答题字迹要清楚、保持卷面清洁。注意:此半页研究生勿用学生管理系统-阶段项目21、 系统分析本文目的是,设计一个学生管理系统,要求登录后可以实现对学员的增加和查询的功能,并提供良好的操作界面。经过分析系统的需求,抽象出管理员实体、学生实体,从管理员实体中抽象出来的数据有用户名和密码,从学生实体中抽象出来的数据有学生Id,学生姓名,出生日期,电话,地址。本文首先经过分析与查阅资料,确定了基本的设计方案。然后分成四个模块进行逐步设计。主要有创建学生实体、创建管理员实体、设计工具类和界面设计四个部分。第一部分里主要确定学生类和构造方法,以及学生对象的五个属性。第二部分里主要设计管理员类和学生业务类,并将HashMap对象保存到文件,然后实现从文件中读取HashMap对象,在这一部分里同时实现了学生对象的写入、删除、修改等功能设计。第三部分里主要设计工具类,为第四部分界面的实现做准备。第四部分里主要创建登陆界面、主界面、添加界面和显示所有界面的功能。实现由代码到输出显示的过程。整体上来讲,第一和第三部分是为第二和第四部分做准备的。第一部分创建好类,方法,对象之后在第二部分才能对对象进行各种操作,比如写入、删除,第三部分创建好工具类之后在第四部分才能运用工具类实现界面的显示和信息的输出。本文的学生管理系统涉及到的技术点有:1、 I/O流2、 HashMap的使用3、 异常处理4、 Scanner的使用二、模块设计2.1创建学生实体1、首先,按要求将学生Student类,打包在com.handson.stumanager.domain包中。 2、设计学生Student类来存储相应信息。设计一个缺省的和带参数的public Student() 构造函数来获取数据,同时将对象属性“学生编号”,“学生姓名”,“学生生日”,“学生电话”,“电话住址”写成私有private,不打破面向对象的封装特性。3、设计public setter/getter方法。4、为学生类添加toString方法。将字段连成一个字符串然后返回。2.2创建管理员实体 1、将管理员Admin类打包在com.handson.stumanager.domain包中。设计一个登录操作类,命名为LoginBO。 2、设计checkUser行为,接收管理员对象,用if语句验证用户登陆是否成功。如果用户名是admin密码是123456,则返回true否则false。 3、根据I/O流知识,导入调用方法。 4、设计学生操作类。命名为StudentBO。 5、设计一个addStudent行为,接收学生对象,用于把一个已经构建好的学生对象添加到HashMap中。以学生ID为键。如果用户输入的学生ID在studentMap中已经包含,就调用Tool类显示“已经存在”,如果不包含则接收学生对象。这个过程用if,else语句来实现。 6、设计一个delStudent行为,用于删除一个学生对象。用学生ID来判断studentMap中是否包含想要删除的学生ID,若包含则remove,调用Tool工具类来显示“删除成功”,若不包含则显示“指定的学号不存在”。这个过程用if,else语句来实现。 7、设计一个saveStudentMapToFile行为,用于把HashMap对象保存到文件中。并进行异常处理。 8、设计一个displayAllStudent的行为,用于查询HashMap中所有的学生对象。 9、设计一个readStudentMapFromFile行为,用于从文件中读取HashMap对象。并进行异常处理。2.3设计工具类1、将工具类Tools,打包在com.handson.stumanager.tools包中。运用Scanner接受输入值。2、把方法设计成static的,且把之前程序中的打印输出全都换成当前类的方法调用。即Tools类提供重载方法println()和print(),让其接收不同的数据并能打印字符串,数字,布尔值和换行等。2.4界面设计 1、设计一个界面类StuManagerCUI,放在com.handson.stumanager.view包中。用于创建登录界面、主界面、添加界面、显示所有界面。并导入Student、LoginBO、StudentBO、Tool方法。 2、设计登陆验证的方法loginCUI,使用for循环使用户可以有三次登陆机会,若三次均未正确输入用户名和密码就请退出。 3、设计进入主界面方法mainCUI,用while语句在界面上显示“添加学生”,“查看所有学生”,“删除学生”,“修改学生信息”,“退出系统”,“请选择(1-5)”,这个用swich,case语句来完成。 4、设计添加学生信息方法addStudentCUI,使界面上能够显示“学生信息添加界面”,“学号”,“姓名”,“出生日期”,“电话”,“住址”,若用户将信息添加成功要显示“添加成功”。 5、设计删除学生方法deleteStudent,界面上能显示“要删除的学号”。 6、查看学生信息方法。界面上能够显示“查看所有学生信息界面”,也要显示“学号”,“姓名”,“出生日期”,“电话”,“地址”。 7、设计测试类。若smc.loginCUI方法正确,就使用这个方法。 三、系统实现3.1创建学生实体1、创建学生类:package com.handson.stumanager.domain;public class Student implements java.io.Serializable 2、设置对象属性: private int stuId; private String stuName;private String stuBirthday;private String stuPhone;private String stuAddress;public Student() public Student(int stuId, String stuName, String stuBirthday,String stuPhone,String stuAddress) this.stuId = stuId;this.stuName = stuName;this.stuBirthday = stuBirthday;this.stuPhone = stuPhone;this.stuAddress = stuAddress; public int getStuId() return stuId; 3、设计public setter/getter方法:public void setStuId(int stuId) this.stuId = stuId; public String getStuName() return stuName; public void setStuName(String stuName) this.stuName = stuName; public String getStuBirthday() return stuBirthday; public void setStuBirthday(String stuBirthday) this.stuBirthday = stuBirthday; public String getStuPhone() return stuPhone; public void setStuPhone(String stuPhone) this.stuPhone = stuPhone; public String getStuAddress() return stuAddress; public void setStuAddress(String stuAddress) this.stuAddress = stuAddress; 4、学生类的toString方法:String stuStr;public String toString() stuStr = stuId + t + stuName + t + stuBirthday + t + stuPhone + tt + stuAddress;return stuStr; 3.2创建管理员实体 1、设计登陆操作类和checkUser对象:package com.handson.stumanager.servic; public class LoginBO public boolean checkUser(String uid, String pwd) boolean bn = false;/ 如果输入的是正确的用户和密码返回trueif (uid.equals(admin) & pwd.equals(123456) bn = true;return bn;package com.handson.stumanager.servic;2、导入方法:import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.HashMap;import java.util.Set;import com.handson.stumanager.domain.Student;import com.handson.stumanager.tools.Tools;3、/学生业务类public class StudentBO HashMap studentMap;public StudentBO() studentMap = new HashMap();this.readStudentMapFromFile();4、/ 把一个已经构建好的学生对象放入studentMap对象中,以学生ID为键public void addStudent(Student stud) if(studentMap.containsKey(stud.getStuId() Tools.print(已经存在); return; studentMap.put(stud.getStuId(), stud);5、/ 删除一个学生对象public void delStudent(String id) if(studentMap.containsKey(Integer.parseInt(id) studentMap.remove(Integer.parseInt(id);Tools.print(删除成功!); else Tools.print(指定的学号不存在); 6、/修改学生信息public void updateStudent(String id)systerm.out.println(要修改的学生学号);private static Scanner input=new Scanner(system.in); studentID=in.next(); studentMap.put(stud.getStuID(),stud); if(studentMap.containsKey(Integer.parseInt(id); studentMap.put(stud.getStuId(), stud); Tools.print(修改成功!); else Tools.print(指定的学号不存在); 7、/ 把HashMap对象保存到文件中public void saveStudentMapToFile() ObjectOutputStream oos = null;try FileOutputStream fos = new FileOutputStream(student.dat); oos = new ObjectOutputStream(fos); oos.writeObject(this.studentMap); catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); finally try if (oos != null) oos.close(); catch (IOException e) e.printStackTrace(); 8、/ 把在studentMap中的所有学生对象全部显示出来public void displayAllStudents() Set keySet = studentMap.keySet();for (Object obj : keySet) Integer key = new Integer(Integer.parseInt(obj.toString();Tools.print(Student) studentMap.get(key); 9、/ 从文件中读取HashMap对象public void readStudentMapFromFile() ObjectInputStream ois = null;try /获取文件File file = new File(student.dat);if (!file.exists() | file.length()=0)file.createNewFile();return ;FileInputStream fis = new FileInputStream(student.dat);ois = new ObjectInputStream(fis);Object obj = ois.readObject();if (obj != null)this.studentMap = (HashMap)obj; catch(Exception e) e.printStackTrace(); finally try if (ois != null) ois.close(); catch (Exception e) e.printStackTrace(); 3.3设计工具类package com.handson.stumanager.tools;import java.util.Scanner;import com.handson.stumanager.domain.Student;1、设计工具类:public class Tools private static Scanner input = new Scanner(System.in);public static String readLine()return input.next(); public static void println(String str) System.out.println(str); public static void print(String str2) System.out.println(str2);public static void print(Student s) System.out.println(s); 3.4界面设计package com.handson.stumanager.view;import com.handson.stumanager.domain.Student;import com.handson.stumanager.servic.LoginBO;import com.handson.stumanager.servic.StudentBO;import com.handson.stumanager.tools.Tools;1、设计界面类StuManagerCUI :public class StuManagerCUI StudentBO studentBO = new StudentBO();2、设计登录验证的方法loginCUI:public boolean loginCUI() boolean bl = false;LoginBO am = new LoginBO();Tools.println(t学生管理系统登录界面);for (int i = 0; i 3; i+) Tools.print(用户名:);String uid = Tools.readLine();Tools.print(密码:);String pwd = Tools.readLine();if (am.checkUser(uid, pwd) bl = true;return bl; Tools.println(对不起,您三次未输入正确,请退出);return bl;运行结果: 3、进入主界面的方法mainCUI:public void mainCUI() String tag = ;int choice = 0;while (!tag.equals(5) System.out.println(n);System.out.println(t学生管理系统主界面);System.out.println(1.添加学生);System.out.println(2.查看所有学生);System.out.println(3.删除学生);System.out.println(4.修改学生信息);System.out.println(5.退出系统);System.out.print(请选择(1-5):);tag = Tools.readLine();choice = Integer.parseInt(tag);switch (choice) case 1:/ 增加学生信息addStudentCUI(); break;case 2:/ 查看所有学生信息selectStudentCUI(); break;case 3: deleteStudent(); break;case 4: break;case 5:/ 退出系统Tools.println(退出系统,谢谢使用);System.exit(0); 运行结果: 4、增加学生信息addStudentCUI:public void addStudentCUI() Tools.println(t学生信息添加界面t);Tools.print(学号:);int stuId = Integer.parseInt(Tools.readLine();Tools.print(姓名:);String stuName = Tools.readLine();Tools.print(出生日期:);String stuBirthday = Tools.readLine();Tools.print(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论