?? evo03.cpp
字號:
int crcl_num,i,j,crcl_ccl,ef,chg;
char c,c_stat[3][9]={"未開通","開通","停止選課"};
system("CLS");
fpcrcl=fopen("data\\crcl.txt","r+");
if (fpcrcl==NULL)
{
fpcrcl=fopen("data\\crcl.txt","w+");
fprintf(fpcrcl,"0\n");
rewind(fpcrcl);
}
fscanf(fpcrcl,"%d",&crcl_num);
for (i=0;i<crcl_num;i++)
fscanf(fpcrcl," $%[^$]$%[^$]$%f$%[^$]$%[^$]$%[^$]$%d$%d$%d$",crcl[i].cnum,crcl[i].cname,&crcl[i].cscore,crcl[i].cteacher
,crcl[i].croom,crcl[i].ckkr,&crcl[i].cstat,&crcl[i].ctotal,&crcl[i].ccurrent);
for (i=0;i<stu_num;i++)
{
fscanf(fpcrcl,"%f",&stu_score[i]);
for (j=0;j<crcl_num;j++)
fscanf(fpcrcl,"%d",&crcl_stu[i][j]);
}
while (1)
{
system("CLS");
printf ("%6s%12s%12s%8s%12s%10s%20s\n","序號","班號","科目名","學分數","任課老師","選課狀態","當前學生數/學生上限");
printf ("________________________________________________________________________________\n\n");
for (i=0;i<crcl_num;i++)
printf ("%6d%12s%12s%8.1f%12s%10s%10d/%-3d\n",i+1,crcl[i].cnum,crcl[i].cname,crcl[i].cscore,crcl[i].cteacher,
c_stat[crcl[i].cstat],crcl[i].ccurrent,crcl[i].ctotal);
printf ("\n________________________________________________________________________________\n");
while (1)
{
cout<<"請輸入要查看的班的序號,輸入0返回主菜單\n";
cin>>ef;
if (ef==0)
return 0;
if (ef<0||ef>crcl_num)
{
cout<<"無效的序號,請再次輸入\n\n";
}
else
break;
}
ef--;
{
crcl_ccl=1;
while (crcl_ccl)
{
chg=0;
system("CLS");
printf("班號:%16s12%s\n",crcl[ef].cnum,crcl[ef].cname);
printf("學分:%16.1f\n",crcl[ef].cscore);
printf("任課老師:%12s 上課課室:%12s\n",crcl[ef].cteacher,crcl[ef].croom);
printf("開課人:%14s 開課狀態:%12s\n",crcl[ef].ckkr,c_stat[crcl[ef].cstat]);
printf("\n上課學生(%d)\n",crcl[ef].ccurrent);
printf("%12s%12s%6s%12s\n","學號","姓名","性別","專業");
printf("________________________________________________________________________________\n\n");
for (i=0;i<stu_num;i++)
{
if (crcl_stu[i][ef]==3)
printf ("%12s%12s%6s%12s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].pro);
}
printf("________________________________________________________________________________\n");
printf("A=選課\n");
printf("按X鍵返回課程列表\n");
fflush(stdin);
cin.clear();
while(c=getch(),c!='X'&&c!='x'&&c!='a'&&c!='A')
;
if (c=='x'||c=='X')
crcl_ccl=0;
if ((c=='a'||c=='A')&&crcl[ef].cstat==2)
{
system("CLS");
cout<<"該課程已經停止選課\n";
system("pause");
}
if ((c=='a'||c=='A')&&crcl[ef].cstat==0)
{
system("CLS");
cout<<"現在不是選課時間\n";
system("pause");
}
if ((c=='a'||c=='A')&&crcl[ef].cstat==1)
{
if(crcl_stu[log_stu][ef]==-2)
{
system("CLS");
cout<<"你已經提交過開通該課程的申請!\n";
system("pause");
}
if (crcl_stu[log_stu][ef]==-1||crcl_stu[log_stu][ef]==-4)
{
if (stu_score[log_stu]+crcl[ef].cscore<=25)
{
crcl_stu[log_stu][ef]==-3;
system("CLS");
cout<<"成功提交申請!\n";
chg=1;
system("pause");
}
else
{
system("CLS");
cout<<"超過25學分上限,申請失敗!\n";
system("pause");
}
}
if (crcl_stu[log_stu][ef]==-3||crcl_stu[log_stu][ef]>=0)
{
system("CLS");
cout<<"你已是該班學生\n";
system("pause");
}
}
if (chg==1)
{
fclose(fpcrcl);
fpcrcl=fopen("data\\crcl.txt","w");
fprintf(fpcrcl,"%d\n",crcl_num);
for (i=0;i<crcl_num;i++)
fprintf(fpcrcl,"$%s$%s$%f$%s$%s$%s$%d$%d$%d$\n",crcl[i].cnum,crcl[i].cname,&crcl[i].cscore,crcl[i].cteacher
,crcl[i].croom,crcl[i].ckkr,&crcl[i].cstat,&crcl[i].ctotal,&crcl[i].ccurrent);
for (i=0;i<stu_num;i++)
{
fprintf(fpcrcl,"%f ",stu_score[i]);
for (j=0;j<crcl_num;j++)
fprintf(fpcrcl,"%d ",crcl_stu[i][j]);
fprintf(fpcrcl,"\n");
}
}//save
}
}//進入查看
}
}
int amdcrcl()
{
int crcl_num,i,j,k,crcl_ccl,ef,class_ccl,amd,stulist_ccl,xgjb_ccl,lr_flag=0,adn_flag,typef;
char c,cadstu,clist,cnb,c_stat[3][9]={"未開通","開通","停止選課"},str[12];
system("CLS");
crcl_ccl=1;
while (crcl_ccl)
{
amd=0;
fpcrcl=fopen("data\\crcl.txt","r+");
if (fpcrcl==NULL)
{
fpcrcl=fopen("data\\crcl.txt","w+");
fprintf(fpcrcl,"0\n");
rewind(fpcrcl);
}
fscanf(fpcrcl,"%d",&crcl_num);
for (i=0;i<crcl_num;i++)
fscanf(fpcrcl," $%[^$]$%[^$]$%f$%[^$]$%[^$]$%[^$]$%d$%d$%d$",crcl[i].cnum,crcl[i].cname,&crcl[i].cscore,&crcl[i].cteacher
,crcl[i].croom,crcl[i].ckkr,&crcl[i].cstat,&crcl[i].ctotal,&crcl[i].ccurrent);
for (i=0;i<stu_num;i++)
{
fscanf(fpcrcl,"%f",&stu_score[i]);
for (j=0;j<crcl_num;j++)
fscanf(fpcrcl,"%d",&crcl_stu[i][j]);
}//讀入
system("CLS");
printf ("%6s%12s%12s%8s%12s%10s%20s\n","序號","班號","科目名","學分數","任課老師","選課狀態","當前學生數/學生上限");
printf ("________________________________________________________________________________\n\n");
for (i=0;i<crcl_num;i++)
printf ("%6d%12s%12s%8.1f%12s%10s%10d/%-3d\n",i+1,crcl[i].cnum,crcl[i].cname,crcl[i].cscore,crcl[i].cteacher,
c_stat[crcl[i].cstat],crcl[i].ccurrent,crcl[i].ctotal);
printf ("\n________________________________________________________________________________\n");
cout<<"A=新增課程 E=查看課程\n";
cout<<"D=刪除課程 X=返回主菜單\n";
while(c=getch(),c!='a'&&c!='A'&&c!='e'&&c!='E'&&c!='d'&&c!='D'&&c!='x'&&c!='X')
;
if (c=='e'||c=='E')
{
class_ccl=1;
while (class_ccl)
{
cout<<"請輸入要查看的班的序號,輸入返回上一級菜單\n";
cin>>ef;
if (ef==0)
return 0;
if (ef<0||ef>crcl_num)
{
fflush(stdin);
cin.clear();
cout<<"無效的序號,請再次輸入\n\n";
}
else
class_ccl=0;
}
ef--;
{
stulist_ccl=1;
while (stulist_ccl)
{
system("CLS");
printf("班號:%16s12%s\n",crcl[ef].cnum,crcl[ef].cname);
printf("學分:%16.1f\n",crcl[ef].cscore);
printf("任課老師:%12s 上課課室:%12s\n",crcl[ef].cteacher,crcl[ef].croom);
printf("開課人:%14s 開課狀態:%12s\n",crcl[ef].ckkr,c_stat[crcl[ef].cstat]);
printf("\n上課學生(%d)\n",crcl[ef].ccurrent);
printf("%6s%12s%12s%6s%12s\n","序號","學號","姓名","性別","專業");
printf("________________________________________________________________________________\n\n");
for (i=0;i<stu_num;i++)
{
if (crcl_stu[i][ef]==-3)
printf ("%6d%12s%12s%6s%12s\n",i,stu[i].num,stu[i].name,stu[i].sex,stu[i].pro);
else if (crcl_stu[i][ef]==-2)
printf ("%6d%12s%12s%6s%12s%20s\n",i,stu[i].num,stu[i].name,stu[i].sex,stu[i].pro,"(申請選課)");
}
printf("________________________________________________________________________________\n");
printf("A=修改課程基本信息 S=修改課程狀態\n");
printf("T=移出學生 J=加入學生\n");
printf("X=返回課程列表\n");
while(clist=getch(),clist!='a'&&clist!='A'&&clist!='s'&&clist!='S'&&clist!='t'&&clist!='T'&&clist!='j'&&clist!='J'&&clist!='X'&&clist!='x')
;
if (clist=='a'||clist=='A')
{
xgjb_ccl=1;
while (xgjb_ccl)
{
system("CLS");
cout<<"\n\n________________________________________________________________________________\n";
cout<<"B=修改班號 N=修改班名\n";
cout<<"S=修改學分 T=修改任課老師\n";
cout<<"R=修改上課課室 O=修改學生上限\n";
cout<<"X=返回上級菜單\n";
while(c=getch(),c!='b'&&c!='B'&&c!='n'&&c!='N'&&c!='s'&&c!='S'&&c!='t'&&c!='T'&&c!='r'&&c!='R'&&
c!='o'&&c!='O'&&c!='x'&&c!='X')
;
cin.clear();
if (c=='b'||c=='B')
{
cout<<"輸入新班號\n";
cin>>str;
for (i=0;i<crcl_num;i++)
{
if (strcmp(crcl[i].cnum,str)==0&&ef!=i)
{
strcpy(crcl[ef].cnum,str);
amd=1;
cout<<"修改成功\n";
system("pause");
}
cout<<"班號已存在\n";
system("pause");
}
}
if (c=='n'||c=='N')
{
cout<<"\n\n輸入新班名\n";
cin>>crcl[ef].cname;
cin.clear();
cout<<"修改成功\n";
system("pause");
amd=1;
}
if (c=='s'||c=='S')
{
cout<<"輸入新學分\n";
cin>>crcl[ef].cscore;
cout<<"修改成功\n";
system("pause");
amd=1;
}
if (c=='t'||c=='T')
{
cout<<"輸入新任課老師\n";
cin>>crcl[ef].cteacher;
cout<<"修改成功\n";
system("pause");
amd=1;
}
if (c=='r'||c=='R')
{
cout<<"輸入新上課課室\n";
cin>>crcl[ef].croom;
cout<<"修改成功\n";
system("pause");
amd=1;
}
if (c=='o'||c=='O')
{
cout<<"輸入新學生上限\n";
cin>>crcl[ef].ctotal;
cout<<"修改成功\n";
system("pause");
amd=1;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -