1高校教职工人事管理系统.docx
《1高校教职工人事管理系统.docx》由会员分享,可在线阅读,更多相关《1高校教职工人事管理系统.docx(22页珍藏版)》请在冰豆网上搜索。
1高校教职工人事管理系统
1高校教职工人事管理系统
学 专 业 班
一、课程设计(论文)题目 高校教职工人事治理系统
二、课程设计(论文)工作自2011年6月20日起至2011年6月26日止。
三、课程设计(论文)地点:
创新大楼
四、课程设计(论文)内容要求:
1.本课程设计的目的
(1)熟练把握C++语言的差不多知识和技能;
(2)把握面向对象程序设计的差不多思路和方法;
(3)了解指针、类的继承、文件的打开和储存、链表应用
(4)利用所学的差不多知识和技能,解决面向对象程序设计咨询题
(5)培养分析、解决咨询题的能力;提升学生的科技论文写作能力。
2.课程设计的任务及要求
1)差不多要求:
(1)设计一个的菜单将在实现的功能显示出来,并有选择提示
(2)教师的差不多信息包括编号、职工分类("行政人员","教师","一样职员","退休人员","返聘人员","临时工")、性别、年龄,职务("无","科级","处级","厅级");、职称("无","初级","中级","高级");、政治面貌("群众","中共党员","民主党派")、学历("中专","大专","大学","硕士","博士")
(3)能够实现教职工信息增加、删除、修改、查找。
(4)能够统计在职人员、中共党员、女教职工、高职称、高学历的人数。
(5)要求有错误提示功能,例如输入日期,输入错误提示重新输入
2)创新要求:
教职工的信息能够通过文件储存,并可能载入。
3)课程设计论文编写要求
(1)要按照课程设计模板的规格书写课程设计论文
(2)论文包括名目、正文、心得体会、参考文献等
(3)课程设计论文用B5纸统一打印,装订按学校的统一要求完成
(1)完成原理分析:
20分;
(2)完成设计过程:
40分;
(3)完成调试:
20分;
(4)回答咨询题:
20分。
5)参考文献:
(1)谭浩强.C++程序设计.北京:
清华大学出版社,2004
6)课程设计进度安排
内容天数 地点
构思及收集资料2 图书馆
编程设计与调试5 实验室
撰写论文3 图书馆、实验室
学生签名:
2011年6月日
课程设计(论文)评审意见
(1)完成原理分析(20分):
优( )、良( )、中( )、一样( )、差( );
(2)设计分析 (20分):
优( )、良( )、中( )、一样( )、差( );
(3)完成调试 (20分):
优( )、良( )、中( )、一样( )、差( );
(4)翻译能力 (20分):
优( )、良( )、中( )、一样( )、差( );
(5)回答咨询题 (20分):
优( )、良( )、中( )、一样( )、差( );
(6)格式规范性及考勤是否降等级:
是( )、否( )
2011年6月日
目 录
咨询题描述
(1)编辑一个菜单并需要选择功能:
需要运用到swich语句进行菜单的编辑,以及实现选择功能
(2)录入教师的各项信息:
运用到了voidset(inti)函数即信息的录入
(3)能够实现教职工信息增加、删除、修改、查找。
运用到了voidadd(teacherp)//增加资料voidmodification()//修改资料voidexpurgate()//删除资料intcheckout(intn,intage1);//查找资料函数。
(4)能够统计在职人员,中党人员,女教职工,高职称,高学历人数。
我在这一方面并未使用函数,而是在输出时运用if语句和循环语句实现的。
(5)错误提示功能要紧也是通过if…else语句实现。
内容简介
2.1差不多要求:
(1)设计一个的菜单将在实现的功能显示出来,并有选择提示
(2)教师的差不多信息包括编号、职工分类("行政人员","教师","一样职员","退休人员","返聘人员","临时工")、性别、年龄,职务("无","科级","处级","厅级");、职称("无","初级","中级","高级");、政治面貌("群众","中共党员","民主党派")、学历("中专","大专","大学","硕士","博士")
(3)能够实现教职工信息增加、删除、修改、查找。
(4)能够统计在职人员、中共党员、女教职工、高职称、高学历的人数。
(5)要求有错误提示功能,例如输入日期,输入错误提示重新输入
2.2.算法思想:
那个程序实现时需要注意的是头文件的不同string文件是用来实现姓名,政治面貌,等string型数据的定义。
string是C++中的字符串。
字符串对象是一种专门类型的容器,专门设计来操作的字符序列。
不像传统的c-strings,只是在数组中的一个字符序列,我们称之为字符数组,而C++字符串对象属于一个类,那个类有专门多内置的特点,在操作方式,更直观,另外还有专门多有用的成员函数。
#include要紧是对cin,cout之类的一些操纵运算子,例如setfill,setw,setbase,setprecision等等。
它是I/O流操纵头文件,就像C里面的格式化输出一样。
本程序要紧设计了一个类即teacher类,它包含了所需的各类私有成员包括intnumber//教工号stringsex//性别intage//年龄stringname,stringzhengzhimianmao//政治面貌stringcall//职称stringzhiwu//职务stringxueli//学历
以及增加函数,录入函数,删除函数,修改函数,查找函数。
修改函数由于要修改的变量种类专门多同时需要选择因此运用了swich语句来实现。
录入函数先录入数据判定对错最后进行数据的储备。
整个函数的流程确实是先定义一个类然后对类中的各个函数进行定义,最后在菜单实现的时候开始将函数进行运用。
在类之前还有定义了一些全局变量,常变量要紧是用来实现统计,和循环语句。
主函数实现如下:
voidmain()
{
intn,m=0,a,i,flag=1;
teacherp[N],pt;
intage1=0;
stringcourseform1="0";
cout<<"第一输入教师信息"<for(i=0;ip[i].set(i+1);
do
{
cout<<"***************"<<<"主菜单"<<<"***************"<<<"
(1)修改资料
(2)增加资料(3)删除资料(4)显示资料(5)按照工龄查找并显示(6)显示统计结果"
<<"(7)退出"<<<"然后选择1-6进行操作:
";
cin>>n;
switch(n)
{
case1:
cout<<"输入要修改的教师的教工号:
";
cin>>a;
for(i=0;i{
if(p[i].fanhui(a))p[i].modification();
}
break;
case2:
pt.add(p[N-5+m]);
m++;
break;
case3:
cout<<"输入要删除的教师的教工号:
";
cin>>a;
for(i=0;i{
if(p[i].fanhui(a))p[i].expurgate();
}
break;
case4:
cout<<"输入要显示的教师的教工号:
";
cin>>a;
for(i=0;i{
if(p[i].fanhui(a))p[i].show();
}
break;
case5:
cout<<"***子菜单:
查找资料***"<<<"1按教工年龄查找"<<<"输入1";
cin>>n;
if(n==1)
{
cout<<"输入教工年龄:
";
cin>>age1;
}
for(i=0;iif(p[i].checkout(n,age1))
{
cout<<"已查找到"<p[i].show();
}
break;
case6:
cout<<"***子菜单:
显示统计结果***";
cout<<"中共党员人数为:
"<cout<<"女教职工人数为:
"<cout<<"高职称人数为:
"<cout<<"搞学历人数为:
"<cout<<"(讲明:
1.在职人员不包括退休人员。
"<cout<<"2.高学历包括硕士及博士。
)"<for(i=0;i{
if(p[i].fanhui(a))p[i].show();
}
break;
case7:
flag=0;
break;
default:
cout<<"输入错误,不在1-6之间"<flag=0;
}
}while(flag!
=0);
cout<<"!
!
!
程序运行终止!
!
!
"<}
2.3.模块划分:
那个程序的函数要紧有录入,增加,删除,修改,查找。
录入函数要紧是运用了输入输出语句将所需的教职工信息通过输入输出语句实现录入。
<1>增加函数要紧是通过“p.set(N-4)”来实现增加,系统设置实际录入的函数个数为(N-5)增加一个即(N-4);<2>删除信息函数要紧是将所需删除的变量值赋值为0来实现的即name="0";number=0;sex='\0';age=0;call="0";zhengzhimianmao='\0';xueli="0";zhiwu="0";<3>修改函数要紧是先建立一个子菜单表明要修改的内容利用swich语句进行选择修改。
要紧顺序是先选择要修改的项目,然后将修改过后的值赋给初值例如number=renumber。
<4>查找函数要紧是通过年龄查找这一条线索来进行资料查找要紧利用if…else语句来实现。
最后菜单的实现是通过swich语句来建立的要紧是将修改,查找,显示,删除,统计作为swich的几种情形最后在菜单内进行输出选择。
2.4.源程序:
#include
#include
#include
usingnamespacestd;
constintN=7;
intt=0;
intdang=0;//统计中共党员人数
intgaozhi=0;//统计高职称人数
intgaoli=0;//统计高学历人数
intnv;
classteacher
{
public:
voidset(inti);//录入信息
voidadd(teacherp);//增加资料
voidmodification();//修改资料
voidexpurgate();//删除资料
intcheckout(intn,intage1);//查找资料
voidshow();//输出该档案
intfanhui(inta);//返回一数判定是否是所要选的档案
private:
intnumber;//教工号
stringsex;//性别
intage;//年龄
stringname;
stringzhengzhimianmao;//政治面貌
stringcall;//职称
stringzhiwu;//职务
stringxueli;//学历
};
voidteacher:
:
set(inti)//录入信息
{
{cout<<"录入档案"<
"<cout<<"输入教师的教工号:
";
cin>>number;
cout<<"输入教师姓名:
";
cin>>name;
cout<<"输入教师姓别:
";
cin>>sex;
if(sex=="v")nv++;
cout<<"--(请输入正确的年龄,例如:
18等)"<cin>>age;
cout<<"输入教师正确政治面貌,例如:
党员等"<cin>>zhengzhimianmao;
if(zhengzhimianmao=="党员")dang++;
cout<<"--(请输入正确的职务,例如:
无,科级,处级,地级)"<cin>>zhiwu;
cout<<"请输入正确的学历,例如:
中专,大学,大专,硕士,博士"<cin>>xueli;
if(xueli=="博士")gaoli++;
cout<<"请输入正确的职称,例如:
无,初级,中级,高级"<cin>>call;
if(call=="高级")gaozhi++;
cout<<"档案"<
}
voidteacher:
:
add(teacherp)//增加信息
{
cout<<"输入新增教师档案"<p.set(N-4);
}
voidteacher:
:
expurgate()//删除信息
{
name="0";
number=0;
sex='\0';
age=0;
call="0";
zhengzhimianmao='\0';
xueli="0";
zhiwu="0";
cout<<"删除教师信息成功"<}
intteacher:
:
checkout(intn,intage1)//查找信息
{
intp;
switch(n)
{
case1:
if(age==age1)p=1;
elsep=0;
break;
}
returnp;
}
voidteacher:
:
show()//输出信息
{
cout<<"输出一档案**********"<<<<<<<cout<<"**********输出终止"<}
voidteacher:
:
modification()//修改信息
{
intn,renumber,rezhiwu,reage,flag=1;
stringrename,recall,rezhengzhimianmao,rexueli,resex;
do
{
cout<<"***子菜单:
修改资料***"<<<"修改哪项信息?
"<<<"1(教工号)2(姓名)3(姓别)4(职称)5(年龄)6(参加工作时刻)7(政治面貌)8(学历)9(职务)10(退出)"<<<"输入数字1-8进行修改或退出:
";
cin>>n;
if(n<11&&n>0)
switch(n)
{
case1:
cout<<"输入正确的教工号:
";
cin>>renumber;
number=renumber;
cout<<"教工号修改成功"<break;
case2:
cout<<"输入正确的姓名:
";
cin>>rename;
name=rename;
cout<<"姓名修改成功"<break;
case3:
cout<<"输入正确的性别:
";
cin>>resex;
sex=resex;
cout<<"性别修改成功"<break;
case4:
cout<<"输入正确的职称:
";
cin>>recall;
call=recall;
cout<<"职称修改成功"<break;
case5:
cout<<"输入正确的年龄:
";
cin>>reage;
age=reage;
cout<<"年龄修改成功"<break;
case6:
cout<<"输入正确的政治面貌:
";
cin>>rezhengzhimianmao;
zhengzhimianmao=rezhengzhimianmao;
cout<<"政治面貌修改成功"<break;
case7:
cout<<"输入正确的职务:
";
cin>>rezhiwu;
zhiwu=rezhiwu;
cout<<"职务修改成功"<break;
case8:
cout<<"请输入正确的学历";
cin>>rexueli;
xueli=rexueli;
cout<<"学历修改成功";
break;
case9:
cout<<"退出到主菜单"<flag=0;
break;
}
else
{
cout<<"输入的数字不在1-9之间,请重新输入."<flag=0;
}
}while(flag!
=0);
}
intteacher:
:
fanhui(inta)
{
if(a==number)return1;
elsereturn0;
}
voidmain()
{
intn,m=0,a,i,flag=1;
teacherp[N],pt;
intage1=0;
stringcourseform1="0";
cout<<"第一输入教师信息"<for(i=0;ip[i].set(i+1);
do
{
cout<<"***************"<<<"主菜单"<<<"***************"<<<"
(1)修改资料
(2)增加资料(3)删除资料(4)显示资料(5)按照工龄查找并显示(6)显示统计结果"
<<"(7)退出"<<<"然后选择1-6进行操作:
";
cin>>n;
switch(n)
{
case1:
cout<<"输入要修改的教师的教工号:
";
cin>>a;
for(i=0;i{
if(p[i].fanhui(a))p[i].modification();
}
break;
case2:
pt.add(p[N-5+m]);
m++;
break;
case3:
cout<<"输入要删除的教师的教工号:
";
cin>>a;
for(i=0;i{
if(p[i].fanhui(a))p[i].expurgate();
}
break;
case4:
cout<<"输入要显示的教师的教工号:
";
cin>>a;
for(i=0;i{
if(p[i].fanhui(a))p[i].show();
}
break;
case5:
cout<<"***子菜单:
查找资料***"<<<"1按教工年龄查找"<<<"输入1";
cin>>n;
if(n==1)
{
cout<<"输入教工年龄:
";
cin>>age1;
}
for(i=0;iif(p[i].checkout(n,age1))
{
cout<<"已查找到"<p[i].show();
}
break;
case6:
cout<<"***子菜单:
显示统计结果***";
cout<<"中共党员人数为:
"<cout<<"女教职工人数为:
"<cout<<"高职称人数为:
"<cout<<"搞学历人数为:
"<cout<<"(讲明:
1.在职人员不包括退休人员。
"<cout<<"2.高学历包括硕士及博士。
)"<for(i=0;i{
if(p[i].fanhui(a))p[i].show();
}
break;
case7:
flag=0;
break;
default:
cout<<"输入错误,不在1-6之间"<flag=0;
}
}while(flag!
=0);
cout<<"!
!
!
程序运行终止!
!
!
"<}
(给出所有源程序清单,要求程序有充分的注释语句,至少要注释每个函数参数的含义和函数返回值的含义。
)
2.5.测试情形:
下面是程序的一些运行结果
1档案录入
2程序执行的主菜单
3执行1-6的指令后都会显现如下界面,要求输入职员的编号,因为该程序是基于从教工号入手的:
4当执行1修改资料时,需输入教职工的编号和需要填入的咨询题
5当执行2增加资料时,需要输入需要增加的教工的各项信息
6执行3删除资料时,输入需删除的教工号
7执行4显示资料时输入教职工号
8执行5查找时需输入需要的工龄
9执行6显示统计结果时只需输入“6”就可出结果
分析:
这次课程设计出了一些咨询题,例如在进行人数的统计时由于不明白那个string变量的赋值方式,我以为是和字符串一样的用了比较函数后发觉出了好多的错误,所,以我查阅了有关的资料明白了string类型的变量能够用(==,!
=,<=)等符号来比较,让我赶忙豁然活泼,最终做出了正确的数据统计。
还有一些函数的调用,数据的赋值方面都显现了或多或少的错误,我也都一一改正,到现在那个程序也确实是完成了。
三、小结
通过这次课程设计让我对c++有了更深更正确的了解,往常只是听老师上课讲而没有做过太多的实践对c++程序设计一直专门惧怕,专门怕编程,这次进过了将近两个星期的时刻来完成那个课程设计,不仅让排除了我对c++的惧怕