学生成绩管理系统开发实验Word格式文档下载.docx

上传人:b****1 文档编号:15349758 上传时间:2022-10-29 格式:DOCX 页数:14 大小:20.62KB
下载 相关 举报
学生成绩管理系统开发实验Word格式文档下载.docx_第1页
第1页 / 共14页
学生成绩管理系统开发实验Word格式文档下载.docx_第2页
第2页 / 共14页
学生成绩管理系统开发实验Word格式文档下载.docx_第3页
第3页 / 共14页
学生成绩管理系统开发实验Word格式文档下载.docx_第4页
第4页 / 共14页
学生成绩管理系统开发实验Word格式文档下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统开发实验Word格式文档下载.docx

《学生成绩管理系统开发实验Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统开发实验Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统开发实验Word格式文档下载.docx

平时成绩、期中成绩和期末成绩。

②查询指定学生的成绩;

查询指定课程的成绩。

③打印个人和班级成绩单:

在显示屏上输出个人成绩单和班级成绩单。

④成绩排名:

按成绩分类输出成绩单。

⑤成绩分析报告:

至少包含平时成绩、最高成绩、最低成绩、按分数段输入成绩。

⑥用文件存储成绩基础数据:

基础数据包含:

学生姓名、学号、课程名称、平时成绩、期中成绩、期末成绩。

(3)成员分工

(四)主要仪器设备

仪器:

计算机

实验环境:

Windows:

XP/7/8Devc++

(五)源代码及注释:

#include<

stdio.h>

stdlib.h>

string.h>

structstudent

{//储存学生信息

intid;

doubleusual,mid,final,score,gpa;

charname[20];

}st[10000];

voidsave(charc[],intn,structstudentst[])

{//将学生信息保存到文件中

inti;

FILE*fp;

if(!

(fp=fopen(c,"

wb"

)))//打开或创建文件名为c的文件

{//若打开失败

printf("

\t抱歉,无法建立该文件。

请重试!

\n"

);

return;

}

for(i=0;

i<

n;

++i)//若打开成功

fwrite(&

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

fclose(fp);

}

intcomp(constvoid*a,constvoid*b)

{//qsort中的比较函数

if(((structstudent*)a)->

score!

=((structstudent*)b)->

score)//成绩不同时比较成绩

return((structstudent*)b)->

score-((structstudent*)a)->

score;

return((structstudent*)a)->

id-((structstudent*)b)->

id;

//成绩相同时比较学号

intfind(charc[])

{//打开相应文件,提取学生信息

rb"

)))//打开名为c的文件

{//若名为c的文件不存在

printf("

无法查询到该课程!

return-1;

}

rewind(fp);

for(i=0;

!

feof(fp);

++i)//文件存在,读取信息

fread(&

returni-1;

//返回学生人数

doublegpa(doublescore)

{//计算gpa(成绩统一上取整)

if(score<

=59)

return0;

=62)

return1.0;

=65)

return1.3;

=69)

return1.7;

=72)

return2.0;

75)

return2.3;

=79)

return2.7;

=82)

return3.0;

=85)

return3.3;

=89)

return3.7;

return4.0;

voidinsert()

{//输入学生成绩及信息

charc[20];

inti,x,y,z;

//x、y、z分别表示平时、期中、期末成绩所占比例

system("

cls"

//清屏

printf("

\t请输入课程名称(如需退出请输stop):

"

scanf("

%s%*c"

c);

//使用%*c是为了防止对后续输入有影响

strcmp(c,"

stop"

))

do{

\t平时期中期末所占比例和为100%%\n\n"

\t请输入平时成绩所占比例(%%):

scanf("

%d"

&

x);

\t请输入期中成绩所占比例(%%):

y);

\t请输入期末成绩所占比例(%%):

z);

}while(x+y+z!

=100);

;

++i){

\n\t请输入学生学号(若结束录入,请输0):

scanf("

st[i].id);

if(!

(st[i].id))

break;

\t请输入学生姓名:

%s"

st[i].name);

\t请输入平时成绩:

%lf"

st[i].usual);

\t请输入期中成绩:

st[i].mid);

\t请输入期末成绩:

st[i].final);

st[i].score=st[i].usual*x/100+st[i].mid*y/100+st[i].final*z/100;

st[i].gpa=gpa(st[i].score);

save(c,i,st);

//保存

pause"

voidamend()

{//修改学生成绩及信息

inti,n,num,x,y,z;

//清屏

for(n=-1;

0;

){

\t请输入课程名(退出请输入stop):

return;

n=find(c);

//打开相应文件

while

(1){

\t请输入需修改学生学号(若结束录入,请输0):

num);

if(!

num)

for(i=0;

++i){//依据学号查找此学生

if(st[i].id==num){//找到之后,重新输入成绩

printf("

scanf("

st[i].score=st[i].usual*x/100+st[i].mid*y/100+st[i].final*z/100;

st[i].gpa=gpa(st[i].score);

break;

//成绩更新后停止查找

}

}

if(i==n)//查找了所有学号,均不符

printf("

\t抱歉,查无此人!

save(c,n,st);

//重新保存文件,并覆盖之前的数据

voidseek()

{//个人成绩查询

inti,n,num;

printf("

请输入学生学号:

scanf("

for(n=-1;

printf("

请输入课程名称(结束请输stop):

scanf("

//c为相应文件名

if(!

return;

n=find(c);

//n为学生人数

++i)//依据学号查找此学生

if(num==st[i].id){//找到之后,输出成绩

printf("

\t姓名:

%s\t学号:

%d\n\t平时成绩:

%6.1lf\t期中成绩:

%6.1lf\t期末成绩:

%6.1lf\n\t总成绩:

%6.1lf\t\tGPA:

%6.1lf\n"

st[i].name,st[i].id,st[i].usual,st[i].mid,st[i].final,st[i].score,st[i].gpa);

抱歉,查无此人!

voidrank()

{//班级成绩排名

inti,n;

while

(1){

system("

\t请输入课程名(如结束请输入stop):

%s%

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

当前位置:首页 > 农林牧渔 > 农学

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

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