C _C语言_程序设计_简单的职工信息管理系统C++_C语言_程序设计_简单的职工信息管理系统传媒工程系成绩C++程序设计语言结业报告课程名称:C++程序设计语言班级: B1101学号:姓名: 指导教师: 报告完成时间:_ 2013-10-28制定C++程序设计语言结业报告课程名称 C++程序设计语言班级 B1101 实验日期 2013.12 姓名学号实验成绩名称 C++程序设计语言实验目的及要求掌握 Visual C++集成环境下调试标准C++程序的方法实验环境 Visual C++集成环境、Windows XP 操作系统实验内容用C++语言开发“简单的学生成绩管理系统”。
算法描述及实验步骤 (用适当的形式表达算法设计思想与算法实现步骤)Switch 开始开退出其中:主菜单模块完成用户命令的接受,此模块也是职工信息管理的入口,用户所要进行的各种操作均需在此模块中进行选择,并进而调用其他模块实现相应的功能。
信息添加模块完成职工信息的输入功能,输入信息包括职工号、姓名、性别,出生年月、学历、职务、工资、住址、电话等。
信息显示模块完成已录入职工信息的显示。
信息查询模块完成职工信息的查询,查询时对应有按编号查询和按姓名查询两种方式。
信息修改模块完成职工信息的修改功能。
信息删除功能模块完成职工信息的删除功能。
信息排序模块完成对职工信息的排序,排序内容包括工号,工资等。
信息保存模块完成对职工信息的保存。
4.数据结构本系统中主要的数据结构就是职工的信息,包含职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等,在处理过程中各项可以作为一个职工的不同属性来进行处理。
5.程序流程系统的执行应从功能菜单选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。
系统的流程图如图所示:调试过程及实验结果总结在本系统的开发过程中,由于组是初次开发软件,在知识、经验方面都存在着不足。
另外,在整个开发的过程中,时间也比较仓促。
因此,该系统必然会存在一些缺陷和不足。
因为职工信息管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。
尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。
通过开发这个系统,我组掌握了的项目基本开发过程,用到的知识巩固了我组对C语言的学习,但在这次设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
附录 (源程序等)#include#include"string"#include#include#include#define N 100//N作为最大职工总数int f0;//f作为开关using namespace std;string p;//p作为接收菜单选项的字符串void menu;//显示菜单class workerpublic:worker void show;//职工信息显示~workerfriend class WorkerList; private:string num,name,sex,edu,address,tel;int age,salary;;class WorkerListprivate:worker w[N];int NUM;//用来计算职工数目int count;//用来暂时记录当前操作第几个职工public:void add;//职工信息录入void sort;//职工信息排序void search;//职工信息查找void dele;//职工信息删除void modify;//职工信息修改 void save;//职工信息以文件形式保存void showworker;//显示职工信息在屏幕上 WorkerListNUM0;count0;;void menucoutendl;cout"***********************************************"endl;cout"** **"endl; cout"** 职工信息管理系统主菜单**"endl; cout"****"endl; cout"**1.职工信息添加 **"endl; cout"**2.职工信息修改 **"endl; cout"**3.职工信息删除 **"endl; cout"**4.职工信息排序 **"endl; cout"**5.职工信息查找 **"endl; cout"**6.职工信息显示 **"endl; cout"**7.职工信息保存 **"endl; cout"**0.退出**"endl;cout"** **"endl;cout"***********************************************"endl;coutendl;void domain//主菜单函数实现WorkerList wl;while1system"cls";menu;cout"请选择数字编号~7"endl;int i1;cini1;while!i10&&i17 cout"输入有误,请重新输入:"endl; cini1; switchi1case 1:wl.add;break; case 2:wl.modify;break; case 3:wl.dele;break; case 4:wl.sort;break; case 5:wl.search;break; case 7:wl.save;break; case 6:wl.showworker;break;case 0:cout"系统退出!!"endl;exit0;default:break;cout"是否返回主菜单Y/N"endl; cinp;ifp"n"||p"N" cout"系统退出!!"endl;exit0;//getchar;void WorkerList::add//职工信息添加函数实现 cout"请输入职工信息:"endl; cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl;string num;cinnum;forint i0;iNUM;i++ whilenumw[i].numcout"此职工编号已存在,请重新输入:"endl; cinnum;w[NUM].numnum;cinw[NUM].namew[NUM].sexw[NUM].eduw[NUM].agew[NUM].salaryw[NUM].addressw[NUM].tel;++NUM;countNUM;void worker::show//显示职工信息函数实现cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl;coutnum'\t'name'\t'sex'\t'edu'\t'age'\t'salary'\t'address'\t'tele ndl;coutendl;void WorkerList::modify//职工信息修改函数实现ifNUM0cout"没有职工信息存入,系统将返回主菜单"endl;menu;elsecout"职工信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl;cout"请输入需要修改信息职工的工号:"endl;string num1;cinnum1;int j0,k;int flag1;whileflagfor;jcount;j++ifnum1w[j].numflag0;kj;break;ifflagcout"不存在此员工,请重新输入:"endl;j0;cinnum1;cout"你选择的职工的信息为:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl;coutw[k].num'\t'w[k].name'\t'w[k].sex'\t'w[k].edu'\t'w[k].age'\t'w[k].salary'\t'w[k].address'\t'w[k].telendl;coutendl;cout"***********************************************"endl;cout"**1.修改工号 **"endl;cout"**2.修改姓名 **"endl;cout"**3.修改性别 **"endl;cout"**4.修改学历 **"endl;cout"**5.修改年龄 **"endl;cout"**6.修改工资 **"endl;cout"**7.修改地址 **"endl;cout"**8.修改电话 **"endl;cout"**0.返回主菜单**"endl;cout"***********************************************"endl;coutendl;cout"请选择数字编号~8"endl; int i3;cini3;whilei30||i38cout"输入有误,请重新输入:"endl; cini3;switchi3case 1:cout"请输入新的职工工号:";cinw[k].num;cout"修改信息已保存,现返回主菜单:"endl; menu;break;case 2:cout"请输入新的职工姓名:";cinw[k].name;cout"修改信息已保存,现返回主菜单:"endl; menu; break;case 3:cout"请输入新的职工性别:";cinw[k].sex;cout"修改信息已保存,现返回主菜单:"endl; menu; break;case 4:cout"请输入新的职工学历:";cinw[k].edu;cout"修改信息已保存,现返回主菜单:"endl; menu; break;case 5:cout"请输入新的职工年龄:";cinw[k].age;cout"修改信息已保存,现返回主菜单:"endl; menu; break;case 6:cout"请输入新的职工工资:";cinw[k].salary; cout"修改信息已保存,现返回主菜单:"endl; menu; break;case 7:cout"请输入新的职工地址:";cinw[k].address;cout"修改信息已保存,现返回主菜单:"endl; menu;break;case 8:cout"请输入新的职工电话:";cinw[k].tel;cout"修改信息已保存,现返回主菜单:"endl; menu;break;case 0:menu;default:break;void WorkerList::showworker//职工信息显示函数实现 ifNUM0cout"没有职工信息存入,系统将返回主菜单"endl; menu;elsecout"已保存的职工信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl;forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl;/*cout"是否返回主菜单Y/N"endl;cinp;while1ifp"y"||p"Y"menu;else ifp"n"||p"N"cout"系统退出!!"endl;exit0;elsecout"输入有误,请重新输入:";cinp;*/void WorkerList::search ifNUM0cout"没有职工信息存入,系统将返回主菜单"endl; menu;elsecout"请选择查找方式:"endl;cout"***********************************************"endl;cout"**1.按工号查找**"endl; cout"**2.按姓名查找**"endl; cout"**3.按工资查找**"endl; cout"**4.按学历查找**"endl; cout"**0.返回主菜单**"endl; cout"***********************************************"endl;coutendl;cout"请选择数字编号~4"endl; int i4;cini4;whilei40||i44cout"输入有误,请重新输入:"endl; cini4;ifi41string num2;cout"请输入要查询的职工的工号:"endl; cinnum2;int j0,k;int flag1;whileflagfor;jcount;j++ifnum2w[j].numflag0;kj;cout"查询的职工信息如下:"endl; cout"工号\t姓名\t性别\t学历\t年龄\t 工资\t地址\t电话"endl;coutw[k].num'\t'w[k].name'\t'w[k].sex'\t'w[k].edu'\t'w[k].age'\t' w[k].salary'\t'w[k].address'\t'w[k].telendl;break;ifflagflag0;cout"不存在此职工!!\n返回主菜单"endl; break;else ifi42string name2;cout"请输入要查询的职工的姓名:"endl; cinname2;int j20,k2;int flag21;whileflag2for;j2count;j2++ifname2w[j2].nameflag20;k2j2;cout"查询的职工信息如下:"endl; cout"工号\t姓名\t性别\t学历\t年龄\t 工资\t地址\t电话"endl;coutw[k2].num'\t'w[k2].name'\t'w[k2].sex'\t'w[k2].edu'\t'w[k2].ag e'\t'w[k2].salary'\t'w[k2].address'\t'w[k2].telendl;break;ifflag2flag20;cout"不存在此职工!!\n返回主菜单"endl; break;else ifi43int salary2;cout"请输入要查询的职工的工资:"endl; cinsalary2;int j30,k3;int flag31;whileflag3for;j3count;j3++ifsalary2w[j3].salary flag30;k3j3;cout"查询的职工信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl;coutw[k3].num'\t'w[k3].name'\t'w[k3].sex'\t'w[k3].edu'\t'w[k3].ag e'\t'w[k3].salary'\t'w[k3].address'\t'w[k3].telendl;break;ifflag3flag30;cout"不存在此职工!!\n返回主菜单"endl;break;else ifi44string edu2;cout"请输入要查询的职工的学历:"endl;cinedu2;int j40,k4;int flag41;whileflag4for;j4count;j4++ifedu2w[j4].eduflag40;k4j4;cout"查询的职工信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; coutw[k4].num'\t'w[k4].name'\t'w[k4].sex'\t'w[k4].edu'\t'w[k4].ag e'\t'w[k4].salary'\t'w[k4].address'\t'w[k4].telendl;break;ifflag4flag40;cout"不存在此职工!!\n返回主菜单"endl; break;else ifi40menu;void WorkerList::sort//职工信息排序功能实现 ifNUM0cout"没有职工信息存入,系统将返回主菜单"endl; menu;elsecout"请选择排序方式:"endl;cout"***********************************************"endl;cout"**1.按工号排序(升序)**"endl; cout"**2.按工号排序(降序) **"endl; cout"**3.按姓名排序(升序) **"endl; cout"**4.按姓名排序(降序) **"endl; cout"**5.按工资排序(升序) **"endl; cout"**6.按工资排序(降序) **"endl; cout"**0.返回主菜单**"endl;cout"***********************************************"endl;coutendl;cout"请选择数字编号~6"endl;int i5;cini5;whilei50||i56cout"输入有误,请重新输入:"endl;cini5;ifi51forint i0;icount-1;i++forint j0;jcount-1-i;j++ifw[j].numw[j+1].numstring temp;tempw[j].num;w[j].numw[j+1].num;w[j+1].numtemp;cout"按工号升序后的信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl;else ifi52forint i0;icount-1;i++forint j0;jcount-1-i;j++ifw[j].numw[j+1].numstring temp;tempw[j].num;w[j].numw[j+1].num;w[j+1].numtemp;cout"按工号降序后的信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl;else ifi53forint i0;icount-1;i++forint j0;jcount-1-i;j++ifw[j].namew[j+1].namestring temp;tempw[j].name;w[j].namew[j+1].name;w[j+1].nametemp;cout"按姓名升序后的信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl; else ifi54forint i0;icount-1;i++forint j0;jcount-i-1;j++ifw[j].namew[j+1].namestring temp;tempw[j].name;w[j].namew[j+1].name;w[j+1].nametemp;cout"按姓名降序后的信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl; else ifi55forint i0;icount-1;i++forint j0;jcount-i-1;j++ifw[j].salaryw[j+1].salaryint temp;tempw[j].salary;w[j].salaryw[j+1].salary;w[j+1].salarytemp;cout"按工资升序后的信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl; else ifi56forint i0;icount-1;i++forint j0;jcount-i-1;j++ifw[j].salaryw[j+1].salaryint temp;tempw[j].salary;w[j].salaryw[j+1].salary;w[j+1].salarytemp;cout"按工资降序后的信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl; else ifi50menu;void WorkerList::dele//职工信息删除功能实现 ifNUM0cout"没有职工信息存入,系统将返回主菜单"endl; menu;elsecout"职工信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl;forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl;cout"请输入需要删除信息职工的工号:"endl; string num3;cinnum3;int j0,k;int flag1;whileflagfor;jcount;j++ifnum3w[j].numflag0;kj;break;ifflagcout"不存在此员工,请重新输入:"endl;j0;cinnum3;cout"你选择的职工的信息为:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl;coutw[k].num'\t'w[k].name'\t'w[k].sex'\t'w[k].edu'\t'w[k].age'\t' w[k].salary'\t'w[k].address'\t'w[k].telendl;/*cout"确认请输入Y\t返回主菜单请输入N "endl; string p; cinp;while1ifp"y"||p"Y"cout"员工信息已删除!"endl;forint i0;icount;i++ifw[i].numnum3int ji;for;jcount-1;j++w[j]w[j+1];count--;break;else ifp"n"||p"N"menu;elsecout"输入有误,请重新输入:";cinp;*/void WorkerList::saveifNUM0cout"没有职工信息存入,系统将返回主菜单"endl;menu;elseofstream fout;fout.open"D:\\worker.txt",ios::out; cout"文件正在保存请稍候!!"endl;cout"数据保存成功!!!"endl;fout"已保存员工信息如下:"endl;fout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; forint i0;icount;i++foutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[ i].age'\t'w[i].salary'\t'w[i].address'\t'w[i].telendl;cout"系统返回主菜单:"endl;menu;fout.close;int maindomain;return 0;。