关于一个学生选课系统的设计,不知道错在哪里?求解 财富值63

2016-07-14 05:57发布

这是一部分,代码太多,不能全部复制过来


void Mangers()//选修课函数

{

      int n,w=1;

     do{

              system("cls"); //选修课信息菜单

              printf(" *********************选修课菜单*********************** ");

              printf("    1---录入课程 ");

              printf("    2---浏览课程 ");

              printf("    3---查询课程 ");

              printf("    4---存取公共课课程 ");

              printf("    5---返回主菜单");

printf(" ****************************************************** ");

              printf("请选择(1-5):[ ]");

              scanf("%d",&n);

              switch(n)

  {

                   case 1:insert();savefile();break;

                   case 2:prin();break;

                   case 3:search();break;

                   case 4:GonggkInfor();break;

                   case 5:return;

                   default:;

              }

} while(w==1);

}

struct student

{

      long int snum;//学生学号

      int cnum;//所选课程编号

      char cname[20];//所选课程名称

};//定义一个学生结构体


void xuan_ke()//学生选课函数

{  struct student s;//定义学生结构体变量s

  char C;

  subjects *c;//定义课程结构体变量c

  FILE*fp;

  cout<<" 请输入您的学号及您要选择的课程编号:";

  cin>>snum>>cnum;

  fp=fopen("课程信息.txt","r");

  if(fp==NULL) //打开选课记录文件"2.txt"

  {      cout<" Cannot open course! ";  }

   while(!feof(fp))

{ if((C=fgetc(fp))==' ')

break; }

   while(!feof(fp))

{c=new subjects;

fscanf(fp,"%d %s %s %d %d %d %d %s ",&c->num,c->name,c->kind,&c->stime,&c->ttime,&c->etime,&c->score,&c->term);

if(c->num==s.cnum) //通过学生选课输入的编号,和选修课程中的编号进行匹配,若匹配成功就结束,并带回当前指针

break;

fclose(fp);//关闭选课记录文件"课程信息.txt"

if((fp=fopen("student.txt","a+"))==NULL)

{   cout<<" Cannot open student! ";}//将学生选课信息输入student.txt文件

}

fprintf(fp,"%d %d %s ",s.snum,s.cnum,c->name);//把选课学生的学号,所选课程编号,课程名称写入文件里

fclose(fp);

cout<<" 恭喜您选课成功!信息已存入到“student.txt”中。 ";

system("pause");


}

void xuanke_information()//学生选课信息统计函数

{   int total=0;//人数统计变量

   FILE *fp;

struct student s;//定义一个student结构体类型的变量s

if((fp=fopen("student.txt","r"))==NULL)//打开选课记录文件"student.txt"

{  cout<<" Cannot open student! ";  }

for(;!feof(fp);)

{fscanf(fp,"%d %d %s ",&s.snum,&s.cnum,&s.cname);

total++;

printf("%22d %17d %18s ",s.snum,s.cnum,s.cname);

   }

cout<<"                选课学生总人数为:"<<total<<"人";

fclose(fp);//关闭文件

system("pause");


}

void Students()//学生信息函数

{    int n,w=1;

    do {

         system("cls");

         cout<<" *********************学生选课菜单****************** ";

         cout<<" 1---浏览所有课程 ";

         cout<<" 2---选择选修课程 ";

         cout<<" 3---浏览我选修的课程 ";  

         cout<<" 4---返回主菜单";

         cout<<" **************************************************** ";

         cout<<"请选择(1-4):[ ]";

         cin>>n;

         switch(n){

                 case 1:prin();

 break;

                 case 2:xuan_ke();

 break;  

                 case 3:xuanke_information();

 break;

                 case 4:

 return;

                 default:;

                }

     } while(w==1);

}


int main()

{   int n,w=1;

         do{

             system("cls");

             cout<<" *********************学生选课系统********************* ";

             cout<<"     1.选修课信息 ";

             cout<<"     2.学生选课 ";

             cout<<"     3.退出";

             cout" ****************************************************** ";

             cout<<"请选择(1-3):[ ]";

             cin>>n;

             switch(n){

                      case 1:Mangers();

  break;

                      case 2:Students();

  break;

                      case 3:w=0;

  break;

                      default:; }

          } while(w==1);

return 0;

}


友情提示: 问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
0条回答

一周热门 更多>