#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct CourseInfo {
char courseCode[10]; //课程编号
char courseName[20]; //课程名称
char courseType[10]; //课程类别
int totalPeriod; //总学时
int classPeriod; //授课学时
int experiPeriod; //上机学时
float creditHour; //学分
int term; //开课学期
};
typedef struct StuCourInfo {
int stuNo; //学号;
char courseCode[10]; //课程编号
}student;
struct CourseInfo courses[100];
struct StuCourInfo stus[100];
int courseCnt = 0; // 录入的课程数目
int stuCnt = 0; // 录入的学生选课数目
// 程序入口
void go();
// 打印菜单
void menu();
// 录入数据
void input();
// 浏览课程数据
void browseCourses();
// 查询选课
void getSelectedCourses();
// 查询课程信息
void getCourseInfo();
//修改选课信息
void renew();
int main(){
go();
return 0;
}
void go(){
while(true){
menu();
printf("请按照菜单提示输入您的操作编号:\n");
int choice = 0;
scanf("%d", &choice);
if(choice == 0){
printf("您已经退出系统!\n");
return;
}else if(choice == 1){
input();
}else if(choice == 2){
browseCourses();
}else if(choice == 3){
getCourseInfo();
}else if(choice == 4){
getSelectedCourses();
}else{
printf("输入错误!\n");
}
void getSelectedCourses(){
printf("1-->根据课程号查询选课信息\n");
printf("2-->根据学生学号查询选课信息\n");
printf("请输入您的查询条件编号:") ;
int choice = 0;
scanf("%d", &choice);
if(choice == 1)
{
printf("请输入课程号:\n");
char classCode[10];
scanf("%s", classCode);
printf("选修课程号为%s的学生如下:\n", classCode);
FILE * fp=fopen ("student.txt", "r") ; //打开文件
if(NULL==fp)
{
printf ("Failed to open the file !\n");
exit(0);
}
for(int i = 0; i < stuCnt; i++){
fscanf(fp, "%d %s\n", &stus[i].stuNo, &stus[i].courseCode);
}
fclose(fp); //关闭文件
for(int i = 0; i < stuCnt; i++){
if(strcmp(classCode, stus[i].courseCode) == 0){
printf("%d\n", stus[i].stuNo);
}
}
printf("数据已经全部显示!\n\n");
}
if(choice == 2)
{
printf("请输入学生编号:\n");
char studentCode[10];
scanf("%s", studentCode);
printf("学生编号为%s选修的课程如下:\n", studentCode);
FILE * fp=fopen ("student.txt", "r") ; //打开文件
if(NULL==fp)
{
printf ("Failed to open the file !\n");
exit(0);
}
for(int i = 0; i < stuCnt; i++){
fscanf(fp, "%d %s\n", &stus[i].stuNo, &stus[i].courseCode);
}
fclose(fp); //关闭文件
for(int i = 0; i < stuCnt; i++){
if(strcmp(studentCode, stus[i].stuNo) == 0){
printf("%d\n", stus[i].courseCode);
}
}
printf("数据已经全部显示!\n\n");
}
}
此处的选择一单独运行可以实现,但是加上选择二就无法运行了,明明格式都是一样的