学生成绩管理系统代码.docx
- 文档编号:10323976
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:14
- 大小:16.57KB
学生成绩管理系统代码.docx
《学生成绩管理系统代码.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统代码.docx(14页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统代码
5.源程序清单
源程序:
#include
#include
#include
#include
#defineN20
structcourse
{
charno[10];
charname[20];
charquality[2];
intnumber;
intnum_1;
intnum_2;
floatscore;
intnum_3;
}
cou[N];
intnum;
voidnew1();
voidshanchu();
voidxiugai();
voidsave();
voidread1();
voidshencha();
voidoutput();
intfind(charsno[]);
voidnewfile();
voidpaixu();
voidliu();
voidoutput()
{
inti;
printf("课程编号课程名称课程性质(选修1/必修2)总学时授课学时实验或上机学时学分开课学期(1/2)\n");
printf("\n");
for(i=0;i { printf("%s\t%-8s\t%-4s\t%-2d\t",cou[i].no,cou[i].name,cou[i].quality,cou[i].number); printf("%-2d\t%-2d\t%4.2f\t%-2d\t",cou[i].num_1,cou[i].num_2,cou[i].score,cou[i].num_3); printf("\n"); } } voidinit() { if(access("cou.dat",0)) newfile(); else read1(); } voidnewfile() { inti; FILE*fp; if((fp=fopen("cou.dat","wb"))==NULL) { printf("文件创建失败! 请重新运行程序! \n"); exit(0); } printf("请输入课程数: "); scanf("%d",&num); for(i=0;i { printf("请输入第%d门的课程编号: ",i+1); getchar(); gets(cou[i].no); printf("课程名称: "); gets(cou[i].name); printf("课程性质(选修1/必修2): "); gets(cou[i].quality); printf("总学时"); scanf("%d",&cou[i].number); printf("授课学时: "); scanf("%d",&cou[i].num_1); printf("实验或上机学时: "); scanf("%d",&cou[i].num_2); printf("总学分: "); scanf("%f",&cou[i].score); printf("开课学期(1/2): "); scanf("%d",&cou[i].num_3); fwrite(&cou[i],1,sizeof(structcourse),fp); } fclose(fp); } voidread1() { FILE*fp; num=0; fp=fopen("cou.dat","r"); if(fp==NULL) { printf("文件打开失败! 请重新运行程序! \n"); exit(0); } while(! feof(fp)) { fread(&cou[num],1,sizeof(structcourse),fp); num++; } num--; fclose(fp); } voidshencha() { intchoice1; printf("\n"); printf("课程管理审查子菜单: \n"); printf("1.新增\n"); printf("2.删除\n"); printf("3.修改\n"); printf("\n"); printf("请选择: \n"); scanf("%d",&choice1); switch(choice1) { case1: new1(); break; case2: shanchu(); break; case3: xiugai(); break; default: printf("选择错误,请重新选择! \n"); } } voidnew1() { printf("课程编号: "); getchar(); gets(cou[num].no); printf("课程名称: "); gets(cou[num].name); printf("课程性质(选修1/必修2): "); gets(cou[num].quality); printf("总学时"); scanf("%d",&cou[num].number); printf("授课学时: "); scanf("%d",&cou[num].num_1); printf("实验或上机学时: "); scanf("%d",&cou[num].num_2); printf("学分: "); scanf("%f",&cou[num].score); printf("开课学期(1/2): "); scanf("%d",&cou[num].num_3); num++; printf("现在共有%d门课程数据为: \n",num); output(); } voidshanchu() { chardno[10]; inti,j; printf("请输入要删除的课程编号: "); getchar(); gets(dno); i=find(dno); if(i! =-1) { for(j=i;j cou[j]=cou[j+1]; num--; printf("删除后还有%d门课程数据为: \n",num); output(); } else printf("输入有误,请重新输入! \n"); } voidxiugai() { chardno[10]; inti; printf("请输入要修改课程的编号: "); getchar(); gets(dno); i=find(dno); printf("课程名称: "); gets(cou[i].name); printf("课程性质(选修1/必修2): "); gets(cou[i].quality); printf("总学时"); scanf("%d",&cou[i].number); printf("授课学时: "); scanf("%d",&cou[i].num_1); printf("实验或上机学时: "); scanf("%d",&cou[i].num_2); printf("学分: "); scanf("%f",&cou[i].score); printf("开课学期(1/2): "); scanf("%d",&cou[i].num_3); printf("修改后为: \n"); printf("课程编号课程名称课程性质(选修1/必修2)总学时授课学时实验或上机学时学分开课学期(1/2)\n"); printf("=====\n"); for(i=0;i printf("%s\t%s\t%s\t%d\t",cou[i].no,cou[i].name,cou[i].quality,cou[i].number); printf("%-2d\t%-2d\t%4.2f\t%-6d\t",cou[i].num_1,cou[i].num_2,cou[i].score,cou[i].num_3); printf("\n"); } intfind(charsno[]) { inti; for(i=0;i if(cou[i].no-sno[10]==0) returni; return-1; } voidfind1() { floatsum=0.0; chardno[10]; inti; do { printf("请输入所选的课程编号: \n"); getchar(); gets(dno); i=find(dno); if(i! =-1) { printf("%f",cou[i].score); sum+=cou[i].score; if(sum<60) printf("所选课程学分不足60,请继续选择\n"); } else printf("所选课程不存在\n"); } while(sum<60); printf("恭喜选课成功! "); } voidsave() { inti; FILE*fp; if((fp=fopen("cou.dat","wb"))==NULL) { printf("文件创建失败,请重新运行程序。 \n"); exit(0); } for(i=0;i fwrite(&cou[i],sizeof(structcourse),1,fp);/*把第i+1名学生成绩写入文件*/ fclose(fp); } voidpaixu() { inti,j,k; structcoursetemp; for(i=0;i { k=i; for(j=i+1;j if(cou[k].number>cou[j].number) { temp=cou[i]; cou[i]=cou[k]; cou[k]=temp; } } printf("排序后的课程为: \n"); output(); } voidfind2() { inti; chardnum_3[20]; paixu(); printf("输入要查询课程的开课学期(1/2): "); getchar(); gets(dnum_3); i=find(dnum_3); if(i! =-1) { printf("查找的课程信息为: \n"); printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期(1/2)\n"); printf("\n"); printf("%s\t%-8s\t%-4s\t%-2d\t",cou[i].no,cou[i].name,cou[i].quality,cou[i].number); printf("%-2d\t%-2d\t%4.2f\t%-6d\t",cou[i].num_1,cou[i].num_2,cou[i].score,cou[i].num_3); printf("\n"); } else printf("所选课程不存在.\n"); } voidliu() { output(); } voidmain() { intchoice=1,m; printf("欢迎使用本系统,请根据需要进行操作! \n"); init(); while(choice! =6) { printf("\n"); printf("主菜单\n"); printf("1.课程排序\n"); printf("2.课程审查\n"); printf("3.课程查询\n"); printf("4.课程选修\n"); printf("5.浏览\n"); printf("6.退出\n"); printf("\n"); printf("请选择: "); scanf("%d",&choice); switch(choice) { case1: paixu(); break; case2: shencha(); break; case3: find2(); break; case4: find1(); break; case5: liu(); case6: save(); printf("感谢使用本系统! \n"); break; default: printf("选择错误,请重新选择! \n"); } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 代码