题目介绍
使用语言:有两个版本,一个是C语言,一个是C++,自行选择
题目介绍:系统带有文件读写功能,下次启动自动读取数据。
//定义人员信息结构体
struct Employee{
char empname[10]; // 人员姓名
char empnum[10]; // 编号
char tele[20]; // 电话
char depart[10]; // 部门
char sex; // 性别
};
//定义部门信息结构体
struct Department{
char number[10]; // 编号
char name[10]; // 部门名字
char leader[10]; // 部门领导
};
查找
条件查找
部门信息
删除功能:
删除后:
部分代码
//添加Employee
void addEmployee(Employee* employeeList,Department* deparmentList){
printf("输入你要录入的人员信息个数:\n");
//用户输入要录入的人员信息个数:
int count;
scanf("%d",&count);
printf("**输入人员信息**\n");
printf("依次输入:人员姓名 编号 电话 部门 性别(w/m) \n");
for(int i = COUNTEmployee ; i < count+COUNTEmployee ;i++){
scanf("%s %s %s %s %c",
employeeList[i].empname,
employeeList[i].empnum,
employeeList[i].tele,
employeeList[i].depart,
&employeeList[i].sex
);
//判断部门是否存在;
int flag = 0;
for(int j = 0;j<COUNTDepartment;j++){
if(strcmp(employeeList[i].depart,deparmentList[j].name)==0 || strcmp(employeeList[i].depart,"无")==0){
flag = 1;
break;
}
}
if(flag == 0){
i--;
printf("该部门不存在!请先添加部门或者填‘无’\n");
}
}
//COUNTEmployee,是全局变量
COUNTEmployee += count;
printf("\n*****************************\n");
printf("录入完成\n");
printf("*****************************\n");
}
//删除Employee
void delEmployee(Employee* employeeList){
printf("请输入您要删除的人员信息序号(输入-1退出):");
int index = -1;
scanf("%d",&index);
//要删除的下标为index
index = index - 1;
delEmp(employeeList,index);
}
void delEmp(Employee* employeeList,int index){
if(index == -2){
//不干任何事
}
else if(index < 0 || index >COUNTEmployee){
printf("输入有误\n");
} else{
//开始删除!
for(int i = index; i <COUNTEmployee-1 ; i++){
//元素全部往前移一位。
employeeList[i] = employeeList[i+1];
}
//最后令栈的长度减一
COUNTEmployee = COUNTEmployee - 1;
printf("删除成功!\n");
}
}
//修改Employee
void modifyEmployee(Employee* employeeList,Department* departmentList){
printf("请输入您要修改的人员信息序号(输入-1退出):");
int i = -1;
scanf("%d",&i);
//要修改的下标为i
i = i - 1;
if(i == -2){
//退出
}
else if(i < 0 || i >= COUNTEmployee){
printf("输入有误\n");
} else{
int flag = 1;
while (flag==1){
//开始修改
printf("依次输入:人员姓名 编号 电话 部门 性别(m/w) \n");
scanf("%s %s %s %s %c",
employeeList[i].empname,
employeeList[i].empnum,
employeeList[i].tele,
employeeList[i].depart,
&employeeList[i].sex
);
//判断部门是否存在;
for(int j = 0;j<COUNTDepartment;j++){
if(strcmp(employeeList[i].depart,departmentList[j].name)==0 || strcmp(employeeList[i].depart,"无")==0){
flag=0;
break;
}
}
if(flag){
printf("该部门不存在!请先添加部门或者填‘无’\n");
}
}
printf("修改成功!\n");
}
}
//罗列信息Employee
void queryAllEmployee(Employee* employeeList){
printf("\n序号 人员姓名 编号 电话 部门 性别(m/w) \n");
int i;
int count =0;
if(employeeList){
for (i = 0;i < COUNTEmployee ; i++)
{
printf("%-5d%-10s%-10s%-20s%-10s%-5c\n",
i+1,
employeeList[i].empname,
employeeList[i].empnum,
employeeList[i].tele,
employeeList[i].depart,
employeeList[i].sex);
count++;
}
printf("\n");
}
printf("共%d条结果\n\n",count);
}