请大佬把代码中的C++改成最基础的C语言
[问题定义] 假定有n门课程,每门课程有:课程编号,课程名称,课程性质(公共课、必修课、选修课),总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可自由选课。试设计一选修课程系统,使之能提供以下功能: (1)系统以菜单方式工作
(2)课程信息录入功能(课程信息用文件保存)--输入
(3)课程信息浏览功能--输出
(4)课程信息查询功能--算法
查询方式
按学分查询
按课程性质查询
(5)学生选修课程(可选项)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 10
struct course
{
int num;
char name[20];
char kind[30];
int shoutime;
int shiyantime;
int xuefen;
int kaike;
}cou[N];
void shuru();
void liulan();
void chaxun();
void jinru();
/********主菜单********/
void main()
{
int n,w;
printf(" MENU \n");
printf("*********************************\n");
printf(" 1-输入课程信息 \n");
printf(" 2-浏览课程信息 \n");
printf(" 3-查询课程信息 \n");
printf(" 4-进入选课操作 \n");
printf(" 5-退出选课系统 \n");
printf("*********************************\n");
printf(" 请输入选择的数字: ");
scanf("%d",&n);
if(n<=5&&n>=1)
w=0;
else
{
printf("输入错误,重新输入\n");
main();
}
switch(n)
{ case 1:shuru();break;
case 2:liulan();break;
case 3:chaxun();break;
case 4:jinru();break;
case 5:exit(0);
}
}
/********课程信息录入********/
void shuru()
{
void main();
FILE*fp;
int i,count,a;
printf("输入课程门数:");
scanf("%d",&count);
if((fp=fopen("cou.txt","a+"))==NULL)
{ printf("cannot open this file\n");
exit(0);
}
printf("课程编号 名称 性质 授课学时 实验或上机学时 学分 开课学期\n");
for(i=0;i<count;i++)
{
scanf("%d%s%s%d%d%d%d",&cou[i].num,&cou[i].name,&cou[i].kind,&cou[i].shoutime,&cou[i].shiyantime,&cou[i].xuefen,&cou[i].kaike);
fprintf(fp,"%d\t%s\t%s\t%d\t%d\t%d\t%d\n",cou[i].num,cou[i].name,cou[i].kind,cou[i].shoutime,cou[i].shiyantime,cou[i].xuefen,cou[i].kaike);
}
fclose(fp);
printf("\n1.返回主菜单;2.退出选课系统\n");
scanf("%d",&a);
if(a==1)
main();
else
exit(0);
}
void liulan()
{
void main();
FILE*fp;
int i,a;
if((fp=fopen("cou.txt","r"))==NULL)
{ printf("cannot open this file\n");
exit(0);
}
printf("课程编号 名称 性质 授课学时 实验或上机学时 学分 开课学期\n");
for(;!feof(fp);)
{
i=0;
i++;
fscanf(fp,"%d%s%s%d%d%d%d\n",&cou[i].num,&cou[i].name,&cou[i].kind,&cou[i].shoutime,&cou[i].shiyantime,&cou[i].xuefen,&cou[i].kaike);
printf("%d %s %s %d %d %d %d\n",cou[i].num,cou[i].name,cou[i].kind,cou[i].shoutime,cou[i].shiyantime,cou[i].xuefen,cou[i].kaike);
if(feof(fp)) break;
}
fclose(fp);
printf("\n1.返回主菜单;2.退出选课系统\n");
scanf("%d",&a);
if(a==1)
main();
else
exit(0);
}
void chaxun()
{
void main();
FILE*fp;
char kind[30];
int i,xuefen,a,n;
printf("1.按学分方式查询\n");
printf("2.按课程性质查询\n");
printf("请输入数字:");
scanf("%d",&i);
if(i==1)
{
printf("请输入学分:\n");
scanf("%d",&xuefen);
if((fp=fopen("cou.txt","r"))==NULL)
{ printf("cannot open this file\n");
exit(0);
}
printf("课程编号 名称 性质 授课学时 实验或上机学时 学分 开课学期\n");
n=0;
n++;
fscanf(fp,"%d%s%s%d%d%d%d",&cou[n].num,&cou[n].name,&cou[n].kind,&cou[n].shoutime,&cou[n].shiyantime,&cou[n].xuefen,&cou[n].kaike);
if(cou[n].xuefen==xuefen)
printf("%d %s %s %d %d %d %d",cou[n].num,cou[n].name,cou[n].kind,cou[n].shoutime,cou[n].shiyantime,cou[n].xuefen,cou[n].kaike);
}
else if(i==2)
{
printf("请输课程性质:\n");
scanf("%s",&kind);
if((fp=fopen("cou.txt","r"))==NULL)
{ printf("cannot open this file\n");
exit(0);
}
printf("课程编号 名称 性质 授课学时 实验或上机学时 学分 开课学期\n");
n=0;
n++;
fscanf(fp,"%d%s%s%d%d%d%d",&cou[n].num,&cou[n].name,&cou[n].kind,&cou[n].shoutime,&cou[n].shiyantime,&cou[n].xuefen,&cou[n].kaike);
if(strcmp(cou[n].kind,kind)==0)
printf("%d %s %s %d %d %d %d",cou[n].num,cou[n].name,cou[n].kind,cou[n].shoutime,cou[n].shiyantime,cou[n].xuefen,cou[n].kaike);
}
else
{
printf("输入错误,重新输入\n");
exit(1);
}
fclose(fp);
printf("\n1.返回主菜单;2.退出选课系统\n");
scanf("%d",&a);
if(a==1)
main();
else
exit(0);
}
void jinru()
{
void main();
FILE*fp;
int num;
int total=0;
int n,a;
printf("请输入课程编号:");
scanf("%d",&num);
if((fp=fopen("cou.txt","a+"))==NULL)
{ printf("cannot open this file\n");
exit(0);
}
printf("课程编号 名称 性质 授课学时 实验或上机学时 学分 开课学期\n");
n=0;
n++;
fscanf(fp,"%d%s%s%d%d%d%d",&cou[n].num,&cou[n].name,&cou[n].kind,&cou[n].shoutime,&cou[n].shiyantime,&cou[n].xuefen,&cou[n].kaike);
if(cou[n].num==num)
printf("你所选择的课程为");
printf("%d %s %s %d %d %d %d",cou[n].num,cou[n].name,cou[n].kind,cou[n].shoutime,cou[n].shiyantime,cou[n].xuefen,cou[n].kaike);
fclose(fp);
printf("\n1.返回主菜单;2.退出选课系统\n");
scanf("%d",&a);
if(a==1)
main();
else
exit(0);
}