人员信息管理系统 java课程设计

上传人:无*** 文档编号:61244177 上传时间:2022-03-10 格式:DOCX 页数:29 大小:148.31KB
返回 下载 相关 举报
人员信息管理系统 java课程设计_第1页
第1页 / 共29页
人员信息管理系统 java课程设计_第2页
第2页 / 共29页
人员信息管理系统 java课程设计_第3页
第3页 / 共29页
点击查看更多>>
资源描述
编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第29页 共29页目录目录1设计任务书2课程设计任务2程序功能实现:31.程序主体32.流程图:43.模块说明43.1、主菜单四个选项43.2、教师功能菜单53.3、学生功能菜单53.4、查找菜单64源代码及说明64.1、listStuTea 类64.2、Menu 类104.3、StudnTeach 类164.4、Student 类194.5、Teacher 类194.6、Person 类204.7、lkExecption类214.8、MainStuTea类235.操作方法和测试结果245.1.1、教师信息显示245.1.2、教师信息添加245.1.3、教师信息删除255.1.4、教师信息查找265.2、学生菜单实现286.设计体会28设计任务书问题描述: 编写程序对大学里的人员进行管理。大学里的人员主要由学生、教师和在职进修教师(既是学生又是教师)组成,各类人员均有姓名、电话和住址等信息,学生另有所属专业信息,教师另有所在系部、授课信息及工资信息,在职进修教师具备以上各类人员的信息。 要求: 1、设计Person类,保存各类人员均有的姓名、电话和住址等信息。 2、设计Student类或接口,继承Person类,并添加所属专业班级信息。 3、设计Teacher类接口,继承Person类,并添加所在系部信息,授课信息及工资信息。 4、设计StudenTeacher类,继承Student类接口和Teache类接口。其具备以上各类人员信息。 5、把创建的所有StudenTeacher对象按照其所属系部依次组织在一个文件中方便查询、修改、删除及添加等操作。 6、对各类的对象进行信息输入操作,输入信息包括该类对象的所有信息。 7、对各类的对象进行输出操作,显示输出该类对象的所有信息课程设计任务及设计人设计任务:大学人员信息管理系统课程目的:1、复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;2、课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力;3、培养学生在项目开发中团队合作精神、创新意识及能力。课程要求:1、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;2、系统设计要实用,编程简练,可用,功能全面3、说明书、流程图要清楚4、记录设计情况(备查,也为编写设计说明书作好准备);5、要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式。6、本设计需要实现Java的面向对象开发运用到的有Java的接口,Java的继承,Java的异常处理,Java类的封装。能够在异常输入的情况下,能正确处理。最后得到正确结果。程序功能实现:一、 按照课程的要求实现学生和教师的基本信息的录入。二、 把输入的教师和学生信息显示出来。三、 有姓名和专业两种查找方式去分别把老师和学生的信息查找并且显示出来。四、 删除选项可以删除相应学生和老师信息。五、 用switch语句实现菜单功能,字符界面做到简洁清晰六、 异常处理处理错误的输入并且返回错误的提示,更正后填入正确数据。1.程序主体1、 设计分析:1.1、 实体是实现程序思想的主要方式,首先应该分为学生和老师2个入口,分别做查询和信息添加、显示、删除和查找的功能。1.2、 学生和老师的信息输入考虑要求多名信息考虑用对象数组去实现。但是对象数组的删除不是本学期的内容。且排序麻烦。考虑用其他方式实现信息录入,查阅相关信息发现可以使用list对象实现信息录入和删除。1.3、 菜单使用switch语句实现菜单功能,菜单的相互调用实现功能的循环。2.流程图:3.模块说明3.1、主菜单四个选项学生入口:这个模块与学生功能模块相连。教师入口:这个模块与教师功能模块相连显示全部信息:这个模块显示所有的老师和学生信息3.2、教师功能菜单显示教师信息:这个模块显示输入的教师信息,如果不存在提示输入信息添加教师信息:这个模块添加教师基本信息删除教师信息:这个模块按照序号删除教师信息,如果不存在提示信息输入查找教师信息:按照姓名和专业查找教师信息返回上一级菜单:返回主菜单3.3、学生功能菜单显示学生信息:这个模块显示输入的教师信息,如果不存在提示输入信息添加学生信息:这个模块添加教师基本信息删除学生信息:这个模块按照序号删除教师信息,如果不存在提示信息输入查找学生信息:按照姓名和专业查找学生信息返回上一级菜单:返回主菜单3.4、查找菜单按照姓名查找:查找模块,按照姓名查找,如果不存在则提示输入信息。按照专业查找:查找模块,按照专业查找,如果不存在则提示输入信息。返回上一级菜单:返回主菜单4源代码及说明4.1、listStuTea 类 用来实现学生和教师数据添加、删除、查找的方法import java.util.*;import lkExecption.LKExecption;public class listStuTea extends StudnTeachfinal int SIZE = 50;/最大学生和教师人数listStuTea st = new listStuTeaSIZE;/学生和老师对象数组Scanner into = new Scanner(System.in);List list1=new ArrayList();List list2=new ArrayList();public int getTeaNumber() /返回教师链表长度return list1.size();public int getStuNumber() /返回学生链表长度return list2.size();public int getNumber() / TODO Auto-generated method stubreturn list2.size()+list1.size();public void FindStuName()String tpname;boolean zy = true;StudnTeach point;System.out.println(请输入学生姓名:);tpname = into.nextLine();for(int i = 0;igetStuNumber();i+)point =list2.get(i);if(tpname.equals(point.name)System.out.println(要查找的姓名存在);showStu(i,point);zy = false;if(zy)System.out.println(没有该学生);if(getStuNumber()=0)System.out.println(警告!学生数据为空请添加数据);public void FindTeaName()String tpname;boolean zy = true;StudnTeach point;System.out.println(请输入教师姓名:);tpname = into.nextLine();for(int i = 0;igetTeaNumber();i+)point =list1.get(i);if(tpname.equals(point.name)System.out.println(要查找的姓名存在);showTea(i,point);zy = false; /标志位/break;if(zy)System.out.println(没有该老师);if(getTeaNumber()=0)System.out.println(警告!老师数据为空请添加数据);public void FindteaSpec()String tpSpec;boolean zy = true;StudnTeach point;System.out.println(请输入教师专业:);tpSpec = into.nextLine();for(int i = 0;igetTeaNumber();i+)point =list1.get(i);if(tpSpec.equals(point.getteaSpeciality()showTea(i,point);zy = false;/标志位if(zy)System.out.println(没有该专业的老师);if(getTeaNumber()=0)System.out.println(警告!老师数据为空请添加数据);public void FindstuSpec()String tpStu;boolean zy = true;StudnTeach point;System.out.println(请输入学生专业:);tpStu = into.nextLine();for(int i = 0;igetStuNumber();i+)point =list2.get(i);if(tpStu.equals(point.getstuSpeciality()showStu(i,point);zy = false;/标志位if(zy)System.out.println(没有选修该专业的学生);if(getStuNumber()=0)System.out.println(警告!学生数据为空请添加数据);public void showStu(int n,StudnTeach point)point=list2.get(n);System.out.println(学生编号:+n);System.out.println(姓名:+point.name+ 性别:+point.sex+ 年龄:+point.age);System.out.println(电话:+point.phone);System.out.println(地址:+point.address);System.out.println(专业:+point.getstuSpeciality();System.out.println(班级:+point.getClassname();public void showTea(int n,StudnTeach point)point=list1.get(n);System.out.println(教师编号:+n);System.out.println(姓名:+point.name+ 性别:+point.sex+ 年龄:+point.age);System.out.println(电话:+point.phone);System.out.println(地址:+point.address);System.out.println(专业:+point.getteaSpeciality();System.out.println(工资:+point.getPay();public void addstu(int n) throws LKExecptionstn = new listStuTea();stn.add();stn.setClassname();stn.setstuSpeciality();list2.add(stn);if(list2.size()!=0)System.out.println(添加学生成功);public void addtea(int n) throws LKExecptionstn = new listStuTea();stn.add();stn.setteaSpeciality();stn.setPay();list1.add(stn);if(list1.size()!=0)System.out.println(添加教师成功);public void delTea()System.out.println(请输入被删的教师编号);int k =into.nextInt();if(list1.size()=k|k0)System.out.println(删除失败!编号不存在请重新输入!);elselist1.remove(k);System.out.println(删除成功);public void delStu()System.out.println(请输入被删的学生编号);int k =into.nextInt();if(list2.size()=k|k0)System.out.println(删除失败!编号不存在请重新输入!);elselist2.remove(k);System.out.println(删除成功);4.2、Menu 类 字符菜单的实现import java.util.*;import lkExecption.LKExecption;public class Menu Scanner into = new Scanner(System.in);int num = 0;List list=new ArrayList();StudnTeach point = new listStuTea();/遍历指针public Menu() throws LKExecptionMainMenu();public int setIn()int t;String tpNum = null;trySystem.out.println(请输入选项);tpNum = into.nextLine();t = Integer.parseInt(tpNum);catch(NumberFormatException e)t = new LKExecption().Num1Execption(tpNum);return t;void MainMenu() throws LKExecption/主菜单System.out.println(=);System.out.println(1.教师入口);System.out.println(2.学生入口);System.out.println(3.显示全部信息);System.out.println(4.退出管理);switchMainMenu();void FindMenu()/查找菜单System.out.println(-);System.out.println(1.按照姓名查找);System.out.println(2.按照专业查找);System.out.println(3.返回上一级菜单);/switchMainMenu();void MenuTea1_1() throws LKExecption/老师菜单System.out.println(-);System.out.println(1.显示教师信息);System.out.println(2.添加教师信息);System.out.println(3.删除教师信息);System.out.println(4.查找教师信息);System.out.println(5.返回上一级菜单);switchMenuTea1_1();void MenuStu1_1() throws LKExecption/学生菜单System.out.println(-);System.out.println(1.显示学生信息);System.out.println(2.添加学生信息);System.out.println(3.删除学生信息);System.out.println(4.查找学生信息);System.out.println(5.返回上一级菜单);switchMenuStu1_1();void switchFindStuMenu() throws LKExecption/查找学生菜单int t;t = setIn();switch(t)case 1:point.FindStuName();FindMenu();switchFindStuMenu();break;case 2:point.FindstuSpec();FindMenu();switchFindStuMenu();break;case 3:MenuStu1_1();switchMenuStu1_1();break;default:System.out.println(输入错误请重新输入);switchFindStuMenu();void switchFindTeaMenu() throws LKExecption/查找教师菜单int t;t = setIn();switch(t)case 1:point.FindTeaName();FindMenu();switchFindTeaMenu();break;case 2:point.FindteaSpec();FindMenu();switchFindTeaMenu();break;case 3:MenuTea1_1();switchMenuTea1_1();break;default:System.out.println(输入错误请重新输入);switchFindTeaMenu();void switchMainMenu() throws LKExecption/主菜单int t;t = setIn();switch(t)case 1:MenuTea1_1();/老师显示菜单break;case 2:MenuStu1_1();/学生显示菜单break;case 3:if(point.getNumber()=0)System.out.println(警告!数据为空请添加数据);elsefor(int i = 0;ipoint.getTeaNumber();i+)point.showTea(i,point);for(int i = 0;ipoint.getStuNumber();i+)point.showStu(i,point);MainMenu();break;case 4:System.out.println(欢迎再次光临!大学人员信息管理系统!);break;default:System.out.println(输入错误请重新输入);switchMainMenu();void switchMenuTea1_1() throws LKExecptionSystem.out.println(-);int t;t = setIn();switch(t)case 1:if(point.getTeaNumber()=0)System.out.println(警告!教师数据为空请添加数据);for(int i = 0;ipoint.getTeaNumber();i+)point.showTea(i,point);MenuTea1_1();break;case 2:point.addtea(num);num+;MenuTea1_1();break;case 3:point.delTea();num-;MenuTea1_1();break;case 4:FindMenu();switchFindTeaMenu();break;case 5:MainMenu();break;default:System.out.println(输入错误请重新输入);switchMenuTea1_1();void switchMenuStu1_1() throws LKExecptionSystem.out.println(-);int t;t = setIn();switch(t)case 1:if(point.getStuNumber()=0)System.out.println(警告!学生数据为空请添加数据);for(int i = 0;i120|tpNum0) /范围判断throw new NumberFormatException();elsepd = false;catch(NumberFormatException e)System.out.println(num+ 请正确的数字或者不在范围内!请重新输入!);while(pd);return tpNum;public String charExecption(String mg)final String str=null;/这里指定 规定字段boolean pd = true;doSystem.out.println(mg+ 不是正确字段,请输入指定的字段);mg = into.next();for(int i =0;istr.length;i+)if(mg.equals(stri)/pd = false;while(pd);return mg;public int Num1Execption(String mg)String num;int tpNum = 0;System.out.println(mg+ 不是数字!请输入数字!);dotrynum = into.nextLine();tpNum = Integer.parseInt(num);break;catch(NumberFormatException e)System.out.println(mg+ 不是数字!请输入数字!);while(true);return tpNum;4.8、MainStuTea类 主函数调用import lkExecption.LKExecption;public class MainStuTea public static void main(String args) throws LKExecptionMenu lk = new Menu();5.操作方法和测试结果5.1.1、教师信息显示选择一进入教师信息入口选择一进入教师信息查看因为我们没有添加教师信息,所以他要求我们添加教师信息5.1.2、教师信息添加选择二进入教师信息添加教师信息添加成功,如果不是指定字段输入,出现异常则重新输入如下为添加的信息输入显示5.1.3、教师信息删除5.1.4、教师信息查找专业查找现在添加三个教师信息,如下显示首先使用专业查找,我们查找computer专业的查找其他math专业查找不存在的专业姓名查找再添加一个同名的教师查找lisi5.2、学生菜单实现学生信息采取同样测试6.设计体会这个课程设计可以的设计心得,可谓十分波折。全部的源代码都出自自己,其中的list排列我们还没有学习。在这里要感谢google感谢baidu。没有他们就没有今天的代码。当然网上只有相似的课题没有相同的代码,list排列经过自己一小时的摸索可以了解了部分的运用,首先写了一个test类来测试这个用法import java.util.ArrayList;import java.util.LinkedList;import java.util.Iterator;import java.util.List;import java.util.Scanner;public class test public static void main(String args) System.out.println(开始:);String a = A, b = B, c = C, d = D, e = E;List list = new LinkedList();list.add(a);list.add(e);list.add(d);list.set(1, b);/ 将索引位置为1的对象e修改为对象blist.add(2, c);/ 将对象c添加到索引位置为2的位置list.add(e);list.remove(1);Iterator it = list.iterator();while (it.hasNext() System.out.println(it.next(); System.out.println(结束!);再想了一下把它添加进了listStuTea对象,全都的代码完成用了一天的时间,在原来想起写500多行的代码几乎是不可能的,但是在这个课程设计中实现了。这个课程设计真的使自己学到了很多的东西。在接口的使用还不是很好的和实际模型很多的结合起来,这是锻炼较少的原因,前期的分析也幼稚的表现了自己在这方面的不足,在层次结构上浪费了较多的时间。总之在这方面的锻炼还是比较少,我想不管是在以后布置下来的课程设计才去编写代码,这是不可行的,得在平时多多锻炼。第 29 页 共 29 页
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!