学生成绩管理系统 C课程设计综述.docx

上传人:b****4 文档编号:11401656 上传时间:2023-05-31 格式:DOCX 页数:24 大小:101.31KB
下载 相关 举报
学生成绩管理系统 C课程设计综述.docx_第1页
第1页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第2页
第2页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第3页
第3页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第4页
第4页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第5页
第5页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第6页
第6页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第7页
第7页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第8页
第8页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第9页
第9页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第10页
第10页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第11页
第11页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第12页
第12页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第13页
第13页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第14页
第14页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第15页
第15页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第16页
第16页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第17页
第17页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第18页
第18页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第19页
第19页 / 共24页
学生成绩管理系统 C课程设计综述.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

学生成绩管理系统 C课程设计综述.docx

《学生成绩管理系统 C课程设计综述.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统 C课程设计综述.docx(24页珍藏版)》请在冰点文库上搜索。

学生成绩管理系统 C课程设计综述.docx

学生成绩管理系统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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2