📄 evo03.cpp
字号:
cin>>str;
for (i=0,j=0;i<stu_num;i++)
{
if (strcmp(stu[i].name,str)==0)
stu_flag[j++]=i;
}
findf=j;
if(j==0)
{
system("CLS");
cout<<"没有找到相关姓名";
found=0;
}
}
else if(c=='u'||c=='U')
{
found=1;
cout<<"________________________________________________________________________________\n\n";
cout<<"请输入你要查找的学号\n";
cin>>str;
for (i=0,j=0;i<stu_num;i++)
{
if (strcmp(stu[i].num,str)==0)
stu_flag[j++]=i;
}
findf=j;
if(j==0)
{
system("CLS");
cout<<"没有找到相关学号";
found=0;
}
}
if(found==1)
{
flag=1;
while(flag)
{
system("CLS");
flr_flag=0;
flag=1;
while (flag)//10学生
{
if (flr_flag==0)
{
slct=0;
system("CLS");
printf ("%6s%10s%12s%6s%12s%12s%12s\n________________________________________________________________________________\n","序号","姓名","学号","性别","学院专业","政治面貌","籍贯");
for (i=0;i<findf;i++)
printf ("%6d%10s%12s%6s%12s%12s%12s\n",i,stu[stu_flag[i]].name,stu[stu_flag[i]].num,stu[stu_flag[i]].sex,stu[stu_flag[i]].pro,stu[stu_flag[i]].pstat,stu[stu_flag[i]].jg);
printf ("\n________________________________________________________________________________\n");
cout<<"用数字键选择学生\n";
printf ("R=滚动到右半页 X=回到主菜单\n");
while (c=getch(),c>'0'+j&&c<'0'&&c!='r'&&c!='R'&&c!='x'&&c!='X')
;
if (c=='r'||c=='R')
lr_flag=1;
if (c=='x'||c=='X')
{
system("CLS");
flag=0;
}
else
slct=1;
}
else
{
slct=0;
system("CLS");
printf ("%6s%10s%12s%16s%21s\n________________________________________________________________________________\n","序号","姓名","生日","宿舍电话","邮箱");
for (i=0;i<findf;i++)
printf ("%6d%10s%12s%16s%21s\n",i,stu[stu_flag[i]].name,stu[stu_flag[i]].birth,stu[stu_flag[i]].tel,stu[stu_flag[i]].mail);
printf ("\n________________________________________________________________________________\n");
cout<<"用数字键选择学生\n";
printf ("L=滚动到左半页 X=回到主菜单\n");
while (c=getch(),c>'0'+j&&c<'0'&&c!='l'&&c!='L'&&c!='x'&&c!='X')
;
if (c=='l'||c=='L')
flr_flag=0;
if (c=='x'||c=='X')
{
system("CLS");
flag=0;
}
else
slct=1;
}//end right
if (slct==1)
{
this_flag=stu_flag[c-'0'];
cflag=1;
thislr_flag=0;
while (cflag)
{
if (thislr_flag==0)
{
amdflag=0;
system("CLS");
printf ("%10s%12s%6s%12s%12s%12s\n________________________________________________________________________________\n","姓名","学号","性别","学院专业","政治面貌","籍贯");
printf ("%10s%12s%6s%12s%12s%12s\n",stu[this_flag].name,stu[this_flag].num,stu[this_flag].sex,stu[this_flag].pro,stu[this_flag].pstat,stu[this_flag].jg);
printf ("\n________________________________________________________________________________\n");
cout<<"A=修改\n";
printf ("R=滚动到右半页 X=回到主菜单\n");
while (c=getch(),c!='x'&&c!='X'&&c!='r'&&c!='R'&&c!='a'&&c!='A')
;
if (c=='r'||c=='R')
thislr_flag=1;
if (c=='x'||c=='X')
{
system("CLS");
cflag=0;
}
if (c=='a'||c=='A')
amdflag=1;//1 for 修改
else if (c=='d'||c=='D')
amdflag=2;//2 for 删除
}//end left
else
{
amdflag=0;
system("CLS");
printf ("%10s%12s%16s%21s\n________________________________________________________________________________\n","姓名","生日","宿舍电话","邮箱");
printf ("%10s%12s%16s%21s\n",stu[this_flag].name,stu[this_flag].birth,stu[this_flag].tel,stu[this_flag].mail);
printf ("\n________________________________________________________________________________\n");
cout<<"A=修改\n";
printf ("L=滚动到左半页 X=回到主菜单\n");
while (c=getch(),c!='x'&&c!='X'&&c!='l'&&c!='L'&&c!='a'&&c!='A')
;
if (c=='l'||c=='L')
thislr_flag=0;
if (c=='x'||c=='X')
{
system("CLS");
return 0;
}
if (c=='a'||c=='A')
amdflag=1;//1 for 修改
else if (c=='d'||c=='D')
amdflag=2;//2 for 删除
}//end right
if (amdflag==1)
{
amd_cflag=1;
while (amd_cflag)
{
cout<<"________________________________________________________________________________\n\n";
cout<<"N=修改姓名 U=修改学号 S=修改性别 P=修改专业\n";
cout<<"O=修改政治面貌 J=修改籍贯 B=修改生日 H=修改电话\n";
cout<<"M=修改邮箱 X=取消\n";
while (c=getch(),c!='n'&&c!='N'&&c!='u'&&c!='U'&&c!='s'&&c!='S'&&c!='p'&&c!='P'
&&c!='o'&&c!='O'&&c!='j'&&c!='J'&&c!='b'&&c!='B'&&c!='h'&&c!='H'&&c!='m'&&c!='M'&&c!='x'&&c!='X')
;
if (c>='a')
c-=32;
switch (c)
{
case 'N':cout<<"请输入名字\n";cin>>stu[this_flag].name;cout<<"\n修改成功\n\n";break;
case 'U':cout<<"请输入学号\n";
cin>>str;
for (i=0,chongfu=0;i<stu_num;i++)
{
if (strcmp(str,stu[i].num)==0&&this_flag!=i) chongfu=1;
}
if (chongfu==1)
{
cout<<"该学号已存在,修改失败!";
}
else
{
cout<<"\n修改成功\n\n";
strcpy(stu[i].num,str);
}
break;
case 'S':cout<<"请输入性别\n";cin>>stu[this_flag].sex;cout<<"\n修改成功\n\n";break;
case 'P':cout<<"请输入专业\n";cin>>stu[this_flag].pro;cout<<"\n修改成功\n\n";break;
case 'O':cout<<"请输入政治面貌\n";cin>>stu[this_flag].pstat;cout<<"\n修改成功\n\n";break;
case 'J':cout<<"请输入籍贯\n";cin>>stu[this_flag].jg;cout<<"\n修改成功\n\n";break;
case 'B':cout<<"请输入生日\n";cin>>stu[this_flag].birth;cout<<"\n修改成功\n\n";break;
case 'H':cout<<"请输入电话\n";cin>>stu[this_flag].tel;cout<<"\n修改成功\n\n";break;
case 'M':cout<<"请输入邮箱\n";cin>>stu[this_flag].mail;cout<<"\n修改成功\n\n";break;
case 'X':amd_cflag=0;break;
}
}
}//修改
else if (amdflag==2)
{
cout<<"确定要删除该学生吗?\nY=是 N=否\n";
while (c=getch(),c!='y'&&c!='Y'&&c!='n'&&c!='N')
;
if (c=='y'||c=='Y')
{
stu_num--;
strcpy(stu[this_flag].num,"zzzzzzzzzz");
deleteflag=1;
cout<<"删除成功!\n";
}
else
deleteflag=0;
}//删除
if (amdflag==1||(amdflag==2&&deleteflag==1))
{
qsort(stu,stu_num,sizeof(stu[0]),cmp_save);
fclose(fpinfo);
fpinfo=fopen("data\\info.txt","w");
fprintf(fpinfo,"%d\n",stu_num);
for (i=0;i<stu_num;i++)
fprintf (fpinfo,"$%s$%s$%s$%s$%s$%s$%s$%s$%s$%s$\n",stu[i].un,stu[i].name,stu[i].num,stu[i].sex,stu[i].pro,stu[i].pstat,
stu[i].jg,stu[i].birth,stu[i].tel,stu[i].mail);
}//保存
}//end while
}//end 1学生界面
}//end while
}//end 10学生界面
}//end 找到
}//end 姓名
}//end 查找
}
int chkcrcl()
{
int i,j,crcl_ccl,ef;
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]);
}
crcl_ccl=1;
while (crcl_ccl)
{
system("CLS");
printf ("%6s%12s%12s%8s%12s%10s%20s\n","序号","班号","科目名","学分数","任课老师","选课状态","当前学生数/学生上限");
printf ("________________________________________________________________________________\n");
for (i=0;i<crcl_num;i++)
printf ("%6d%12s%12s%8.1f%12s%10d%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<<"无效的序号,请再次输入";
}
else
break;
}
ef--;
{
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("按X键返回课程列表\n");
while(c=getch(),c!='X'&&c!='x')
;
}//进入查看
}
}
int xk()
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -