代码生成(用c语言写一个完成一个户籍管理系统系统 能实现户籍新建,户籍修改户籍的迁入、迁出,户籍的注销,查询管理五大部分)
时间: 2024-03-24 16:37:26 浏览: 176
好的,以下是一个简单的C语言代码示例,实现户籍管理系统的基本功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100 // 最大记录数
// 定义一个结构体存储户籍信息
struct household_register {
char name[20]; // 姓名
char id[20]; // 身份证号
char address[50]; // 户籍地址
char status[10]; // 户籍状态
};
// 定义一个全局变量存储记录数量
int count = 0;
// 定义函数声明
void create(struct household_register *hr); // 新建户籍
void modify(struct household_register *hr); // 修改户籍
void move_in(struct household_register *hr); // 户籍迁入
void move_out(struct household_register *hr); // 户籍迁出
void cancel(struct household_register *hr); // 注销户籍
void query(struct household_register *hr); // 查询户籍
int main() {
struct household_register hr[MAX_SIZE]; // 定义一个数组存储户籍信息
int choice; // 定义一个变量存储用户输入的选项
while (1) {
printf("\n==================");
printf("\n1. 新建户籍");
printf("\n2. 修改户籍");
printf("\n3. 户籍迁入");
printf("\n4. 户籍迁出");
printf("\n5. 注销户籍");
printf("\n6. 查询户籍");
printf("\n0. 退出系统");
printf("\n请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
create(hr);
break;
case 2:
modify(hr);
break;
case 3:
move_in(hr);
break;
case 4:
move_out(hr);
break;
case 5:
cancel(hr);
break;
case 6:
query(hr);
break;
case 0:
printf("\n感谢使用本系统!\n");
exit(0);
default:
printf("\n输入有误,请重新输入!\n");
break;
}
}
return 0;
}
// 新建户籍
void create(struct household_register *hr) {
if (count >= MAX_SIZE) {
printf("\n记录已满,无法继续添加!\n");
return;
}
printf("\n请输入姓名:");
scanf("%s", hr[count].name);
printf("请输入身份证号:");
scanf("%s", hr[count].id);
printf("请输入户籍地址:");
scanf("%s", hr[count].address);
strcpy(hr[count].status, "正常"); // 初始状态为正常
count++;
printf("\n新建户籍成功!\n");
}
// 修改户籍
void modify(struct household_register *hr) {
char id[20];
int i;
printf("\n请输入要修改户籍的身份证号:");
scanf("%s", id);
for (i = 0; i < count; i++) {
if (strcmp(hr[i].id, id) == 0) {
printf("请输入新的户籍地址:");
scanf("%s", hr[i].address);
printf("\n修改户籍成功!\n");
return;
}
}
printf("\n该户籍不存在!\n");
}
// 户籍迁入
void move_in(struct household_register *hr) {
char id[20];
int i;
printf("\n请输入要迁入的户籍的身份证号:");
scanf("%s", id);
for (i = 0; i < count; i++) {
if (strcmp(hr[i].id, id) == 0) {
if (strcmp(hr[i].status, "注销") == 0) {
printf("\n该户籍已被注销,无法迁入!\n");
} else {
printf("请输入新的户籍地址:");
scanf("%s", hr[i].address);
strcpy(hr[i].status, "正常");
printf("\n迁入户籍成功!\n");
}
return;
}
}
printf("\n该户籍不存在!\n");
}
// 户籍迁出
void move_out(struct household_register *hr) {
char id[20];
int i;
printf("\n请输入要迁出的户籍的身份证号:");
scanf("%s", id);
for (i = 0; i < count; i++) {
if (strcmp(hr[i].id, id) == 0) {
if (strcmp(hr[i].status, "注销") == 0) {
printf("\n该户籍已被注销,无法迁出!\n");
} else {
strcpy(hr[i].status, "迁出");
printf("\n迁出户籍成功!\n");
}
return;
}
}
printf("\n该户籍不存在!\n");
}
// 注销户籍
void cancel(struct household_register *hr) {
char id[20];
int i;
printf("\n请输入要注销的户籍的身份证号:");
scanf("%s", id);
for (i = 0; i < count; i++) {
if (strcmp(hr[i].id, id) == 0) {
if (strcmp(hr[i].status, "注销") == 0) {
printf("\n该户籍已被注销,无需重复操作!\n");
} else {
strcpy(hr[i].status, "注销");
printf("\n注销户籍成功!\n");
}
return;
}
}
printf("\n该户籍不存在!\n");
}
// 查询户籍
void query(struct household_register *hr) {
char id[20];
int i;
printf("\n请输入要查询的户籍的身份证号:");
scanf("%s", id);
for (i = 0; i < count; i++) {
if (strcmp(hr[i].id, id) == 0) {
printf("\n姓名:%s\n", hr[i].name);
printf("身份证号:%s\n", hr[i].id);
printf("户籍地址:%s\n", hr[i].address);
printf("户籍状态:%s\n", hr[i].status);
return;
}
}
printf("\n该户籍不存在!\n");
}
```
以上代码实现了新建户籍、修改户籍、户籍迁入、户籍迁出、注销户籍和查询户籍等功能。
阅读全文