c语言设计一个工作证信息管理系统, 工作证信息管理的基本操作:数据录入、数据查询。要求基本信息包含工作证编号、姓名、性别、身份证号码、工作时间、办证时间、工作部门、备注等,程序具有数据录入、删除、修改、显示、插入、查找以及数据保存等功能。
时间: 2023-10-24 12:08:21 浏览: 67
好的,以下是c语言设计的工作证信息管理系统代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100 //最大记录数
typedef struct
{
char num[20]; //工作证编号
char name[20]; //姓名
char sex[10]; //性别
char id[20]; //身份证号码
char work_time[20]; //工作时间
char card_time[20]; //办证时间
char department[20]; //工作部门
char note[50]; //备注
}Card;
Card cards[MAX_SIZE];
int count = 0; //记录数
//函数声明
void menu();
void input_card();
void show_cards();
void delete_card();
void modify_card();
void insert_card();
void search_card();
void save_cards();
int main()
{
menu();
return 0;
}
//主菜单
void menu()
{
int choice;
while(1)
{
printf("---------------工作证信息管理系统---------------\n");
printf("\t1.数据录入\n");
printf("\t2.数据查询\n");
printf("\t3.删除记录\n");
printf("\t4.修改记录\n");
printf("\t5.插入记录\n");
printf("\t6.显示所有记录\n");
printf("\t7.保存记录\n");
printf("\t0.退出系统\n");
printf("----------------------------------------------\n");
printf("请选择功能:");
scanf("%d", &choice);
switch(choice)
{
case 1:
input_card();
break;
case 2:
search_card();
break;
case 3:
delete_card();
break;
case 4:
modify_card();
break;
case 5:
insert_card();
break;
case 6:
show_cards();
break;
case 7:
save_cards();
break;
case 0:
printf("谢谢使用,再见!\n");
exit(0);
break;
default:
printf("输入错误,请重新输入!\n");
break;
}
}
}
//数据录入
void input_card()
{
char flag;
do
{
if(count >= MAX_SIZE)
{
printf("记录已满,无法继续录入!\n");
break;
}
printf("请输入工作证编号:");
scanf("%s", cards[count].num);
printf("请输入姓名:");
scanf("%s", cards[count].name);
printf("请输入性别:");
scanf("%s", cards[count].sex);
printf("请输入身份证号码:");
scanf("%s", cards[count].id);
printf("请输入工作时间:");
scanf("%s", cards[count].work_time);
printf("请输入办证时间:");
scanf("%s", cards[count].card_time);
printf("请输入工作部门:");
scanf("%s", cards[count].department);
printf("请输入备注:");
scanf("%s", cards[count].note);
count++;
printf("是否继续录入(Y/N):");
scanf(" %c", &flag);
}while(flag == 'Y' || flag == 'y');
}
//显示所有记录
void show_cards()
{
int i;
if(count == 0)
{
printf("没有任何记录!\n");
return;
}
printf("工作证编号\t姓名\t性别\t身份证号码\t工作时间\t办证时间\t工作部门\t备注\n");
for(i=0; i<count; i++)
{
printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", cards[i].num, cards[i].name, cards[i].sex, cards[i].id, cards[i].work_time, cards[i].card_time, cards[i].department, cards[i].note);
}
}
//删除记录
void delete_card()
{
char num[20];
int i, j, flag = 0;
if(count == 0)
{
printf("没有任何记录!\n");
return;
}
printf("请输入要删除的工作证编号:");
scanf("%s", num);
for(i=0; i<count; i++)
{
if(strcmp(num, cards[i].num) == 0)
{
flag = 1;
for(j=i; j<count-1; j++)
{
cards[j] = cards[j+1];
}
count--;
printf("删除成功!\n");
break;
}
}
if(flag == 0)
{
printf("未找到该工作证编号的记录!\n");
}
}
//修改记录
void modify_card()
{
char num[20], flag;
int i, choice, index, is_modify = 0;
if(count == 0)
{
printf("没有任何记录!\n");
return;
}
printf("请输入要修改的工作证编号:");
scanf("%s", num);
for(i=0; i<count; i++)
{
if(strcmp(num, cards[i].num) == 0)
{
is_modify = 1;
index = i;
break;
}
}
if(is_modify == 0)
{
printf("未找到该工作证编号的记录!\n");
return;
}
while(1)
{
printf("---------------修改记录---------------\n");
printf("\t1.工作证编号\n");
printf("\t2.姓名\n");
printf("\t3.性别\n");
printf("\t4.身份证号码\n");
printf("\t5.工作时间\n");
printf("\t6.办证时间\n");
printf("\t7.工作部门\n");
printf("\t8.备注\n");
printf("\t0.返回\n");
printf("-------------------------------------\n");
printf("请选择要修改的信息:");
scanf("%d", &choice);
switch(choice)
{
case 1:
printf("请输入新的工作证编号:");
scanf("%s", cards[index].num);
break;
case 2:
printf("请输入新的姓名:");
scanf("%s", cards[index].name);
break;
case 3:
printf("请输入新的性别:");
scanf("%s", cards[index].sex);
break;
case 4:
printf("请输入新的身份证号码:");
scanf("%s", cards[index].id);
break;
case 5:
printf("请输入新的工作时间:");
scanf("%s", cards[index].work_time);
break;
case 6:
printf("请输入新的办证时间:");
scanf("%s", cards[index].card_time);
break;
case 7:
printf("请输入新的工作部门:");
scanf("%s", cards[index].department);
break;
case 8:
printf("请输入新的备注:");
scanf("%s", cards[index].note);
break;
case 0:
printf("修改完成!\n");
return;
default:
printf("输入错误,请重新输入!\n");
break;
}
printf("是否继续修改(Y/N):");
scanf(" %c", &flag);
if(flag == 'N' || flag == 'n')
{
printf("修改完成!\n");
return;
}
}
}
//插入记录
void insert_card()
{
char flag;
Card temp;
if(count >= MAX_SIZE)
{
printf("记录已满,无法插入!\n");
return;
}
printf("请输入要插入的位置(0-%d):", count);
int index;
scanf("%d", &index);
if(index < 0 || index > count)
{
printf("输入错误!\n");
return;
}
printf("请输入工作证编号:");
scanf("%s", temp.num);
printf("请输入姓名:");
scanf("%s", temp.name);
printf("请输入性别:");
scanf("%s", temp.sex);
printf("请输入身份证号码:");
scanf("%s", temp.id);
printf("请输入工作时间:");
scanf("%s", temp.work_time);
printf("请输入办证时间:");
scanf("%s", temp.card_time);
printf("请输入工作部门:");
scanf("%s", temp.department);
printf("请输入备注:");
scanf("%s", temp.note);
int i;
for(i=count; i>index; i--)
{
cards[i] = cards[i-1];
}
cards[index] = temp;
count++;
printf("插入成功!\n");
printf("是否继续插入(Y/N):");
scanf(" %c", &flag);
if(flag == 'Y' || flag == 'y')
{
insert_card();
}
}
//数据查询
void search_card()
{
char num[20];
int i, flag = 0;
if(count == 0)
{
printf("没有任何记录!\n");
return;
}
printf("请输入要查询的工作证编号:");
scanf("%s", num);
printf("工作证编号\t姓名\t性别\t身份证号码\t工作时间\t办证时间\t工作部门\t备注\n");
for(i=0; i<count; i++)
{
if(strcmp(num, cards[i].num) == 0)
{
printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", cards[i].num, cards[i].name, cards[i].sex, cards[i].id, cards[i].work_time, cards[i].card_time, cards[i].department, cards[i].note);
flag = 1;
break;
}
}
if(flag == 0)
{
printf("未找到该工作证编号的记录!\n");
}
}
//保存记录
void save_cards()
{
FILE *fp;
int i;
if(count == 0)
{
printf("没有任何记录!\n");
return;
}
fp = fopen("cards.txt", "w");
if(fp == NULL)
{
printf("文件打开失败!\n");
return;
}
for(i=0; i<count; i++)
{
fprintf(fp, "%s %s %s %s %s %s %s %s\n", cards[i].num, cards[i].name, cards[i].sex, cards[i].id, cards[i].work_time, cards[i].card_time, cards[i].department, cards[i].note);
}
fclose(fp);
printf("保存成功!\n");
}
```
注意,此代码中数据的存储方式是文本文件,文件名为cards.txt,每行代表一条记录,每个字段之间用空格隔开。可以根据需要进行修改。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)