📄 xuankexitong.c
字号:
goto TEACHER;
}
RESET:
clrscr();
TeacherScr();
printf("############## 更改密码 ##############\n");
printf("\n 请输入新密码:");
for(i=0;i<6;i++)
{
pass1[i]=getch();
printf("*");
}
pass1[i]='\0';
printf("\n 请再次输入新密码:");
for(i=0;i<6;i++)
{
pass2[i]=getch();
printf("*");
}
pass2[i]='\0';
if(strcmp(pass1,pass2)==0)
{
fputs(pass1,fp);
printf("\n 密码更改成功!\n");
}
else
{
printf("\n 密码更改错误,两次密码输入不同!\n");
printf(" 请按任意键继续操作……\n");
getch();
clrscr();
TeacherScr();
goto RESET;
}
fclose(fp);
printf(" 请按任意键继续操作……\n");
getch();
clrscr();
goto TEACHER;
/*************************************教师界面结束**********************************/
STUDENTPASS:/*学生登录界面*/
clrscr();
StartScr();
printf(" 请输入您的学号:");
scanf("%s",a);
strcpy(av[1],a);
if((fp=fopen(av[1],"r"))==NULL)
{
printf(" 对不起该用户不存在!");
printf(" 请按任意键继续操作……");
getch();
clrscr();
goto STUDENTPASS;
}
else fread(stu,sizeof(struct Student),1,fp);
ReadInfo();
fclose(fp);
STUDENT:
clrscr();
StudentScr();
printf("####### 学号 : %-9s ######\n",stu->num);
printf(" 请输入操作数:");
scanf("%d",&key);
switch(key)
{
case 1:goto SELECT;
case 2:goto SCORE;
case 3:goto VALUE;
case 4:goto SELECTED;
case 5:goto STUALLCOUR;
case 6:goto BACK;
case 7:goto END;
default: printf(" 操作数输入错误!\n");
printf(" 请按任意键继续操作……\n");
getch();
clrscr();
goto STUDENT;
}
/*选择课程*/ SELECT:
clrscr();
StudentScr();
printf("############## 选择课程 ##############\n");
printf("####### 学号 : %-9s ######\n",stu->num);
selnum=ShowCourToSelect();
if(selnum==0)
{
printf(" 您没有可选的课程!\n");
printf(" 请按任意键继续操作……\n");
getch();
WriteInfo();
strcpy(av[1],a);
if((fp=fopen(av[1],"w"))==NULL)
{
printf(" 文件打开错误!");
getch();
clrscr();
goto STUDENT;
}
else fwrite(stu,sizeof(struct Student),1,fp);
fclose(fp);
clrscr();
goto STUDENT;
}
printf(" 请输入您要选择课程的编码:");
scanf("%d",&i);
if(i<1||i>26)
{
printf(" 课程编码输入错误!\n");
printf(" 请按任意键继续操作……(按'B'回到学生首页):\n");
back=getch();
if(back=='b'||back=='B')
{
WriteInfo();
strcpy(av[1],a);
if((fp=fopen(av[1],"w"))==NULL)
{
printf(" 文件打开错误!");
getch();
clrscr();
goto STUDENT;
}
else fwrite(stu,sizeof(struct Student),1,fp);
fclose(fp);
clrscr();
goto STUDENT;
}
else
{
clrscr();
StudentScr();
goto SELECT;
}
}
Select(i-1);
if(all[i-1].flag==2)
{
printf(" 请按任意键继续操作……(按'B'回到学生首页):\n");
back=getch();
if(back=='b'||back=='B')
{
WriteInfo();
strcpy(av[1],a);
if((fp=fopen(av[1],"w"))==NULL)
{
printf(" 文件打开错误!");
getch();
clrscr();
goto STUDENT;
}
else fwrite(stu,sizeof(struct Student),1,fp);
fclose(fp);
clrscr();
goto STUDENT;
}
else
{
clrscr();
StudentScr();
goto SELECT;
}
}
else
{
printf(" 选择错误!\n");
printf(" 请按任意键继续操作……(按'B'回到学生首页):\n");
back=getch();
if(back=='b'||back=='B')
{
WriteInfo();
strcpy(av[1],a);
if((fp=fopen(av[1],"w"))==NULL)
{
printf(" 文件打开错误!");
getch();
clrscr();
goto STUDENT;
}
else fwrite(stu,sizeof(struct Student),1,fp);
fclose(fp);
clrscr();
goto STUDENT;
}
else
{
clrscr();
StudentScr();
goto SELECT;
}
}
/*成绩查询*/SCORE:
clrscr();
StudentScr();
printf("############## 成绩查询 ##############\n");
printf("####### 学号 : %-9s ######\n",stu->num);
getvalue=0;
allvalue=0;
allscore=0;
printf(" 编号 课程名称 学分 性质 分数\n");
for(i=0;i<26;i++)
{
if(all[i].score>=60)
getvalue=getvalue+all[i].value;
if(all[i].score!=0)
{
allscore=allscore+all[i].score*all[i].value;
allvalue=allvalue+all[i].value;
printf(" %-2d %-28s %d %-10s %d \n",i+1,all[i].name,all[i].value,all[i].character,all[i].score);
}
}
if(allscore<=0)
printf(" 您没有任何考试成绩!\n");
else
{
printf(" 您已经得到%d学分\n",getvalue);
printf(" 平均学分绩为%.2f!\n",((float)allscore/(float)allvalue));
}
printf(" 请按任意键继续操作……\n");
getch();
clrscr();
goto STUDENT;
/*学分查询*/VALUE:
clrscr();
StudentScr();
printf("############## 学分查询 ##############\n");
printf("####### 学号 : %-9s ######\n",stu->num);
getvalue=0;
allvalue=0;
x=1;/*记录必修课是否修完*/
for(i=0;i<26;i++)
{
if(i<19&&all[i].flag==3)
x=0;/*必修课未修完*/
if(all[i].flag==3)
getvalue=getvalue+all[i].value;
if(all[i].flag==2)
allvalue=allvalue+all[i].value;
}
printf(" 您已经得到%d学分。\n",getvalue);
printf(" 您所选择课程的总学分为%d。\n ",allvalue);
if(x==0||getvalue<100)
{
if(x==0)printf("必修课没修完、");
if(getvalue<100)printf("不够100个学分,");
printf("您未完成学业!\n");
}
else printf(" 您已完成学业!\n");
printf(" 请按任意键继续操作……\n");
getch();
clrscr();
goto STUDENT;
/*已选课程*/SELECTED:
clrscr();
StudentScr();
allvalue=0;
printf("############## 已选课程 ##############\n");
printf("####### 学号 : %-9s ######\n",stu->num);
printf(" 编号 课程名称 学期 学分 性质 \n");
for(i=0;i<26;i++)
{
if(all[i].flag==2)
{
allvalue=allvalue+all[i].value;
printf(" %-2d %-30s %d %d %-10s\n",i+1,all[i].name,all[i].semester,all[i].value,all[i].character);
}
}
if(allvalue<=0)
printf(" 您没有选择任何课程!\n");
else printf(" 您选择课程的总学分为%d。\n",allvalue);
printf(" 请按任意键继续操作……\n");
getch();
clrscr();
goto STUDENT;
/*查询所有课程*/STUALLCOUR:
clrscr();
StudentScr2();
printf("####### 学号 : %-9s ######\n",stu->num);
printf(" 请输入操作数:");
scanf("%d",&key);
switch(key)
{
case 1:goto SHOWCOUR;
case 2:goto VALUESHOW;
case 3:goto CHARASHOW;
case 4:goto STUDENT;
case 5:goto END;
default: printf(" 输入错误!\n");
printf(" 请按任意键继续操作……\n");
getch();
clrscr();
goto STUALLCOUR;
}
/*显示所有课程*/SHOWCOUR:
Up:
clrscr();
StudentScr2();
printf("############## 显示所有课程 ##############\n");
printf("####### 学号 : %-9s ######\n",stu->num);
printf(" 编号 课程名称 开始学期 学分 性质 总学时 上课周 成绩 \n");
for(i=0;i<13;i++)
{
printf(" %-2d %-20s %-4d %-4d %s %-4d %-5s ",i+1,all[i].name,all[i].semester,all[i].value,all[i].character,all[i].allhour,all[i].studyweek);
if(all[i].score!=0)
printf("%d\n",all[i].score);
else printf("\n");
}
printf(" 请按任意键进入下一页,按'B'键返回。");
back=getch();
if(back=='b'||back=='B')
{
goto STUALLCOUR;
}
else
{
goto Down;
}
Down:
clrscr();
StudentScr2();
printf("############## 显示所有课程 ##############\n");
printf("####### 学号 : %-9s ######\n",stu->num);
printf(" 编号 程名称 开始学期 学分 性质 总学时 上课周 成绩 \n");
for(i=13;i<26;i++)
{
printf(" %-2d %-20s %-4d %-4d %s %-4d %-5s ",i+1,all[i].name,all[i].semester,all[i].value,all[i].character,all[i].allhour,all[i].studyweek);
if(all[i].score!=0)
printf("%d\n",all[i].score);
else printf("\n");
}
printf(" 请按任意键进入上一页,按'B'键返回。");
back=getch();
if(back=='b'||back=='B')
{
goto STUALLCOUR;
}
else
{
goto Up;
}
/*按学分查询*/VALUESHOW:
clrscr();
StudentScr2();
printf("####### 学号 : %-9s ######\n",stu->num);
printf(" 请输入学分:");
scanf("%d",&allvalue);
clrscr();
StudentScr2();
printf("####### 学号 : %-9s ######\n",stu->num);
printf(" 要查询课程的学分为:%d\n",allvalue);
printf(" 编号 程名称 开始学期 学分 性质 总学时 上课周 成绩 \n");
switch(allvalue)
{
case 3:
case 4:
case 5:
case 6:
case 10:
for(i=0;i<26;i++)
{
if(all[i].value==allvalue)
{
printf(" %-2d %-20s %-4d %-4d %s %-4d %-5s ",i+1,all[i].name,all[i].semester,all[i].value,all[i].character,all[i].allhour,all[i].studyweek);
if(all[i].score!=0)
printf("%d\n",all[i].score);
else printf("\n");
}
}break;
default: printf(" 没有此学分的课程!\n");
}
printf(" 请按任意键继续操作……\n");
getch();
clrscr();
goto STUALLCOUR;
/*按性质查询*/CHARASHOW:
clrscr();
StudentScr2();
printf("####### 学号 : %-9s ######\n",stu->num);
printf(" 查询必修课请按'R',查询选修课请按'E':");
back=getch();
switch(back)
{
case 'r':
case 'R':printf("\n 编号 程名称 开始学期 学分 性质 总学时 上课周 成绩 \n");
for(i=0;i<20;i++)
{
printf(" %-2d %-20s %-4d %-4d %s %-4d %-5s ",i+1,all[i].name,all[i].semester,all[i].value,all[i].character,all[i].allhour,all[i].studyweek);
if(all[i].score!=0)
printf("%d\n",all[i].score);
else printf("\n");
}break;
case 'e':
case 'E':printf("\n 编号 程名称 开始学期 学分 性质 总学时 上课周 成绩 \n");
for(i=20;i<26;i++)
{
printf(" %-2d %-20s %-4d %-4d %s %-4d %-5s ",i+1,all[i].name,all[i].semester,all[i].value,all[i].character,all[i].allhour,all[i].studyweek);
if(all[i].score!=0)
printf("%d\n",all[i].score);
else printf("\n");
}break;
default:printf("\n 您输入有误!\n");
printf(" 请按任意键继续操作……\n");
getch();
goto CHARASHOW;
}
printf(" 请按任意键继续操作……");
getch();
clrscr();
goto STUALLCOUR;
BACK:/*返回首页*/
clrscr();
goto START;
END:/*退出程序*/
exit();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -