#include
#include
#include
#include
enum Sex{male,famale}; //性别分类,默认0为男,1为女
enum Education{high,bachelor,master,docter,other}; //学历分类,默认0开始
double Salary={0.0}; //工程师薪水
unsigned int EngineerMonthWorkDays={0}; //工程师工作天数
int n=0; //计数
int EngineerMonthBenefit; //月效益
int EngineerMonthInsurance; //月保险金
struct DateStruct //日期结构,用于存储工程师的出生生日
{
int year;
int month;
int day;
};
struct EngineerStruct //声明存储工程师信息的结构体
{
unsigned int EngineerNo; //工程师编号
char EngineerName[20]; //工程师姓名
unsigned int EngineerSex; //工程师性别
struct DateStruct EngineerBirth; //工程师生日
char EngineerHometown[10]; //工程师籍贯
unsigned int EngineerEducation; //工程师学历
char EngineerAddress[30]; //工程师地址
char EngineerPhone[15]; //工程师电话
unsigned int EngineerWorkYears; //工程师工龄
float EngineerBaseSalary; //工程师基本薪水
struct EngineerStruct *next;
};
void menu() //显示菜单
{
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("请输入您的选择: ");
}
int Find(struct EngineerStruct *head,unsigned No) //判断该编号是否存在
{
struct EngineerStruct *p1,*p2;
if(head == NULL)
{
return 0;
}
p1 = head;
while (p1->EngineerNo != No && p1->next !=NULL)
{
p2 = p1;
p1 = p1->next;
}
if(No == p1->EngineerNo)
{
return 1;
}
else
{
return 0;
}
}
void FindError(
struct EngineerStruct *p1,struct EngineerStruct *head) //判断输入的工程师信息是否正确
{
while (((p1->EngineerNo<= 0) || (p1->EngineerNo >= 10