📄 xuankexitong.c
字号:
{
printf(" 分数输入错误!\n");
printf(" 请按任意键继续操作……(按 'B' 键回到教师->学生信息页):");
back=getch();
if(back=='b'||back=='B')
{
goto STUPART;
}
else
{
gotoxy(x,y);
printf("\n");
clreol();
printf("\n");
clreol();
gotoxy(x,y);
clreol();
goto GET;
}
}
}
}
if(allvalue<=0)
{
printf(" 该生没有选择任何课程\n");
printf(" 请按任意键继续操作……\n");
getch();
clrscr();
goto STUPART;
}
else if(((float)getvalue/(float)allvalue)>0.6&&getvalue>=10)/*学分修够选课的60%,并且本学期得到10个学分可以进入下一学期*/
{
stu->semester++;
printf(" 得到足够的学分进入第 %d学期。\n",stu->semester);
printf(" 请按任意键继续操作……\n");
getch();
}
else
{
printf(" 没有得到足够的学分,仍在第 %d学期。\n",stu->semester);
printf(" 请按任意键继续操作……\n");
getch();
}
WriteInfo();
strcpy(av[1],a);
if((fp=fopen(av[1],"w"))==NULL)
{
printf(" 文件打开错误!\n");
getch();
clrscr();
goto STUPART;
}
else fwrite(stu,sizeof(struct Student),1,fp);
fclose(fp);
clrscr();
goto STUPART;
/*显示学生信息*/ SHOWSTUINFO:
clrscr();
TeacherScr2();
printf("############## 显示学生信息 ##############\n");
printf("####### 学号 : %-9s ######\n",stu->num);
getvalue=0;
allvalue=0;
allscore=0;
key=0;/*记录所有选择课程的学分*/
cournum=0;
selnum=0;
x=1;/*记录必修课是否修完*/
printf(" 编号 课程名称 学分 性质 分数\n");
for(i=0;i<26;i++)
{
if(i<19&&all[i].flag==3)
x=0;/*必修课未修完*/
if(all[i].score>=60)
{
getvalue=getvalue+all[i].value;
cournum++;
}
if(all[i].score!=0)
{
allscore=allscore+all[i].score*all[i].value;
allvalue=allvalue+all[i].value;
key++;
printf(" %-2d %-28s%d %-10s %d \n",i+1,all[i].name,all[i].value,all[i].character,all[i].score);
}
if(all[i].flag==2)
{
selnum++;
}
}
printf(" 目前为第%d学期。 ",stu->semester);
printf(" 已通过%d门课程。\n",cournum);
printf(" %d门课程未通过。 ",key-cournum);
printf(" 已选择%d门课程。\n",selnum);
printf(" 得到%d学分。 ",getvalue);
printf(" 平均学分绩为%.2f。\n ",((float)allscore/(float)allvalue));
if(x==0||getvalue<100)
{
if(x==0)printf("必修课没修完、");
if(getvalue<100)printf("不够100个学分,");
printf("您未完成学业!\n");
}
else printf(" 您已完成学业!\n");
printf(" 请按任意键继续操作……");
getch();
clrscr();
goto STUPART;
/*显示所有课程*/ALLCOURSE:
UP:
clrscr();
TeacherScr2();
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 STUPART;
}
else
{
goto DOWN;
}
DOWN:
clrscr();
TeacherScr2();
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 STUPART;
}
else
{
goto UP;
}
/*************************************************************************************************************************************数组*/
SPECIALPASS:/*特殊操作*********************************/
clrscr();
TeacherScr2();
printf(" 请输入学生学号(按'5'键返回,按'6'键退出):");
scanf("%s",a);
if(a[0]=='5')
{
clrscr();
goto STUPART;
}
else if(a[0]=='6') goto END;
strcpy(av[1],a);
if((fp=fopen(av[1],"r"))==NULL)
{
printf(" 对不起,该用户不存在!");
getch();
clrscr();
goto STUPART;
}
else
{
fread(stu,sizeof(struct Student),1,fp);
ReadInfo();
fclose(fp);
}
SPECIAL:
clrscr();
TeacherScr3();
printf("####### 学号 : %-9s ######\n ",stu->num);
printf(" 请输入操作数:");
scanf("%d",&key);
switch(key)
{
case 1:goto SPESCORE;/*特定科目输入学生成绩*/
case 2:goto SPESEMESTER; /*使学生进入特定学期*/
case 3:goto SPESELECT;/*为学生选择特定课程*/
case 4:goto SPECOURSE;/*使学生有权利选特定课程*/
case 5:clrscr(); goto STUPART;
case 6:goto END;
default: printf(" 操作数输入错误!\n");
printf(" 请按任意键继续操作……");
getch();
clrscr();
goto SPECIAL;
}
/*特定科目输入学生成绩*/SPESCORE:
clrscr();
TeacherScr3();
printf("############## 成绩修改 ##############\n");
printf("####### 学号 : %-9s ######\n",stu->num);
printf(" ");
for(i=0;i<26;i++)
{
printf("*%2d %-18s *",i+1,all[i].name);
if((i%3)==2)
printf("\n ");
}
printf("\n");
printf(" 请输入所要修改课程的编号:");
scanf("%d",&i);
if(i>=1&&i<=26)
{
printf(" 请输入该课程成绩:");
scanf("%d",&all[i-1].score);
if(all[i-1].score>=0&&all[i-1].score<=100)
{
if(all[i-1].score>=60&&all[i-1].score<=100)
{
all[i-1].flag=3;
printf(" 成绩修改成功\n");
}
else if(all[i-1].score>=0&&all[i-1].score<60)
{
all[i-1].flag=1;
printf(" 成绩修改成功\n");
}
WriteInfo();
strcpy(av[1],a);
if((fp=fopen(av[1],"w"))==NULL)
{
printf(" 文件打开错误\n");
getch();
clrscr();
goto SPECIAL;
}
else fwrite(stu,sizeof(struct Student),1,fp);
fclose(fp);
}
else/*分数不在0和100之间*/
printf(" 成绩输入错误!请输入0到100之间的数字。\n");
printf(" 请按任意键继续操作……(按 'B' 键回到教师->特殊操作页)\n");
back=getch();
if(back=='b'||back=='B')
{
goto SPECIAL;
}
else
{
goto SPESCORE;
}
}
else/*i不再1和26之间*/
{
printf(" 课程编号输入错误!\n");
printf(" 请按任意键继续操作……(按 'B' 键回到教师->特殊操作页)\n");
back=getch();
if(back=='b'||back=='B')
{
goto SPECIAL;
}
else
{
goto SPESCORE;
}
}
/*使学生进入特定学期*/SPESEMESTER:
clrscr();
TeacherScr3();
printf("############## 学期修改 ##############\n");
printf("####### 学号 : %-9s ######\n",stu->num);
printf(" 目前学期为%d.\n",stu->semester);
printf(" 将修改为第几学期:");
scanf("%d",&stu->semester);
printf(" 学期修改成功!\n");
WriteInfo();
strcpy(av[1],a);
if((fp=fopen(av[1],"w"))==NULL)
{
printf(" 文件打开错误!\n");
getch();
clrscr();
goto SPECIAL;
}
else fwrite(stu,sizeof(struct Student),1,fp);
fclose(fp);
printf(" 请按任意键继续操作……\n");
getch();
goto SPECIAL;
/*为学生选择特定课程*/SPESELECT:
clrscr();
TeacherScr3();
printf("############## 代选课程 ##############\n");
printf("####### 学号 : %-9s ######\n",stu->num);
cournum=-1;
printf(" ");
for(i=0;i<26;i++)
{
if(all[i].flag<2)
{
cournum++;
printf("*%2d %-18s *",i+1,all[i].name);
if((cournum%3)==2)
printf("\n ");
}
}
printf("\n");
printf(" 请输入课程编号:");
scanf("%d",&i);
if(i>=1&&i<=26)
{
if(all[i-1].flag<1)
all[i-1].flag=1;
Select(i-1);
}
else
{
printf(" 课程编码输入错误!");
}
printf(" 请按任意键继续操作……(按'B'键回到教师->特殊操作页)");
back=getch();
if(back=='b'||back=='B')
{
WriteInfo();
strcpy(av[1],a);
if((fp=fopen(av[1],"w"))==NULL)
{
printf(" 文件打开错误!");
getch();
clrscr();
goto SPECIAL;
}
else fwrite(stu,sizeof(struct Student),1,fp);
fclose(fp);
clrscr();
goto SPECIAL;
}
else
{
clrscr();
goto SPESELECT;
}
/*使学生有权利选特定课程*/SPECOURSE:
clrscr();
TeacherScr3();
printf("############## 设置可选课程 ##############\n");
printf("####### 学号 : %-9s ######\n ",stu->num);
cournum=-1;
for(i=0;i<26;i++)
{
if(all[i].flag<1)
{
cournum++;
printf("*%2d %-18s*",i+1,all[i].name);
if((cournum%3)==2)
printf("\n ");
}
}
printf("\n");
printf(" 请输入课程编号:");
scanf("%d",&i);
if(i>=1&&i<=26)
{
switch(all[i-1].flag)
{
case -1:
case 0:all[i-1].flag=1;
if(all[i-1].next!=NULL)
all[i-1].next->flag=1;
printf(" 设置可选课程成功!\n");break;
case 1:printf(" 错误!该课程已经为可选。\n");break;
case 2:printf(" 错误!该课程已经选择。\n");break;
case 3:printf(" 错误!该课程已修完。\n");break;
default:printf(" 课程标志错误!\n");
}
}
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 SPECIAL;
}
else
{
fwrite(stu,sizeof(struct Student),1,fp);
fclose(fp);
goto SPECIAL;
}
}
else/*back不为'B'时*/
{
goto SPECOURSE;
}
/*修改密码*/PASSWORD:
if((fp=fopen("password","w+"))==NULL)
{
printf("\n 对不起,找不到密码文件!\n");
getch();
clrscr();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -