课程设计说明书
课 程 名 称: 面向对象程序设计 题 目: 公司员工管理系统 年级/专业/班: 学 生 姓 名: 学 号:
专业收集整理精品文档
!!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!!
==================================================================
目 录
1 引 言 1.1 问题的提出 1.2任务与分析 2 程序的主要功能 2.1新增功能 2。2更改功能 2.3 删除信息
2.4查找功能 2。5显示功能 2。6全部删除功能
3 程序运行平台 4 总体设计 5 程序类的说明 6 模块分析 6.1 添加模块
6。2 显示模块 6.3 修改模块
6。4 查找模块 6.5 删除模块
6。6 清空模块 7 系统测试
====================专业收集精品文档,您的最好选择======================
专业收集整理精品文档
!!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!!
==================================================================
引言
1.1 问题的提出
随着计算机的普及,网络进入大宗的家庭,不论在工作、学习还是生活中,人们越来越离不开它,社会上,计算机及使用计算机的人几乎是随处可见.人们用计算机,是因为它能反映现实世界,随着计算机越来越深入到人们的实际生活,如何把计算机科学更好的应用于实际,最大限度解决人们日常问题已经成为许多人热衷的研究方向.
1.2 任务与分析
1. 人数其中,人员编号在生成人员信息时同时生成,每输入一个人员信息编号
顺序加1。
2. 升级程序对所有人员有提升级别的功能
3. 工资计算薪的计算方法是:经理拿固定月薪,兼职技术人员按工作小时数领
取月薪,兼职推销员的报酬按该推销员当月销售额提成 ,销售经理既拿固定月薪也领取销售提成。
4. 修改能按姓名或者编号显示、查找、增加、删除和保存各类人员的信息 5. 在基本要求达到后,可设计出比较友好的界面(如下拉菜单),也可用VC++
ClassWizard 设计.
====================专业收集精品文档,您的最好选择======================
专业收集整理精品文档
!!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!!
==================================================================
2. 程序的主要功能
1. 新增(添加新职员,计算工资) 2. 更改(更改职员信息) 3. 删除(删除职员信息)
4. 查找(显示所要寻找的职员信息) 5. 显示(显示所有职员的信息) 6. 全删(删除所有职员的信息)
3. 程序运行平台
WINDOWS XP/2000 VC++ 4. 总体设计
4.1 主要流程图
开始 选定相应操作序号 增加 修改 删除 显示 查询 显示信息 退出 输 入 数 据 保 存 到 文 件 退 出 图2-1 流程图
4.2 N-S图
====================专业收集精品文档,您的最好选择======================
专业收集整理精品文档
!!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!!
==================================================================
开始 键盘输入操作序号 判断炒作序号 操作序号传入函数 按要求输入相关数据 数据保存到文件 退出 图2—2 N-S图
5. 程序类的说明
class Employee //职工类 {
int tag;//删除标记 int no;//职工编号 char name[20]; char zw[20];//职工职位 int salary;//职工工资
public:
void setzw(char q[])//设置职位
====================专业收集精品文档,您的最好选择======================
Employee(){}
char *getname() {return name;}//获取名字 int gettag() {return tag;}//获取标记 int getno() {return no;}//获取编号 int getsalary(){return salary;}//获取工资
专业收集整理精品文档
!!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!!
==================================================================
{ }
void setname(char na[])//设置名字 { }
void getsalary(int sa){salary=sa;}
strcpy(name,na); strcpy(zw,q);
void delna(){tag=1;}//删除
void addemp(int n,int sa,char *na,char *q)//增加 { }
void disp()//显示职工信息 {
cout<<\"│\"<〈setw(10)< \"< }; /////////////////////////////////// /////////////////////////////////// ====================专业收集精品文档,您的最好选择====================== 专业收集整理精品文档 !!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!! ================================================================== class Database//职工数据类 { public: ////////////////////////////////////////////////////////// int addemp (int n, int sa,char *na,char*q) //增加职工 { ====================专业收集精品文档,您的最好选择====================== int top; Employee read[Maxr]; Database()//将职工信息从employee。txt读取到read[]中 { } void clear()//删除所有 { top=—1; renshu=0; Employee s; top=-1; fstream file(”employee。txt\:in); while (1) { file.read((char *)&s,sizeof(s)); if (!file) break; top++; read[top]=s; } file.close(); } 专业收集整理精品文档 !!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!! ================================================================== } Employee *p=query(n); if (p==NULL) { top++; read[top]。addemp(n,sa,na,q); return 1; } return 0; ////////////////////////////////////////////////////// Employee *query(int empid) { for (int i=0;i〈=top;i++) if (read[i]。getno()==empid && read[i].gettag()==0) return &read[i]; return NULL; } ///////////////////////////////////////////////// Employee *query1(char empna[20]) { for (int i=0;i〈=top;i++) if ((read[i].getname()==empna) && read[i].gettag()==0) return &read[i]; return NULL; } ///////////////////////////////////////////// void disp() //职工信息显示 { for (int i=0;i<=top;i++) ====================专业收集精品文档,您的最好选择====================== 专业收集整理精品文档 !!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!! ================================================================== } read[i]。disp(); ////////////////////////////////////////////////// void empdata(); ~Database() //将read[]中的信息读如到employee。txt中 { } fstream file(”employee。txt\:out); for (int i=0;i〈=top;i++) if (read[i].gettag()==0) file.write((char *)&read[i],sizeof(read[i])); file.close(); }; 6. 模块分析 6。1添加: void Database::empdata()//职工维护 { int choice=1; int m=1;int b=1; char rname[20]; int empid; int empsa;char q[20]; Employee *r; while (choice!=0) { cout<〈”职工维护 1:新增 2:更改 3:删除 4:查找 5:显示 6:全删 0:退出=〉\"; cin〉>choice; switch (choice) ====================专业收集精品文档,您的最好选择====================== 专业收集整理精品文档 !!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!! ================================================================== { case 1: cout<〈setw(50)<〈” ┌——-—————-————-—┐\\n\"; cout<〈setw(50)〈<” │ 请选择您所需的操作 │\\n\"; cout〈 cout〈〈”输入经理编号:\"; cin>>empid; cout〈<”输入经理姓名:\"; cin〉〉rname; addemp(empid,8000,rname,\"经理”); renshu++; break; case 2: cout<〈”输入销售经理编号:\"; cin〉>empid; cout〈〈”输入月提成: \"; cin〉>empsa; cout〈<\"输入销售经理姓名:”; ====================专业收集精品文档,您的最好选择====================== 专业收集整理精品文档 !!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!! ================================================================== cin>〉rname; addemp(empid,4000+empsa,rname,\"销售经理\"); renshu++; break; } case 3: cout〈<\"输入兼职推销员编号:\"; cin>〉empid; cout〈〈”输入销售额提成: \"; cin〉〉empsa; cout<<\"输入兼职推销员姓名:\"; cin〉>rname; addemp(empid,empsa,rname,\"兼职推销员\"); renshu++; break; case 4: } break; cout〈〈\"输入兼职技术人员编号:\"; cin〉〉empid; cout<〈\"输入工作小时: ”; cin〉〉empsa; cout〈〈\"输入兼职技术人员姓名:”; cin〉>rname; addemp(empid,20*empsa,rname,\"兼职技术人员\"); renshu++; break; break; ====================专业收集精品文档,您的最好选择====================== 专业收集整理精品文档 !!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!! ================================================================== 6.2更改: case 2: cout〈〈\"输入职工编号:\"; cin〉>empid; r=query(empid); if (r==NULL) { cout<〈”该职工不存在\"< cout〈<”输入新的工资:\"<〈endl; cin〉>empsa; r-〉getsalary(empsa); cout<<\"请输入新的及级别”<〈endl; cin〉>q; r->setzw(q); addemp(empid,empsa,rname,q); break; 6。3删除: ====================专业收集精品文档,您的最好选择====================== case 3: cout〈<”输入职工编号:\"; cin〉>empid; r=query(empid); if (r==NULL) { cout<<\"该读者不存在\"〈 !!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!! ================================================================== } r-〉delna(); break; 6。4查找: case 4: cout<〈setw(50)〈<” ┌————-—-———-—-┐\\n\"; cout〈〈setw(50)〈<” │ 请选择您所需的操作 │\\n”; cout〈 cout<〈\"输入职工编号:”; cin>>empid; r=query(empid); if (r==NULL) { } cout〈<\"├—-———┼———-—┼—————┼--——-cout<〈\"该职工不存在\"<〈endl; break; ——┤”〈 〈<\"姓名\"〈<\"│\"<〈setw(10)<〈”工资\"〈〈”│\"< 专业收集整理精品文档 !!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!! ================================================================== │”〈〈endl; cout〈<”├—-———┼————-┼————-┼—-—— ———┤\"<〈endl; } break; r->disp(); break; case 2: } break; break; 6.5显示: case 5: cout〈〈\"├————-┼-————┼—-—-—┼——————— ┤\"< \"< 6.6全部删除: } } ///////////////////////////////////////////////////////////// ====================专业收集精品文档,您的最好选择====================== case 6: clear(); break; 专业收集整理精品文档 !!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!! ================================================================== void main() { int choice=1;Database EmpDB; while(choice!=0) { cout〈〈\"*************************************** *****************************************\"< 欢迎使用职工管理系统******************************”〈 cout< ====================专业收集精品文档,您的最好选择====================== 专业收集整理精品文档 !!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!! ================================================================== } } } while(1) { } cout〈〈setw(20); EmpDB.empdata(); break; break; 7. 系统测试 开始 选择“1\",进行操作: ,出现职工维护: 选择任务1新增,并且添加一个经理职务: ====================专业收集精品文档,您的最好选择====================== 专业收集整理精品文档 !!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!! ================================================================== 我们先选择4查询任务,并按编号查询: 选择5显示任务: 选择3删除任务,并按编号删除: ====================专业收集精品文档,您的最好选择====================== 因篇幅问题不能全部显示,请点此查看更多更全内容