C语言员工信息管理系统:修改、删除、排序和显示功能
C语言员工信息管理系统:修改、删除、排序和显示功能
本文档提供C语言编写的员工信息管理系统源代码,包含修改、删除、排序和显示等功能,并详细解释了函数声明和调用语句的使用。
代码示例
void modify() {
int num, flag, i, j;
char a[10];
char change[20];
char c;
read();
while (1) {
flag = 0;
printf("\n请输入需要修改的职工编号:");
scanf("%s", &a);
for (i = 0; i < n; i++) {
if (strcmp(em[i].number, a) == 0) {
j = i;
flag = 1;
}
}
if (!flag) {
printf("\n\n!!!无此员工的信息!!!\n\n");
printf("\n\n是否继续修改(Y/N):");
scanf("%c", &c);
if (c == 'N' || c == 'n') break;
}
printf("\n");
printf("+-------------------------------+\
");
printf("| 职 工 信 息 修 改 系 统 |\
");
printf("| 1.修改姓名 |\
");
printf("| 2.修改学历 |\
");
printf("| 3.修改职务 |\
");
printf("| 4.修改地址 |\
");
printf("| 5.修改出生年月 |\
");
printf("| 6.修改入职年月 |\
");
printf("| 7.修改电话 |\
");
printf("| 8.修改职工编号 |\
");
printf("| 输入其他任意键退出本模块 |\
");
printf("+-------------------------------+\
");
printf("请选择操作:");
scanf("%d", &num);
if (num < 1 || num > 8) {
printf("!!!操作错误!!!\n\n");
continue;
}
system("cls"); // 清屏
printf("\n请输入修改后的信息:");
scanf("%s", &change);
switch (num) {
case 1 : strcpy(em[j].name, change);
break;
case 2 : strcpy(em[j].degree, change);
break;
case 3 : strcpy(em[j].position, change);
break;
case 4 : strcpy(em[j].add, change);
break;
case 5 : strcpy(em[j].birthday, change);
break;
case 6 : strcpy(em[j].date, change);
break;
case 7 : strcpy(em[j].tel, change);
break;
case 8 : strcpy(em[j].number, change);
break;
}
printf("\n\n是否继续修改?(Y/N):");
scanf("%*c%c", &c);
if (c == 'N' || c == 'n')
break;
continue;
}
write();
}
// 删除函数
void Delete() {
char a[10];
int i, j, flag;
char c;
read();
while (1) {
system("cls"); // 清屏
flag = 0;
printf("\n请输入需要删除的职工编号:");
scanf("%s", &a);
for (i = 0; i < n; i++) {
if (strcmp(em[i].number, a) == 0) {
n--;
flag = 1;
for (j = i; j < n; j++) {
em[j] = em[j + 1];
}
break;
}
}
if (!flag)
printf("\n\n!!!无此员工信息!!!\n\n");
else
printf("\n\n!!!删除成功!!!\n");
printf("\n\n是否继续删除?(Y/N):");
scanf("%c", &c);
if (c == 'N' || c == 'n') break;
continue;
}
write();
}
//输出函数
void show(employee *head) {
employee *p = head;
int j = 1;
int i;
char c;
while (p != NULL) {
for (i = 1; i < n; i++) {
printf("%d. %s %s %s %s %s %s %s %s %s\n",j++,p->number,p->name ,p->sex ,p->birthday,
p->date, p->degree, p->position, p->add, p->tel);
p = p->next;
}
}
}
//交换
void exchange(char *p,char *q) {
read();
char c[20];
strcpy(c, p);
strcpy(p, q);
strcpy(q, c);
}
//排序
void sort() {
char ch;
char c;
employee *p, *q, *r;
read() ;
while (1) {
printf("按职工编号从小到大的排序信息如下:\n");
p = head;
while (p->next != NULL) //选择排序
{
q = p->next;
r = p;
if (r != p) //交换信息
{
exchange(r->number, p->number);
exchange(r->name, p->name);
exchange(r->sex, p->sex);
exchange(r->birthday, p->birthday);
exchange(r->date, p->date);
exchange(r->degree, p->degree);
exchange(r->position, p->position);
exchange(r->add, p->add);
exchange(r->tel, p->tel);
}
}
show();
system("pause");
}
}
//菜单
void menu() {
printf("*************************\n");
printf("* ○主菜单 ○ *\n");
printf("* 0.退 出 菜 单 *\n");
printf("* 1.录入职工信息 *\n");
printf("* 2.显示职工信息 *\n");
printf("* 3.查询职工信息 *\n");
printf("* 4.修改职工信息 *\n");
printf("* 5.删除职工信息 *\n");
printf("* 6.职工信息排序 *\n");
printf("*************************\n");
printf("请输入操作: ");
}
//自定义函数的声明语句和调用语句
// 函数的声明语句是在函数调用之前声明函数的原型,以告诉编译器函数的返回类型和参数类型。在上述代码中,函数的声明语句如下:
void modify();
void Delete();
void show(employee *head);
void exchange(char *p,char *q);
void sort();
void menu();
// 函数的调用语句是在需要使用函数的地方调用函数执行相应的操作。在上述代码中,函数的调用语句如下:
modify();
Delete();
函数声明和调用语句解释
函数声明语句
函数的声明语句是在函数调用之前声明函数的原型,以告诉编译器函数的返回类型和参数类型。在上述代码中,函数的声明语句如下:
void modify();
void Delete();
void show(employee *head);
void exchange(char *p,char *q);
void sort();
void menu();
函数调用语句
函数的调用语句是在需要使用函数的地方调用函数执行相应的操作。在上述代码中,函数的调用语句如下:
modify();
Delete();
show(head);
exchange(r->number, p->number);
sort();
menu();
总结
本文档提供了C语言编写的员工信息管理系统源代码,并详细解释了函数声明和调用语句的使用。希望对您学习C语言编程有所帮助。
原文地址: https://www.cveoy.top/t/topic/fwYl 著作权归作者所有。请勿转载和采集!