C语言课程设计学生成绩管理系统完整版文档格式.docx

上传人:b****4 文档编号:16497656 上传时间:2022-11-24 格式:DOCX 页数:22 大小:19.10KB
下载 相关 举报
C语言课程设计学生成绩管理系统完整版文档格式.docx_第1页
第1页 / 共22页
C语言课程设计学生成绩管理系统完整版文档格式.docx_第2页
第2页 / 共22页
C语言课程设计学生成绩管理系统完整版文档格式.docx_第3页
第3页 / 共22页
C语言课程设计学生成绩管理系统完整版文档格式.docx_第4页
第4页 / 共22页
C语言课程设计学生成绩管理系统完整版文档格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C语言课程设计学生成绩管理系统完整版文档格式.docx

《C语言课程设计学生成绩管理系统完整版文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计学生成绩管理系统完整版文档格式.docx(22页珍藏版)》请在冰豆网上搜索。

C语言课程设计学生成绩管理系统完整版文档格式.docx

voidnew1();

/*新增一个学生成绩函数*/

voidxiugai();

/*修改学生成绩*/

voidxgcj(int);

/*修改成绩*/

voiddelete1();

/*删除学生信息函数*/

voidtongji();

/*统计界面函数*/

voidtongji1();

/*计算每个学生平均分*/

voidtongji2();

/*计算每门课程的平均分*/

voidpaixu1();

/*排序函数*/

voidpaino();

/*按学号排序*/

voidpaiave();

/*按平均分排序*/

voidpaidkcj();

/*按单科成绩排序*/

voidchange(int,int);

/*交换结构体数组中的两个记录*/

voidoutputx(int);

/*选择输出单科成绩*/

voidfind1();

/*查找界面函数*/

intfind(charsno[]);

/*按学号查找*/

intfindname(charcname[]);

/*按姓名查找*/

voidfindyear(intcyear);

/*按入年查找*/

voidsave();

/*保存文件*/

voidstop();

/*停顿函数*/

voidstop()/*停顿函数(公共函数)*/

printf("

PressAnyKeyToContinue...\n"

);

getchar();

}

voidoutput()/*输出学生成绩函数(公共函数)*/

inti,j;

===================================================================\n"

学号姓名班级专业入年C语言高数大物电路模电\n"

for(i=0;

i<

num;

i++)

{

%s%s%s%s%d"

stu[i].no,stu[i].name,stu[i].grade,stu[i].pro,stu[i].year);

for(j=0;

j<

5;

j++)

%.1f"

stu[i].score[j]);

\n"

}

stop();

voidinit()/*系统初始化函数*/

if(access("

stu.dat"

0))/*判断文件是否存在*/

newfile();

/*若不存在,新建数据文件*/

else

read1();

/*若存在,读取数据*/

voidnewfile()/*建立新的数据文件*/

inti;

FILE*fp;

if((fp=fopen("

"

wb"

))==NULL)/*创立二进制文件*/

创立文件失败,请重新运行程序.\n"

/*显示"

创立文件失败,请重新运行程序"

*/

exit(0);

/*终止程序*/

初次运行,进行数据初始化...\n"

/*显示"

初次运行,进行数据初始化..."

请输入学生人数:

"

scanf("

%d"

&

num);

请输入第%d个学生的学号:

i+1);

请输入第i+1个学生的学号:

/*吃回车*/

gets(stu[i].no);

姓名:

gets(stu[i].name);

班级:

gets(stu[i].grade);

专业:

gets(stu[i].pro);

入年n:

入年"

stu[i].year);

C语言成绩:

C语言成绩"

%f"

stu[i].score[0]);

高数成绩:

高数成绩"

stu[i].score[1]);

大物成绩:

大物成绩"

stu[i].score[2]);

电路成绩:

电路成绩"

stu[i].score[3]);

模电成绩:

模电成绩"

stu[i].score[4]);

fwrite(&

stu[i],1,sizeof(structstudent),fp);

/*把第i+1名学生成绩写入文件*/

fclose(fp);

========================\n"

刚才输入的%d个数据为:

num);

刚才输入的num个数据为:

========================\n\n"

output();

voidread1()/*从数据文件中读取数据*/

num=0;

/*num为数据文件中实际存储的学生人数*/

fp=fopen("

r"

if(fp==NULL)/*数据文件不存在*/

文件打开失败!

重新运行程序\n"

重新运行程序"

while(!

feof(fp))/*文件结束检测"

fread(&

stu[num],1,sizeof(structstudent),fp);

num++;

num--;

\t\t\t=======================================\n"

\t\t\t现有%d个学生的成绩:

现有NUM个学生的成绩:

\t\t\t=======================================\n\n"

voidweihu()/*维护界面函数*/

charc1;

while

(1)

\n\n\n\t\t\t************************\n"

\t\t\t*维护*\n"

\t\t\t*1.新增*\n"

/*新增*/

\t\t\t*2.删除*\n"

/*删除(按学号)*/

\t\t\t*3.修改*\n"

/*修改*/

\t\t\t*9.返回*\n"

/*返回*/

\t\t\t************************\n"

\t\t\t请选择:

/*请选择:

c1=getchar();

if(c1=='

9'

break;

switch(c1)

case'

1'

:

new1();

2'

delete1();

3'

xiugai();

default:

选择有误,请重选!

/*"

voidnew1()/*新增一个学生成绩函数*/

请输入学号:

gets(stu[num].no);

gets(stu[num].name);

gets(stu[num].grade);

gets(stu[num].pro);

入年:

stu[num].year);

