C职工信息管理系统.docx
《C职工信息管理系统.docx》由会员分享,可在线阅读,更多相关《C职工信息管理系统.docx(28页珍藏版)》请在冰点文库上搜索。
C职工信息管理系统
课程名称
C++程序设计
设计题目
职工信息管理系统
指导教师
//填写答辩所对应教师姓名
时间
//任务书仅限一页打印,并且紧贴封面之后装订
内蒙古科技大学课程设计任务书
《C++程序设计》
程序设计说明书
题目:
职工信息管理系统
姓名:
安静
学号:
1376807343
指导教师:
王丽颖
日期:
2014年12月25日
正文
第一章需求分析
每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。
职工信息管理系统设计
职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:
v职工信息录入功能(职工信息用文件保存)--输入
v职工信息浏览功能--输出
v查询或排序功能:
(至少一种查询方式)--算法
●按工资查询●按学历查询等
v职工信息删除、修改功能(任选项)
第二章系统总体设计
2.1功能划分
该系统可以按功能进行模块划分,如图
主菜单
添加职工信息
修改职工信息
职工删除信息
职工信息查询
职工信息排序
保存员工信息
Switch()
退出
While()
开始main()
读取数据
2.2详细描述
2.2.1系统描述
(1)主菜单模块完成用户命令的接受,此模块也是职工信息管理的入口,用户所要进行的各种操作均需在此模块中进行选择,并进而调用其他模块实现相应的功能。
(2)信息添加模块完成职工信息的输入功能,输入信息包括职工号、姓名、性别,出生年月、学历、职务、工资、住址、电话等。
(3)信息显示模块完成已录入职工信息的显示。
(4)信息查询模块完成职工信息的查询,查询时对应有按编号查询和按姓名查询两种方式。
(5)信息修改模块完成职工信息的修改功能。
(6)信息删除功能模块完成职工信息的删除功能。
(7)信息排序模块完成对职工信息的排序,排序内容包括工号,工资等。
(8)信息保存模块完成对职工信息的保存。
第三章类的设计
3.1Class图
Class
_cout:
string
_num:
string
_workerlist:
string
+add:
void
+dele:
void
+modify:
void
+save:
void
+search:
void
+showworker:
void
+sort:
void
+workerlist:
void
3.2类的成员函数说明
首先主要设计定义了两个类:
1.职工信息管理类(WorkerList):
主要用于对员工信息进行新增、查询、修改、删除等操作处理;主要包括以下几种信息处理函数:
void add(); //职工信息录入函数
void sort(); //职工信息排序函数
void search(); //职工信息查找函数
void dele(); //职工信息删除函数
void modify();//职工信息修改函数
voidsave();//职工信息以文件形式保存函数
voidshowworker();//职工信息保存在屏幕上函数
2.职工信息类(worker):
数据类型
职工信息
String
Num,name,sex,edu,address,post,tel
Int
Age,salary
第四章详细设计
4.1类图视图
第五章测试
5.1测试图片
通过对员工的信息的添加,修改,删除,保存,排序,查找等功能进行检测。
未发现任何异常现象。
在这里:
我们将测试的结果图片贴在了下面
5.2软件使用说明书
(1)根据正确的提示安装软件。
(2)PC台式机和便携式电脑都可运行。
(3)打开该程序系统,浏览菜单,根据需要选择功能,进行各项操作。
操作如下:
点击开始菜单,进入菜单选择。
输入:
将所需的信息输入。
输出:
职工基本信息。
输入:
根据不同的需要选择,当信息输入显示出错误时,进入浏览信息,找出错误。
当错误不能改正,则退出浏览信息。
进入查询信息:
则屏幕会出现已一个对话框——按工号查找,把相应的所需信息的状态(是否借出)。
当查询不能显示需要时进入修改程序,把所输入的信息进行修改,使之正确能够正常运行或进入删除信息中,重新输入自己所要的信息。
当信息输入正确,进入你所需要的菜单程序中:
职工信息:
显示职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等。
管理员信息:
显示出职工信息管理的负责人及他们的工号。
第六章设计总结
在本系统的开发过程中,由于组是初次开发软件,在知识、经验方面都存在着不足。
另外,在整个开发的过程中,时间也比较仓促。
因此,该系统必然会存在一些缺陷和不足。
因为对职工信息管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。
尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。
通过开发这个系统,我组掌握了的项目基本开发过程,用到的知识巩固了我组对C语言的学习,但在这次设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
附加:
源程序代码:
#include
#include"string"
#include
#include
#include
#defineN100
intf=0;
usingnamespacestd;
stringp;
voidmenu();
classworker
{
public:
worker(){}
voidshow();
~worker(){}
friendclassWorkerList;
private:
stringnum,name,sex,edu,post,address,tel;
intage,salary;
};
classWorkerList
{
private:
workerw[N];
intNUM;
intcount;
public:
voidadd();
voidsort();
voidsearch();
voiddele();
voidmodify();
voidsave();
voidshowworker();
WorkerList(){
NUM=0;
count=0;
}
};
voidmenu()
{
cout<cout<<"**********************************************"<cout<<"****"<cout<<"**职工信息管理系统主菜单**"<cout<<"****"<cout<<"**1.职工信息添加**"<cout<<"**2.职工信息修改**"<cout<<"**3.职工信息删除**"<cout<<"**4.职工信息排序**"<cout<<"**5.职工信息查找**"<cout<<"**6.职工信息显示**"<cout<<"**7.职工信息保存**"<cout<<"****"<cout<<"**********************************************"<cout<}
voiddomain()
{
WorkerListwl;
while
(1)
{
system("cls");
menu();
cout<<"请选择数字编号~7"<inti1;
cin>>i1;
while(!
(i1>=0&&i1<=7))
{
cout<<"输入有误,请重新输入:
"<cin>>i1;
}
switch(i1)
{
case1:
wl.add();break;
case2:
wl.modify();break;
case3:
wl.dele();break;
case4:
wl.sort();break;
case5:
wl.search();break;
case6:
wl.save();break;
case7:
wl.showworker();break;
case0:
cout<<"系统退出!
!
"<exit(0);
default:
break;
}
cout<<"是否返回主菜单?
Y/N"<cin>>p;
if(p=="n"||p=="N")
{
cout<<"系统退出!
!
"<exit(0);
}
}
}
voidWorkerList:
:
add()
{
cout<<"请输入职工信息:
"<cout<<"工号\t姓名\t性别\t出生日期\t学历\t职务\t工资\t地址\t电话"<stringnum;
cin>>num;
for(inti=0;iwhile(num==w[i].num)
{
cout<<"此职工编号已存在,请重新输入:
"<cin>>num;
}
w[NUM].num=num;
cin>>w[NUM].name>>w[NUM].sex>>w[NUM].edu>>w[NUM].age>>w[NUM].post>>w[NUM].salary>>w[NUM].address>>w[NUM].tel;
++NUM;
count=NUM;
}
voidworker:
:
show()
{
cout<<"工号\t姓名\t性别\t出生日期\t学历\t职务\t工资\t地址\t电话"<cout<cout<}
voidWorkerList:
:
modify()
{
if(NUM<=0)
{
cout<<"没有职工信息存入,系统将返回主菜单"<menu();
}
else
{
cout<<"职工信息如下:
"<cout<<"工号\t姓名\t性别\t出生日期\t学历\t职务\t工资\t地址\t电话"<for(inti=0;icout<w[i].salary<<'\t'<}
cout<<"请输入需要修改员工的工号:
"<stringnuml;
cin>>numl;
intj=0,k;
intflag=1;
while(flag)
{
for(;j{
if(numl==w[j].num)
{
flag=0;
k=j;
break;
}
}
if(flag)
{
cout<<"不存在此员工,请重新输入:
"<j=0;
cin>>numl;
}
}
cout<<"你选择的职工信息为:
"<cout<<"工号\t姓名\t性别\t出生日期\t学历\t职务\t工资\t地址\t电话"<cout<w[k].salary<<'\t'<cout<cout<<"**********************************************"<cout<<"**1.修改工号**"<cout<<"**2.修改姓名**"<cout<<"**3.修改性别**"<cout<<"**4.修改学历**"<cout<<"**5.修改出生日期**"<cout<<"**6.修改职务**"<cout<<"**7.修改工资**"<cout<<"**8.修改地址**"<cout<<"**9.修改电话**"<cout<<"**0.返回主菜单**"<cout<<"**********************************************"<cout<cout<<"请选择数字编号~9"<inti3;
cin>>i3;
while(i3<0||i3>9)
{
cout<<"输入有误,请重新输入:
"<cin>>i3;
}
switch(i3)
{
case1:
cout<<"请输入新的职工工号:
";
cin>>w[k].num;
cout<<"修改信息已保存,现返回主菜单:
"<menu();
break;
case2:
cout<<"请输入新的职工姓名:
";
cin>>w[k].name;
cout<<"修改信息已保存,现返回主菜单:
"<menu();
break;
case3:
cout<<"请输入新的职工性别:
";
cin>>w[k].sex;
cout<<"修改信息已保存,现返回主菜单:
"<menu();
break;
case4:
cout<<"请输入新的职工学历:
";
cin>>w[k].edu;
cout<<"修改信息已保存,现返回主菜单:
"<menu();
break;
case5:
cout<<"请输入新的职工出生日期:
";
cin>>w[k].age;
cout<<"修改信息已保存,现返回主菜单:
"<menu();
break;
case6:
cout<<"请输入新的职工职务:
";
cin>>w[k].post;
cout<<"修改信息已保存,现返回主菜单:
"<menu();
break;
case7:
cout<<"请输入新的职工工资:
";
cin>>w[k].salary;
cout<<"修改信息已保存,现返回主菜单:
"<menu();
break;
case8:
cout<<"请输入新的职工地址:
";
cin>>w[k].address;
cout<<"修改信息已保存,现返回主菜单:
"<menu();
break;
case9:
cout<<"请输入新的电话:
";
cin>>w[k].tel;
cout<<"修改信息已保存,现返回主菜单:
"<menu();
break;
case0:
menu();
dafault:
break;
}
}
voidWorkerList:
:
showworker()
{
if(NUM<=0)
{
cout<<"没有职工信息存入,系统将返回主菜单"<menu();
}
else
cout<<"已保存的职工信息如下:
"<cout<<"工号\t姓名\t性别\t出生日期\t学历\t职务\t工资\t地址\t电话"<for(inti=0;icout<w[i].salary<<'\t'<}
voidWorkerList:
:
search()
{
if(NUM<=0)
{
cout<<"没有职工信息存入,系统将返回主菜单"<menu();
}
else
cout<<"请选择查找方式:
"<cout<<"**********************************************"<cout<<"**1.按工资查找**"<cout<<"**2.按学历查找**"<cout<<"**0.返回主菜单**"<cout<<"**********************************************"<cout<cout<<"请选择数字编号~4"<inti4;
cin>>i4;
while(i4<0||i4>2)
{
cout<<"输入有误,请重新输入:
"<cin>>i4;
}
if(i4==1)
{
intsalary2;
cout<<"请输入要查找的职工的工资:
"<cin>>salary2;
intj3=0,k3;
intflag3=1;
while(flag3)
{
for(;j3{
if(salary2==w[j3].salary)
{
flag3=0;
k3=j3;
cout<<"查询的职工信息如下:
"<cout<<"工号\t姓名\t性别\t出生日期\t学历\t职务\t工资\t地址\t电话"<cout<w[k3].salary<<'\t'<break;
}
}
if(flag3)
{
flag3=0;
cout<<"不存在此职工信息!
!
\n返回主菜单"<break;
}
}
}
elseif(i4==2)
{
stringedu2;
cout<<"请输入要查找的职工的工资:
"<cin>>edu2;
intj4=0,k4;
intflag4=1;
while(flag4)
{
for(;j4{
if(edu2==w[j4].edu)
{
flag4=0;
k4=j4;
cout<<"查询的职工信息如下:
"<cout<<"工号\t姓名\t性别\t出生日期\t学历\t职务\t工资\t地址\t电话"<cout<w[k4].salary<<'\t'<break;
}
}
if(flag4)
{
flag4=0;
cout<<"不存在此职工信息!
!
\n返回主菜单"<break;
}
}
}
elseif(i4==0)
menu();
}
voidWorkerList:
:
sort()
{
if(NUM<=0)
{
cout<<"没有职工信息存入,系统将返回主菜单"<menu();
}
else
cout<<"请选择排序方式:
"<cout<<"**********************************************"<cout<<"**1.按工号排序**"<cout<<"**0.返回主菜单**"<cout<<"**********************************************"<cout<cout<<"请选择数字编号~3"<inti5;
cin>>i5;
while(i5<0||i5>3)
{
cout<<"输入有误,请重新输入:
"<cin>>i5;
}
if(i5==1)
{
for(inti=0;ifor(intj=0l;jif(w[j].num>w[j+1].num)
{
stringtemp;
temp=w[j].num;
w[j].num=w[j+1].num;
w[j+1].num=temp;
}
cout<<"按工号升序后信息如下:
"<cout<<"工号\t姓名\t性别\t出生日期\t学历\t职务\t工资\t地址\t电话"<for(inti=0;icout<w[i].salary<<'\t'<