版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录目录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.操作方法和测试结果24、教师信息显示24、教师信息添加24、教师信息删除25、教师信息查找265.2、学生菜单实现286.设计体会28设计任务书问题
2、描述: 编写程序对大学里的人员进行管理。大学里的人员主要由学生、教师和在职进修教师(既是学生又是教师)组成,各类人员均有姓名、电话和住址等信息,学生另有所属专业信息,教师另有所在系部、授课信息及工资信息,在职进修教师具备以上各类人员的信息。 要求: 1、设计Person类,保存各类人员均有的姓名、电话和住址等信息。 2、设计Student类或接口,继承Person类,并添加所属专业班级信息。 3、设计Teacher类接口,继承Person类,并添加所在系部信息,授课信息及工资信息。 4、设计StudenTeacher类,继承Student类接口和Teache类接口。其具备以上各类人员信息。 5
3、、把创建的所有StudenTeacher对象按照其所属系部依次组织在一个文件中方便查询、修改、删除及添加等操作。 6、对各类的对象进行信息输入操作,输入信息包括该类对象的所有信息。 7、对各类的对象进行输出操作,显示输出该类对象的所有信息课程设计任务及设计人设计任务:大学人员信息管理系统课程目的:1、复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;2、课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力;3、培养学生在项目开发中团队合作精神、创新意识及能力。课程要
4、求:1、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;2、系统设计要实用,编程简练,可用,功能全面3、说明书、流程图要清楚4、记录设计情况(备查,也为编写设计说明书作好准备);5、要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式。6、本设计需要实现Java的面向对象开发运用到的有Java的接口,Java的继承,Java的异常处理,Java类的封装。能够在异常输入的情况下,能正确处理。最后得到正确结果。程序功能实现:一、 按照课程的要求实现学生和教师的基本信息的录入。二、 把输入的教师和学生信息显
5、示出来。三、 有姓名和专业两种查找方式去分别把老师和学生的信息查找并且显示出来。四、 删除选项可以删除相应学生和老师信息。五、 用switch语句实现菜单功能,字符界面做到简洁清晰六、 异常处理处理错误的输入并且返回错误的提示,更正后填入正确数据。1.程序主体1、 设计分析:1.1、 实体是实现程序思想的主要方式,首先应该分为学生和老师2个入口,分别做查询和信息添加、显示、删除和查找的功能。1.2、 学生和老师的信息输入考虑要求多名信息考虑用对象数组去实现。但是对象数组的删除不是本学期的内容。且排序麻烦。考虑用其他方式实现信息录入,查阅相关信息发现可以使用list对象实现信息录入和删除。1.3
6、、 菜单使用switch语句实现菜单功能,菜单的相互调用实现功能的循环。2.流程图:3.模块说明3.1、主菜单四个选项学生入口:这个模块与学生功能模块相连。教师入口:这个模块与教师功能模块相连显示全部信息:这个模块显示所有的老师和学生信息3.2、教师功能菜单显示教师信息:这个模块显示输入的教师信息,如果不存在提示输入信息添加教师信息:这个模块添加教师基本信息删除教师信息:这个模块按照序号删除教师信息,如果不存在提示信息输入查找教师信息:按照姓名和专业查找教师信息返回上一级菜单:返回主菜单3.3、学生功能菜单显示学生信息:这个模块显示输入的教师信息,如果不存在提示输入信息添加学生信息:这个模块添
7、加教师基本信息删除学生信息:这个模块按照序号删除教师信息,如果不存在提示信息输入查找学生信息:按照姓名和专业查找学生信息返回上一级菜单:返回主菜单3.4、查找菜单按照姓名查找:查找模块,按照姓名查找,如果不存在则提示输入信息。按照专业查找:查找模块,按照专业查找,如果不存在则提示输入信息。返回上一级菜单:返回主菜单4源代码及说明4.1、listStuTea 类 用来实现学生和教师数据添加、删除、查找的方法import java.util.*;import lkExecption.LKExecption;public class listStuTea extends StudnTeachfina
8、l int SIZE = 50;/最大学生和教师人数listStuTea st = new listStuTeaSIZE;/学生和老师对象数组Scanner into = new Scanner(System.in);List<listStuTea> list1=new ArrayList<listStuTea>();List<listStuTea> list2=new ArrayList<listStuTea>();public int getTeaNumber() /返回教师链表长度return list1.size();public int
9、 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;i<getStuN
10、umber();i+)point =list2.get(i);if(tpname.equals()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;Stud
11、nTeach point;System.out.println("请输入教师姓名:");tpname = into.nextLine();for(int i = 0;i<getTeaNumber();i+)point =list1.get(i);if(tpname.equals()System.out.println("要查找的姓名存在");showTea(i,point);zy = false; /标志位/break;if(zy)System.out.println("没有该老师");if(getTeaNu
12、mber()=0)System.out.println("警告!老师数据为空请添加数据");public void FindteaSpec()String tpSpec;boolean zy = true;StudnTeach point;System.out.println("请输入教师专业:");tpSpec = into.nextLine();for(int i = 0;i<getTeaNumber();i+)point =list1.get(i);if(tpSpec.equals(point.getteaSpeciality()showTe
13、a(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;i<get
14、StuNumber();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.prin
15、tln("学生编号:"+n);System.out.println("姓名:"++" 性别:"+point.sex+" 年龄:"+point.age);System.out.println("电话:"+point.phone);System.out.println("地址:"+point.address);System.out.println("专业:"+point.getstuSpeciality();System.out.print
16、ln("班级:"+point.getClassname();public void showTea(int n,StudnTeach point)point=list1.get(n);System.out.println("教师编号:"+n);System.out.println("姓名:"++" 性别:"+point.sex+" 年龄:"+point.age);System.out.println("电话:"+point.phone);System.ou
17、t.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()
18、!=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 =i
19、nto.nextInt();if(list1.size()<=k|k<0)System.out.println("删除失败!编号不存在请重新输入!");elselist1.remove(k);System.out.println("删除成功");public void delStu()System.out.println("请输入被删的学生编号");int k =into.nextInt();if(list2.size()<=k|k<0)System.out.println("删除失败!编号不存在请重
20、新输入!");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>();StudnTeach point = new listStuTea();/遍历指针public Men
21、u() 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
22、.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
23、.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.
24、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.
25、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;
26、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();switch
27、FindTeaMenu();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()=
28、0)System.out.println("警告!数据为空请添加数据");elsefor(int i = 0;i<point.getTeaNumber();i+)point.showTea(i,point);for(int i = 0;i<point.getStuNumber();i+)point.showStu(i,point);MainMenu();break;case 4:System.out.println("欢迎再次光临!大学人员信息管理系统!");break;default:System.out.println("输入错
29、误请重新输入");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;i<point.getTeaNumber();i+)point.showTea(i,point);MenuTea1_1();break;c
30、ase 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("-&
31、quot;);int t;t = setIn();switch(t)case 1:if(point.getStuNumber()=0)System.out.println("警告!学生数据为空请添加数据");for(int i = 0;i<point.getStuNumber();i+)point.showStu(i,point);MenuStu1_1();case 2:point.addstu(num);num+;MenuStu1_1();break;case 3:point.delStu();num-;MenuStu1_1();break;case 4:FindM
32、enu();switchFindStuMenu();break;case 5:MainMenu();break;default:System.out.println("输入错误请重新输入");MenuStu1_1();4.3、StudnTeach 类 继承于教师和学生接口实现它们抽象方法,且继承人类属性。import java.util.*;import lkExecption.LKExecption;class StudnTeach extends Person implements Student,TeacherScanner into = new Scanner(Sy
33、stem.in);float pay = 0;/工资String classname = null;/班级String stuSpec = null;/老师专业String teaSpec = null;/学生专业void add() throws LKExecptionsetName();setSex();setAge();setPhone ();System.out.println("请输入地址");address = into.nextLine();public void addstu(int n) throws LKExecption/add();/setClass
34、name();/setstuSpeciality();public void addtea(int n) throws LKExecption/add();/setteaSpeciality();/setPay() ;public void setPay() String tpNum = null;trySystem.out.println("请输入工资:");tpNum = into.nextLine();pay = Integer.parseInt(tpNum);catch(NumberFormatException e)pay = new LKExecption().
35、Num1Execption(tpNum);public float getPay() return pay;public void setClassname() System.out.println("请输入班级:");classname = into.nextLine();public String getClassname() return classname;public void setstuSpeciality() System.out.println("请输入专业:");stuSpec = into.nextLine();public Str
36、ing getstuSpeciality() return stuSpec;public void setteaSpeciality() System.out.println("请输入专业:");teaSpec = into.nextLine();public String getteaSpeciality() return teaSpec;public void show(boolean b, int num, StudnTeach point) public void showStu(int num, StudnTeach point) public void show
37、Tea(int num, StudnTeach point) public int getStuNumber() return 0;public int getTeaNumber() return 0;public int getNumber() return 0;public void delStu() public void delTea() public void FindStuName() public void FindstuSpec() public void FindTeaName() public void FindteaSpec() 4.4、Student 类 接口、学生的抽
38、象方法public interface Student abstract void setstuSpeciality();abstract String getstuSpeciality();abstract void setClassname();abstract String getClassname();4.5、Teacher 类 接口、教师的抽象方法public interface Teacher abstract void setteaSpeciality();abstract String getteaSpeciality();abstract void setPay();abst
39、ract float getPay();4.6、Person 类 定义人类的基本属性import java.util.*;import lkExecption.LKExecption;public class PersonScanner into = new Scanner(System.in);String name;int phone;String address;String sex;int age;public void setName()System.out.println("请输入姓名:");name = into.nextLine();public void
40、setSex() throws LKExecptiontrySystem.out.println("请输入性别:");sex = into.nextLine();if(sex.equals("man")|sex.equals("woman")elsethrow new LKExecption();catch(LKExecption lk)sex = new LKExecption().sexExecption(sex);public void setAge()String tpAge = null;trySystem.out.prin
41、tln("请输入年龄:");tpAge = into.nextLine();age = Integer.parseInt(tpAge);catch(NumberFormatException e)age = new LKExecption().NumExecption(tpAge);public void setPhone ()String tpNum = null;trySystem.out.println("请输入电话号码:");tpNum = into.nextLine();phone = Integer.parseInt(tpNum);catch
42、(NumberFormatException e)phone = new LKExecption().Num1Execption(tpNum);4.7、lkExecption类 自定义异常类package lkExecption;import java.util.Scanner;public class LKExecption extends ExceptionScanner into = new Scanner(System.in);public String sexExecption(String mg)String str;boolean pd = true;doSystem.out.p
43、rintln(mg+" 不是正确的性别,正确的性别为 man 或者 woman");str = into.next();/System.out.println(mg+" 验证");if(str.equals("man")|str.equals("woman")pd = false;while(pd);return str;public int NumExecption(String mg)String num = null;int tpNum = 0;boolean pd = true;System.out.pri
44、ntln(mg+" 请正确的数字或者不在范围内!请重新输入!");dotrynum = into.nextLine();tpNum = Integer.parseInt(num);if(tpNum>120|tpNum<0) /范围判断throw new NumberFormatException();elsepd = false;catch(NumberFormatException e)System.out.println(num+" 请正确的数字或者不在范围内!请重新输入!");while(pd);return tpNum;public
45、String charExecption(String mg)final String str="null"/这里指定 规定字段boolean pd = true;doSystem.out.println(mg+" 不是正确字段,请输入指定的字段");mg = into.next();for(int i =0;i<str.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(Nu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- YY/T 0297-2026医疗器械临床试验质量通用要求
- AI在化工智能制造技术中的应用
- 2026年精密机械加工质量管控体系设计与实施
- 2026年高压电缆敷设与中间接头制作工艺
- 2026年个人年度职业发展计划表
- 2026年年度应急队伍培训与训练计划
- 2025湖南省中考生物真题(解析版)
- 2026年肿瘤科医生共情能力对患者心理支持作用
- 2026年企业自用加油点(内部加油站)环保规范
- 2026年化工企业环境保护管理制度
- 初中英语写作教学中生成式人工智能的辅助应用研究教学研究课题报告
- 2026中国航空发动机产业发展现状与技术突破路径研究报告
- 2026浙江省绿电直连政策及新能源就近消纳价格政策解读
- 健康膳食解码智慧树知到期末考试答案章节答案2024年佳木斯大学
- 档案整理及数字化服务方案(技术标 )
- 部编版小学五年级语文下册第六单元综合测试卷(含答案)
- 货币银行学智慧树知到答案章节测试2023年上海财经大学浙江学院
- GB/T 18742.3-2002冷热水用聚丙烯管道系统第3部分:管件
- GB/T 18601-2001天然花岗石建筑板材
- GA/T 1133-2014基于视频图像的车辆行驶速度技术鉴定
- 第五章配送中心规划
评论
0/150
提交评论