C语言程序设计-销售管理系统和c语言程序设计-企业员工管理系统_第1页
C语言程序设计-销售管理系统和c语言程序设计-企业员工管理系统_第2页
C语言程序设计-销售管理系统和c语言程序设计-企业员工管理系统_第3页
C语言程序设计-销售管理系统和c语言程序设计-企业员工管理系统_第4页
C语言程序设计-销售管理系统和c语言程序设计-企业员工管理系统_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

销售信息管理系统设计文档组号:第二组成员:目录题目与要求功能实现设计(模块化设计)运行结果(附带抓图)源程序报告正文题目与要求:某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员汇总当天出售的每种产品的销售情况。2每天销售情况包括(销售员的代号、产品的代号、这种产品当天的销售额)编写一个销售信息管理系统,读取上个月的销售情况计算上个月没人每种产品的销售额按销售额对销售员进行排序,输出排序结果(销售员代号)统计每种产品的总销售额,对这些产品从高到低的顺序输出结果(须输出产品的代号和销售额)输出统计报表2、需求分析本程序将用到文件系统E://54321.doc文件内容作为数据源,其中单行内容代表一张纸条。程序运行后首先将文件系统的原始数据读取并保存到程序的结构体数组当中,所以应提供文件输入的操作;由于纸条数据零散,所以要对原始数据进行分类操作并提供一个数组用于保存分类信息;在程序中要进行统计工作,所以要提供显示、排序等操作;另外应提供键盘式选择菜单实现功能选择。3、功能实现设计3.1总体设计根据上面的分析,可以将这个系统分为如下五大模块:查看每人每种产品的销售额、按销售额对销售员排序、对每种产品总销售额从高到低排序、输出统计报表和退出。其中主要模块是前四个模块。开始3.2流程图开始 推出系统推出系统读取便条上的信息 读取便条上的信息3.3详细设计:3.3.1【头文件和预定义】#include<stdio.h>#include<conio.h>主菜单#include<stdlib.h>主菜单#include<string.h>#defineM3.3.2【功能函数声明】vvoiddetail();voidforeach();输出统计表统计总销售额并排序销售员销售业绩排序每个人每种产品销售额voidmenu();输出统计表统计总销售额并排序销售员销售业绩排序每个人每种产品销售额voidproduct();voidreaddata();voidseller();voidtotal();选择voidchoice();选择退出系统返回主菜单退出系统返回主菜单3.3.3【数据结构】原始数据有销售员代号、产品代号和销售额,所以定义一个全局结构体数组scrip用于保存原始数据。然后定义全局变量n保存纸条数目,定义数组s用于保存分类后的信息。structss{ intsid;//销售员代号 intpid;//产品代号 intsn;//销售额}ss[M];intn;//纸条数目ints[4][5]={{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0}};//用于保存员工和产品信息3.3.4【主函数】显示程序设计者相关信息和调用文件读取函数、数据初始化函数和主菜单函数voidmain()//入口函数,即主函数{readdata();//读取文件数据foreach();//根据文件初始数据初始化便于操作的数组menu();//显示主菜单}3.3.4-1【文件读取函数】readdata()读出便条中的内容,并保存到文件结构体中voidreaddata()//从文件读取数据{ FILE*fp;//定义文件指针 if((fp=fopen("list.txt","r"))==NULL) { printf("Can'topenthefile!\n"); exit(0); } else for(n=0;!feof(fp);n++) { fscanf(fp,"%d%d%d\n",&ss[n].sid,&ss[n].pid,&ss[n].sn); }//保存文件数据到结构体 fclose(fp);}3.3.4-2【文件读取函数】foreach()将保存到结构体中的信息按产品分类,再根据销售员进行分类,将信息存到数组当中。voidforeach()//从纸条读取数据并分类整理{ inti; for(i=0;i<n;i++)//遍历所有纸条 { switch(ss[i].pid) //按产品分大类(例如就是case1--5),根据大类分销售员小类,累加各人各产品销售数量 { case1: switch(ss[i].sid) { case1:s[0][0]+=ss[i].sn;break; case2:s[1][0]+=ss[i].sn;break; case3:s[2][0]+=ss[i].sn;break; case4:s[3][0]+=ss[i].sn;break; } break; case2: switch(ss[i].sid) { case1:s[0][1]+=ss[i].sn;break; case2:s[1][1]+=ss[i].sn;break; case3:s[2][1]+=ss[i].sn;break; case4:s[3][1]+=ss[i].sn;break; } break; case3: switch(ss[i].sid) { case1:s[0][2]+=ss[i].sn;break; case2:s[1][2]+=ss[i].sn;break; case3:s[2][2]+=ss[i].sn;break; case4:s[3][2]+=ss[i].sn;break; } break; case4: switch(ss[i].sid) { case1:s[0][3]+=ss[i].sn;break; case2:s[1][3]+=ss[i].sn;break; case3:s[2][3]+=ss[i].sn;break; case4:s[3][3]+=ss[i].sn;break; } break; case5: switch(ss[i].sid) { case1:s[0][4]+=ss[i].sn;break; case2:s[1][4]+=ss[i].sn;break; case3:s[2][4]+=ss[i].sn;break; case4:s[3][4]+=ss[i].sn;break; }; break;} }}3.3.4-3【主菜单函数】menu()显示系统功能菜单以供用户选择相关功能使用,根据用户选择分别可调用detail():计算上个月每个人每种产品的销售额seller():按销售额对销售员进行排序,输出排序结果(销售员代号)product():统计每种产品的总销售额,对这些产品按从高到低的顺序输出排序结果(需输出产品代号和销售额)exit(0):退出系统voidmenu(){ intw,c; do{puts("\t\t*********菜单*********************\n\n");puts("\t\t1.查看每人每种产品的销售额\n");puts("\t\t2.按销售额对销售员排序(销售员代号)\n");puts("\t\t3.对每种产品总销售额从高到低排序(产品代号和销售额)\n");puts("\t\t4.输出统计报表\n");puts("\t\t5.退出\n");puts("\n\n\t\t*********************************************\n");printf("请选择(1-5):[]\b\b");scanf("%d",&c);if(c<1||c>5)//错误输入则重新获取输入 {w=1 }elsew=0; }while(w==1);switch(c)//根据输入实现相应函数调用{case1:detail();break;//每个销售员每种产品的销售额统计case2:seller();break;case3:product();break;case4:total();break;case5:exit(0);}}3.3.5【功能函数】5-1【每人每种产品销售额统计函数】detail()计算上个月每个人每种产品的销售额voiddetail()//显示销售情况{ inti,j;for(i=0;i<4;i++)//遍历销售员 { printf("\n\t\t%d号销售员销售情况:\n",i+1); for(j=0;j<5;j++) //按销售员分类遍历所有产品并显示信息 printf("\t\t%d号产品销售数量:%d\n",j+1,s[i][j]); } choice();}3.3.5-1【销售员销售业绩排序函数】seller()按销售额对销售员进行排序,输出排序结果(销售员代号)voidseller(){ inti,j,k; intsp[4]={0,0,0,0}; for(i=0;i<4;i++) for(j=0;j<5;j++) sp[i]+=s[i][j]; //计算每单个销售员所有产品销售数量 for(i=0;i<4;i++)//比较四次,每次选出最大数 {k=0;//用于标记单轮最大数 for(j=0;j<4;j++) if(sp[k]<sp[j])k=j;//获取最大数标号 printf("\t\t第%d名是%d号销售员!\n",i+1,k+1);sp[k]=-1; //输出最大数和排名,将最大数标记为负 } choice();}3.3.5-2【总销售额统计函数】voidproduct()统计每种产品的总销售额,对这些产品按从高到低的顺序输出排序voidproduct()//与seller()原理一样,用于对产品进行统计{ inti,j,k; intp[5]={0,0,0,0,0}; for(j=0;j<5;j++) for(i=0;i<4;i++) p[j]+=s[i][j]; for(j=0;j<5;j++) { k=0; for(i=0;i<5;i++) if(p[k]<p[i])k=i; printf("\t\t第%d名是%d号产品!\t销量为%d!\n",j+1,k+1,p[k]);p[k]=-1; } choice();}3.3.5-3【统计报表输出函数】total()统计每种产品的总销售额,对这些产品按从高到低的顺序输出排序结果(需输出产品代号和销售额)voidtotal()//输出报表{inti,j; printf("\n\t销售员\t产品\t销量\n"); for(i=0;i<4;i++) for(j=0;j<5;j++) printf("\t%d\t%d\t%d\n",i+1,j+1,s[i][j]); choice();}3.3.6【公共函数】【选择函数】choice()选择退出系统或则返回主菜单voidchoice()//用于输出信息功能选择{intc;printf("请选择接下来想做什么\t1>返回菜单\t2>退出系统[]\b\b");scanf("%d",&c);if(c==1)menu();elseexit(0);puts('\n');}4、运行结果(附带抓图)List.txt(便条)文件中数据如下:(提前建立文件或就将便条保存在文件中!!!!!)111122133148159213223234245256311321(这是个例子)334345356412423434445456运行结果显示主菜单:查看每人每种产品的销售额运行结果:按销售额对销售员按顺序排序(销售员代号)运行结果对每种产品销售额从高到低排序运行结果:统计报表运行结果:6、源程序#include<stdio.h>#include<conio.h>#include<stdlib.h>/*调用exit函数*/#include<string.h>#defineM155/*宏定义*/voiddetail();voidforeach();voidmenu();voidproduct();voidreaddata();voidseller();voidtotal();voidchoice();structss{ intsid;//销售员代号 intpid;//产品代号 intsn;//销售额}ss[M];intn;//纸条数目ints[4][5]={{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0}};//用于保存员工和产品信息voidmain()//入口函数,即主函数{preaddata();//读取文件数据foreach();//根据文件初始数据初始化便于操作的数组menu();//显示主菜单}voidreaddata()//从文件读取数据{ FILE*fp; if((fp=fopen("list.txt","r"))==NULL) { printf("Can'topenthefile!\n"); exit(0); } else for(n=0;!feof(fp);n++) { fscanf(fp,"%d%d%d\n",&ss[n].sid,&ss[n].pid,&ss[n].sn); }//保存文件数据到结构体 fclose(fp);}voidforeach()//从纸条读取数据并分类整理{ inti; for(i=0;i<n;i++)//遍历所有纸条 { switch(ss[i].pid) //按产品分大类,根据大类分销售员小类,累加个人各产品销售数量 { case1: switch(ss[i].sid) { case1:s[0][0]+=ss[i].sn;break; case2:s[1][0]+=ss[i].sn;break; case3:s[2][0]+=ss[i].sn;break; case4:s[3][0]+=ss[i].sn;break; } break; case2: switch(ss[i].sid) { case1:s[0][1]+=ss[i].sn;break; case2:s[1][1]+=ss[i].sn;break; case3:s[2][1]+=ss[i].sn;break; case4:s[3][1]+=ss[i].sn;break; } break; case3: switch(ss[i].sid) { case1:s[0][2]+=ss[i].sn;break; case2:s[1][2]+=ss[i].sn;break; case3:s[2][2]+=ss[i].sn;break; case4:s[3][2]+=ss[i].sn;break; } break; case4: switch(ss[i].sid) { case1:s[0][3]+=ss[i].sn;break; case2:s[1][3]+=ss[i].sn;break; case3:s[2][3]+=ss[i].sn;break; case4:s[3][3]+=ss[i].sn;break; } break; case5: switch(ss[i].sid) { case1:s[0][4]+=ss[i].sn;break; case2:s[1][4]+=ss[i].sn;break; case3:s[2][4]+=ss[i].sn;break; case4:s[3][4]+=ss[i].sn;break; }; break; } }}voidmenu(){ intw,c; do{puts("\t\t********************菜单*********************\n\n");puts("\t\t1.查看每人每种产品的销售额\n");puts("\t\t2.按销售额对销售员排序(销售员代号)\n");puts("\t\t3.对每种产品总销售额从高到低排序(产品代号和销售额)\n");puts("\t\t4.输出统计报表\n");puts("\t\t5.退出\n");puts("\n\n\t\t*********************************************\n");printf("请选择(1-5):[]\b\b");scanf("%d",&c);if(c<1||c>5)//错误输入则重新获取输入 {w=1;getchar(); }elsew=0; }while(w==1);switch(c)//根据输入实现相应函数调用{case1:detail();break;//每个销售员每种产品的销售额统计case2:seller();break;case3:product();break;case4:total();break;case5:exit(0);}}voiddetail()//显示销售情况{ inti,j;for(i=0;i<4;i++)//遍历销售员 { printf("\n\t\t%d号销售员销售情况:\n",i+1); for(j=0;j<5;j++) //按销售员分类遍历所有产品并显示信息 printf("\t\t%d号产品销售数量:%d\n",j+1,s[i][j]); } choice();}voidseller(){ inti,j,k; intsp[4]={0,0,0,0}; for(i=0;i<4;i++) for(j=0;j<5;j++) sp[i]+=s[i][j]; //计算每单个销售员所有产品销售数量 for(i=0;i<4;i++)//比较四次,每次选出最大数 {k=0;//用于标记单轮最大数 for(j=0;j<4;j++) if(sp[k]<sp[j])k=j;//获取最大数标号 printf("\t\t第%d名是%d号销售员!\n",i+1,k+1);sp[k]=-1; //输出最大数和排名,将最大数标记为负 } choice();}voidproduct()//与seller()原理一样,用于对产品进行统计{inti,j,k; intp[5]={0,0,0,0,0}; for(j=0;j<5;j++) for(i=0;i<4;i++) p[j]+=s[i][j]; for(j=0;j<5;j++) {k=0; for(i=0;i<5;i++) if(p[k]<p[i])k=i; printf("\t\t第%d名是%d号产品!\t销量为%d!\n",j+1,k+1,p[k]);p[k]=-1;} choice();}voidtotal()//输出报表{inti,j; printf("\n\t销售员\t产品\t销量\n"); for(i=0;i<4;i++) for(j=0;j<5;j++) printf("\t%d\t%d\t%d\n",i+1,j+1,s[i][j]); choice();}voidchoice()//用于输出信息功能选择{intc;printf("请选择接下来想做什么\t1>返回菜单\t2>退出系统[]\b\b");scanf("%d",&c);if(c==1)menu();elseexit(0);puts('\n');}课程设计目的通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法。学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。为后续各门计算机课程的学习打下坚实基础。为毕业设计和以后工作打下必要基础。二、课程设计内容 针对某企业的员工,对其信息进行系统的管理。三、需求分析对所开发系统功能、性能的描述,想要实现的目标。此系统可对该厂员工进行信息的录入,修改,删除,添加,查询,排序,统计,打印等功能。用户可通过提示选择进入某一功能界面,然后进行对员工的信息管理。每一功能模块都充分为用户考虑,编排详细。使用户可以方便快捷的了解员工信息,及时有效的对员工进行信息的管理。四、概要设计 1.系统结构图(功能模块图)对系统进行分析,给出系统结构图;分析:此系统,为方便客户输入,以及使程序清晰化,因而本人采用模块法,将每一功能模块化,使程序中各函数间调用更加明了。以下为系统模块图。2.功能模块说明对各个模块进行功能的描述。录入模块:输入该厂现有员工信息并保存与文件中,方便日后进行排序,更新,统计,打印等操作。输出模块:将所有员工信息,或所需员工信息输出于屏幕上,用于打印或查询员工信息。更新模块:此模块又分为删除,添加,修改三个模块。删除模块:对已退休或离开该厂的员工进行删除操作。添加模块:添加新入厂的员工信息并保存起来。修改模块:找到该员工并,选择所要修改的选项。排序模块:本程序只对员工年龄进行从小到大排序。查询模块:此模块分为按姓名,年龄,工作查询。姓名查询模块:输入要查找的姓名,找到就输出其信息。找不到则输出无此人。年龄查询模块:输入要查找的年龄,找到就输出其信息。找不到则输出无此人。工作查询模块:输入要查找的工作,找到就输出其信息。找不到则输出无此人。统计模块:此模块分为,统计年龄,性别和工作。统计年龄:输入要统计的年龄,查找并输出,若无此年龄则输出暂无此年龄员工。统计性别:输入要统计的性别,查找并输出,若无此性别则输出暂无此性别员工。统计工作:输入要统计的工作,查找并输出,若无此工作则输出暂无此工作员工。保存模块:将现有信息保存于文件中,以防丢失。系统模块图王氏企业员工王氏企业员工信息管理系统 输入i的值,进入相应模块输入i的值,进入相应模块保存模块退出系统统计模块排序模块查询模块更新模块保存模块退出系统统计模块排序模块查询模块更新模块输出模块录入模块输出模块录入模块 按年龄统计修改员工信息添加员工信息按工作统计按性别统计按年龄排序按工作查询按年龄查寻按姓名查询删除员工信息按年龄统计修改员工信息添加员工信息按工作统计按性别统计按年龄排序按工作查询按年龄查寻按姓名查询删除员工信息按任意键返回主界面按任意键返回主界面五、详细设计及运行结果流程图,函数之间相互调用的图示,程序设计及编码,运行结果。结束保存模块输入i开始统计模块排序模块查询模块更新模块输出模块录入模块判断i值主函数:结束保存模块输入i开始统计模块排序模块查询模块更新模块输出模块录入模块判断i值i=1i=6i=2i=3i=4i=5i=0退出系统退出系统结束打开文件关闭文件i++输出员工信息i<ni=0结束打开文件关闭文件i++输出员工信息i<ni=0输出模块:开始i=0开始i=0否开始开始录入模块:是结束打开文件关闭文件i++输入员工信息i<ni=0结束打开文件关闭文件i++输入员工信息i<ni=0否是否是排序模块:更新模块:输入i开始结束返回主界面i=0退出系统修改模块添加模块删除模块判断i值i>n-1j>ni=i+1j=j+1交换i与j的信息i的年龄大于j的年龄j=i+1i=0开始输入i开始结束返回主界面i=0退出系统修改模块添加模块删除模块判断i值i>n-1j>ni=i+1j=j+1交换i与j的信息i的年龄大于j的年龄j=i+1i=0开始否i=3i=1i=2i=0是否否是是否是输出信息输出信息结束结束输入i开始结束返回主界面i=0退出系统统计性别统计年龄统计工作判断i值输入i开始结束返回主界面i=0退出系统工作查询姓名查询年龄查询判断i值查询模块:统计模块:输入i开始结束返回主界面i=0退出系统统计性别统计年龄统计工作判断i值输入i开始结束返回主界面i=0退出系统工作查询姓名查询年龄查询判断i值i=1i=3i=2i=0i=1i=2i=3i=0否否是是六、调试情况,设计技巧及体会1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。自我评价:本人自我觉得此系统还不错,程序简洁明了,功能齐全,而且充分从用户的角度进行编排,易于执行。经本人多次调试终于出现0个错误与警告,而且从未有过死循环,用户一旦输错,立即会有提示,此程序相当的健壮。因本人定义了全局变量,使操作更加简单易行,使用了结构体数组,避开链表那样的复杂操作。但不足之处便是没有链表那样节省内存。如有机会下次可能会用链表。2、在设计过程中的感受。在把字符一个个敲上屏幕时,坐在那一动不动相当的枯燥,一想到过会儿就能看到自己亲自编的程序,就只能忍吧。当看到模块一个个运行后与预料中的完全一样时,郁闷的心情立马被一种成就感替代。就想赶紧编完看看自己的杰作。然而也会遇到自己解决不了的问题,就只能去求老师了。这次最大的感受就是当你竭尽全力的干一件事时,就没有能挡住你的困难。七、参考文献C语言课本。八、附录:源代码#include<stdio.h>#include<string.h>#defineMAX100charfilename[20];/*文件名*/FILE*fp;intn;/*当前该厂人数*/structdate/*时间结构体*/{intyear;intmouth;intday;};structperson/*员工信息结构体*/{charname[10];/*姓名*/intage;/*年龄*/charjob[10];/*工作*/charsex[10];/*性别*/charaddress[20];/*地址*/charphone[10];/*电话*/structdatein_time;/*入厂时间*/}t,worker[MAX];/*录入模块*/voidinput(){inti;clrscr();printf("\n\n请输入文件名\n");scanf("%s",filename);printf("开始输入员工的信息\n");printf("\n请输入现有员工人数\n");scanf("%d",&n);if((fp=fopen(filename,"w"))==NULL){printf("不能建立!\n");exit();}for(i=0;i<n;i++){printf("第%d个人的信息:\n",i+1);printf("姓名\n");scanf("%s",worker[i].name);printf("年龄\n");scanf("%d",&worker[i].age);printf("工作\n");scanf("%s",worker[i].job);printf("性别\n");scanf("%s",worker[i].sex);printf("地址\n");scanf("%s",worker[i].address);printf("电话\n");scanf("%s",worker[i].phone);printf("入厂年\n");scanf("%d",&worker[i].in_time.year);printf("入厂月\n");scanf("%d",&worker[i].in_time.mouth);printf("入厂日\n");scanf("%d",&worker[i].in_time.day);}printf("录入完毕,按任意键返回主菜单\n");getch();for(i=0;i<n;i++)fprintf(fp,"%s%d%s%s%s%s%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);fclose(fp);}/*输出模块*/voidoutput(){inti;if((fp=fopen(filename,"r"))==NULL){printf("暂时未有任何信息,请按任意键返回主菜单进行信息录入\n");getch();exit();}clrscr();printf("该厂的员工信息:\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");for(i=0;i<n;i++){fscanf(fp,"%s%d%s%s%s%s%d-%d-%d",worker[i].name,&worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,&worker[i].in_time.year,&worker[i].in_time.mouth,&worker[i].in_time.day);printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}fclose(fp);printf("输出完毕,按任意键返回主菜单\n");getch();}/*保存模块*/voidsave(){inti;if((fp=fopen(filename,"w"))==NULL)/*打开文件*/{printf("\n不能打开该文件!");exit();}for(i=0;i<n;i++)fprintf(fp,"%s%d%s%s%s%s%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);fclose(fp);}/*读取信息*/voidread_message(){inti;printf("输入文件名\n");scanf("%s",filename);printf("\n请输入现有员工人数\n");scanf("%d",&n);if((fp=fopen(filename,"r"))==NULL){printf("暂时未有任何信息,请按任意键返回主菜单进行信息录入\n");getch();}for(i=0;i<n;i++)fscanf(fp,"%s%d%s%s%s%s%d-%d-%d",worker[i].name,&worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,&worker[i].in_time.year,&worker[i].in_time.mouth,&worker[i].in_time.day);fclose(fp);}/*修改模块*/voidmodify(){inti,flag,choice;charch,namekey[10];flag=0;clrscr();printf("开始修改\n");do{printf("请输入要修改的员工姓名\n");scanf("%s",namekey);for(i=0;i<n;i++){if(strcmp(worker[i].name,namekey)==0){printf("是否修改此人(y/n)\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);getchar();/*接收回车*/ch=getchar();if(ch=='y'){printf("****您要修改那一项?***\n\n");printf("***1,姓名***\n\n");printf("***2,年龄***\n\n");printf("***3,工作***\n\n");printf("***4,性别***\n\n");printf("***5,地址***\n\n");printf("***6,电话***\n\n");printf("***7,入厂年***\n\n");printf("***8,入厂月***\n\n");printf("***9,入厂日***\n\n");printf("请选择(1-9)\n");scanf("%d",&choice);switch(choice){case1:printf("输入修改后的姓名\n");scanf("%s",worker[i].name);break;case2:printf("输入修改后的年龄\n");scanf("%d",&worker[i].age);break;case3:printf("输入修改后的工作\n");scanf("%s",worker[i].job);break;case4:printf("输入修改后的性别\n");scanf("%s",worker[i].sex);break;case5:printf("输入修改后的地址\n");scanf("%s",worker[i].address);break;case6:printf("输入修改后的电话\n");scanf("%s",worker[i].phone);break;case7:printf("输入修改后的入厂年\n");scanf("%d",&worker[i].in_time.year);break;case8:printf("输入修改后的入厂月\n");scanf("%d",&worker[i].in_time.mouth);break;case9:printf("输入修改后的入厂日\n");scanf("%d",&worker[i].in_time.day);break;}printf("修改后的信息\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}elsebreak;}elseif(i==n)printf("此人不存在\n");}printf("\n是否继续输入(y/n)\n");getchar();/*接收回车*/ch=getchar();if(ch=='y'){printf("继续\n");flag=1;}elseflag=0;}while(flag==1);printf("修改完毕,按任意键返回主菜单\n");getch();}/*添加模块*/voidadd(){inti,flag=0;charch;clrscr();printf("\n开始添加新员工\n");printf("*----------------------------------*\n\n");do{i=n;printf("\n请输入添加职工的信息(姓名,年龄,工作,性别,地址,电话,入厂时间)\n");printf("姓名\n");scanf("%s",worker[i].name);printf("年龄\n");scanf("%d",&worker[i].age);printf("工作\n");scanf("%s",worker[i].job);printf("性别\n");scanf("%s",worker[i].sex);printf("地址\n");scanf("%s",worker[i].address);printf("电话\n");scanf("%s",worker[i].phone);printf("入厂年\n");scanf("%d",&worker[i].in_time.year);printf("入厂月\n");scanf("%d",&worker[i].in_time.mouth);printf("入厂日\n");scanf("%d",&worker[i].in_time.day);n++;printf("\n添加成功!是否继续输入(y/n)\n");getchar();/*接收回车*/ch=getchar();if(ch=='y'){printf("继续\n");flag=1;}elseflag=0;}while(flag==1);printf("添加完毕,按任意键返回主菜单\n");getch();}/*删除模块*/voiddel(){inti,flag;charch,namekey[10];flag=0;clrscr();printf("开始删除\n");do{printf("请输入要删除员工的名字\n");scanf("%s",namekey);for(i=0;i<n;i++)if(strcmp(worker[i].name,namekey)==0)/*查找此人*/{printf("是否删除此人(y/n)\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);getchar();/*接收回车*/ch=getchar();if(ch=='y'){for(;i<n;i++)worker[i]=worker[i+1];n--;}elsebreak;}elseif(i==n)printf("此人不存在\n");printf("\n是否继续输入(y/n)\n");getchar();/*接收回车*/ch=getchar();if(ch=='y'){printf("继续\n");flag=1;}elseflag=0;}while(flag==1);printf("操作完毕,按任意键返回主菜单\n");getch();}/*更新模块*/voidrenew(){inti;do{clrscr();printf("\n\n\n****更新员工信息****\n\n");printf("按1,添加员工信息\n\n");printf("按2,删除员工信息\n\n");printf("按3,修改员工信息\n\n");printf("按0,返回主菜单\n");printf("请选择(0-3)\n");scanf("%d",&i);switch(i){case1:add();break;case2:del();break;case3:modify();break;case0:break;}}while(i!=0);save();}/*按姓名查找*/voidname_cha(){inti,j;charnamekey[10];j=0;clrscr();printf("输入要查询的员工姓名\n");scanf("%s",namekey);for(i=0;i<n;i++)if(strcmp(worker[i].name,namekey)==0)/*查找此人*/{printf("---------员工信息------\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}elsej++;if(j==n)printf("此人不存在\n");printf("按任意键返回主菜单\n");getch();}/*按年龄查找*/voidage_cha(){inti,j;intagekey;j=0;clrscr();printf("输入要查询员工的年龄\n");scanf("%d",&agekey);for(i=0;i<n;i++)if(worker[i].age==agekey){printf("-------员工信息------\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}elsej++;if(j==n)printf("此人不存在\n");printf("按任意键返回主菜单\n");getch();}/*按工作查找*/voidjob_cha(){inti,j;charjobkey[10];j=0;clrscr();printf("输入要查询的员工职务\n");scanf("%s",jobkey);for(i=0;i<n;i++)if(strcmp(worker[i].job,jobkey)==0){printf("-------员工信息------\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}elsej++;if(j==n)printf("此人不存在\n");printf("按任意键返回主菜单\n");getch();}/*查询模块*/voidinquire(){inti;do{clrscr();printf("\n\n\n****查询员工信息*****\n\n");printf("****1,按姓名查询*****\n\n");printf("****2,按年龄查询*****\n\n");printf("****3,按工作查询*****\n\n");printf("****0,返回主菜单\n");printf("请选择(0-3)\n");scanf("%d",&i);switch(i){case1:name_cha();break;case2:age_cha();break;case3:job_cha();break;case0:break;}}while(i!=0);}/*排列模块*/voidline(){inti,j;clrscr();printf("-------按年龄排序-------\n\n");for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(worker[i].age>worker[j].age){t=worker[i];worker[i]=worker[j];worker[j]=t;}printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");for(i=0;i<n;i++)printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);printf("按任意键返回主菜单\n");getch();}/*按年龄统计*/voidcount_age(){inti,j;intagekey;j=0;clrscr();printf("输入要统计员工的年龄\n");scanf("%d",&agekey);for(i=0;i<n;i++)if(worker[i].age==agekey){printf("-------员工信息------\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}elsej++;if(j==n)printf("暂无该年龄段员工\n");printf("按任意键返回主菜单\n");getch();}/*按职务统计*/voidcount_job(){inti,j;charjobkey[10];j=0;clrscr();printf("输入要统计的员工职务\n");scanf("%s",jobkey);for(i=0;i<n;i++)if(strcmp(worker[i].job,jobkey)==0){printf("-------员工信息------\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].age,worker[i].job,worker[i].sex,worker[i].address,worker[i].phone,worker[i].in_time.year,worker[i].in_time.mouth,worker[i].in_time.day);}elsej++;if(j==n)printf("暂无该职务或该职务暂时无人\n");printf("按任意键返回主菜单\n");getch();}/*按性别统计*/voidcount_sex(){inti,j;charsexkey[10];j=0;clrscr();printf("输入要统计的员工性别\n");scanf("%s",sexkey);for(i=0;i<n;i++)if(strcmp(worker[i].sex,sexkey)==0){printf("-------员工信息------\n");printf("姓名\t年龄\t工作\t性别\t地址\t电话\t入厂时间\n");printf("%s\t%d\t%s\t%s\t%s\t%s\t%d-%d-%d\n",worker[i].name,worker[i].

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论