学生成绩管理系统VC.docx
- 文档编号:16885503
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:26
- 大小:24.14KB
学生成绩管理系统VC.docx
《学生成绩管理系统VC.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统VC.docx(26页珍藏版)》请在冰点文库上搜索。
学生成绩管理系统VC
#include<>#include<>#include<>/*#include<>*/#include<>#include<>#include<>#include<>#defineVIDEO_INT0x10
#defineSTUSIZE40/*假定处理的学生不超过40人*/
structstudent
{
intstunum;/*学号*/
charstuname[10];/*学生姓名*/
floatstuscore[5];/*3门成绩、平均成绩、总成绩*/}stu[STUSIZE];/*定义学生数组*/intstunum=0;/*用来记录当前学生记录数*/voidStuCover();/*项目圭寸面函数声明*/voidMainMenu();/*主菜单函数声明*/voidEditMenu();/*编辑子菜单函数声明*/voidDispMenu();/*显示子菜单函数声明*/voidCompMenu();/*计算子菜单函数声明*/voidSortMenu();/*排序子菜单函数声明*/voidOpen(structstudentstu[],int*size);/*打开文件子菜单函数声明*/voidSave(structstudentstu[],int*size);/*保存文件函数声明*/intAdd(structstudentstu[],int*size);/*增加学生记录函数声明*/intDel(structstudentstu[],int*stusize);/*删除学生记录函数声明*/intModify(structstudentstu[],int*stusize);/*修改学生记录函数声明*/intDispOne(structstudentstu[],int*stusize);/*查看一个记录函数声明*/intDispAll(structstudentstu[],intsize);/*显示全部记录函数声明*/voidAsceSort(structstudentstu[],intstusize);/*按升序排序函数声明*/voidDropSort(structstudentstu[],intstusize);/*按降序排序函数声明*/voidNotElig(structstudentstu[],intstusize);/*查找不及格记录函数声明*/voidCompSum(structstudentstu[],intstusize);/*计算总成绩和平均成绩函数声明*/voidSearchMax(structstudentstu[],intstusize);/*查找最高成绩函数声明*/voidSearchMin(structstudentstu[],intstusize);/*查找最低成绩函数声明*/voidExplain();/*程序说明函数声明*/voidQuit(int);/*退出函数声明*/voidgotoxy(intx,inty);/*光标定位函数声明*/intmain()
{
intchoose,editnum,dispnum,compnum,sortnum;/定义5个输入变量*/system("cls");
StuCover();
getch();
while
(1)/*外循环开始*/
{
MainMenu();/*调用主菜单函数*/
printf("\t\t请输入序号:
");
scanf("%d",&choose);
switch(choose)/*主菜单的switch开始*/
{
case1:
Open(stu,&stunum);break;
case2:
Save(stu,&stunum);break;
case3:
do/*内循环1开始*/
{
EditMenu();/*调用编辑子菜单函数*/
printf("\t\t请输入序号:
");
scanf("%d",&editnum);
switch(editnum)/*编辑子菜单switch开始*/{
case1:
Add(stu,&stunum);break;
case2:
Del(stu,&stunum);break;
case3:
Modify(stu,&stunum);break;
case0:
Quit(0);break;
}/*编辑子菜单switch结束*/
}while(editnum!
=0);/*内循环1结束*/
break;
case4:
do/*内循环2开始*/
{
DispMenu();/*调用查看子菜单函数*/
printf("\t\t请输入序号:
");
scanf("%d",&dispnum);
switch(dispnum)/*显示子菜单switch开始*/{
case1:
DispOne(stu,&stunum);break;case2:
DispAll(stu,stunum);break;
case3:
do/*内循环3开始*/
{
SortMenu();
printf("\t\t请输入序号:
");
scanf("%d",&sortnum);
switch(sortnum)/*排序子菜单switch开始*/{
case1:
AsceSort(stu,stunum);break;
case2:
DropSort(stu,stunum);break;
case0:
Quit(0);break;
}/*排序子菜单switch结束*/}while(sortnum!
=0);/*内循环3结束*/break;
case4:
NotElig(stu,stunum);break;case0:
Quit(0);break;
}/*显示子菜单switch结束*/
}while(dispnum!
=0);/*内循环2结束*/
break;
case5:
do/*内循环4开始*/
{
CompMenu();/*调用计算子菜单函数*/printf("\t\t请输入序号:
");scanf("%d",&compnum);
switch(compnum)/*计算子菜单switch开始*/
{case1:
CompSum(stu,stunum);break;case2:
SearchMax(stu,stunum);break;case3:
SearchMin(stu,stunum);break;
case0:
Quit(0);break;
}/*计算子菜单switch结束*/}while(compnum!
=0);/*内循环4结束*/break;
case6:
Explain();break;/*程序说明*/case0:
Quit
(1);break;
}/*主菜单的switch结束*/
}
return。
;/*外循环结束*/
}
voidgotoxy(intx,inty)
{
COORDc;
=x-1;
=y-1;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);}
voidQuit(intflag)/*退出函数*/
{
if(flag==1)
{
system("cls");
printf("\n\n\n\n\n\n\t\t\t操作结束,退出系统!
");
getch();
system("cls");
exit(0);/*退出程序,返回到操作系统库函数*/
}
else
if(flag==0)/*返回上级菜单*/
{system("cls");
printf("\n\n\n\n\n\n\t\t\t操作结束,返回上级菜单!
");
getch();
system("cls");
}
}
voidExplain()/*程序说明*/
{system("cls");
gotoxy(10,3);/*光标定位函数*/
printf("这是一个教学程序。
它以开发班级学生成绩管理系统为主要项目,");gotoxy(10,5);
printf("旨在通过简单学生成绩管理系统软件的开发,使读者了解并掌握用C语");
gotoxy(10,7);
printf("言开发程序的方法与技巧。
");
gotoxy(10,9);
printf("该项目由15个任务来完成,将C语言基本知识与理论溶入到任务中!
");gotoxy(10,11);
printf("完成15个任务后就完成整个项目的设计。
通过任务驱动和项目导向教学,");gotoxy(10,13);
printf("最终实现教学目的,达到培养目标!
");
gotoxy(10,15);
printf("该项目实施贯穿在整个教学过程中,它将重点与难点分散在各个任务");gotoxy(10,17);
printf("中,达到循序渐进,逐个突破的目的,教学最后将安排一定的时间归纳汇");gotoxy(10,19);
printf("总。
");
getch();
}
voidStuCover()/*项目封面函数*/
{
system("cls");/*执行DOS清屏命令函数*/
printf("\n\n\n");
printf("\t\t班级学生成绩管理系统\n\n");
printf("\t\t版本号:
\n\n");
printf("\n\n\n");
printf("\t\t2011年9月\n\n");
printf("\t\t章国华软件工作室\n");
}
voidMainMenu()/*项目主菜单函数*/
{
intn;
system("cls");
printf("\n\n\n");
printf("|*****学生成绩管理系统*****|\n");printf("||\n");
printf("|请选择菜单序号(0~6)|\n");printf("||\n");
printf("|1打开文件|\n");
printf("|2保存文件|\n");
printf("|3编辑数据|\n");
printf("|4显示数据|\n");
printf("|5数据计算|\n");
printf("|6程序说明|\n");
printf("|0退出系统|\n");
printf("||\n");
printf("\t\t请选择序号:
");scanf("%d",&n);
printf("您选择了第%d项!
\n",n);
}
voidDispMenu()/*项目主菜单函数*/
{
intn;
system("cls");
printf("\n\n\n");
printf("|*******显示子菜单*****|\n");
printf("||\n");
printf("|请选择菜单序号(0~4)|\n");printf("||\n");
printf("|1查看选定记录|\n");
printf("|2显示全部记录|\n");
printf("|3显示排序记录|\n");
printf("|4显示不及格记录|\n");
printf("|0返回上级菜单|\n");
printf("||\n");
printf("\t\t请选择序号:
");scanf("%d",&n);
printf("您选择了第%d项!
\n",n);
}
voidEditMenu()/*项目编辑子菜单函数*/
{
intn;
system("cls");
printf("\n\n\n");
printf("|*******编辑子菜单******|\n");
printf("||\n");
printf("|请选择菜单序号(0~3)|\n");
printf("||\n");
printf("|1增加记录|\n");
printf("|2删除记录|\n");
printf("|3修改记录|\n");
printf("|0返回上级菜单|\n");
printf("||\n");
printf("\t\t请选择序号:
");scanf("%d",&n);
printf("您选择了第%d项!
\n",n);
}
voidCompMenu()/*项目计算子菜单函数*/{
intn;
system("cls");
printf("\n\n\n");
计算子菜单******|\n");
printf("||\n");
printf("|请选择菜单序号(0~3)|\n");
printf("||\n");
printf("|1计算总成绩和平均成绩|\n");
printf("|2计算最高分(平均分)|\n");
printf("|3计算最低分(平均分)|\n");
printf("|0返回上级菜单|\n");
printf("||\n");
printf("\t\t请选择序号:
");scanf("%d",&n);
printf("您选择了第%d项!
\n",n);
}
voidSortMenu()/*项目排序子菜单函数*/
{
intn;
system("cls");
printf("\n\n\n");
printf("||\n");
printf("|请选择菜单序号(0~2)|\n");printf("||\n");
printf("|1按升序排序|\n");
printf("|2按降序排序|\n");
printf("|0返回上级菜单|\n");
printf("||\n");
printf("\t\t请选择序号:
");scanf("%d",&n);
printf("您选择了第%d项!
\n",n);
}
voidSearchMax(structstudentstu[],intstusize)/*查找最高分指针访问函数*/
{floatmax=stu[0].stuscore[4];
inti;
system("cls");for(i=1;i { if(max { max=stu[i].stuscore[4]; } } gotoxy(20,5); printf("成绩最高的是: %.1f\n",max); gotoxy(20,10); printf("查找最高分成功,按任意键返回上级菜单! "); getch(); } voidSearchMin(structstudentstu[],intstusize)/*查找最低分指针访问函数*/ {floatmin=stu[0].stuscore[4]; inti; system("cls");for(i=1;i { if(min>stu[i].stuscore[4]) { min=stu[i].stuscore[4]; } } gotoxy(20,5); printf("成绩最高的是: %.1f\n",min); gotoxy(20,10); printf("查找最低分成功,按任意键返回上级菜单! "); getch(); } voidNotElig(structstudentstu[],intstusize)/*查找不合格学生成绩指针访问函数*/{ inti,flag=0; system("cls"); gotoxy(20,5); printf("不合格成绩: ");for(i=0;i { if(stu[i].stuscore[4]<60) { printf("%",stu[i].stuscore[4]); flag=1; } } if(! flag) { gotoxy(35,5); printf("没有不合格成绩! "); } gotoxy(20,10); printf("查找不及格成绩成功,按任意键返回上级菜单! "); getch(); } voidCompSum(structstudentstu[],intstusize)/*计算总成绩和平均成绩函数声明*/ { inti,j; floatsumscore; system("cls"); if(stusize<=0) { gotoxy(22,5); printf("数组中没有学生记录或文件没有打开,不能计算总成绩和平均成绩! "); getch(); } else { for(i=0;i { sumscore=0; for(j=0;j<3;j++) { sumscore+=stu[i].stuscore[j]; } stu[i].stuscore[3]=sumscore; stu[i].stuscore[4]=sumscore/; } } gotoxy(20,5); printf("计算总成绩和平均成绩成功,按任意键返回上级菜单! "); getch(); } voidAsceSort(structstudentstu[],intstusize)/*按升序排列指针访问函数*/ { inti,j; floattemp;floattemp_score[STUSIZE],*pf;/*定义一个新数组*/system("cls"); pf=temp_score; for(i=0;i for(i=0;i if(*(pf+j+1)<*(pf+j)) { temp=*(pf+j); *(pf+j)=*(pf+j+1); *(pf+j+1)=temp; } gotoxy(5,5); printf("升序排列结果: ");for(i=0;i gotoxy(20,10); printf("升序排列成功,按任意键返回上级菜单! ");getch(); } voidDropSort(structstudentstu[],intstusize)/*按降序排列指针访问函数*/{inti,j; floattemp;floattemp_score[STUSIZE],*pf;/*定义一个新数组*/system("cls"); pf=temp_score; for(i=0;i for(i=0;i if(*(pf+j+1)>*(pf+j)) { temp=*(pf+j); *(pf+j)=*(pf+j+1); *(pf+j+1)=temp; } gotoxy(5,5); printf("降序排列结果: "); for(i=0;i gotoxy(20,10); printf("降序排列成功,按任意键返回上级菜单! ");getch(); } intAdd(structstudentstu[],int*size)/*增加学生记录函数*/ { inti,j; intstunum; intnumber; system("cls"); if(*size>=40) {/*判断数组是否装满*/ gotoxy(30,2); printf("数组已满,不能再增加记录! "); return0; } else { do {/*判断输入的增加记录数是否合适*/gotoxy(30,2); printf("请输入增加的记录个数: ");scanf("%d",&number);if(number<0||number+*size>=40) { gotoxy(30,4); printf("输入增加记录个数错,请重新输入! "); } }while(number<0||number+*size>=40);stunum=*size+number; system("cls"); gotoxy(33,2); printf("学生信息输入! "); for(i=*size;i { gotoxy(15,5); printf("请输入第%d个学生学号: ",i+1); gotoxy(15,7); printf("请输入第%d个学生姓名: ",i+1); gotoxy(15,9); printf("请输入第1门成绩: "); gotoxy(15,11); printf("请输入第2门成绩: "); gotoxy(15,13); printf("请输入第3门成绩: "); gotoxy(37,5); scanf("%d",&stu[i].stunum); gotoxy(37,7); scanf("%s",&stu[i].stuname); for(j=0;j<3;j++) { gotoxy(32,9+j*2); scanf("%f",&stu[i].stuscore[j]); } } if(i==*size) { gotoxy(33,4); printf("没有记录输入! "); } *size=stunum;/*有指针变量带回学生记录数*/ gotoxy(33,15); printf("按任意键返回上级菜单! "); getch(); return0; } } intDel(structstudentstu[],int*stusize)/*删除学生记录函数*/ { inti,k; intloop=0; intnumber; system("cls"); gotoxy(33,2); printf("删除学生记录! \n"); if(*stusize<=0)/*判断数组是否空*/ { gotoxy(20,4); printf("数组中没有学生记录或文件没有打开,不能删除记录! ");getch(); return0; } else { do { system("cls"); gotoxy(25,2); printf("删除学生记录(不能删除记录请输入-1)! \n"); gotoxy(28,4);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 VC