人事管理系统C++课程设计报告文档格式.docx
- 文档编号:954716
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:25
- 大小:127.76KB
人事管理系统C++课程设计报告文档格式.docx
《人事管理系统C++课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《人事管理系统C++课程设计报告文档格式.docx(25页珍藏版)》请在冰点文库上搜索。
2.系统性能要求:
①系统安全、可靠;
②功能齐全;
③操作方便、界面友好;
④易于维护和扩充。
3.系统的功能分析:
资料维护:
系统维护包括对各种表记录的修改、删除、添加等操作。
4.资料维护:
对数据表中的信息进行浏览。
系统查询:
可以按职工编号、姓名等相关信息进行详细或模糊查询。
报表统计:
包括统计职工编号、职工姓名、职工性别、所在部门、职工年龄、工作日期、基本工资、职称、职务和简历等字段。
其它操作:
系统封面、计时器控制与人性化提示信息。
系统功能模块
人事管理系统有:
数据查找与浏览、数据修改、报表显示和系统封面构成。
5.功能的实现:
1“数据查找与浏览”模块:
(1)数据查找:
对职工的编号、职工姓名、职工性别、所在部门、职工年龄、工作日期、基本工资、职称、职务和简历等字段进行精确或模糊查找。
(2)数据浏览:
可以对数据表中的数据实现,上—项、下—项、首相、尾项等操作。
(3)其他信息:
设置字体、颜色属性和—些提示信息。
2“数据修改”模块:
(1)添加数据:
增加—个新的记录
(2)修改数据:
修改原有记录。
二 总体方案设计
整体设计为数据输入模块、数据添加模块、数据删除模块、数据查询模块、数据修改模块、数据统计模块、数据排序模块。
数据输入模块把员工信息逐一写入人事档案文件。
数据添加模块用追加的方式把新增员工信息写入人事档案文件。
数据删除模块根据人员编号查找要删除的人员,从文件中读一条记录,查看编号是否要删除,如果是,则舍弃。
数据查询模块把编号和姓名作为查询字段,用基本查找算法查找人事档案文件,把符合查找要求的记录输出。
数据输出模块通过菜单选择年龄或者来时时间,把数据从文件中读出来,任意选择一种排序算法对记录进行排序,输出排序结果。
这些模块中我负责数据查询和删除两个部分。
三 详细设计
数据结构采用成员类:
classperson //定义通讯成员类
{
public:
charnum[20];
//编号charname[30];
//姓名charsex[20];
//性别charage[20];
//年龄
charposition[20];
//职位charaddress[500];
//地址chartel[100];
//手机号
charnation[30];
//民族
charpolitical_status[20];
//政治面貌charmarital_status[20];
//婚姻状况charschool[200];
//毕业院校
charidentity[500];
//身份证号charemail[20];
//邮箱
Public:
//对其成员函数的声明voidadd_person(int&
);
//新增通讯成员
boolsearchnum();
//按编号查找boolsearchname();
//按姓名查找voiddelnum(int&
//按编号删除voiddelname(int&
//按姓名删除voidshowall();
//统计职员数
voidget_i();
//读取数据文件职员数
friendostream&
operator<
<
(ostream&
out,person&
pe);
//重载运算符"
"
};
数据输入模块
把员工信息逐一写入人事档案文件。
数据添加模块
用追加的方式把新增员工信息写入人事档案文件。
cout<
请输入职员的的编号:
(1000-9999)"
endl;
cin>
>
num;
请输入职员姓名:
name;
请输入性别:
sex;
while((string)sex!
="
男"
&
(string)sex!
女"
)
您输入的性别有误,请核对后再输入:
}
请输入年龄:
age;
请输入该职员的职位:
(经理,管理员,员工)"
position;
while((string)position!
经理"
(string)position!
管理员
员工"
您输入的职工职位有误,请核对后再输入:
请输入该职员的家庭地址:
address;
请输入该职员的民族:
nation;
请输入职员的政治面貌:
(群众,团员,党员)"
political_status;
while((string)political_status!
群众"
(string)
political_status!
团员"
(string)political_status!
党员"
您输入的职工政治面貌有误,请核对后再输入:
请输入职员的婚姻状况(未婚,已婚)"
marital_status;
while((string)marital_status!
未婚"
marital_status!
已婚"
cout<
您输入的职工的婚姻状况有误,请核对后再输入:
请输入职员的毕业学校:
school;
请输入职员的身份证号:
identity;
请输入职员的手机号:
cin>
tel;
请输入职员的邮箱:
email;
请输入职员的聘用时间:
engage_time;
请输入此次记录的添加时间:
add_time;
ofstream outfile("
test.dat"
ios:
:
app|ios:
binary);
//打开
文件,并将指针指向文件尾
(3)数据删除模块
根据人员编号查找要删除的人员,从文件中读一条记录,查看编号是否要删除,如果是,则舍弃
如:
//打开用于写的二进制文件"
ifstream infile("
tmp.dat"
//打开用于读的二进制文件"
infile.read((char*)(this),sizeof(*this));
//读取一个类对象数据放入*this中
while(!
infile.eof())
outfile.write((char*)(this),sizeof(*this));
//将从"
中读取的数据写入"
test.dat"
中
//再从"
中读取一个类对象数据放入*this中
不再写入文件;
否则重新写入文件。
(4)数据查询模块
把编号和姓名作为查询字段,用基本查找算法查找人事档案文件,把符合查找要求的记录输出。
(5)数据修改模块
查找要修改的记录,修改之。
先读记录,若是要修改的记录,则修改信息,
保存信息
把修改后的信息写入文件;
否则直接写入文件。
例如按姓名修改:
if(delmark==1)//若找到了删除对象,就用"
tmp.dta"
文件内容去充当
(6)数据输出模块
通过菜单选择年龄或者来时时间,把数据从文件中读出来,任意选择一种排序算法对记录进行排序,输出排序结果。
if(i==0)//人事管理系统中无此职员,请先增加职员信息信息
人事管理系统数据为空,请先增加职员信息!
else
ifstreaminfile("
//打开用于读的binary文件
//读取一个类对象数据放入
*this中
所有职员的信息如下:
infile.eof())//沿未到达文件尾,继续处理
(*this);
//输出当前对象的各数据成员
程序流程图
人事管理系统
1、添加人事信息
2、
3、
4、
5、
6、
7、
8、
0、
按
显
清
统
退
姓
编
示
空
计
出
名
号
人
查
删
事
找
除
管
档
理
案
系
4.1具体函数per.get_i();
menu();
password();
per.add_person();
//调用增加人事档案中职员信息函数
per.searchname();
//调用按姓名查找职工信息函数
per.searchnum();
//调用按编号查找职工信息函数
per.delname();
//调用按姓名删除职工信息函数
per.delnum();
//调用按编号删除职工信息函数
per.showall();
//调用显示人事档案管理系统中所有职员信息的函数
delall();
//调用清空人事档案管理系统中所有数据的函数
total();
//调用输出人事档案管理系统中职员数的函数
四 程序的调试与运行结果说明
4.1调试方法
将已经编好的程序放在VC++6.0的环境中进行调试与测试,发现程序中的错误,
在提示的情况下进行改正。
4.2运行的主要功能界面及分析
(1)、菜单界面
(2)、输入信息界面
图2-1菜单
图2-2信息输入
(3)、按姓名查找信息界面
图2-3姓名查找
(4)、编号查找信息界面
图2-4编号查找信息
(5)、按姓名删除信息界面
2-5按姓名删除信息
(6)、按编号删除信息界面
2-6按编号删除信息
(7)、显示人事档案管理系统中所有职员信息界面
图2-7(由于前面两步将系统中唯有的2租数据删除了 需哦亿显示员工信息需重新添加新的员工信息
(8)统计人事管理系统中职员人数
图2-8
(9)、清空人事管理系统中的数据
(10)、退出界面
图2-9
(11)、程序运行分析
图2-10退出程序
测试是将在屏幕上出来有关人事档案需要填写的东西,输入需要填写的信息,然后逐步操作添加信息,删除信息,查询信息,修改信息等操作来实现程序的功能。
4.3测试中的问题
注意声明函数时,各函数之间的调用关系。
五课程设计总结
5.1程序的效果描述
该程序主要实现人事管理的功能。
利用14个函数的组合组成程序,然后通过该程序输入人事信息,然后利用各个函数的调用,实现信息输入,信息添加,信息查询,信息删除,信息修改等功能。
5.2优点与不足
优点:
使用结构使程序的输入输出更简洁使用函数可以使程序更简便;
不足:
输入的内容比较多;
用文件储存信息不能用结构输入;
读取文件中的信息也不能用结构读取;
程序比较大,各部分之间的关系繁琐;
5.3个人体会
学习C++要切忌浮躁,要明白欲速则不达。
如果想要学好C++就要多看多写,而最关键的是要上课听老师分析。
通过一个学期的学习,我更了解计算机编程了,同时也更喜欢计算机了。
并且我也知道了如何学好C++,学C++靠的不是上课的那点儿时间,而是课前的预习工作及课后的复习工作,还有对写程序的及时练习,练习写程序不仅是对知识的复习也是对知识的熟练从而也能更深刻的理解程序,理解C++。
我们学习
C++不仅要看课本,更重要的是看学习资料,从而使掌握的知识更广阔。
只有拥有丰富的知识以及掌握对编程的熟练度,才能对程序灵活书写。
C++是比C语言更高级的一门语言,我们也可以通过学习C语言来学习C++,这样就可以减少学习中遇到的困难。
想要学好C++,让我们一起努力吧。
参考文献
【1】谭浩强,C程序设计题解与上机指导(第二版),北京,清华大学出版社,2000年9
月。
【2】《C++程序设计语言(特别版)》,机械工业出版社。
【3】袁志祥、秦锋主编,《数据结构(c语言版)例题详解与课程设计指导》第二版中国科学技术大学出版社出版
/*人事档案管理系统*/#include<
iostream>
#include<
fstream>
string>
usingnamespacestd;
//姓名
charsex[20];
//性别charage[20];
//年龄charposition[20];
//手机号charnation[30];
charengage_time[100];
//聘用时间charadd_time[100];
//记录时间
//对其成员函数的声明voidadd_person(int&
//新增通讯成员boolsearchnum();
//按编号查找
boolsearchname();
//按姓名查找voiddelnum(int&
//按编号删除voiddelname(int&
//统计职员数
ostream&
pe)//定义重载运算符"
从而直接输出类对象
out<
编号:
"
pe.num<
姓名:
pe.name<
性别:
pe.sex<
年龄:
pe.age<
职位:
pe.position<
手机号:
pe.tel<
民族:
pe.nation<
政治面貌:
"
pe.political_status<
婚姻状况:
pe.marital_status<
毕业院校:
pe.school<
身份证号:
pe.identity<
邮箱:
pe.email<
聘用时间:
pe.engage_time<
记录时间:
pe.add_time<
returnout;
inti=0;
//定义全局变量,用于记录人事档案管理系统中的职员数voidperson:
get_i()
ifstreamfile("
binary|ios:
in);
//打开用于读的binary文件if(!
file)
ofstreamoutfile("
//打开"
文件,并将指针指向文
件尾
if(!
outfile)
cerr<
test.dat文件打开错误!
return;
return;
file.read((char*)(this),sizeof(*this));
file.eof())
i++;
//每调用一次该函数,职员总数增加1
//再读取一个类对象数据放入*this中
file.close();
voidperson:
add_person(int&
i)//增加人事档案中职员信息函数
stringchoice="
Y"
;
while(choice=="
||choice=="
y"
-----新建人事档案职员信息 "
工"
管理员"
员
(string)marital_status!
outfil
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人事管理系统 C+ 课程设计 报告