printf(\
}
printf(\请输入课程门数:\
scanf(\ /*输入课程门数*/
printf(\课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学
分 开课学期:\\n\ for(i=0;i scanf(\e,&c.mark,&c.term); fprintf(fp,\rk,c.term); /*将课程信息写入文件*/ } } fclose(fp); /*关闭文件*/ menu(); /*返回主菜单*/ (2)课程信息浏览模块 [需求分析] 将课程信息从course文件中从头到尾读出就可以,具体过程如流程图9-4所示。 开始 从文件中读出课程信息 1 用户自己进行选择 2 返回主菜单 退出选课系统 结束 图9-4 课程信息浏览流程图 [程序] /***********************课程信息浏览模块************************/ void browser() 6 { FILE *fp; struct course c; /*将c定义为 struct course类型的结构体变量*/ int a; if((fp=fopen(\ /*以读方式打开*/ { printf(\} printf(\课程目录为:\ printf(\课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学for(;!feof(fp);) /*从文件读取课程信息*/ { fscanf(fp,\ 分 开课学期:\\n\ etime,&c.mark,&c.term); printf(\me,c.mark,c.term); } fclose(fp); printf(\返回主菜单;2-退出选课系统\\n\ scanf(\ if(a==1) menu(); /*返回主菜单*/ } else exit(0); /*退出*/ (3) 课程信息查询 [需求分析]具体过程参见流程图9-5所示。 7 开始 1 请用户选择 2 按学分查询,输入所查学分 按课程性质查询,输入课程性质 从文件读取课程信息并输出 从文件读取课程信息并输出 1 用户选择 2 返回主菜单 退出系统 结束 图9-5 课程信息查询流程图 [程序] /***********************课程信息查询模块***********************/ void search() { FILE *fp; struct course c; /*将c定义为 struct course类型的结构体变量*/ int score; /*定义学分为整型变量*/ char kind[10]; /*定义课程性质的数组*/ int a; int b; printf(\按学分查询,2.按课程性质查询.\\n\printf(\请选择查询方式,输入选项数字:\ scanf(\ /*输入所选查询方式*/ if(b==1) printf(\请输入您要查询的学分:\scanf(\ 8 { if((fp=fopen(\ /*将文件以读方式打开*/ { printf(\} printf(\课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期:\\n\ for(;!feof(fp);) /*将文件从头到尾读取*/ { fscanf(fp,\ me,&c.mark,&c.term); if(c.mark==score) /*如果课程信息学分和所选学分相等*/ printf(\me,c.mark,c.term); /*输出课程信息*/ } } else if(b==2) { printf(\请输入您要查询的课程性质:\ scanf(\ if((fp=fopen(\ { printf(\ } printf(\课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期:\\n\ for(;!feof(fp);) { fscanf(fp,\.mark,&c.term); if(strcmp(c.kind,kind)==0) printf(\me,c.mark,c.term); } else { } printf(\输入错误!\ exit(0); } fclose(fp); /*关闭文件*/ 9 printf(\返回主菜单;2-退出选课系统\\n\ scanf(\ if(a==1) menu(); else } exit(0); (4)某门选课情况查询模块 [需求分析] 具体情况参看流程图9-6所示。 开始 输入要查询的选课从文件读取所查编号的学生选课信息,每输出一个total+1 显示该门选课的总人数 1 用户选择 2 返回主菜单 退出系统 结束 图9-6 某门选课情况查询流程图 [程序] /***********************某门课程选修情况模块***********************/ void xuanke_information() { int total=0; /*定义选课人数total的初始值为0*/ int a; int num; /*定义课程编号为整形变量*/ FILE *fp; struct student s; /*将s定义为struct student 类型的变量*/ if((fp=fopen(\ { 10