主题:[讨论]怎么让这个程序运行输入Y和N以外的字时提示错误啊?
#include<stdio.h>
#include<conio.h>
#include <stdlib.h>
#include<string.h>
#define MAX 100
void input();
void sort();
void show();
void insert();
void del();
void average();
void find();
void ave();
void modify();
void quit();
int now_no=0;
struct student
{
int no;
char name[20];
float score1;
float score2;
float score3;
float score4;
float score5;
float sort;
float ave;
float sum;
};
struct student stu[MAX],*p;
main()/*主函数*/
{
char a;
do
{
x: printf("\n\n\n\n"
"\t\t\t@*******欢迎来到成绩管理系统*******@\n"
"\t\t\t$__________________________________$\n"
"\t\t\t$ 请选择操作(0-7) $\n"
"\t\t\t$__________________________________$\n"
"\t\t\t$ 1--录入学员信息 $\n"
"\t\t\t$ 2--显示学员信息 $\n"
"\t\t\t$ 3--成绩排序信息 $\n"
"\t\t\t$ 4--添加学员信息 $\n"
"\t\t\t$ 5--删除学员信息 $\n"
"\t\t\t$ 6--修改学员信息 $\n"
"\t\t\t$ 7--查询学员信息 $\n"
"\t\t\t$ 0--退出系统 $\n"
"\t\t\t$----------------------------------$\n"
"\t\t\t$ 作者: $\n"
"\t\t\t@**********************************@\n");
fflush(stdin);
cscanf("%c",&a);
switch(a)
{
case '1':system("cls");input();break;
case '2':system("cls");show();break;
case '3':system("cls");sort();break;
case '4':system("cls");insert();break;
case '5':system("cls");del();break;
case '6':system("cls");modify();break;
case '7':system("cls");find();break;
case '0':system("cls");quit();break;
default:system("cls");goto x;
}
}while(1);
/*至此功能选择结束*/
}
void input()/*原始数据录入模块*/
{
int i=0;
char ch;
do
{
printf("\n\t\t**********欢迎来到成绩管理系统***********\t\n"
"\n\n\t\t\t现在请录入学员信息吧^-^\n"
"\t输入第%d个学员的信息\n",i+1);
printf("\t输入学生编号:");
scanf("%d",&stu[i].no);
fflush(stdin);
printf("\t输入学员姓名:");
fflush(stdin);
gets(stu[i].name);
printf("\t输入学员语文成绩:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\t输入学员数学成绩:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\t输入学员英语成绩:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\t输入学员C语言成绩:");
fflush(stdin);
scanf("%f",&stu[i].score4);
printf("\t输入学员计算机成绩:");
fflush(stdin);
scanf("%f",&stu[i].score5);
printf("\n\n");
i++;
now_no=i;
printf("\t\t\t是否继续输入?(Y/N)");
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
system("cls");
}
void sort()/*排序数据函数*/
{
struct student temp;
int i,j;
ave();
for(i=1;i<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].ave<stu[j].ave)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
show();
}
void show()/*显示数据函数*/
{
int i;
char as;
ave();
do
{
printf("\n\t\t**********欢迎来到成绩管理系统***********\t\n");
printf("\t\t\t班级学员信息列表\n");
printf("\t编号\t姓名\t成绩1\t成绩2\t成绩3\t成绩4\t成绩5\t平均值\t总分\n");
for(i=0;i<now_no&&stu[i].name[0];i++)printf("\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4,stu[i].score5,stu[i].ave,stu[i].sum);
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void insert()/*插入数据函数*/
{
char ch;
do
{printf("\n\t\t**********欢迎来到成绩管理系统***********\t\n");
printf("\n\t\t输入新添加学员队信息\n");
printf("\n输入学生编号:");
scanf("%d",&stu[now_no].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[now_no].name);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[now_no].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[now_no].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[now_no].score3);
printf("\n输入学员成绩4:");
fflush(stdin);
scanf("%f",&stu[now_no].score4);
printf("\n输入学员成绩5:");
fflush(stdin);
scanf("%f",&stu[now_no].score5);
printf("\n\n");
now_no=now_no+1;
system("cls");
sort();
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
}
void del()/*删除数据函数*/
{
int inum,i;
printf("\n\t\t**********欢迎来到成绩管理系统***********\t\n");
printf("输入要删除学员的编号:");
fflush(stdin);
scanf("%d",&inum);
for(i=0;i<now_no;i++)
{
if(stu[i].no==inum)
{
if(i==now_no)now_no-=1;
else
{
stu[i]=stu[now_no-1];
now_no-=1;
}
sort();
break;
}
}
system("cls");
}
void find()/*查询函数*/
{
int i;
char str[20],as;
do
{
printf("\n\t\t**********欢迎来到成绩管理系统***********\t\n");
printf("输入要查询的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;i<now_no;i++)
if(!strcmp(stu[i].name,str))
{
printf("\t编号\t姓名\t成绩1\t成绩2\t成绩3\t成绩4\t成绩5\t平均值\t总分\n");
printf("\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4,stu[i].score5,stu[i].ave,stu[i].sum);
}
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void ave()/*求平均数*/
{
int i;
for(i=0;i<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4+stu[i].score5;
stu[i].ave=stu[i].sum/5;
}
}
void modify()/*修改数据函数*/
{
int i;
char str[20];
printf("\n\t\t**********欢迎来到成绩管理系统***********\t\n");
printf("输入要修改的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;i<now_no;i++)
if(!strcmp(stu[i].name,str))
{
system("cls");
printf("\n\t\t输入新插入学员队信息\n");
printf("\n输入学生编号:");
fflush(stdin);
scanf("%d",&stu[i].no);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n输入学员成绩4:");
fflush(stdin);
scanf("%f",&stu[i].score4);
printf("\n输入学员成绩5:");
fflush(stdin);
scanf("%f",&stu[i].score5);
printf("\n\n");
sort();
break;
}
system("cls");
}
void quit()
{
system("cls");
printf("\n\n\n\n"
"\t\t\t@********学生成绩管理系统********@\n"
"\t\t\t$--------------------------------$\n"
"\t\t\t$ $\n"
"\t\t\t$--------->感谢你的使用<---------$\n"
"\t\t\t$ $\n"
"\t\t\t$ $\n"
"\t\t\t@********************************@\n");
exit(0);}
#include<conio.h>
#include <stdlib.h>
#include<string.h>
#define MAX 100
void input();
void sort();
void show();
void insert();
void del();
void average();
void find();
void ave();
void modify();
void quit();
int now_no=0;
struct student
{
int no;
char name[20];
float score1;
float score2;
float score3;
float score4;
float score5;
float sort;
float ave;
float sum;
};
struct student stu[MAX],*p;
main()/*主函数*/
{
char a;
do
{
x: printf("\n\n\n\n"
"\t\t\t@*******欢迎来到成绩管理系统*******@\n"
"\t\t\t$__________________________________$\n"
"\t\t\t$ 请选择操作(0-7) $\n"
"\t\t\t$__________________________________$\n"
"\t\t\t$ 1--录入学员信息 $\n"
"\t\t\t$ 2--显示学员信息 $\n"
"\t\t\t$ 3--成绩排序信息 $\n"
"\t\t\t$ 4--添加学员信息 $\n"
"\t\t\t$ 5--删除学员信息 $\n"
"\t\t\t$ 6--修改学员信息 $\n"
"\t\t\t$ 7--查询学员信息 $\n"
"\t\t\t$ 0--退出系统 $\n"
"\t\t\t$----------------------------------$\n"
"\t\t\t$ 作者: $\n"
"\t\t\t@**********************************@\n");
fflush(stdin);
cscanf("%c",&a);
switch(a)
{
case '1':system("cls");input();break;
case '2':system("cls");show();break;
case '3':system("cls");sort();break;
case '4':system("cls");insert();break;
case '5':system("cls");del();break;
case '6':system("cls");modify();break;
case '7':system("cls");find();break;
case '0':system("cls");quit();break;
default:system("cls");goto x;
}
}while(1);
/*至此功能选择结束*/
}
void input()/*原始数据录入模块*/
{
int i=0;
char ch;
do
{
printf("\n\t\t**********欢迎来到成绩管理系统***********\t\n"
"\n\n\t\t\t现在请录入学员信息吧^-^\n"
"\t输入第%d个学员的信息\n",i+1);
printf("\t输入学生编号:");
scanf("%d",&stu[i].no);
fflush(stdin);
printf("\t输入学员姓名:");
fflush(stdin);
gets(stu[i].name);
printf("\t输入学员语文成绩:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\t输入学员数学成绩:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\t输入学员英语成绩:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\t输入学员C语言成绩:");
fflush(stdin);
scanf("%f",&stu[i].score4);
printf("\t输入学员计算机成绩:");
fflush(stdin);
scanf("%f",&stu[i].score5);
printf("\n\n");
i++;
now_no=i;
printf("\t\t\t是否继续输入?(Y/N)");
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
system("cls");
}
void sort()/*排序数据函数*/
{
struct student temp;
int i,j;
ave();
for(i=1;i<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].ave<stu[j].ave)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
show();
}
void show()/*显示数据函数*/
{
int i;
char as;
ave();
do
{
printf("\n\t\t**********欢迎来到成绩管理系统***********\t\n");
printf("\t\t\t班级学员信息列表\n");
printf("\t编号\t姓名\t成绩1\t成绩2\t成绩3\t成绩4\t成绩5\t平均值\t总分\n");
for(i=0;i<now_no&&stu[i].name[0];i++)printf("\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4,stu[i].score5,stu[i].ave,stu[i].sum);
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void insert()/*插入数据函数*/
{
char ch;
do
{printf("\n\t\t**********欢迎来到成绩管理系统***********\t\n");
printf("\n\t\t输入新添加学员队信息\n");
printf("\n输入学生编号:");
scanf("%d",&stu[now_no].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[now_no].name);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[now_no].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[now_no].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[now_no].score3);
printf("\n输入学员成绩4:");
fflush(stdin);
scanf("%f",&stu[now_no].score4);
printf("\n输入学员成绩5:");
fflush(stdin);
scanf("%f",&stu[now_no].score5);
printf("\n\n");
now_no=now_no+1;
system("cls");
sort();
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
}
void del()/*删除数据函数*/
{
int inum,i;
printf("\n\t\t**********欢迎来到成绩管理系统***********\t\n");
printf("输入要删除学员的编号:");
fflush(stdin);
scanf("%d",&inum);
for(i=0;i<now_no;i++)
{
if(stu[i].no==inum)
{
if(i==now_no)now_no-=1;
else
{
stu[i]=stu[now_no-1];
now_no-=1;
}
sort();
break;
}
}
system("cls");
}
void find()/*查询函数*/
{
int i;
char str[20],as;
do
{
printf("\n\t\t**********欢迎来到成绩管理系统***********\t\n");
printf("输入要查询的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;i<now_no;i++)
if(!strcmp(stu[i].name,str))
{
printf("\t编号\t姓名\t成绩1\t成绩2\t成绩3\t成绩4\t成绩5\t平均值\t总分\n");
printf("\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4,stu[i].score5,stu[i].ave,stu[i].sum);
}
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void ave()/*求平均数*/
{
int i;
for(i=0;i<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4+stu[i].score5;
stu[i].ave=stu[i].sum/5;
}
}
void modify()/*修改数据函数*/
{
int i;
char str[20];
printf("\n\t\t**********欢迎来到成绩管理系统***********\t\n");
printf("输入要修改的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;i<now_no;i++)
if(!strcmp(stu[i].name,str))
{
system("cls");
printf("\n\t\t输入新插入学员队信息\n");
printf("\n输入学生编号:");
fflush(stdin);
scanf("%d",&stu[i].no);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n输入学员成绩4:");
fflush(stdin);
scanf("%f",&stu[i].score4);
printf("\n输入学员成绩5:");
fflush(stdin);
scanf("%f",&stu[i].score5);
printf("\n\n");
sort();
break;
}
system("cls");
}
void quit()
{
system("cls");
printf("\n\n\n\n"
"\t\t\t@********学生成绩管理系统********@\n"
"\t\t\t$--------------------------------$\n"
"\t\t\t$ $\n"
"\t\t\t$--------->感谢你的使用<---------$\n"
"\t\t\t$ $\n"
"\t\t\t$ $\n"
"\t\t\t@********************************@\n");
exit(0);}