资源描述
河南城建学院
《面向对象程序设计》课程设计汇报书
设 计 题 目:企业人事管理系统
指 导 老 师:
学 生 学 号:1314132
学 生 姓 名:
同 组 人 员:
时 间:12月30日
目 录
第1章 选 题 2
1.1 题目背景 2
1.2系统实现具体分工 2
1.2.1 标题 2
1.3开发环境 2
第2章 设计内容 3
2.1实现功效 3
2.2 概要设计(包含类框图) 3
2.3 界面设计 3
第3章 系统实现 4
3.1 包含知识点 4
3.2 系统运行(关键运行界面抓图) 4
3.3 源程序清单(关键代码) 4
第4章 结束语 5
第1章 选 题
1.1 题目背景
伴随现在计算机技术不停完善,和现代经济不停发展,传统管理技 术不再满足企业需要,越来越多企业重视计算机信息管理系统,人事信息管理系统是经典计算机信息管理系统之一,企业借助于它进行人力资源管理,达成事半功倍。
1.2系统实现具体分工
系统分为“结构”数据类型、主界面类、二级界面类、操作类和主函数等几大模块,其中操作类实现①对职员信息录入、存放、修改,②管理员对全部些人员信息查看、个人信息查看、删除,main() 函数对shuju函数和caozuo11函数调用,其中shuju函数实现把txt文件中内容读入程序。
1.2.1 标题
企业人事管理系统
1.3开发环境
Visual C++ 6.0
机型:联想笔记本
处理器名称:Intel(R)Core(TM)i3-3110M CPU @ 2.40GHz
硬盘驱动器:PLEXTOR PX-128M6S
系统内存:8GB
显示卡: AMD
显示器: Intle
操作系统:Microsoft Windows 10 第2章 设计内容
2.1实现功效
系统关键包含职员信息输入、查看和修改,管理员对职员信息查看和删除。系统默认第一个输入信息人为管理员,每个人全部有自己密码,进入管理员操作需要输入管理员密码(也就是第一个人密码)。最终信息会存入E:\c++shuju文件夹里。
2.2 概要设计(包含类框图)
2.3 界面设计
界面设计在工作步骤上分为结构设计、交互设计、视觉设计三个部分。
结构设计 Structure Design
结构设计也称概念设计 (Conceptual Design),是界面设计骨架。该图书管理系统运行时界面上目录体系和词语定义易于用户了解和操作,比如主界面目录体系包含1 职员、2 管理员、3 退出。其中读者服务又下分目录1 信息输入、2 信息查看、3 信息修改、4 返回主界面。充足表现了结构化界面设计理念。
交互设计 Interactive Design
交互设计目标是使产品让用户能简单使用。 任何产品功效实现全部是经过人和机器交互来完成。企业人事管理系统中包含1)清楚错误提醒,误操作后,系统提供有针对性提醒。比如密码错误时,系统会给出对应提醒,以指导读者进行正确操作。2) 使用用户语言,而非技术语言。 3)方便退出。4)导航功效。随时转移功效,很轻易从一个功效跳到另外一个功效。比如读者所需各服务间功效转换。人原因被作为设计关键表现出来。
视觉设计 Visual Design
该管理系统界面清楚明了,在结构设计基础上,参考目标群体心理模型和任务达成进行了视觉设计。 第3章 系统实现
3.1 包含知识点
类封装、面向对象程序设计、数组应用、循环语句使用、过程化设计思想等
3.2 系统运行(关键运行界面抓图)
主界面(见图3.2.1)
图3.2.1
职员(见图3.2.2)
图3.2.2
管理员(见图3.2.3)
图3.2.3
退出(见图3.2.4)
图3.2.4
3.3 源程序清单(关键代码)
#include<iostream>
#include<string>
#include<cstring>
#include<fstream>
using namespace std;
struct people1{ //一组数据含有不一样数据类型。
string ID; //显然不能用一个数组来存放这一组数据。
string name; //因为数组中各元素类型和长度全部必需一致,方便于编译系统处理。
string sex; //为了处理这个问题,C语言中给出了另一个结构数据类型——“结构”
string zhiwu;
string yuexin;
string tele;
string zhuzhi;
string mima;
string zhigonghao;
};
class xitong{
public:
void zhujiemian(){
cout<<endl;
cout<<endl;
cout<<endl<<endl<<endl;
cout<<" __________________________________ "<<endl;
cout<<" 丨 企业人事管理系统 丨"<<endl;
cout<<" 丨~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~丨"<<endl;
cout<<" 丨请选择您身份: 丨"<<endl;
cout<<" 丨 1.职 员 丨"<<endl;
cout<<" 丨 2.管理员 丨"<<endl;
cout<<" 丨 3.退 出 丨"<<endl;
cout<<" 丨________________________________丨"<<endl;
}
};
class caozuo1:public xitong{
public:
void zhiyuan(){
cout<<" __________________________________ "<<endl;
cout<<" 丨请选择您操作: 丨"<<endl;
cout<<" 丨 1.信息输入 丨"<<endl;
cout<<" 丨 2.信息查看 丨"<<endl;
cout<<" 丨 3.信息修改 丨"<<endl;
cout<<" 丨 4.返回主界面 丨"<<endl;
cout<<" 丨________________________________丨"<<endl;
}
void guanliyuan(){
cout<<" __________________________________ "<<endl;
cout<<" 丨请选择管理员操作: 丨"<<endl;
cout<<" 丨 1.查看全部职员信息 丨"<<endl;
cout<<" 丨 2.查看个人信息 丨"<<endl;
cout<<" 丨 3.更改密码 丨"<<endl;
cout<<" 丨 4.返回主界面 丨"<<endl;
cout<<" 丨________________________________丨"<<endl;
}
int renshudaochu(int renshu){ //括号内数字存入txt文件
ofstream fin("E:\C++shuju\\renshu.txt");
fin << renshu;
return 0;
}
int renshudaoru(){ //txt文件内容读入程序
ifstream fin("E:\C++shuju\\renshu.txt");
int renshu;
fin >> renshu;
return renshu;
}
string xinxidaoru(int aa){ //括号内数字为文件名,把对应文件名文件内内容读入程序
char str[100];
sprintf(str,"E:\C++shuju\\%d.txt",aa);
ifstream outfile(str);
string x;
outfile>>x;
return x;
}
char xinxidaochu(string aaa,int bianhao){ //括号内内容为文件要存入内容和文件名
char str[100];
sprintf(str,"E:\C++shuju\\%d.txt",bianhao); //作用:能够自定义文件名
ofstream outfile(str);
outfile<<aaa;
return 1;
}
};
class caozuo2:public caozuo1{
public:
people1 peo[1000];
void xinxishuru();
void shuju();
void xinxixiugai(int);
void xinxishanchu(int);
void caozuo11();
void zhiyuancaozuo();
void xinxichakan(int);
void shifoujixu();
void mima1(int);
void mima2(int);
void guanliyuanmima(int);
void guanliyuancaozuo();
void guanliyuanxinmima();
int xingming_gonghao();
void suoyouren();
void fanhuiguanliyuan();
void fanhuizhiyuan();
};
void caozuo2::xinxishuru(){ //信息输入函数
int bbb,z;
z=renshudaoru();
z++;
cout<<"请输入您个人信息:"<<endl; bbb=10*z;
cout<<"姓 名:";cin>>peo[z].name; xinxidaochu(peo[z].name,bbb); bbb=10*z+1;
cout<<"性 别:";cin>>peo[z].sex; xinxidaochu(peo[z].sex,bbb); bbb=10*z+2;
cout<<"职 务:";cin>>peo[z].zhiwu; xinxidaochu(peo[z].zhiwu,bbb); bbb=10*z+3;
cout<<"月 薪:";cin>>peo[z].yuexin;xinxidaochu(peo[z].yuexin,bbb);bbb=10*z+4;
cout<<"手 机 号:";cin>>peo[z].tele; xinxidaochu(peo[z].tele,bbb); bbb=10*z+5;
cout<<"家庭住址:";cin>>peo[z].zhuzhi;xinxidaochu(peo[z].zhuzhi,bbb);bbb=10*z+6;
cout<<"密 码:";cin>>peo[z].mima; xinxidaochu(peo[z].mima,bbb); bbb=10*z+7;
cout<<"已自动职员号为您生成职员号:"<<endl;
cout<<" 请记好您职员号:"<<z<<endl;
char zz[10];itoa(z,zz,10); xinxidaochu(zz,bbb);
renshudaochu(z);
}
void caozuo2::suoyouren(){
int aa;
aa=renshudaoru();
for(int i=1;i<=aa;i++){
cout<<"姓 名:"<<peo[i].name<<endl;
cout<<"性 别:"<<peo[i].sex<<endl;
cout<<"职 务:"<<peo[i].zhiwu<<endl;
cout<<"月 薪:"<<peo[i].yuexin<<endl;
cout<<"手 机 号:"<<peo[i].tele<<endl;
cout<<"家庭住址:"<<peo[i].zhuzhi<<endl;
cout<<"职 工 号:"<<peo[i].zhigonghao<<endl<<endl<<endl<<endl<<endl<<endl;
}
}
void caozuo2::shuju(){//把全部存有志愿信息文件内内容读入程序
int aa;
aa=renshudaoru();
for(int i=1;i<=aa;i++){
peo[i].name=xinxidaoru(10*i);
peo[i].sex=xinxidaoru(10*i+1);
peo[i].zhiwu=xinxidaoru(10*i+2);
peo[i].yuexin=xinxidaoru(10*i+3);
peo[i].tele=xinxidaoru(10*i+4);
peo[i].zhuzhi=xinxidaoru(10*i+5);
peo[i].mima=xinxidaoru(10*i+6);
peo[i].zhigonghao=xinxidaoru(10*i+7);
}
}
void caozuo2::xinxixiugai(int z){
int bbb;
cout<<"请输入新个人信息:"<<endl;bbb=10*z;
cout<<"姓 名:";cin>>peo[z].name; xinxidaochu(peo[z].name,bbb); bbb=10*z+1;
cout<<"性 别:";cin>>peo[z].sex; xinxidaochu(peo[z].sex,bbb); bbb=10*z+2;
cout<<"职 务:";cin>>peo[z].zhiwu; xinxidaochu(peo[z].zhiwu,bbb); bbb=10*z+3;
cout<<"月 薪:";cin>>peo[z].yuexin;xinxidaochu(peo[z].yuexin,bbb);bbb=10*z+4;
cout<<"手 机 号:";cin>>peo[z].tele; xinxidaochu(peo[z].tele,bbb); bbb=10*z+5;
cout<<"家庭住址:";cin>>peo[z].zhuzhi;xinxidaochu(peo[z].zhuzhi,bbb);bbb=10*z+6;
cout<<"密 码:";cin>>peo[z].mima; xinxidaochu(peo[z].mima,bbb); bbb=10*z+7;
cout<<"职 工 号:"<<z<<endl;
char zz[10];itoa(z,zz,10); xinxidaochu(zz,bbb);
}
void caozuo2::xinxichakan(int z){
cout<<"以下为您要查看信息:"<<endl;
cout<<"姓 名:";cout<<peo[z].name<<endl;
cout<<"性 别:";cout<<peo[z].sex<<endl;
cout<<"职 务:";cout<<peo[z].zhiwu<<endl;
cout<<"月 薪:";cout<<peo[z].yuexin<<endl;
cout<<"手 机 号:";cout<<peo[z].tele<<endl;
cout<<"家庭住址:";cout<<peo[z].zhuzhi<<endl;
cout<<"职 工 号:"<<z<<endl;
}
void caozuo2::shifoujixu(){
cout<<" 按1返回主界面"<<endl;
cout<<"请输入您选择:";
int n;
cin>>n;
switch(n){
case 1:
system("cls");
caozuo11();
break;
}
}
void caozuo2::fanhuiguanliyuan(){
cout<<" 按1返回管理员界面"<<endl;
cout<<" 请输入您选择:";
int n;
cin>>n;
switch(n){
case 1:
system("cls");
guanliyuancaozuo();
break;
}
}
void caozuo2::fanhuizhiyuan(){
cout<<" 按1返回职员界面"<<endl;
cout<<" 请输入您选择:";
int n;
cin>>n;
switch(n){
case 1:
system("cls");
zhiyuancaozuo();
break;
}
}
void caozuo2::guanliyuanmima(int z){
cout<<"请输入管理员密码:";
string mima2;
cin>>mima2;
if(mima2==peo[z].mima)
guanliyuancaozuo();
else{
cout<<" 提醒:密码错误"<<endl<<endl;
cout<<" 1.返回主界面"<<endl;
cout<<" 2.重新输入密码"<<endl;
cout<<"请按提醒输入:";
int n;
cin>>n;
switch(n){
case 1:
system("cls");
caozuo11();
break;
case 2:
system("cls");
guanliyuanmima(z);
break;
}
}
}
void caozuo2::mima1(int z){
cout<<"请输入您密码:";
string mima2;
cin>>mima2;
if(mima2==peo[z].mima)
xinxichakan(z);
else{
cout<<" 提醒:密码错误"<<endl<<endl;
cout<<" 1.返回主界面"<<endl;
cout<<" 2.重新输入密码"<<endl;
cout<<"请按提醒输入:";
int n;
cin>>n;
switch(n){
case 1:
caozuo11();
break;
case 2:
mima1(z);
break;
}
}
}
void caozuo2::mima2(int z){
cout<<"请输入您密码:";
string mima2;
cin>>mima2;
if(mima2==peo[z].mima)
xinxixiugai(z);
else{
cout<<" 提醒:密码错误"<<endl<<endl;
cout<<" 1.返回主界面"<<endl;
cout<<" 2.重新输入密码"<<endl;
cout<<"请按提醒输入:";
int n;
cin>>n;
switch(n){
case 1:
caozuo11();
break;
case 2:
mima1(z);
break;
}
}
}
int caozuo2::xingming_gonghao(){
cout<<"请输入您要查看人姓名:";
string name2;
cin>>name2;
int n;
n=renshudaoru();
for(int i=1;name2!=peo[i].name;i++){}
return i;
}
void caozuo2::guanliyuanxinmima(){
cout<<"请输入管理员密码:";
string mima2;
cin>>mima2;
if(mima2==peo[1].mima){
cout<<"请输入新密码:";
string mima3;
cin>>mima3;
peo[1].mima=mima3;
xinxidaochu(peo[1].mima,16);
cout<<"密码修改成功"<<endl;
fanhuiguanliyuan();
}
else{
cout<<" 提醒:密码错误"<<endl<<endl;
cout<<" 1.返回主界面"<<endl;
cout<<" 2.重新输入密码"<<endl;
cout<<"请按提醒输入:";
int n;
cin>>n;
switch(n){
case 1:
system("cls");
caozuo11();
break;
case 2:
system("cls");
guanliyuanxinmima();
break;
}
}
}
void caozuo2::guanliyuancaozuo(){
system("cls");
guanliyuan();
cout<<"请输入选项:";
int n,m;
cin>>n;
switch(n){
case 1:
system("cls"); //清屏
suoyouren();
fanhuiguanliyuan();
break;
case 2:
system("cls"); //清屏
m=xingming_gonghao();
xinxichakan(m);
cout<<" 1.删除此人信息"<<endl;
cout<<" 2.返回管理员操作界面"<<endl;
cout<<"请输入您选择:";
cin>>n;
if(n==1){
xinxishanchu(m);
}
else{
guanliyuancaozuo();
}
break;
case 3:
system("cls"); //清屏
guanliyuanxinmima();
fanhuiguanliyuan();
break;
case 4:
system("cls");
caozuo11();
break;
default:
system("cls");
cout<<" ※※※无此选项※※※"<<endl<<endl;
caozuo11();
break;
}
}
void caozuo2::zhiyuancaozuo(){
zhiyuan();
cout<<"请输入选项:";
int n,m;
cin>>n;
switch(n){
case 1:
system("cls"); //清屏
xinxishuru();
fanhuizhiyuan();
break;
case 2:
system("cls"); //清屏
m=xingming_gonghao();
mima1(m);
fanhuizhiyuan();
break;
case 3:
system("cls"); //清屏
m=xingming_gonghao();
mima2(m);
fanhuizhiyuan();
break;
case 4:
system("cls");
caozuo11();
break;
default:
system("cls");
cout<<" ※※※无此选项※※※"<<endl<<endl;
fanhuizhiyuan();
break;
}
}
void caozuo2::caozuo11(){
for(int n,m=1;m==1;){
system("cls");
zhujiemian();
cout<<"请输入选项:";
cin>>n;
switch(n){
case 1:
system("cls"); //清屏
zhiyuancaozuo();
m=2;
break;
case 2:
system("cls"); //清屏
guanliyuanmima(1);
m=2;
break;
case 3:
system("cls");
m=2;
break;
default:
system("cls");
cout<<" ※※※无此选项※※※"<<endl<<endl;
m=1;
break;
}
}
}
void caozuo2::xinxishanchu(int z){
int bbb,n;
cout<<"职员号为:"<<z<<"职员信息将被删除"<<endl;bbb=10*z;
cout<<" 1.确定删除"<<endl;
cout<<" 2.取消删除"<<endl;
cout<<"请输入您选择:";
cin>>n;
cout<<endl;
system("cls");
switch(n){
case 1:
peo[z].name="无信息"; xinxidaochu(peo[z].name,bbb); bbb=10*z+1;
peo[z].sex="无信息"; xinxidaochu(peo[z].sex,bbb); bbb=10*z+2;
peo[z].zhiwu="无信息"; xinxidaochu(peo[z].zhiwu,bbb); bbb=10*z+3;
peo[z].yuexin="无信息";xinxidaochu(peo[z].yuexin,bbb);bbb=10*z+4;
peo[z].tele="无信息"; xinxidaochu(peo[z].tele,bbb); bbb=10*z+5;
peo[z].zhuzhi="无信息";xinxidaochu(peo[z].zhuzhi,bbb);bbb=10*z+6;
peo[z].mima="无信息"; xinxidaochu(peo[z].mima,bbb); bbb=10*z+7;
break;
case 2:
zhiyuan();
zhiyuancaozuo();
break;
default:
system("cls");
cout<<" ※※※无此选项※※※"<<endl<<endl;
shifoujixu();
break;
}
}
int main(){
caozuo2 a;
a.shuju();
a.caozuo11();
system("cls");
return 0;
}
第4章 结束语
课程设计是一门培养学生综合利用所学知识,发觉,提出,分析和处理实际问题学科,它能充足锻炼我们动手能力,时我们实践能力关键步骤,是对学生实际工作能力具体训练和考察过程。我想这次不只是一次简单课程设计,更表现了数据结构算法和生活紧密联络。
经过此次课程设计,小组组员们感受到了团体合作关键和难忘,在其中让我们学到了很多,在设计过程中也让我们很好地掌握了类定义和面向对象程序设计基础技能,为未来对c++深入学习打下了坚实基础。因为时间问题和现在我们对于c++掌握还远不够完善,在程序中难免会出现部分不足,有些地方仍需改善。依据实际情况在以后要深入完善其功效,使其不仅能满足课程设计需要,还要有一定实用价值和实际效益。
在整个课程设计过程中,我们展现出是一支朝气蓬勃团体。我们有着灵敏思索力。我们有着自己理想和奋斗目标。而且我们还太年轻没有理由不努力。同时我们也得到了其它各组同学和指导老师帮助,帮助我们处理了课程设计过程中碰到部分问题。我们小组全部组员在此表示衷心感谢。
参考文件
[1] 钱能. C++程序设计教程(第一版).清华大学出版社
[2] 钱能. C++程序设计教程(第二版).清华大学出版社
[3] C++入门经典(清华大学出版)
展开阅读全文