如何修改!!!急急急!!!!!!文件使用不了!!!!!!!!

/-----------------------------职工管理系统---------------------------------/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define MAX 100
#define SMALL 5
#define MID 20

typedef int Status;
typedef char Elemtype;

typedef struct {
Elemtype name[MID];
Elemtype pinyin[MID];
}Name;

typedef struct {
char num[SMALL];
Name people;
char gender[SMALL];
Elemtype date_of_birth[MID];
Elemtype part_in_work[MID];
char education[MID];
Elemtype position[MID];
Elemtype phone[MID];
Elemtype home_address[MAX];
}Staff_data;

struct list{
Staff_data data;
int number;
}List[MAX];

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>函数声明<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
int load_data();
Status Initput();
Status InitList();
Status DeleteList();
Status InsertList();
Status changeList();
Status compare_name( int m, int n);
Status compare_num( int m, int n);
void sort_num();
void Print_one();
void Print_all();
void save_data(int m);
void change_name( int i);
void change_gender( int i);
void change_position( int i);
void change_education( int i);
void change_date_of_birth( int i);
void change_part_in_work( int i);
void change_homeaddress( int i);
void change_phone( int i);
void Swap(int m, int n);
void Print( int i);

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>主函数<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
int main() {
int i, j;
List->number = 0;
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>欢迎使用职工管理系统<<<<<<<<<<<<<<<<<<<<<<<<<<<\n");
printf("\t\t主菜单\n");
printf("** 1.插入一个新员工的信息! \n");
printf("
2.删除一个员工的信息! \n");
printf("
3.修改一个员工的信息! \n");
printf("
4.用员工编号进行排序! \n");
printf("
5.打印一个员工的信息! \n");
printf("
6.打印全部员工的信息! \n");
printf("
7.初始化信息! \n");
printf("
0.退出程序! **\n");
printf(“请选择一种你想要执行的操作:\n”);
do
{
scanf("%d", &j);
switch (j)
{
case 1:InsertList(); break;
case 2:DeleteList(); break;
case 3:changeList(); break;
case 4:; sort_num(); break;
case 5:Print_one(); break;
case 6:Print_all(); break;
case 7:Initput(); break;
default:printf(“data error!please re-input”); break;
}
} while (j != 0);
}

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>函数的定义<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Status Initput() {
int j, m;
printf(“请输入创建人数”);
scanf("%d", &m);
for (j = 0; j < m; j++) {
printf(“请录入输入员工的姓名.样例输入:小明\n”);
scanf("%s", List[j].data.people.name);
printf(“请录入输入员工的拼音.样例输入:xiaomin\n”);
scanf("%s", List[j].data.people.pinyin);
printf(“请录入输入员工的性别,男性输入0、女性输入1\n”);
scanf("%s", List[j].data.gender);
printf(“请录入输入员工的出生年月.样例输入:2000年1月\n”);
scanf("%s", List[j].data.date_of_birth);
printf(“请录入输入员工的入职年月.样例输入:2019年6月1日”);
scanf("%s", List[j].data.part_in_work);
printf(“请录入输入员工的学历\n”);
printf(“输入对应关系:初中0 高中1 大专2 本科3 硕士4 博士5\n”);
scanf("%s", List[j].data.education);
printf(“请录入输入员工的职位.样例输入:普通职工\n”);
scanf("%s", List[j].data.position);
printf(“请录入输入员工的电话.样例输入:1383838438\n”);
scanf("%s", List[j].data.phone);
printf(“请录入输入员工的家庭住址.样例输入:太原二龙山上兰村\n”);
scanf("%s", List[j].data.home_address);
printf(“请录入该员工的编号,目前录入第%i个人信息\n”, j);
scanf("%s", List[j].data.num);
}
printf(“初始化成功!”);
save_data(m);
return OK;
}

void Swap( int m, int n) {
list temp;
temp = List[m];
List[m] = List[n];
List[n] = temp;
}

void Print( int i) {
int m = load_data();
printf("\t\t\t姓名:%s\t\t\t性别:%s\n", List[i].data.people.name, List[i].data.gender);
printf("\t\t\t学历:%s\t\t\t编号:%s\n", List[i].data.education, List[i].data.num);
printf("\t\t\t出生年月:%s\t\t\t入职年月:%s\n", List[i].data.date_of_birth, List[i].data.part_in_work);
printf("\t\t\t职位:%s\t\t\t联系电话:%s\n", List[i].data.position, List[i].data.phone);
printf("\t\t\t家庭住址:%s\n", List[i].data.home_address);
}

void Print_one() {
int m = load_data();
int i;
Elemtype c[MID];
printf(“请输入你想要打印员工的名字”);
scanf("%s", &c);
printf(“\n");
for (i = 0; i < List->number; i++) {
if (strcmp(List[i].data.people.name, c) == 0) Print( i);
}
printf("
*\n”);
getchar();
}

void Print_all() {
int i;
int m = load_data();
printf(" 编号 姓名 性别 职位 学历 出生年月 入职年月 家庭住址 电话 \n");
for (i = 0; i < List->number; i++)
printf(" %s %s %s %s %s %s %s %s %s ", List[i].data.num, List[i].data.people.name, List[i].data.gender, List[i].data.position, List[i].data.education, List[i].data.date_of_birth, List[i].data.part_in_work, List[i].data.home_address, List[i].data.phone);
printf(“打印结束!”);
}

Status compare_num(int m, int n) {
int i = 0;
if (List[m].data.num < List[n].data.num) return 0;
else return 1;
}

void sort_num() {
int i, j;
int m = load_data();
for (i = 0; i < List->number; i++)
for (j = 1; j < List->number; j++) {
if (compare_num( j, j + 1)) Swap( j, j + 1);
}
}

Status changeList() {
int i, j;
int m = load_data();
sort_num();
printf("************************************\n");
printf(“请选择一种你要修改的员工编号”);
scanf("%d", &i);
printf(“请选择一种要修改的信息\n”);
printf("\t\t1.姓名\t2.性别\t3.出生年月\t\t4.入职时间\n");
printf("\t\t5.学历\t\t6.职位\t\t7.电话\t\t8.家庭住址\n");
scanf("%d", &j);
switch (j)
{
case 1:change_name( i); break;
case 2:change_gender( i); break;
case 3:change_date_of_birth( i); break;
case 4:change_part_in_work( i); break;
case 5:change_education(i); break;
case 6:change_position( i); break;
case 7:change_phone(i); break;
case 8:change_homeaddress( i); break;
default:printf(“data error !”); break;
}
printf("************************************\n");
return OK;
}

void change_name( int i) {
int m = load_data();
printf(“现在开始重新录入编号为%ld的员工名字,如小明\n\t\t请输入:”, i);
scanf("%s", List[i].data.people.name);
printf(“信息修改完毕!\n”);
}

void change_pinyin( int i) {
int m = load_data();
printf(“现在开始重新录入编号为%ld的员工拼音缩写,如xiaomin\n\t\t请输入:”, i);
scanf("%s", List[i].data.people.pinyin);
printf(“信息修改完毕!\n”);
}

void change_gender( int i) {
int m = load_data();
printf(“现在开始重新录入编号为%ld的员工的性别,男性输入0、女性输入1\n\t\t请输入:”, i);
scanf("%s", List[i].data.gender);
printf(“信息修改完毕!\n”);
}

void change_position( int i) {
int m = load_data();
printf(“现在开始重新录入编号为%ld的员工的职位\n\t\t请输入:”, i);
scanf("%s", List[i].data.position);
printf(“信息修改完毕!\n”);
}

void change_education( int i) {
int m = load_data();
printf(“现在开始重新录入编号为%ld的员工的学历,如初中0 高中1 大专2 本科3 硕士4 博士5\n\t\t请输入:”, i);
scanf("%d", List[i].data.education);
printf(“信息修改完毕!\n”);
}

void change_part_in_work( int i) {
int m = load_data();
printf(“现在开始重新录入编号为%ld的员工的入职时间,如2000年1月1日\n\t\t请输入:”, i);
scanf("%s", List[i].data.part_in_work);
printf(“信息修改完毕!\n”);
}

void change_date_of_birth( int i) {
int m = load_data();
printf(“现在开始重新录入编号为%ld的员工的出生年月,如1999年1月\n\t\t请输入:”, i);
scanf("%s", List[i].data.date_of_birth);
printf(“信息修改完毕!\n”);
}

void change_homeaddress( int i) {
int m = load_data();
printf(“现在开始重新录入编号为%ld的员工的家庭住址,如太原二龙山上兰村\n\t\t请输入:”, i);
scanf("%s", List[i].data.home_address);
printf(“信息修改完毕!”);
}

void change_phone( int i) {
int m = load_data();
printf(“现在开始重新录入编号为%ld的员工的电话号,如1383838438\n\t\t请输入:”, i);
scanf("%s", List[i].data.phone);
printf(“信息修改完毕!”);
}

Status DeleteList() {
int i,j,k;
int m = load_data();
printf(“请输入要删除的员工编号:”);
scanf("%d", &i);
Print(i);
printf(“请确定删除人的信息,确定是否删除!是的话输入1,否则输入0”);
scanf("%d",&k);
if (k) {
if (i == List->number)
List->number =List->number-1;
else {
for (j = i + 1; j <= List->number; j++) {
strcpy(List[j-1].data.phone,List[j].data.phone);
strcpy(List[j - 1].data.people.pinyin, List[j].data.people.pinyin);
strcpy(List[j - 1].data.people.name, List[j].data.people.name);
strcpy(List[j - 1].data.home_address, List[j].data.home_address);
strcpy(List[j - 1].data.gender, List[j].data.gender);
strcpy(List[j - 1].data.education, List[j].data.education);
strcpy(List[j].data.part_in_work, List[j - 1].data.part_in_work);
strcpy(List[j].data.date_of_birth,List[j - 1].data.date_of_birth);
strcpy(List[j].data.num, List[j-1].data.num);
strcpy(List[j].data.position, List[j - 1].data.position);
}
List->number = List->number - 1;
}
printf(“编号为%i的员工信息已经删除完毕!\n”,i);
}//if
return OK;
}

Status InsertList() {
FILE* fp;
int m = load_data();
fp = fopen(“list.txt”, “a”);
int j;
char ch1[MID];
j = List->number + 1;
printf(“请录入输入员工的姓名.样例输入:小明\n”);
scanf("%s", List[j].data.people.name);
printf(“请录入输入员工的拼音…样例输入:xiaomin\n”);
scanf("%s", List[j].data.people.pinyin);
printf(“请录入输入员工的性别,男性输入0、女性输入1\n”);
scanf("%s", List[j].data.gender);
printf(“请录入输入员工的出生年月.样例输入:2000年1月\n”);
scanf("%s", List[j].data.date_of_birth);
printf(“请录入输入员工的入职年月.样例输入:2019年6月1日”);
scanf("%s", List[j].data.part_in_work);
printf(“请录入输入员工的学历\n”);
printf(“输入对应关系:初中0 高中1 大专2 本科3 硕士4 博士5\n”);
scanf("%s", List[j].data.education);
printf(“请录入输入员工的职位.样例输入:普通职工\n”);
scanf("%s", List[j].data.position);
printf(“请录入输入员工的电话.样例输入:1383838438\n”);
scanf("%s", List[j].data.phone);
printf(“请录入输入员工的家庭住址.样例输入:太原二龙山上兰村\n”);
scanf("%s", List[j].data.home_address);
printf(“请录入该员工的编号,目前录入第%i个人信息\n”, j);
scanf("%s", List[j].data.num);
List->number += 1;
printf(“成功录入一组信息!\n”);
m = m + 1;
save_data(m);
fclose(fp);
return OK;
}

void save_data(int m) {
int i;
FILE* fp;
if ((fp = fopen(“list.txt”, “wb”)) == NULL) {
printf(“can’t open\n”);
exit(0);
}
for (i = 0; i <m; i++) {
if (fwrite(& List[i], sizeof(struct list), 1, fp) != 1)
printf(“file write error\n”);
fclose(fp);
}
}

int load_data() {
FILE* fp;
int i = 0;
if ((fp = fopen(“list.txt”, “rb”)) == NULL)
{
printf(“cannot open file\n”);
exit(0);
}
else
{
do
{
fread(&List[i], sizeof(struct list), 1, fp);
i++;
} while (feof(fp) == 0);
}
fclose(fp);
return(i - 1);
}

为什么文件有问题?

  • 0
    点赞
  • 1
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

蝉不休

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值