回 帖 发 新 帖 刷新版面

主题:[讨论]怎么让这个程序运行输入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);}

回复列表 (共4个回复)

沙发

帮个忙啊。。。。。

板凳

太长了,手机压力很大…你可以使用循环里面用判断语句,如果输入N,Y以外的数,提示错误,然后让用户重新输入

3 楼


在输入前面加个while语句

4 楼

if((char == y )&& (char ==n))
    {
         if(char == y)
            { .....}
         else
            {....}
    }
else cout<<"输入错误!"<<end;

也可以在前面加个while(1)

我来回复

您尚未登录,请登录后再回复。点此登录或注册