高校人事管理系统.docx
《高校人事管理系统.docx》由会员分享,可在线阅读,更多相关《高校人事管理系统.docx(20页珍藏版)》请在冰点文库上搜索。
高校人事管理系统
河北联合大学
2011-2012第2学期
《软件设计基础-C++》
课程设计报告
设计名称:
高校人事管理系统
姓名:
学专业班级:
学院:
设计时间:
设计地点:
目录
1.课程设计目的
2.课程设计任务与要求
3.课程设计说明书
4.课程设计成果
5.程序调试过程
6.设计问题的不足和改进方案
7.课程设计心得
8.参考文献
1.课程设计目的
《软件设计基础-C++》课程设计是这门课程的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖C++的知识点,又接近工程实际需要。
目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握C++这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。
2.课程设计任务与要求:
要求:
本次课程设计利用《软件设计基础-C++》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。
要求:
1、对系统进行功能需求分析
2、设计合理的数据结构和系统框架
3、编程简练,程序功能齐全,能正确运行
4、说明书、流程图要清楚
5、课题完成后必须按要求提交课程设计报告
任务:
某高校,主要人员有:
在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。
现在,需要存储这些人员的人事档案信息:
编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。
(1) 添加删除功能:
能根据高校人事的变动情况,添加删除记录;
(2) 查询功能:
能根据编号和姓名进行查询;
(3) 编辑功能(高级):
根据查询对相应的记录进行修改,并存储;
(4) 统计功能:
能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历人数);
(5) 保存功能:
能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。
(6) 人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。
3.课程设计说明书
概要设计
模块说明:
高校人事管理系统的设计程序共包括七个模块,分别是添加并保存模块、删除模块、修改模块、查询模块、统计模块、显示模块、退出系统模块。
模块结构图:
详细设计
总体流程图:
运行
选择要统计的信息
输入要查询的编号或姓名后
统计完后
统计完后
各功能模块流程图:
(1),查询功能:
能根据编号和姓名进行查询
(2)统计人员信息功能.能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历人数);
(3)显示所有信息功能:
能对管理内部所有信息,包括编号,姓名,职务,学历等等信息进行分类统计显示。
4.课程设计成果
1.源程序代码
#include
#include//文件流,数据流输入/输出
#include
#include//参数化输入/输出是setw()函数的头文件
usingnamespacestd;
intk;
classperson//人员基本信息//
{
//人员类似有数据成员
private:
charnum[10];//序号//
chartype[20];//编号//
charname[20];//姓名//
charsex[10];//性别//
charage[10];//年龄//
charzhiwu[20];//职务//
charzhichen[20];//职称//
charzzmm[20];//政治面貌//
charzgxl[20];//最高学历//
charrzsj[20];//任职时间//
charlysj[30];//来院时间//
staticintbianhao;
public:
//构造函数一
voidsetperson(char*type1,char*name1,char*sex1,char*age1,char*zhiwu1,
char*zhichen1,char*zzmm1,char*zgxl1,char*rzsj1,char*lysj1);
staticint&getbianhao(){returnbianhao;}
char*gettype(){returntype;}
char*getname(){returnname;}
char*getsex(){returnsex;}
char*getage(){returnage;}
char*getzhiwu(){returnzhiwu;}
char*getzhichen(){returnzhichen;}
char*getzzmm(){returnzzmm;}
char*getzgxl(){returnzgxl;}
char*getrzsj(){returnrzsj;}
char*getlysj(){returnlysj;}
char*getnum(){returnnum;}
voidtjry();
voidfind();//查找匹配信息//
voidoutput();//输出//
voidshancu();//删除//
voidxiugai();//修改//
voidtongji();//统计//
};personp[100];
personpp[100];
intk1;
intperson:
:
bianhao=0;
//构造函数二
voidperson:
:
setperson(char*type1,char*name1,char*sex1,char*age1,char*zhiwu1,
char*zhichen1,char*zzmm1,char*zgxl1,char*rzsj1,char*lysj1)
/*某高校,主要人员有:
在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。
现在,需要存储这些人员的人事档案信息:
编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。
{
intstaticj=1;
strcpy(type,type1);//字符串的拷贝
strcpy(name,name1);
strcpy(sex,sex1);
strcpy(age,age1);
strcpy(zhiwu,zhiwu1);
strcpy(zhichen,zhichen1);
strcpy(zzmm,zzmm1);
strcpy(zgxl,zgxl1);
strcpy(rzsj,rzsj1);
strcpy(lysj,lysj1);
bianhao++;
ofstreamfile("添加人员.txt",ios_base:
:
app);
file<
file<
file<
file<
file<
file<
file<
file<
file<
file<
file<
j++;
file.close();
}
voidperson:
:
find()//查找//
{
cout<<"1:
按编号查询--2:
按姓名查询-请选择(1-2)"<intm;
cin>>m;
while(m<1||m>2)
{
cout<<"请重新输入(1-2)"<>m;
}
switch(m)
{
case1:
{charn[10];
cout<<"请输入要查找的编号:
";
cin>>n;
ifstreamfilem("添加人员.txt",ios_base:
:
in);
intk=1;
cout<<"编号"<<<<while(!
filem.eof())
{
filem>>pp[k].getnum();
filem>>pp[k].gettype();
filem>>pp[k].getname();
filem>>pp[k].getsex();
filem>>pp[k].getage();
filem>>pp[k].getzhiwu();
filem>>pp[k].getzhichen();
filem>>pp[k].getzzmm();
filem>>pp[k].getzgxl();
filem>>pp[k].getrzsj();
filem>>pp[k].getlysj();
if(strcmp(pp[k].getnum(),n)==0)
{
cout<<<<<k++;
if(filem.eof())
{
cout<cout<<"警告:
没有要查找的人!
!
!
!
!
!
!
!
!
!
";}
}
filem.close();}break;
case2:
{
charnname[20];
cout<<"请输入要查找的姓名:
";
cin>>nname;
ifstreamfilem("添加人员.txt",ios_base:
:
in);
intk=1;
cout<<"编号"<<<<while(!
filem.eof())
{
filem>>pp[k].getnum();
filem>>pp[k].gettype();
filem>>pp[k].getname();
filem>>pp[k].getsex();
filem>>pp[k].getage();
filem>>pp[k].getzhiwu();
filem>>pp[k].getzhichen();
filem>>pp[k].getzzmm();
filem>>pp[k].getzgxl();
filem>>pp[k].getrzsj();
filem>>pp[k].getlysj();
if(strcmp(pp[k].getname(),nname)==0)
{
cout<<<<<k++;
if(filem.eof())
{
cout<cout<<"警告:
没有要查找的人!
!
!
!
!
!
!
!
!
!
";}
}
filem.close();
}
break;
}
}
2.运行结果
图1,运行主页面
图2,查询人员信息界面
图3,统计人员信息界面
图4,显示所有信息界面
5.程序调试过程
写出程序调试步骤,及遇到的问题。
将程序编写完成后,进行编译,出现了errorC2143:
syntaxerror:
missing';'before'',errorC2043:
illegalbreak,errorC2046:
illegalcase,rrorC2018:
unknowncharacter'0xa3',errorC2146:
syntaxerror:
missing';'beforeidentifier'i',rrorC2143:
syntaxerror:
missing';'before')'等错误,经过不断的调试,
6.设计问题的不足和改进方案
7.课程设计心得
1.做这次课程设计明显的看出自己的不足,以及自己所学知识的有限,遇到的最大问题就是拿到这个题目无从下手,后来经过老师的教导和自己查找有关资料得以解决。
问题一:
对课程设计的题目的题意不是很清楚。
后来通过和伙伴共同探讨,知道了题目大概要用到什么知识点。
2.我觉得可以用类中的派生类做比较好,那样的话,程序的条理比较清晰,并且容易理解。
3.可以扩充的功能可以加上计算员工工资的结算(如按照薪水和奖金以及罚金结算工资),还有可以加上运用运算符重载的功能实现。
我希望我做的课程设计有个美好的界面以及很方面地为广大消费者服务。
可以的话,加上些消遣的小程序也是可以的,同时提供些学习的程序方便学习英语以及其他。
8.参考文献
[1]BjarneStroustrup,THEC++PROGRAMMINGLANGUAGE,HigherEducationPressPearsonEducation,
2002
[2][美]WalterSavitch著,周靖译,C++面向对象程序设计——基础、数据结构与编程思想,清华大学出版
社,2004
[3][美]BrianOverland著,董梁等译,C++语言命令详解,电子工业出版社,2000
[4]陈光明主编,实用VisualC++编程大全,西安电子科技大学出版社,2000
[5][美]BeckZaratian著,VisualC++6.0Programmer’sGuide,北京希望电脑公司,1998
[6][美]JonBates,TimTonpkins著,何健辉等译,实用VisualC++6.0教程,清华大学出版社,2000
[7][美]RobertL.Krusw,AlexanderJ.Ryba著,钱丽萍译,C++数据结构与程序设计,清华大学出版社,2004