这个错误在那
IT-学徒 2012-06-12 06:44:38 #include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<graphics.h>
#define MAX sizeof(struct peo)
#define NULL 0
struct peo
{
long id;
char name[20];
char sex[20];
float borth;
char type[20];
int money;
char from[20];
char sit[20];
struct peo *next;
};
int n;
struct peo *creat(void) /* 录入职工信息 */
{
struct peo *head;
struct peo *p1,*p2;
n=0;
p1=p2=(struct peo *)malloc(MAX);
cleardevice(); /* 清理屏幕 */
printf("输入ID为0时停止输入!\n");
printf("\n请输入id:\n");
scanf("%ld",&p1->id);
printf("请输入姓名:\n");
scanf("%s",&p1->name);
printf("请输入性别:\n");
scanf("%s",&p1->sex);
printf("请输入出生日期:\n");
scanf("%f",&p1->borth);
printf("请输入职称:\n");
scanf("%s",&p1->type);
printf("请输入工资:\n");
scanf("%ld",&p1->money);
printf("请输入所在单位:\n");
scanf("%s",&p1->from);
printf("请输入在岗情况:\n");
scanf("%s",&p1->sit);
head=NULL;
while(1)
{
n++;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct peo *)malloc(MAX);
printf("\n请输入id:\n");
scanf("%ld",&p1->id);
if(p1->id==0) break;
printf("请输入姓名:\n");
scanf("%s",&p1->name);
printf("请输入性别:\n");
scanf("%s",&p1->sex);
printf("请输入出生日期:\n");
scanf("%f",&p1->borth);
printf("请输入职称:\n");
scanf("%s",&p1->type);
printf("请输入工资:\n");
scanf("%ld",&p1->money);
printf("请输入单位:\n");
scanf("%s",&p1->from);
printf("请输入状态:\n");
scanf("%s",&p1->sit);
}
p2->next=NULL;
return(head);
}
main()
{
struct peo *head;
char i;
int drive=DETECT,mode;
initgraph(&drive,&mode," "); /*初始化显示器为图形方式 */
cleardevice(); /*清屏幕*/
setbkcolor(9); /*设置屏幕背景颜色*/
printf("\16[co4st8e320,170,0,360,300,70,2,4]");
printf("\16[{-10|20@48,24=2(14)9中南大学}]");
printf("\16[{-90|140@55,55=11(13)9职工档案管理系统}]");
printf("\16[{-246|280@20,20=8(12)9设计者: 电气信息113201 XXX }]");
printf("\16[{-250|360@20,20=8(4)9请按Enter键进入}]");
getch(); /*等待击键*/
for( ; ;) /*循环执行功能菜单*/
{
cleardevice();
setbkcolor(9);
printf("\16[{-5|30@40,40=30(2)9* * * * * * 菜 单 * * * * * *}]");
printf("\16[{-130|100@35,35=30(7)9a 输入}]");
printf("\16[{-400|100@35,35=30(7)9b 显示}]");
printf("\16[{-130|145@35,35=30(7)9c 修改}]");
printf("\16[{-400|145@35,35=30(7)9d 查找}]");
printf("\16[{-130|205@35,35=30(7)9e 删除}]");
printf("\16[{-400|205@35,35=30(7)9f 恢复}]");
printf("\16[{-130|260@35,35=30(7)9g 添加}]");
printf("\16[{-400|260@35,35=30(7)9h 统计}]");
printf("\16[{-130|315@35,35=30(7)9i 保存}]");
printf("\16[{-400|315@35,35=30(7)9j 打开}]");
printf("\16[{-130|360@35,35=30(7)9k 退出}]");
printf("\16[{-400|380@24,24=11(7)4请选择a至j}]");
i=getch();
if(i=='k') break;
else switch(i)
{
case'a': head=creat()/* 调用记录输入函数 */;break;
case'b': /* 调用记录显示函数 */;break;
case'c': /* 调用记录修改函数 */;break;
case'd': /* 调用记录查找函数 */;break;
case'e': /* 调用记录删除函数 */;break;
case'f': /* 调用记录恢复函数 */;break;
case'g': /* 调用记录添加函数 */; break;
case'h': /* 调用记录统计函数 */;break;
case'i': /* 调用数据保存函数 */;break;
case'j': /* 调用数据文件打开函数 */; break;
}
}
}