VC++编程题编译没错但运行时出错

由于度娘问题字数限制,已改成txt文件发到云盘,链接http://pan.baidu.com/s/1FHzfK急求大神揪出所有错误,把改后能完美运行的txt发给本人就行.... 由于度娘问题字数限制,已改成txt文件发到云盘,链接 http://pan.baidu.com/s/1FHzfK
急求大神揪出所有错误,把改后能完美运行的txt发给本人就行.
展开
 我来答
郝在益
2015-06-25 · TA获得超过2079个赞
知道小有建树答主
回答量:1496
采纳率:54%
帮助的人:596万
展开全部

没什么大问题,就是结构体定义的时候没有定义好,在加上结构体不是很了解,结构体相互赋值是可以直接赋值的。

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

struct EI //Employee information职工信息//

{

int  Eid;

char EN[20];

char ES;

char EDOB[20]; //字符串

char EE[30];

char EJ[20]; //字符串

int EW;

char EA[30];

char  ET[20];

}Ei[100];

void face(); //使用主界面函数//

void save(int a) //保存函数//

{

int i;

FILE *fp;

if((fp=fopen("ei.dat","wb"))==NULL)

{

printf("无法打开\n");

exit(0);

}

for(i=0;i<a;i++)

if(fwrite(&Ei[i],sizeof(struct EI),1,fp)!=1)

printf("错误");

fclose(fp);

}

void Input() //录入函数//

{

int i,a;

system("cls");

printf("输入要录入的人数:\n");

scanf("%d",&a);

printf("按顺序输入职工基本信息.\n");

for(i=0;i<a;i++)

{

printf("输入职工号:");

scanf("%d",&Ei[i].Eid);

printf("输入姓名:");

scanf("%s",&Ei[i].EN);

getchar();

printf("输入性别:(W或者M)");

scanf("%c",&Ei[i].ES);

printf("输入出生年月:(格式XXXX-XX)");

scanf("%s",&Ei[i].EDOB);

printf("输入学历:");

scanf("%s",&Ei[i].EE);

printf("输入职务:");

scanf("%s",&Ei[i].EJ);

printf("输入工资:");

scanf("%d",&Ei[i].EW);

printf("输入住址:");

scanf("%s",&Ei[i].EA);

printf("输入电话:");

scanf("%s",&Ei[i].ET);

}

save(a);

face();

}

int load() //导入函数//

{

FILE*fp;

int i=0;

if((fp=fopen("ei.dat","rb"))==NULL)

{

printf ("无法打开\n");

exit(0);

}

else 

{

do 

{

fread(&Ei[i],sizeof(struct EI),1,fp);

i++;

}

while(feof(fp)==0);

}

fclose(fp);

return(i-1);

}

void All() //显示所有职工信息函数//

{

int i;

int m=load();

printf("全部职员信息如下:\n");

printf("职工号\t姓名\t性别\t出生年月\n");

for(i=0;i<m;i++)

printf("%d\t%s\t%c\t%s\n",Ei[i].Eid,Ei[i].EN,Ei[i].ES,Ei[i].EDOB);

printf("学历\t职位\t工资\t住址\t电话\n");

for(i=0;i<m;i++)

printf("%s\t%s\t%d\t%s\t%s\n",Ei[i].EE,Ei[i].EJ,Ei[i].EW,Ei[i].EA,Ei[i].ET);

system("pause");

face();

}

void IDfind() //职工号查询函数//

{

int n,i,a=load();

system("cls");

printf("输入员工工号:");

scanf("%d",&n);

system("cls");

for(i=0;i<a;i++)

if(n=Ei[i].Eid)

{

printf("职工号\t姓名\t性别\t出生年月\n");

printf("%d\t%s\t%c\t%s\n",Ei[i].Eid,Ei[i].EN,Ei[i].ES,Ei[i].EDOB);

printf("学历\t职位\t工资\t住址\t电话\n");

printf("%s\t%s\t%d\t%s\t%s\n",Ei[i].EE,Ei[i].EJ,Ei[i].EW,Ei[i].EA,Ei[i].ET);

system("pause");

}

face();

}

void EIrepair() //修改函数//

{

FILE *fp;

int i,n,a=load();

system("cls");

if((fp=fopen("ei.dat","wb+"))==NULL)

{

printf("无法打开\n");

exit(0);

}

printf("输入想修改的员工号:");

scanf("%d",&n);

system("cls");

for(i=0;i<a;i++)

{

if(Ei[i].Eid==n)

{

printf("1.职工号2.姓名3.性别4.出生年5.学历6.职务7.工资8.住址9.电话\n");

printf("输入想修改的序号:");

scanf("%d",&n);

system("cls");

switch(n)

{

case 1:printf("输入新数据:");scanf("%d",&Ei[i].Eid);break;

case 2:printf("输入新数据:");scanf("%s",&Ei[i].EN);break;

case 3:printf("输入新数据:");scanf("%s",&Ei[i].ES);break;

case 4:printf("输入新数据:");scanf("%s",&Ei[i].EDOB);break;

case 5:printf("输入新数据:");scanf("%s",&Ei[i].EE);break;

case 6:printf("输入新数据:");scanf("%s",&Ei[i].EJ);break;

case 7:printf("输入新数据:");scanf("%d",&Ei[i].EW);break;

case 8:printf("输入新数据:");scanf("%s",&Ei[i].EA);break;

case 9:printf("输入新数据:");scanf("%s",&Ei[i].ET);break;

}

}

}

save(a);

system("pause");

face();

}

void EIdelete() //删除函数//

{

FILE *fp;

int i,n,p,a=load();

system("cls");

if((fp=fopen("ei.dat","wb+"))==NULL)

{

printf("无法打开\n");

exit(0);

}

printf("输入想删除的职工号:");

scanf("%d",&n);

system("cls");

for(i=0;i<a;i++)

{

if(Ei[i].Eid==n)

break;

}

if(i >= a)

printf("未找到对应工号!\n");

else

{

for(p=i;p<a;p++)

{

Ei[p] = Ei[p+1]; //结构体可以直接这样赋值

}

save(a-1); //保存数少一个

}


system("pause");

face();

}

void face() //主界面函数//

{

int n;

system("cls");

printf("          主界面          \n");

printf("          1.录入          \n");

printf("        2.查看所有        \n");

printf("      3.按职工号查询      \n");

printf("          4.修改          \n");

printf("          5.删除          \n");

printf("输入想进行的操作:");

scanf("%d",&n);

if(n!=1&&n!=2&&n!=3&&n!=4&&n!=5)

{

face();

}

switch(n)

{

case 1:Input();break;

case 2:All();break;

case 3:IDfind();break;

case 4:EIrepair();break;

case 5:EIdelete();break;

}

}

void main()

{

face();

system("cls");

}

MarsCode
2024-08-21 广告
MarsCode 为你提供了编程助手和 IDE 来协助你完成编程任务。 MarsCode 编程助手提供以智能代码补全为代表的 AI 功能。它支持主流的编程语言和 IDE,在开发过程中提供单行代码或整个函数的编写建议。此外,它还支持代码解释、... 点击进入详情页
本回答由MarsCode提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式