Code::Blocks编译学生管理系统,为什么运行不了,求解
#include <stdio.h>#include <stdlib.h>
#include <memory.h>
#include <string.h>
#define LEN 15
#define MAX 100
struct student
{
int no;
char name[50];
int score_yu;
int score_sx;
} stu[MAX];
int count=0;
void show_menu()
{
printf("\t\t*************学生管理系统************\n");
printf("\n\n\t\t\t 1 添加记录\n");
printf("\t\t\t 2 显示记录\n");
printf("\t\t\t 3 修改记录\n");
printf("\t\t\t 4 删除记录\n");
printf("\t\t\t 5 查找记录\n");
printf("\t\t\t 6 排序记录\n");
printf("\t\t\t 7 退出系统\n");
printf("\n\n\t\t************************************\n");
printf("please choice 1-7: ");
}
void sort()
{
int i,j,*p,*q,s;
char temp[10];
for(i=0; i<50-1; i++)
{
for(j=50-1; j>i; j--)
if(strcmp(stu[j-1].no,stu[j].no)>0)
{
strcpy(temp,stu[j-1].no);
strcpy(stu[j-1].no,stu[j].no);
strcpy(stu[j].no,temp);
strcpy(temp,stu[j-1].name);
strcpy(stu[j-1].name,stu[j].name);
strcpy(stu[j].name,temp);
}
}
}
void del()
{
int i,j,flag=0;
char s1[LEN+1];
printf("请输入要删除学生的学号:\n");
scanf("%s",s1);
for(i=0; i<50; i++)
if(strcmp(stu[i].no,s1)==0)
{
flag=1;
for(j=i; j<50-1; j++)
stu[j]=stu[j+1];
}
if(flag==0)
printf("该学号不存在!\n");
if(flag==1)
{
printf("删除成功,显示结果请选择菜单6\n");
i--;
}
}
int find_insert_point()
{
int i;
for(i=0; i<MAX; i++)
{
if(stu[i].no==0) break;
}
return i;
}
void add()
{
while(1)
{
if(count>=MAX)
{
printf("已超出系统容量,不能再添加");
return;
}
int i=find_insert_point();
printf("学号: ");
scanf("%d",&stu[i].no);
getchar();
printf("姓名: ");
scanf("%s",stu[i].name);
getchar();
printf("语文:");
scanf("%d",&stu[i].score_yu);
getchar();
printf("数学:");
scanf("%d",&stu[i].score_sx);
getchar();
count++;
memset(&stu[0],0,sizeof(stu));
printf("是否继续添加(Y/N)");
char c=getchar();
count++;
if(c=='N'||c=='n') break;
}
}
void show()
{
printf("学号\t姓名\t语文\t数学\t总分\n");
int i;
for(i=0; i<MAX; i++)
{
if(stu[i].no!=0)
{
printf("%d\t%s%d%d",stu[i].no,stu[i].name,stu[i].score_yu,stu[i].score_sx,stu[i].score_yu+stu[i].score_sx);
}
}
}
void find()
{
printf("查找学生的记录\n");
printf("请输入学生的姓名:");
int i;
char name[50];
scanf("%s",name);
for(i=0; i<MAX; i++)
{
if(strcmp(stu[i].name,name)==0)
{
printf("%d\t%s%d%d",stu[i].no,stu[i].name,stu[i].score_yu,stu[i].score_sx,stu[i].score_yu+stu[i].score_sx);
}
}
}
void modify_score()
{
printf("修改学生记录\n");
printf("请输入学生姓名: ");
char name[50];
int i;
scanf("%s",name);
int flag=0;
for(i=0; i<MAX; i++)
{
if(strcmp(stu[i].name,name)==0)
{
printf("%d\t%s\t%d\t%d\t\n",stu[i].no,stu[i].name,stu[i].score_yu,stu[i].score_sx,stu[i].score_yu+stu[i].score_sx);
flag=1;
break;
}
}
if(!flag)
{
printf("查找不到学生记录\n");
return;
}
printf("姓名: ");
scanf("%s",stu[i].name);
getchar();
printf("语文:");
scanf("%d",&stu[i].score_yu);
getchar();
printf("数学:");
scanf("%d",&stu[i].score_sx);
printf("修改成功\n");
}
int main()
{
memset(&stu[0],0,sizeof(stu));
while(1)
{
show_menu();
int chioce;
scanf("%d",chioce);
{
printf("Game over\n");
break;
}
switch(chioce)
{
case 1:
{
add();
break;
}
case 2:
{
show();
break;
}
case 3:
{
modify_score();
break;
}
case 4:
{
del();
break;
}
case 5:
{
find();
break;
}
case 6:
{
sort();
break;
}
case 7:
{
break;
}
default:
printf("输出有误!\n");
}
return 0;
}
}