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语言编程有所帮助。

C语言员工信息管理系统:修改、删除、排序和显示功能

原文地址: https://www.cveoy.top/t/topic/fwYl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录