C++课程设计职工信息管理系统文档格式.docx
《C++课程设计职工信息管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《C++课程设计职工信息管理系统文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
1、设计目的
.通过实验实现对学生信息系统的管理操作;
.进一步掌握和利用C++进行程设计的能力;
.进一步理解和运用结构化程序设计的思想和方法;
.初步掌握开发一个小型实用系统的基本方法;
.学会利用流程图或N-S图表示算法;
.掌握书写程设计开发文档的能力(书写课程设计报告);
2、总体设计
3、详细设计:
3.1、程序具体功能和分工情况:
程序具体功能:
、输入和输出(输入一个员工的信息将它插入数组中,输出录入员工的信息);
、排序(按工资从大到小排序);
、查询(按学历、职工号或姓名查询);
、删除(输入职工号将其删除)
、修改(输入职工号修改其信息)
、保存(将职工信息以文件形式保存)
程序分工情况:
孙磊:
输入,输出,查询
霍英达:
排序,删除,修改,保存
3.2、调试分析
上机调试之前我们对所编的程序作了纸面上的检查,先改正一些不该犯错误,如{}没有搭配完整,漏写,拼写错误等,这些都是我们通过认真的态度在运行之前可以解决、避免的.而且还可以减少机器时间.往往一连串的错误是由于漏写或写错一个字符引起的.
在上机调试过程中,对文件这一节的知识还不够熟悉,所以在解决输入输出流的过程中出了很多问题.
4、源程序和运行结果
4.1、源程序
#include<
iostream>
#include"
string"
fstream>
#include<
stdlib.h>
stdio.h>
#defineN100//N作为最大职工总数
intf=0;
//f作为开关
usingnamespacestd;
stringp;
//p作为接收菜单选项的字符串
voidmenu();
//显示菜单
classworker
{
public:
worker(){}
voidshow();
//职工信息显示
~worker(){}
friendclassWorkerList;
private:
stringnum,name,sex,edu,address,tel;
intage,salary;
};
classWorkerList
workerw[N];
intNUM;
//用来计算职工数目
intcount;
//用来暂时记录当前操作第几个职工
voidadd();
//职工信息录入
voidsort();
//职工信息排序
voidsearch();
//职工信息查找
voiddele();
//职工信息删除
voidmodify();
//职工信息修改
voidsave();
//职工信息以文件形式保存
voidshowworker();
//显示职工信息在屏幕上
WorkerList(){
NUM=0;
count=0;
}
voidmenu()//显示菜单
cout<
<
endl;
"
***********************************************"
****"
**职工信息管理系统主菜单**"
**1.职工信息添加**"
**2.职工信息修改**"
**3.职工信息删除**"
**4.职工信息排序**"
**5.职工信息查找**"
**6.职工信息显示**"
**7.职工信息保存**"
**0.退出**"
}
voiddomain()//主菜单函数实现
WorkerListwl;
while
(1)
{
system("
cls"
);
menu();
请选择数字编号0~7"
inti1;
cin>
>
i1;
while(!
(i1>
=0&
&
i1<
=7))
{
cout<
输入有误,请重新输入:
cin>
}
switch(i1)
case1:
wl.add();
break;
case2:
wl.modify();
case3:
wl.dele();
case4:
wl.sort();
case5:
wl.search();
case6:
wl.showworker();
case7:
wl.save();
case0:
cout<
系统退出!
!
exit(0);
default:
break;
是否返回主菜单?
Y/N"
p;
if(p=="
n"
||p=="
N"
)
{
cout<
exit(0);
voidWorkerList:
:
add()//职工信息添加函数实现
请输入职工信息:
工号:
;
stringnum;
num;
for(inti=0;
i<
NUM;
i++)
while(num==w[i].num)
此职工编号已存在,请重新输入:
w[NUM].num=num;
姓名:
cin>
w[NUM].name;
性别:
w[NUM].sex;
学历:
w[NUM].edu;
年龄:
w[NUM].age;
工资:
w[NUM].salary;
地址:
w[NUM].address;
电话:
w[NUM].tel;
++NUM;
count=NUM;
voidworker:
show()//职工信息显示函数实现
num<
name<
sex<
edu<
age<
salary<
address<
tel<
modify()//职工信息修改函数实现
if(NUM<
=0)
没有职工信息存入,系统将返回主菜单"
menu();
请输入需要修改信息职工的工号:
stringnum1;
num1;
intj=0,k;
intflag=1;
while(flag)
for(;
j<
count;
j++)
if(num1==w[j].num)
{
flag=0;
k=j;
break;
}
if(flag)
不存在此员工,请重新输入:
j=0;
cin>
你选择的职工的信息为:
工号:
w[k].num<
姓名:
w[k].name<
性别:
w[k].sex<
学历:
w[k].edu<
年龄:
w[k].age<
工资:
w[k].salary<
地址:
w[k].address<
电话:
w[k].tel<
**1.修改工号**"
**2.修改姓名**"
**3.修改性别**"
**4.修改学历**"
**5.修改年龄**"
**6.修改工资**"
**7.修改地址**"
**8.修改电话**"
**0.返回主菜单**"
请选择数字编号0~8"
inti3;
i3;
while(i3<
0||i3>
8)
switch(i3)
请输入新的职工工号:
w[k].num;
修改信息已保存,现返回主菜单:
menu();
请输入新的职工姓名:
w[k].name;
请输入新的职工性别:
w[k].sex;
请输入新的职工学历:
w[k].edu;
请输入新的职工年龄:
w[k].age;
case6:
请输入新的职工工资:
w[k].salary;
break;
请输入新的职工地址:
w[k].address;
case8:
请输入新的职工电话:
w[k].tel;
showworker()//职工信息显示函数实现
else
已保存的职工信息如下:
w[i].num<
w[i].name<
w[i].sex<
w[i].edu<
w[i].age<
w[i].salary<
w[i].address<
w[i].tel<
search()//职工信息查询函数实现
**请选择查找方式:
**"
**1.按工号查找**"
**2.按姓名查找**"
**3.按学历查找**"
请选择数字编号0~3"
inti4;
i4;
while(i4<
0||i4>
3)
if(i4==1)
{
stringnum2;
请输入要查询的职工的工号:
num2;
intj=0,k;
intflag=1;
while(flag)
for(;
{
if(num2==w[j].num)
{
flag=0;
k=j;
cout<
查询的职工信息如下:
break;
}
}
if(flag)
flag=0;
cout<
不存在此职工!
!
\n返回主菜单"
break;
}
elseif(i4==2)
stringname2;
请输入要查询的职工的姓名:
name2;
intj2=0,k2;
intflag2=1;
while(flag2)
j2<
j2++)
if(name2==w[j2].name)
{
flag2=0;
k2=j2;
w[k2].num<
w[k2].name<
w[k2].sex<
w[k2].edu<
w[k2].age<
w[k2].salary<
w[k2].address<
w[k2].tel<
}
if(flag2)
flag2=0;
elseif(i4==3)
stringedu2;
请输入要查询的职工的学历:
edu2;
intj4=0,k4;
intflag4=1;
while(flag4)
j4<
j4++)
if(edu2==w[j4].edu)
flag4=0;
k4=j4;
w[k4].num<
w[k4].name<
w[k4].sex<
w[k4].edu<
w[k4].age<
w[k4].salary<
w[k4].address<
w[k4].tel<
if(flag4)
flag4=0;
elseif(i4==0)
sort()//职工信息排序功能实现
{
**请选择排序方式:
**1.按工资排序(升序)**"
**2.按工资排序(降序)**"
请选择数字编号0~2"
inti5;
i5;
while(i5<
0||i5>
2)
if(i5==1)
for(inti=0;
count-1;
for(intj=0;
count-i-1;
if(w[j].salary>
w[j+1].salary)
workertemp;
temp=w[