有大佬能不能帮忙修改一下不,Dev C++过不了
#include<stdio.h>#include<stdlib.h>
#include<string.h>
#include<windows.h>
//自定义结构体程序
struct student
{
char acad[10],name[20],sex; //客户账户,姓名,性别
int age; //客户年龄
char addr[30]; //客户住址
long int num; //存取款数目
};
void intputing(student *p); //声明输入函数中的输数据部分并保存的函数
void input(student *p,int i); //声明输入函数
void insert(student *p,int i); //声明插入函数
void output(student *p,int i); //声明输出函数
void sort(student *p,int n); //声明排序函数
void find(student *p,int n); //声明查找函数
void del(student *p,int n); //声明删除函数
int main(void)
{
system("color 34");
student *q=NULL; //自定义类型指针
int i=0,j,k,b=0;
do
{
printf("\t\t|-----------------------------------------------------|\n");
printf("\t\t|-----------------银行存取款管理系统------------------|\n");
printf("\t\t| |\n");
printf("\t\t|-----------------------------------------------------|\n");
printf("\t\t|------1.输入客户信息------------2.添加客户信息-------|\n");
printf("\t\t|------3.排序客户信息------------4.查找客户信息-------|\n");
printf("\t\t|------5.删除客户信息------------6.显示客户信息-------|\n");
printf("\t\t|------7.退出系统-------------------------------------|\n");
printf("\t\t|-----------------------------------------------------|\n");
printf("\t\t\t\t请选择菜单:");
scanf("%d",&j);
switch(j)
{
case 1:
b++;
if(b!=1)
{
printf("您已经输入过一次,无法继续选择该项,您可选择<2.添加客户信息>\n");
break;
}
else
{
printf("请输入所需客户人数:");
scanf("%d",&i);
while(b<=0)
{
printf("输入错误,请重新输入所需客户人数:");
scanf("%d",&i);
}
q=(student *)malloc(i*sizeof(student));
input(q,i); //调用输入函数
break;
}
case 2:
i++;
q=(student *)realloc(q,i*sizeof(student));
insert(q,i-1); //调用插入函数
break;
case 3:
sort(q,i); //调用排序函数
break;
case 4:
find(q,i); //调用查找函数
break;
case 5:
k=del(q,i); //调用删除函数
if(k==1)
{
i--;
q=(student *)realloc(q,i*sizeof(student));
}
break;
case 6:
output(q,i); //调用输出函数
break;
case 7:
printf("程序即将退出...\n");
break;
default:
printf("菜单选择错误!");
}
}while(j!=7);
free(q);
}
//输入函数中的输数据部分并保存的函数
void inputing(student *p)
{
printf("请输入客户账号:");
scanf("%s",p->acad);
printf("请输入客户姓名:");
scanf("%s",p->name);
printf("请输入客户住址:");
scanf("%s",&(p->addr));
do
{
printf("输入客户性别<m:男/f:女>:");
fflush(stdin); //清空输入缓冲区
scanf("%c",&(p->sex));
if(p->sex!='m'&&p->sex!='f')
{
printf("输入错误!重新");
}
}while(p->sex!='m'&&p->sex!='f');
do
{
printf("输入客户年龄:");
scanf("%d",&(p->age));
if(p->age<1||p->age>100)
{
printf("输入错误!重新");
}
}while(p->age<1||p->age>100);
do
{
printf("输入客户存取款数目:");
scanf("%ld",&(p->num));
if(p->num<0||p->num>1000000)
{
printf("输入错误!重新");
}
}while(p->num<0||p->num>1000000);
}
//输入函数
void input(student *p,int i)
{
int x;
for(x=0;x<i;x++,p++)
{
printf("请输入第%d名客户存取款信息:\n",x+1);
intputing(p); //调用输入函数中的输数据部分并保存的函数
printf("\n");
}
}
//输出函数
void output(student *p,int i)
{
printf("账号\t姓名\t年龄\t住址\t存取款数目");
int x=0;
for(x=0;x<i;x++,p++)
{
printf("%s\t%s\t%c\t%d\t%s\t%ld\n",p->acad,p->name,p->sex,p->age,p->addr,p->num);
}
printf("\n");
}
//插入函数
void insert(student *p,int i)
{
p=p+i;
printf("请输入要插入的客户存取款信息:\n");
intputing(p); //调用输入函数中的输数据部分并保存的函数
printf("\n");
}
//排序函数
void sort(student *p,int n)
{
student t;
int j,i;
{
printf("要求按账号从小到大排序.\n");
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(strcmp((p+j)->acad,(p+j+1)->acad)==1)
{
t=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=t;
}
}
}
}
output(p,n);
}
//查找函数
void find(student *p,int n)
{
student t;
int i=0;
printf("要求按客户姓名查找:");
printf("请输入要查找的姓名:");
scanf("%s",t.name);
for(i=0;i<n;i++)
{
if(strcmp(t.name,(p+i)->name)==0)
{
break;
}
}
if(i>=n)
{
printf("查找的姓名是%s的客户,没有找到!\n",t.name);
}
else
{
printf("查找的姓名是%s的客户,是所输入的客户中的第%d个客户.\n",t.name,i+1);
printf("账号\t姓名\t性别\t年龄\t住址\t存取款数目");
printf("%s\t%s\t%c\t%d\t%s\t%ld\n",p->acad,p->name,p->sex,p->age,p->addr,p->num);
}
}
//删除函数
void del(student *p,int n)
{
student t;
int i=0,j;
char ch;
printf("要求按客户姓名删除:");
printf("输入要删除的客户的姓名:");
scanf("%s",t.name);
for(i=0;i<n;i++)
{
if(strcmp(t.name,(p+i)->name)==0)
{
break;
}
}
if(i>=n)
{
printf("删除的姓名是%s的客户,没有找到.\n",t.name);
return 0;
}
else
{
printf("删除的姓名是%s的客户,是所输入的客户中的第%d个客户.\n",t.name,i+1);
printf("要删除的客户存取款信息:\n");
printf("账号\t姓名\t性别\t年龄\t住址\t存取款数目");
printf("%s\t%s\t%c\t%d\t%s\t%ld\n",p->acad,p->name,p->sex,p->age,p->addr,p->num);
printf("是否确定删除<y:删除/n:不删除>:");
fflush(stdin);
scanf("%c",&ch);
if(ch!='y')
{
printf("您选择不删除%s客户存取款信息,未删除\n",(p+i)->name);
return 0;
}
else
{
printf("您选择删除%s客户存取款信息,已删除\n",(p+i)->name);
for(j=i;j<n;j++)
{
*(p+j)=*(p+j+1);
}
return 1;
}
}
}