您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件测试工程师管理系统代码
#includestdio.h#includestring.h#includemalloc.h#includestdlib.henumSex{male,famale};//性别分类,默认0为男,1为女enumEducation{high,bachelor,master,docter,other};//学历分类,默认0开始doubleSalary={0.0};//工程师薪水unsignedintEngineerMonthWorkDays={0};//工程师工作天数intn=0;//计数intEngineerMonthBenefit;//月效益intEngineerMonthInsurance;//月保险金structDateStruct//日期结构,用于存储工程师的出生生日{intyear;intmonth;intday;};structEngineerStruct//声明存储工程师信息的结构体{unsignedintEngineerNo;//工程师编号charEngineerName[20];//工程师姓名unsignedintEngineerSex;//工程师性别structDateStructEngineerBirth;//工程师生日charEngineerHometown[10];//工程师籍贯unsignedintEngineerEducation;//工程师学历charEngineerAddress[30];//工程师地址charEngineerPhone[15];//工程师电话unsignedintEngineerWorkYears;//工程师工龄floatEngineerBaseSalary;//工程师基本薪水structEngineerStruct*next;};voidmenu()//显示菜单{printf(-------------------------------------------------------\n);printf(:软件测试工程师管理系统:\n);printf(-------------------------------------------------------\n);printf(\n);printf(1.输入软件测试工程师资料\n);printf(2.删除指定测试工程师资料\n);printf(3.查询软件测试工程师资料\n);printf(4.修改软件测试工程师资料\n);printf(5.计算测试工程师的月薪水\n);printf(6.保存新添加的工程师资料\n);printf(7.对测试工程师信息排序!\1编号升序2姓名升序3工龄降序\\n);printf(8.输出所有测试工程师信息\n);printf(9.清空所有测试工程师数据\n);printf(10.打印软件测试工程师数据报表\n);printf(11.从文件重新导入测试工程师数据\n);printf(0.结束\编辑工程师信息后提示保存\\n);printf(\n);printf(请输入您的选择:);}intFind(structEngineerStruct*head,unsignedNo)//判断该编号是否存在{structEngineerStruct*p1,*p2;if(head==NULL){return0;}p1=head;while(p1-EngineerNo!=No&&p1-next!=NULL){p2=p1;p1=p1-next;}if(No==p1-EngineerNo){return1;}else{return0;}}voidFindError(structEngineerStruct*p1,structEngineerStruct*head)//判断输入的工程师信息是否正确{while(((p1-EngineerNo=0)||(p1-EngineerNo=10000))||Find(head,p1-EngineerNo)==1){printf(工程师编号输入错误,请重新输入:\n);scanf(%u,&p1-EngineerNo);}while(strlen(p1-EngineerName)==0||strlen(p1-EngineerName)20){printf(工程师姓名输入错误,请重新输入:);scanf(%s,p1-EngineerName);}while(p1-EngineerSex!=0&&p1-EngineerSex!=1){printf(工程师性别输入错误,请重新输入:\n);scanf(%d,&p1-EngineerSex);}while(p1-EngineerBirth.year1900||p1-EngineerBirth.year2004){printf(工程师生日中的年输入错误,请重新输入:\n);scanf(%d,&p1-EngineerBirth.year);}while(p1-EngineerBirth.month1||p1-EngineerBirth.month12){printf(工程师生日中的月输入错误,请重新输入:\n);scanf(%d,&p1-EngineerBirth.month);}while(p1-EngineerBirth.day1||p1-EngineerBirth.day31){printf(工程师生日中的日输入错误,请重新输入:\n);scanf(%d,&p1-EngineerBirth.day);}while(p1-EngineerEducation0||p1-EngineerEducation4){printf(工程师的学历输入错误,请重新输入:\n);scanf(%d,&p1-EngineerEducation);}while(strlen(p1-EngineerHometown)==0||strlen(p1-EngineerHometown)10){printf(工程师的籍贯输入错误,请重新输入:\n);scanf(%s,p1-EngineerHometown);}while(strlen(p1-EngineerAddress)==0||strlen(p1-EngineerAddress)30){printf(工程师的地址输入错误,请重新输入:\n);scanf(%s,p1-EngineerAddress);}while(strlen(p1-EngineerPhone)==0||strlen(p1-EngineerPhone)15){printf(工程师的电话输入错误,请重新输入:\n);scanf(%s,p1-EngineerPhone);}while(p1-EngineerWorkYears0||p1-EngineerWorkYears50){printf(工程师的工龄输入错误,请重新输入:\n);scanf(%d,&p1-EngineerWorkYears);}while(p1-EngineerBaseSalary==0){printf(工程师的基本薪水输入错误,请重新输入:\n);scanf(%f,&p1-EngineerBaseSalary);}}structEngineerStruct*Input()//添加工程师信息{structEngineerStruct*head=NULL;structEngineerStruct*p1,*p2;p1=p2=(structEngineerStruct*)malloc(sizeof(structEngineerStruct));scanf(%u%s%u%d%d%d%s%u%s%s%u%f,&p1-EngineerNo,p1-EngineerName,&p1-EngineerSex,&p1-EngineerBirth.year,&p1-EngineerBirth.month,&p1-EngineerBirth.day,p1-EngineerHometown,&p1-EngineerEducation,p1-EngineerAddress,p1-EngineerPhone,&p1-EngineerWorkYears,&p1-EngineerBaseSalary);while(p1-EngineerNo!=0){FindError(p1,head);n=n+1;if(n==1){head=p1;p2=p1;p2-next=NULL;}else{p2-next=p1;p2=p1;p2-next=NULL;}p1=(structEngineerStruct*)malloc(sizeof(structEngineerStruct));scanf(%u%s%u%d%d%d%s%u%s%s%u%f,&p1-EngineerNo,p1-EngineerName,&p1-EngineerSex,&p1-EngineerBirth.year,&p1-EngineerBirth.month,&p1-EngineerBirth.day,p1-EngineerHometown,&p1-EngineerEducation,p1-EngineerAddress,p1-EngineerPhone,&p1-EngineerWorkYears,&p1-EngineerBaseSalary);}p2-next=NULL;returnhead;}structEngineerStruct*Delete(structEngineerStruct*head,unsignednum)//删除指定工程师的信息{structEngineerStruct*p1,*p2;if(head==NULL){printf(ListisNULL\n);returnhead;}p1=head;while(p1-EngineerNo!=num&&p1-next!=NULL){p2=p1;p1=p1-next;}if(p1-EngineerNo==num){if(p1==head){head=p1-next;free(p1);}else{p2-next=p1-next;free(p1);}printf(%ubeendelete!\n,num);n--;}else{printf(%unotbeenfound!\n,num);}return(head);}structEngineerStruct*Select(structEngineerStruct*head,unsignednum)//查询指定工程师的信息{structEngineerStruct*p1,*p2;if(head==NULL){printf(ListisNULL\n);returnhead;}p1=head;while(p1-EngineerNo!=num&&p1-next!=NULL){p2=p1;p1=p1-next;}if(p1-EngineerNo==num){printf(EngineerNo:%uEngineerName:%sEngineerSex:%uEngineerBirth:%d-%d-%dEngineerHometown:%sEngineerEducation:%uEngineerAddress:%sEngineerPhone:%sEngineerWorkYears:%uEngineerBaseSalary:%f\n,p1-EngineerNo,p1-EngineerName,p1-EngineerSex,p1-EngineerBirth.year,p1-EngineerBirth.month,p1-EngineerBirth.day,p1-EngineerHometown,p1-EngineerEducation,p1-
本文标题:软件测试工程师管理系统代码
链接地址:https://www.777doc.com/doc-5210345 .html