人员信息管理系统 java课程设计.docx
《人员信息管理系统 java课程设计.docx》由会员分享,可在线阅读,更多相关《人员信息管理系统 java课程设计.docx(34页珍藏版)》请在冰豆网上搜索。
人员信息管理系统java课程设计
目录
目录1
设计任务书2
课程设计任务2
程序功能实现:
3
1.程序主体3
2.流程图:
4
3.模块说明4
3.1、主菜单四个选项4
3.2、教师功能菜单5
3.3、学生功能菜单5
3.4、查找菜单6
4.源代码及说明6
4.1、listStuTea类6
4.2、Menu类10
4.3、StudnTeach类16
4.4、Student类19
4.5、Teacher类19
4.6、Person类20
4.7、lkExecption类21
4.8、MainStuTea类23
5.操作方法和测试结果24
5.1.1、教师信息显示24
5.1.2、教师信息添加24
5.1.3、教师信息删除25
5.1.4、教师信息查找26
5.2、学生菜单实现28
6.设计体会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类
用来实现学生和教师数据添加、删除、查找的方法
importjava.util.*;
importlkExecption.LKExecption;
publicclasslistStuTeaextendsStudnTeach{
finalintSIZE=50;//最大学生和教师人数
listStuTea[]st=newlistStuTea[SIZE];//学生和老师对象数组
Scannerinto=newScanner(System.in);
Listlist1=newArrayList();
Listlist2=newArrayList();
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{
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("警告!
!
!
学生数据为空请添加数据");
}
publicvoidFindTeaName()
{
Stringtpname;
booleanzy=true;
StudnTeachpoint;
System.out.println("请输入教师姓名:
");
tpname=into.nextLine();
for(inti=0;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("警告!
!
!
老师数据为空请添加数据");
}
publicvoidFindteaSpec()
{
StringtpSpec;
booleanzy=true;
StudnTeachpoint;
System.out.println("请输入教师专业:
");
tpSpec=into.nextLine();
for(inti=0;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{
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.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());
}
publicvoidshowTea(intn,StudnTeachpoint)
{
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());
}
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();
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;ipoint.showTea(i,point);
for(inti=0;ipoint.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;ipoint.showTea(i,point);
MenuTea1_1();
break;
case2:
point.addtea(num);
num++;
MenuTea1_1();
break;
case3: