




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TOC\t"标题2,1,样式2,2,样式3,3"\h1题目描述 12系统分析 12.1题目要求 12.2输入/输出要求 12.3分析要处理的数据 12.4分析功能及其具体含义 13系统设计 23.1数据定义 23.2系统功能设计 23.3函数调用关系 23.4文件组织结构 23.5设计过程的重点和难点设计过程的重点和难点 24详细设计 34.1流程图 35系统实现 45.1源程序清单 45.1.1头文件 45.1.2主函数 45.1.3菜单 105.2遇到的问题及解决 115.3重点难点技术分析 116调试运行 116.1测试和结果 117系统使用说明 138结论 138.1课题完成情况说明 138.2系统的亮点 138.3系统的不足 138.4系统可能的改进和扩展 131题目描述假设某超市购物信息主要包括:会员编号,会员名,商品编号,商品名,商品价格,商品数量,商品日期等,本系统应能对这些基本信息进行管理,具有会员信息录入、查看、保存至文件、从文件中读出、增加购买信息,修改购买信息,删除购买信息,按商品项查询。2系统分析2.1题目要求(1)为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目;(2)会员购买信息按记录完整地录入、查看、保存至文件、从文件中读出、查看各会员购买信息、增加购买信息,修改购买信息,删除购买信息,按商品项查询。。(3)要求以上功能分别用函数实现。并要求用C语言的文件操作语句将以上所有结果保存在文件wuyao.c中。2.2输入/输出要求(1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。进入每个操作后,根据程序的提示输入相应的信息;(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。2.3分析要处理的数据程序中所用到的数据:会员编号;会员名;商品编号;商品名;商品价格;商品数;日期;2.4分析功能及其具体含义本函数所包含的功能和含义如下:(1)数据录入:输入所有会员购买数据(包括会员编号,会员名,商品编号,商品名,商品价格,商品数,日期);(2)数据显示:显示所有学生信息(包括会员编号,会员名,商品编号,商品名,商品价格,商品数,日期);(3)数据保存:保存所有学生所有信息(包括会员编号,会员名,商品编号,商品名,商品价格,商品数,日期)到文件wuyao.c中;从文件中读取:从文件中读取学生各项信息;查看文件:1、商品信息的修改2、商品信息的删除3、商品信息的查找4、商品信息的增加(6)退出程序。3系统设计3.1数据定义定义MarketGoods结构体,包括如下成员:会员名vip_name[30](字符型);会员编号vip_id(字符型);商品编号goods_id(字符型);商品名goods_name(字符型);商品价格goods_price(浮点型);商品数goods_amount(整型);日期date(字符型)。3.2系统功能设计设计菜单,通过选择菜单调用各函数,再将调用函数的计算结果返回给主函数,并显示结果。3.3函数调用关系main调用了voidstar()函数进行开始启动菜单存储文件调用voidsave()进行保存文件查看文件调用了voiddisplay进行打开查看增加商品信息voidadd()进行添加商品信息修改商品信息voidchange()进行修改删除商品信息voiddel()进行删除查询商品信息voidsearch()进行查询输出商品信息voidouput()进行输出3.4文件组织结构程序由一个文件组成:wuyao.c该文件中有8个函数3.5设计过程的重点和难点设计过程的重点和难点由于对知识点掌握的并不牢固,操作也不熟练,所以在运用指针和结构体的方面不是很轻松,使之成为本次程序设计时遇到的很大的困难。4详细设计4.1流程图删除修改查找增加会员信息录入删除修改查找增加会员信息录入会员编号商品名商品价格商品编号商品数主菜单会员信息查看会员信息保存至文件main函数退出程序会员购买信息处理从文件中读取会员信息输出5系统实现5.1源程序清单5.1.1头文件#include"stdio.h"//需要的一些头文件#include"stdlib.h"#include"cstring"5.1.2主函数#defineCOUNT30//声明商品的种类为30中,你也可以修改//函数声明voidstart();//启动界面voidinput();//商品数据信息输入函数voidchange();//商品数据信息修改函数voiddele();//给定指定商品名称,删除商品信息voidoutput();//商品信息输出voidsearch();//商品信息查找structMarketGoods{//存数商品信息的结构体 charvip_name[30]; charvip_id[30];chargoods_id[30];//商品编号chargoods_name[30];//商品名称 doublegoods_price;//商品价格 intgoods_amount;//商品数目 chardate[30];}goods[COUNT];\\保存文件voidsave(intm){ FILE*fp; inti;if((fp=fopen("huiyuangoumaixinxi.txt","wb"))==NULL){ printf("cannotopenfile\n"); exit(0); }for(i=0;i<m;i++) if(fwrite(&goods[i],sizeof(structMarketGoods),1,fp)!=1) printf("filewriteerror\n"); fclose(fp);}intload(){ FILE*fp; inti=0; if((fp=fopen("huiyuangoumaixinxi.txt","rb"))==NULL) { printf("cannotopenfile\n"); exit(0); } else { do { fread(&goods[i],sizeof(structMarketGoods),1,fp); i++; } while(feof(fp)==0); } fclose(fp); return(i-1);}\\打开文件voiddisplay(){ inti; intm=load(); printf("会员编号会员名\t商品编号商品名\t商品价格\t商品数目\t日期\t\n"); for(i=0;i<m;i++) printf("%s\t%s\t%s%s\t%lf\t%d\t%s\t\t",goods[i].vip_id,goods[i].vip_name,goods[i].goods_id,goods[i].goods_name,goods[i].goods_price,goods[i].goods_amount,goods[i].date); }intcount=0;//全局变量,用于保存实际上有多少个商品\\添加商品信息voidadd(){FILE*fp; intn; intcount=0; inti; intm=load(); printf("\n"); fp=fopen("kaoshenxingxi.txt","a"); printf("请输入想要添加的购买信息数:\n"); scanf("%d",&n);for(i=m;i<(m+n);i++) { printf("\n请输入新增购买信息:\n"); printf("请输入会员编号:\n");scanf("%s",goods[i].vip_id);printf("会员名字:");scanf("%s",goods[i].vip_name);printf("商品编号:");scanf("%s",goods[i].goods_id);printf("商品名字:");scanf("%s",goods[i].goods_name);printf("商品价格:");scanf("%lf",&goods[i].goods_price);printf("商品总数目:");scanf("%d",&goods[i].goods_amount);printf("日期:");scanf("%s",goods[i].date); count=count+1; printf("已增加的人数:\n");printf("%d\n",count); } printf("\n添加完毕!\n"); m=m+count; printf("\n浏览添加的商品信息:\n"); printf("\n"); save(m); display(); fclose(fp);}voidmain()//主函数{while(1) start();}//数据录入voidinput(){intm;charflag[20];do{//录入商品的信息printf("请输入会员编号:\n");scanf("%s",goods[count].vip_id);printf("会员名字:");scanf("%s",goods[count].vip_name);printf("商品编号:");scanf("%s",goods[count].goods_id);printf("商品名字:");scanf("%s",goods[count].goods_name);printf("商品价格:");scanf("%lf",&goods[count].goods_price);printf("商品总数目:");scanf("%d",&goods[count].goods_amount);printf("日期:");scanf("%s",goods[count].date);save(m);count++;//存数的商品数加一printf("是否继续输入数据y是n否:");//是否还想继续输入数据scanf("%s",flag);}while(strcmp(flag,"y")==0||strcmp(flag,"Y")==0);output();//调用显示商品数据}//数据修改voidchange(){charch[20],a[20]; inti;printf("\nyousurewantchangegoodsInfory/n):");//根据商品的id来修改数据scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\nenteryouwantchangegoods_id:");scanf("%s",a);for(i=0;i<count;i++){if(strcmp(goods[i].goods_id,a)==0){printf("\nyousurewantchangegoodsname(y/n):");scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\nname:");scanf("%s",goods[i].goods_name);}printf("\nyousurewantchangegoodsprice(y/n):");scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\nprice");scanf("%lf",&goods[i].goods_price);}printf("\nyousurewantgoodsdiscount(y/n):");scanf("%s",ch);}} }output();}//数据删除voiddele(){inti,j;charc[20];printf("\nenteryouwantdeletename:\n");//根据商品的名称来删除数据scanf("%s",c);for(i=0;i<count;i++)if(strcmp(c,goods[i].goods_name)==0)break;//找到,即跳出循环for(j=i;j<count-1;j++)goods[j]=goods[j+1];printf("\t\t\tyouhaddelete%s\n",c);count--;output();}//数据输出voidoutput(){inti; for(i=0;i<count;i++) { printf("%s\t%s\t%s%s\t%lf\t%d\t%s\t\t",goods[i].vip_id,goods[i].vip_name,goods[i].goods_id,goods[i].goods_name,goods[i].goods_price,goods[i].goods_amount,goods[i].date); }}//数据查找voidsearch(){inti;chara[20],ch[10];printf("\nenteryouwantlookname:");//根据商品的名称来查找数据scanf("%s",a);for(i=0;i<count;i++)if(strcmp(goods[i].goods_name,a)==0) printf("%s%s%s%s%lf%d%s\n",goods[i].vip_id,goods[i].vip_name,goods[i].goods_id,goods[i].goods_name,goods[i].goods_price,goods[i].goods_amount,goods[i].date);}5.1.3菜单voidstart()//启动菜单{intchi;printf("超市商品管理系统\n");printf("********************************************\n");printf("1.商品信息的录入:\n");printf("2.商品信息的修改:\n");printf("3.删除某个商品信息:\n");printf("4.查找商品信息:\n");printf("6.增加商品信息:\n");printf("5.退出系统:\n");printf("********************************************\n");printf("输入你的选择:");scanf("%d",&chi);//根据你的选择执行相应的函数if(chi==1)input();elseif(chi==2)change();elseif(chi==3)dele();elseif(chi==4)search();elseif(chi==6)add();elseif(chi==5){printf("你已经退出超市商品管理系统!\n");exit(0);}else{printf("YouEnterTheChoiceIsNotvalid!\n");}}5.2遇到的问题及解决5.3重点难点技术分析文件的打开:文件的保存需要用到fopen文件的保存:文件的保存需要用到fwrite,,例:fwrite(pt,size,count,fp)该函数的意思是从fp指向的存储空间中提取count个字节数为size大小的数据块写入fp所指向的文件中。6调试运行6.1测试和结果第一步:进入主菜单第二步:选择1,进行录入,并输出第三步:选择2,进行修改第第四步:选择3,进行删除第五步:选择4,进行查找第六步:选择6,进行增加第七步:选择5:退出6.2结果分析7系统使用说明从主菜单进行选择,分别为1~6,进行不同的功能,最后退出8结论8.1课题完成情况说明程序以能完成任务书中所要求达到的功能(会员编号,会员名,商品编号,商品名,购买数量,单价,日期),并添加了删除,增加,查找,修改的功能。8.2系统的亮点系统可以进行多次录入,不断循环进行对数据的处理,还能进行保存8.3系统的不足系统不能处理商品的分类等8.4系统可能的改进和扩展将系统有可能的处理商品分类参考文献[1]谭浩强.C程序设计(第二版)(M).北京:清华大学出版社.2000.1.[2]C语言大学实用教程(第2版)(M).北京:电子工业出版社.2008.7.致谢课程设计目的通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固《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");
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 拍卖师劳务合同(3篇)
- minus-Verrucarol-生命科学试剂-MCE
- 轻质砖合同范本
- 4-Methoxy-α-ethylaminovalerophenone-hydrochloride-生命科学试剂-MCE
- 国内运输合同范本
- 健康产品零售机器人企业制定与实施新质生产力战略研究报告
- 2025年家居护理用品合作协议书
- 2025年窑炉、熔炉及电炉项目发展计划
- 2025年新型阀控型全密封免维护铅酸蓄电池合作协议书
- 2025年新型电子时间继电器项目发展计划
- 2025年海域使用权租赁合同
- 四年级希望杯历年数学竞赛试题与答案1-13届+奥数分类专项练习集等
- 《走近世界民间美术》 课件 2024-2025学年人美版(2024)初中美术七年级下册
- (2025春)人教版三年级数学下册全册教案
- 2025年江苏省高职单招《职测》高频必练考试题库400题(含答案)
- 2025云南红河州个旧市大红屯粮食购销限公司招聘及人员高频重点模拟试卷提升(共500题附带答案详解)
- X证书失智老年人照护讲解
- 工厂安全事故预防知识
- 2024-2025学年人教版数学八年级下册期中检测卷(含答案)
- 2024年江西应用工程职业学院高职单招职业适应性测试历年参考题库含答案解析
- 2024年山东服装职业学院高职单招语文历年参考题库含答案解析
评论
0/150
提交评论