版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录目录 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.程序主体设计分析:实体是实现程序思想的重要方式,一方面应当分为学生和老师2个入口,分别做查询和信息添加、显示、删除和查找的功能。学生和老师的信息输入考虑规定多名信息考虑用对象数组去实现。但是对象数组的删除不是本学期的内容。且排序麻烦。考虑用其他方式实现信息录入,查阅相关信息发现可以使用list对象实现信息录入和删除。菜单使用switch语句实现菜单功能,菜单的互相调用实现功能的循环。2.流程图:3.模块说明3.1、主菜单四个选项学生入口:这个模块与学生功能模块相连。教师入口:这个模块与教师功能模块相连显示所有信息:这个模块显示所有的老师和学生信息3.2、教师功能菜单显示教师信息:这个模块显示输入的教师信息,假如不存在提醒输入信息 添加教师信息: 这个模块添加教师基本信息删除教师信息:这个模块按照序号删除教师信息,假如不存在提醒信息输入查找教师信息:按照姓名和专业查找教师信息返回上一级菜单:返回主菜单3.3、学生功能菜单显示学生信息:这个模块显示输入的教师信息,假如不存在提醒输入信息 添加学生信息: 这个模块添加教师基本信息删除学生信息:这个模块按照序号删除教师信息,假如不存在提醒信息输入查找学生信息:按照姓名和专业查找学生信息返回上一级菜单:返回主菜单3.4、查找菜单按照姓名查找:查找模块,按照姓名查找,假如不存在则提醒输入信息。按照专业查找:查找模块,按照专业查找,假如不存在则提醒输入信息。返回上一级菜单:返回主菜单4.源代码及说明4.1、listStuTea类用来实现学生和教师数据添加、删除、查找的方法importjava.util.*;importlkExecption.LKExecption;publicclasslistStuTeaextendsStudnTeach{ finalintSIZE=50;//最大学生和教师人数 listStuTea[]st=newlistStuTea[SIZE];//学生和老师对象数组 Scannerinto=newScanner(System.in); List<listStuTea>list1=newArrayList<listStuTea>(); List<listStuTea>list2=newArrayList<listStuTea>(); publicintgetTeaNumber()//返回教师链表长度 { returnlist1.size(); } publicintgetStuNumber()//返回学生链表长度 { returnlist2.size(); } publicintgetNumber(){ //TODOAuto-generatedmethodstub returnlist2.size()+list1.size(); } publicvoidFindStuName() { Stringtpname; booleanzy=true; StudnTeachpoint; System.out.println("请输入学生姓名:"); tpname=into.nextLine(); for(inti=0;i<getStuNumber();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("警告!!!学生数据为空请添加数据"); } publicvoidFindTeaName() { Stringtpname; booleanzy=true; StudnTeachpoint; System.out.println("请输入教师姓名:"); tpname=into.nextLine(); for(inti=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(getTeaNumber()==0) System.out.println("警告!!!老师数据为空请添加数据"); } publicvoidFindteaSpec() { StringtpSpec; booleanzy=true; StudnTeachpoint; System.out.println("请输入教师专业:"); tpSpec=into.nextLine(); for(inti=0;i<getTeaNumber();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("警告!!!老师数据为空请添加数据"); } publicvoidFindstuSpec() { StringtpStu; booleanzy=true; StudnTeachpoint; System.out.println("请输入学生专业:"); tpStu=into.nextLine(); for(inti=0;i<getStuNumber();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("警告!!!学生数据为空请添加数据"); } publicvoidshowStu(intn,StudnTeachpoint) { point=list2.get(n); System.out.println("学生编号:"+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.println("班级:"+point.getClassname()); } publicvoidshowTea(intn,StudnTeachpoint) { point=list1.get(n); System.out.println("教师编号:"+n); System.out.println("姓名:"++"性别:"+point.sex+"年龄:"+point.age); System.out.println("电话:"+point.phone); System.out.println("地址:"+point.address); System.out.println("专业:"+point.getteaSpeciality()); System.out.println("工资:"+point.getPay()); } publicvoidaddstu(intn)throwsLKExecption { st[n]=newlistStuTea(); st[n].add(); st[n].setClassname(); st[n].setstuSpeciality(); list2.add(st[n]); if(list2.size()!=0) System.out.println("添加学生成功"); } publicvoidaddtea(intn)throwsLKExecption { st[n]=newlistStuTea(); st[n].add(); st[n].setteaSpeciality(); st[n].setPay(); list1.add(st[n]); if(list1.size()!=0) System.out.println("添加教师成功"); } publicvoiddelTea() { System.out.println("请输入被删的教师编号"); intk=into.nextInt(); if(list1.size()<=k||k<0) System.out.println("删除失败!编号不存在请重新输入!"); else { list1.remove(k); System.out.println("删除成功"); } } publicvoiddelStu() { System.out.println("请输入被删的学生编号"); intk=into.nextInt(); if(list2.size()<=k||k<0) System.out.println("删除失败!编号不存在请重新输入!"); else { list2.remove(k); System.out.println("删除成功"); } }}4.2、Menu类字符菜单的实现importjava.util.*;importlkExecption.LKExecption;publicclassMenu{ Scannerinto=newScanner(System.in); intnum=0; Listlist=newArrayList<StudnTeach>(); StudnTeachpoint=newlistStuTea();//遍历指针 publicMenu()throwsLKExecption{ MainMenu(); } publicintsetIn() { intt; StringtpNum=null; try{ System.out.println("请输入选项"); tpNum=into.nextLine(); t=Integer.parseInt(tpNum); } catch(NumberFormatExceptione) { t=newLKExecption().Num1Execption(tpNum); } returnt; } voidMainMenu()throwsLKExecption//主菜单 { System.out.println("================"); System.out.println("1.教师入口"); System.out.println("2.学生入口"); System.out.println("3.显示所有信息"); System.out.println("4.退出管理"); switchMainMenu(); } voidFindMenu()//查找菜单 { System.out.println(""); System.out.println("1.按照姓名查找"); System.out.println("2.按照专业查找"); System.out.println("3.返回上一级菜单"); //switchMainMenu(); } voidMenuTea1_1()throwsLKExecption//老师菜单 { 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(); } voidMenuStu1_1()throwsLKExecption//学生菜单 { 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(); } voidswitchFindStuMenu()throwsLKExecption//查找学生菜单 { intt; t=setIn(); switch(t) { case1: point.FindStuName(); FindMenu(); switchFindStuMenu(); break; case2: point.FindstuSpec(); FindMenu(); switchFindStuMenu(); break; case3: MenuStu1_1(); switchMenuStu1_1(); break; default: System.out.println("输入错误请重新输入"); switchFindStuMenu(); } } voidswitchFindTeaMenu()throwsLKExecption//查找教师菜单 { intt; t=setIn(); switch(t) { case1: point.FindTeaName(); FindMenu(); switchFindTeaMenu(); break; case2: point.FindteaSpec(); FindMenu(); switchFindTeaMenu(); break; case3: MenuTea1_1(); switchMenuTea1_1(); break; default: System.out.println("输入错误请重新输入"); switchFindTeaMenu(); } } voidswitchMainMenu()throwsLKExecption//主菜单 { intt; t=setIn(); switch(t) { case1: MenuTea1_1();//老师显示菜单 break; case2: MenuStu1_1();//学生显示菜单 break; case3: if(point.getNumber()==0) System.out.println("警告!!!数据为空请添加数据"); else{ for(inti=0;i<point.getTeaNumber();i++) point.showTea(i,point); for(inti=0;i<point.getStuNumber();i++) point.showStu(i,point); } MainMenu(); break; case4: System.out.println("欢迎再次光顾!大学人员信息管理系统!!"); break; default: System.out.println("输入错误请重新输入"); switchMainMenu(); } } voidswitchMenuTea1_1()throwsLKExecption { System.out.println(""); intt; t=setIn(); switch(t) { case1: if(point.getTeaNumber()==0) System.out.println("警告!!!教师数据为空请添加数据"); for(inti=0;i<point.getTeaNumber();i++) point.showTea(i,point); MenuTea1_1(); break; case2: point.addtea(num); num++; MenuTea1_1(); break; case3: point.delTea(); num--; MenuTea1_1(); break; case4: FindMenu(); switchFindTeaMenu(); break; case5: MainMenu(); break; default: System.out.println("输入错误请重新输入"); switchMenuTea1_1(); } } voidswitchMenuStu1_1()throwsLKExecption { System.out.println(""); intt; t=setIn(); switch(t) { case1: if(point.getStuNumber()==0) System.out.println("警告!!!学生数据为空请添加数据"); for(inti=0;i<point.getStuNumber();i++) point.showStu(i,point); MenuStu1_1(); case2: point.addstu(num); num++; MenuStu1_1(); break; case3: point.delStu(); num--; MenuStu1_1(); break; case4: FindMenu(); switchFindStuMenu(); break; case5: MainMenu(); break; default: System.out.println("输入错误请重新输入"); MenuStu1_1(); } }}4.3、StudnTeach类继承于教师和学生接口实现它们抽象方法,且继承人类属性。importjava.util.*;importlkExecption.LKExecption;classStudnTeachextendsPersonimplementsStudent,Teacher{ Scannerinto=newScanner(System.in); floatpay=0;//工资 Stringclassname=null;//班级 StringstuSpec=null;//老师专业 StringteaSpec=null;//学生专业 voidadd()throwsLKExecption { setName(); setSex(); setAge(); setPhone(); System.out.println("请输入地址"); address=into.nextLine(); } publicvoidaddstu(intn)throwsLKExecption{ //add(); //setClassname(); //setstuSpeciality(); } publicvoidaddtea(intn)throwsLKExecption{ //add(); //setteaSpeciality(); //setPay(); } publicvoidsetPay(){ StringtpNum=null; try{ System.out.println("请输入工资:"); tpNum=into.nextLine(); pay=Integer.parseInt(tpNum); } catch(NumberFormatExceptione) { pay=newLKExecption().Num1Execption(tpNum); } } publicfloatgetPay(){ returnpay; } publicvoidsetClassname(){ System.out.println("请输入班级:"); classname=into.nextLine(); } publicStringgetClassname(){ returnclassname; } publicvoidsetstuSpeciality(){ System.out.println("请输入专业:"); stuSpec=into.nextLine(); } publicStringgetstuSpeciality(){ returnstuSpec; } publicvoidsetteaSpeciality(){ System.out.println("请输入专业:"); teaSpec=into.nextLine(); } publicStringgetteaSpeciality(){ returnteaSpec; } publicvoidshow(booleanb,intnum,StudnTeachpoint){ } publicvoidshowStu(intnum,StudnTeachpoint){ } publicvoidshowTea(intnum,StudnTeachpoint){ } publicintgetStuNumber(){ return0; } publicintgetTeaNumber(){ return0; } publicintgetNumber(){ return0; } publicvoiddelStu(){ } publicvoiddelTea(){ } publicvoidFindStuName(){ } publicvoidFindstuSpec(){ } publicvoidFindTeaName(){ } publicvoidFindteaSpec(){ } }4.4、Student类接口、学生的抽象方法publicinterfaceStudent{ abstractvoidsetstuSpeciality(); abstractStringgetstuSpeciality(); abstractvoidsetClassname(); abstractStringgetClassname();}4.5、Teacher类接口、教师的抽象方法publicinterfaceTeacher{ abstractvoidsetteaSpeciality(); abstractStringgetteaSpeciality(); abstractvoidsetPay(); abstractfloatgetPay();}4.6、Person类定义人类的基本属性importjava.util.*;importlkExecption.LKExecption;publicclassPerson{ Scannerinto=newScanner(System.in); Stringname; intphone; Stringaddress; Stringsex; intage; publicvoidsetName() { System.out.println("请输入姓名:"); name=into.nextLine(); } publicvoidsetSex()throwsLKExecption { try{ System.out.println("请输入性别:"); sex=into.nextLine(); if(sex.equals("man")||sex.equals("woman")) {} else thrownewLKExecption(); } catch(LKExecptionlk) { sex=newLKExecption().sexExecption(sex); } } publicvoidsetAge() { StringtpAge=null; try{ System.out.println("请输入年龄:"); tpAge=into.nextLine(); age=Integer.parseInt(tpAge); } catch(NumberFormatExceptione) { age=newLKExecption().NumExecption(tpAge); } } publicvoidsetPhone() { StringtpNum=null; try{ System.out.println("请输入电话号码:"); tpNum=into.nextLine(); phone=Integer.parseInt(tpNum); } catch(NumberFormatExceptione) { phone=newLKExecption().Num1Execption(tpNum); } }}4.7、lkExecption类自定义异常类packagelkExecption;importjava.util.Scanner;publicclassLKExecptionextendsException{ Scannerinto=newScanner(System.in); publicStringsexExecption(Stringmg) { Stringstr; booleanpd=true; do{ System.out.println(mg+"不是对的的性别,对的的性别为man或者woman"); str=into.next(); //System.out.println(mg+"验证"); if(str.equals("man")||str.equals("woman")) { pd=false; } }while(pd); returnstr; } publicintNumExecption(Stringmg) { Stringnum=null; inttpNum=0; booleanpd=true; System.out.println(mg+"请对的的数字或者不在范围内!请重新输入!!"); do{ try{ num=into.nextLine(); tpNum=Integer.parseInt(num); if(tpNum>120||tpNum<0)//范围判断 thrownewNumberFormatException(); else pd=false; } catch(NumberFormatExceptione) { System.out.println(num+"请对的的数字或者不在范围内!请重新输入!!"); } }while(pd); returntpNum; } publicStringcharExecption(Stringmg) { finalString[]str={"null"};//这里指定规定字段 booleanpd=true; do{ System.out.println(mg+"不是对的字段,请输入指定的字段"); mg=into.next(); for(inti=0;i<str.length;i++) if(mg.equals(str[i]))// { pd=false; } }while(pd); returnmg; } publicintNum1Execption(Stringmg) { Stringnum; inttpNum=0; System.out.println(mg+"不是数字!请输入数字!!"); do{
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025天津泰达热电能源管理有限公司及所属企业招聘12人笔试历年参考题库附带答案详解
- 2025国家核安保技术中心招聘笔试历年参考题库附带答案详解
- 2025贵州锦海水利水电工程建设有限公司招聘8人笔试历年典型考点题库附带答案详解
- 2025四川九洲电器集团有限责任公司招聘硬件研发岗(逻辑工程师)(校招)等岗位33人笔试历年参考题库附带答案详解
- 2025甘肃陇南市金陇煤矿业有限责任公司招聘5人笔试历年常考点试题专练附带答案详解
- 2025浙江绍兴市越才人力资源服务有限责任公司招聘笔试历年常考点试题专练附带答案详解
- 2025云南芒市城投建设工程有限公司招聘13人笔试历年参考题库附带答案详解
- 2025云南宏华公司招聘后勤人员笔试历年参考题库附带答案详解
- 2025年中国海峡人才南平工作部招聘见习生(3)笔试历年常考点试题专练附带答案详解
- 2025中国中煤总部管培生招聘笔试历年参考题库附带答案详解
- 智能制造产业园项目可行性研究报告(仅供参考)
- 危险化学品装卸车要求
- 2024-2025学年人教版(2024)七年级英语下册Unit 5 Here and now Section A 1a ~ pronunciation 教案
- 2025年中央纪委国家监委驻中国国家铁路集团有限公司招聘笔试参考题库附带答案详解
- 《公路波纹钢结构涵洞标准图集》(征求意见稿)
- 企业并购的机遇与挑战分析
- 射线检测专业知识考试题库(含答案)
- 2024年全国统一高考数学试卷(理科)甲卷含答案
- 湖北省襄阳市2023-2024学年小升初语文试卷(含答案)
- 黑龙江省建筑工程施工质量验收标准(建筑地面工程)
- 第八课 良师相伴 亦师亦友
评论
0/150
提交评论