stu[num].score[0]);

stu[num].score[1]);

stu[num].score[2]);

stu[num].score[3]);

stu[num].score[4]);

\n======================================\n"

现有%d个学生的成绩:

======================================\n\n"

voidxiugai()/*修改学生成绩*/

charxg[11];

\n请输入要修改学生的学号:

\n\n"

gets(xg);

if(strcmp(stu[i].no,xg)==0)break;

if(i==num)

\n数据文件无该生信息!

\n\n请重新输入学号.\n\n"

return;

xgcj(i);

voidxgcj(intx)/*修改成绩*/

charxueke[5][10]={"

C语言"

高数"

物理"

电路"

模电"

};

char(*p)[10],c;

intj,k;

p=xueke;

for(;

;

\t\t\t************************************\n\n"

\t\t\t成绩\n"

\t\t\t1.C语言\n"

/*C语言*/

\t\t\t2.高数\n"

/*高数*/

\t\t\t3.物理\n"

/*大学物理*/

\t\t\t4.电路\n"

/*电路*/

\t\t\t5.模电\n"

/*模电*/

\t\t\t9.返回\n\n"

/*返回上级*/

\t请选择要修改的成绩(按1.2.3.4.5.9):

c=getchar();

if(c=='

)break;

elseif(c>

='

&

c<

5'

k=c-49;

\n请输入%s成绩:

p+k);

stu[x].score[k]);

\n修息为:

stu[x].no,stu[x].name,stu[x].grade,stu[x].pro,stu[x].year);

stu[x].score[j]);

elseprintf("

\n选择有误,请重选!

intfind(charsno[])/*按学号查找*/

if(strcmp(stu[i].no,sno)==0)/*判断两个字符串相等*/

returni;

/*查找成功*/

return-1;

/*查找失败*/

voiddelete1()/*删除学生信息函数*/

charcno[11];

请输入要删除的学生学号:

/*"

请输入要删除的学生学号"

gets(cno);

i=find(cno);

if(i!

=-1)

{for(j=i;

stu[j]=stu[j+1];

现有%d个学生的成绩:

else{printf("

请输入正确的学号.\n"

voidtongji()/*统计界面函数*/

charc2;

\n\n\n\t\t\t*******************************\n"

\t\t\t*统计*\n"

\t\t\t*1.学生平均分*\n"

/*计算学生平均分*/

\t\t\t*2.课程平均分*\n"

/*计算每门课程平均分*/

\t\t\t*******************************\n"

\t\t\t请选择:

c2=getchar();

if(c2=='

)break;

switch(c2)

tongji1();

\n\n学生平均分为:

===========================================\n"

学号姓名入年平均分\n"

%s%s%d%.2f\n"

stu[i].no,stu[i].name,stu[i].year,stu[i].ave);

tongji2();

选择有误,请重选\n"

voidtongji1()/*计算每个学生平均分*/

stu[i].ave=0;

stu[i].ave+=stu[i].score[j];

stu[i].ave=stu[i].ave/5;

voidtongji2()/*计算每门课程的平均分*/

floatsum;

floatavec[5];

/*储存每门课的平均分*/

sum=0;

sum+=stu[i].score[j];

avec[j]=sum/num;

\n\n各科平均分:

各科平均分:

===================================\n"

C语言高数大物电路模电\n"

%-7.1f"

avec[i]);

voidpaixu1()/*排序界面*/

charc3;

\n\n\n"

\t\t\t***********************************\n"

\t\t\t*排序*\n"

\t\t\t*1.按学号排序*\n"

\t\t\t*2.按平均分排序*\n"

\t\t\t*3.按单科成绩排序*\n"

\t\t\t*9.返回*\n"

\t\t\t***********************************\n\n"

\t请选择:

(按1.2.3.9):

c3=getchar();

if(c3=='

switch(c3)

paino();

break;

paiave();

paidkcj();

/*选择有误,请重选!

voidpaino()/*按学号排序*/

{/*按学号从低到高冒泡法排序*/

num-1-i;

if(strcmp(stu[j].no,stu[j+1].no)>

0)

change(j,j+1);

\n排序后为:

排序后为:

voidpaiave()/*按平均分排序*/

{/*按平均分从高到低冒泡法排序*/

/*计算平均成绩*/

num-i-1;

if(stu[j].ave<

stu[j+1].ave)

\n\t排序后为:

\t===============================================\n"

\t学号姓名入年平均分排名\n"

\t%s%s%d%.2f%4d\n"

stu[i].no,

stu[i].name,stu[i].year,stu[i].ave,i+1);

voidpaidkcj()/*按单科成绩排序*/

charc;

inti,j,k;

\t\t\t单科成绩\n"

\t\t\t**

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1