学生成绩管理系统 C课程设计综述.docx
- 文档编号:11401656
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:24
- 大小:101.31KB
学生成绩管理系统 C课程设计综述.docx
《学生成绩管理系统 C课程设计综述.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统 C课程设计综述.docx(24页珍藏版)》请在冰点文库上搜索。
学生成绩管理系统C课程设计综述
C语言课程设计报告
专业:
学号:
姓名:
提交日期:
【设计目的】
目前,各类学校的在校生人数在不断增加,而且不同专业的学生选修课,实验课,考试课分别占的比重不同,依靠传统的方式管理学生成绩信息给日常的管理工作带来诸多不便,而计算机信息技术的发展为学生成绩管理注入了新的生机。
……………………………………..
【设计内容】
1、录入学生成绩系统
2、闪现删除功能,即输入学号删除相应的记录。
3、实现查找功能,即输入学号,查询该学生成绩的相关信息。
4、实现修正功能,即输入学号,修改相应信息。
5、指定位置插入学生成绩信息,即输入要插入的位置,将新的信息插到制定位置。
6、学生成绩排名,即按照总成绩进行由高到低排名。
7、统计保存的学生信息数。
………………………………….
【实验环境】
1.硬件环境电脑戴尔灵越i55000处理器intel(R)core(tm)i5-4210UCPU@1.70GHz2.40GHz内存4.00G
2.软件环境WINDOWS10下Codeblack编译
【设计中使用函数说明】
设计中使用的函数有main函数,自己定义的有输入函数in.输出函数show.排序函数order.删除函数del.修改函数modify.菜单函数menu.插入函数insert.统计函数total.查找函数search等。
【测试结果】
【设计总结】
该设计为C语言成绩管理系统,可以对系统内的学生成绩进行新建、添加、删除、排序、查询等操作。
可以在面板中输入数字来进行想要的操作。
该设计以团队形式进行,既发挥了团队内各人员所长,又是各人在C语言方面的一次锻炼,同时也是对团队的一次考验。
团队内同伴要相互体谅,相互帮忙,不能因为一点琐事就吵嘴,同伴间的相互体谅和信任是最重要的。
这次的程序设计,用到的不仅仅是书本上的知识,一些个函数或是一些结构都需要自己查看有关书籍来完成,能编写几个小程序并不表示就学会了编程,而是要灵活的运用来编写不同的程序。
C语言知识很有意思,我还要再更加努力的学习。
【参考文献】
《学通C语言的24堂课》互联网,XX等
【源程序清单】
#include
#include
#include
#include
#include
#defineLENsizeof(structstudent)
#defineFORMAT"%-8d%-15s%-12.1lf%-12.1lf%-12.1lf%-12.1lf\n"
#defineDATAstu[i].num,stu[i].name,stu[i].elec,stu[i].expe,stu[i].requ,stu[i].sum
floatFelec,Fexpe,Frequ;
structstudent/*定义学生成绩结构体*/
{
intnum;/*学号*/
charname[15];/*姓名*/
doubleelec;/*选修课*/
doubleexpe;/*实验课*/
doublerequ;/*必修课*/
doublesum;/*总分*/
};
structstudentstu[50];/*定义结构体数组*/
voidin();/*录入学生成绩信息*/
voidshow();/*显示学生信息*/
voidorder();/*按总分排序*/
voiddel();/*删除学生成绩信息*/
voidmodify();/*修改学生成绩信息*/
voidmenu();/*主菜单*/
voidinsert();/*插入学生信息*/
voidtotal();/*计算总人数*/
voidsearch();/*查找学生信息*/
intmain()/*主函数*/
{
intn;
menu();
scanf("%d",&n);/*输入选择功能的编号*/
while(n)
{
switch(n)
{
case1:
in();
break;
case2:
search();
break;
case3:
del();
break;
case4:
modify();
break;
case5:
insert();
break;
case6:
order();
break;
case7:
total();
break;
default:
break;
}
getch();
menu();/*执行完功能再次显示菜单界面*/
scanf("%d",&n);
}
}
voidin()/*录入学生信息*/
{
inti,m=0;/*m是记录的条数*/
charch[2];
FILE*fp;/*定义文件指针*/
if((fp=fopen("data","ab+"))==NULL)/*打开指定文件*/
{
printf("cannotopen\n");
return;
}
while(!
feof(fp))
{
if(fread(&stu[m],LEN,1,fp)==1)
m++;/*统计当前记录条数*/
}
fclose(fp);
if(m==0)
printf("Norecord!
\n");
else
{
system("cls");
show();/*调用show函数,显示原有信息*/
}
if((fp=fopen("data","wb"))==NULL)
{
printf("cannotopen\n");
return;
}
for(i=0;i fwrite(&stu[i],LEN,1,fp);/*向指定的磁盘文件写入信息*/ printf("pleaseinput(y/n): "); scanf("%s",ch); if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) { printf("pleaseinputpercentum: "); printf("\nelective: "); scanf("%f",&Felec); printf("\nexperiment: "); scanf("%f",&Fexpe); printf("\nrequiredcourse: "); scanf("%f",&Frequ); } while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要录入新信息*/ { printf("number: "); scanf("%d",&stu[m].num);/*输入学生学号*/ for(i=0;i if(stu[i].num==stu[m].num) { printf("thenumberisexisting,pressanytocontinue! "); getch(); fclose(fp); return; } printf("name: "); scanf("%s",stu[m].name);/*输入学生姓名*/ printf("elective: "); scanf("%lf",&stu[m].elec);/*输入选修课成绩*/ printf("experiment: "); scanf("%lf",&stu[m].expe);/*输入实验课成绩*/ printf("requiredcourse: "); scanf("%lf",&stu[m].requ);/*输入必修课成绩*/ stu[m].sum=stu[m].elec*Felec+stu[m].expe*Fexpe+stu[m].requ*Frequ;/*计算出总成绩*/ if(fwrite(&stu[m],LEN,1,fp)! =1)/*将新录入的信息写入指定的磁盘文件*/ { printf("cannotsave! "); getch(); } else { printf("%ssaved! \n",stu[m].name); m++; } printf("continue? (y/n): ");/*询问是否继续*/ scanf("%s",ch); } fclose(fp); printf("OK! \n"); } voidshow() { FILE*fp; inti,m=0; fp=fopen("data","ab+"); while(! feof(fp)) { if(fread(&stu[m],LEN,1,fp)==1) m++; } fclose(fp); printf("numbernameelectiveexperimentrequiredsum\t\n"); for(i=0;i { printf(FORMAT,DATA);/*将信息按指定格式打印*/ } } voidmenu()/*自定义函数实现菜单功能*/ { system("cls"); printf("\n\n\n\n\n"); printf("\t\t|-------------------学生成绩管理系统---------------|\n"); printf("\t\t|\t0.退出|\n"); printf("\t\t|\t1.输入|\n"); printf("\t\t|\t2.查询|\n"); printf("\t\t|\t3.删除|\n"); printf("\t\t|\t4.修改|\n"); printf("\t\t|\t5.插入|\n"); printf("\t\t|\t6.排序|\n"); printf("\t\t|\t7.学生人数|\n"); printf("\t\t|--------------------------------------------------|\n\n"); printf("\t\t\t选择(0-7): "); } voidorder()/*自定义排序函数*/ { FILE*fp; structstudentt; inti=0,j=0,m=0; if((fp=fopen("data","ab+"))==NULL) { printf("cannotopen! \n"); return; } while(! feof(fp)) if(fread(&stu[m],LEN,1,fp)==1) m++; fclose(fp); if(m==0) { printf("norecord! \n"); return; } for(i=0;i for(j=i+1;j if(stu[i].sum { t=stu[i]; stu[i]=stu[j]; stu[j]=t; } if((fp=fopen("data","wb"))==NULL) { printf("cannotopen\n"); return; } for(i=0;i if(fwrite(&stu[i],LEN,1,fp)! =1) { printf("%scannotsave! \n"); getch(); } fclose(fp); printf("savesuccessfully\n"); } voiddel()/*自定义删除函数*/ { FILE*fp; intsnum,i,j,m=0; charch[2]; if((fp=fopen("data","ab+"))==NULL) { printf("cannotopen\n"); return; } while(! feof(fp)) if(fread(&stu[m],LEN,1,fp)==1) m++; fclose(fp); if(m==0) { printf("norecord! \n"); return; } printf("pleaseinputthenumber: "); scanf("%d",&snum); for(i=0;i if(snum==stu[i].num) break; if(i==m) { printf("cannotfind"); getchar(); return; } printf("findthestudent,delete? (y/n)"); scanf("%s",ch); if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要进行删除*/ { for(j=i;j stu[j]=stu[j+1];/*将后一个记录移到前一个记录的位置*/ m--;/*记录的总个数减1*/ printf("deletesuccessfully! \n"); } if((fp=fopen("data","wb"))==NULL) { printf("cannotopen\n"); return; } for(j=0;j if(fwrite(&stu[j],LEN,1,fp)! =1) { printf("cannotsave! \n"); getch(); } fclose(fp); } voidsearch()/*自定义查找函数*/ { FILE*fp; intsnum,i,m=0; charch[2]; if((fp=fopen("data","ab+"))==NULL) { printf("cannotopen\n"); return; } while(! feof(fp)) if(fread(&stu[m],LEN,1,fp)==1) m++; fclose(fp); if(m==0) { printf("norecord! \n"); return; } printf("pleaseinputthenumber: "); scanf("%d",&snum); for(i=0;i if(snum==stu[i].num)/*查找输入的学号是否在记录中*/ { printf("findthestudent,show? (y/n)"); scanf("%s",ch); if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) { printf("numbernameelectiveexperimentrequiredsum\t\n"); printf(FORMAT,DATA);/*将查找出的结果按指定格式输出*/ break; } else return; } if(i==m) printf("cannotfindthestudent! \n");/*未找到要查找的信息*/ } voidmodify()/*自定义修改函数*/ { FILE*fp; inti,j,m=0,snum; if((fp=fopen("data","ab+"))==NULL) { printf("cannotopen\n"); return; } while(! feof(fp)) if(fread(&stu[m],LEN,1,fp)==1) m++; if(m==0) { printf("norecord! \n"); fclose(fp); return; } printf("pleaseinputthenumberofthestudentwhichdoyouwanttomodify! \n"); scanf("%d",&snum); for(i=0;i if(snum==stu[i].num)/*检索记录中是否有要修改的信息*/ break; if(i { printf("findthestudent! youcanmodify! \n"); printf("pleaseinputpercentum: "); printf("\nelective: "); scanf("%f",&Felec); printf("\nexperiment: "); scanf("%f",&Fexpe); printf("\nrequiredcourse: "); scanf("%f",&Frequ); printf("name: \n"); scanf("%s",stu[i].name);/*输入名字*/ printf("\nelective: "); scanf("%lf",&stu[i].elec);/*输入选修课成绩*/ printf("\nexperiment: "); scanf("%lf",&stu[i].expe);/*输入实验课成绩*/ printf("\nrequiredcourse: "); scanf("%lf",&stu[i].requ);/*输入必修课成绩*/ stu[i].sum=stu[i].elec*Felec+stu[i].expe*Fexpe+stu[i].requ*Frequ; } else { printf("cannotfind! "); getchar(); return; } if((fp=fopen("data","wb"))==NULL) { printf("cannotopen\n"); return; } for(j=0;j if(fwrite(&stu[j],LEN,1,fp)! =1) { printf("cannotsave! "); getch(); } fclose(fp); } voidinsert()/*自定义插入函数*/ { FILE*fp; inti,j,k,m=0,snum; if((fp=fopen("data","ab+"))==NULL) { printf("cannotopen\n"); return; } while(! feof(fp)) if(fread(&stu[m],LEN,1,fp)==1) m++; if(m==0) { printf("norecord! \n"); fclose(fp); return; } printf("pleaseinputpositionwheredoyouwanttoinsert! (inputthenumber)\n"); scanf("%d",&snum);/*输入要插入的位置*/ for(i=0;i if(snum==stu[i].num) break; for(j=m-1;j>i;j--) stu[j+1]=stu[j];/*从最后一条记录开始均向后移一位*/ printf("nowpleaseinputthenewinformation.\n"); printf("number: "); scanf("%d",&stu[i+1].num); for(k=0;k if(stu[k].num==stu[i+1].num&&k! =i+1) { printf("thenumberisexisting,pressanytocontinue! "); getch(); fclose(fp); return; } printf("pleaseinputpercentum: "); printf("\nelective: "); scanf("%f",&Felec); printf("\nexperiment: "); scanf("%f",&Fexpe); printf("\nrequiredcourse: "); scanf("%f",&Frequ); printf("name: \n"); scanf("%s",stu[i+1].name); printf("\nelective: "); scanf("%lf",&stu[i+1].elec); printf("\nexperiment: "); scanf("%lf",&stu[i+1].expe); printf("\nrequiredcourse: "); scanf("%lf",&stu[i+1].requ); stu[i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生成绩管理系统 C课程设计综述 学生 成绩管理系统 课程设计 综述