计算机高级语言课程设计C学生成绩管理系统.docx

上传人:b****7 文档编号:10678858 上传时间:2023-02-22 格式:DOCX 页数:25 大小:123.42KB
下载 相关 举报
计算机高级语言课程设计C学生成绩管理系统.docx_第1页
第1页 / 共25页
计算机高级语言课程设计C学生成绩管理系统.docx_第2页
第2页 / 共25页
计算机高级语言课程设计C学生成绩管理系统.docx_第3页
第3页 / 共25页
计算机高级语言课程设计C学生成绩管理系统.docx_第4页
第4页 / 共25页
计算机高级语言课程设计C学生成绩管理系统.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

计算机高级语言课程设计C学生成绩管理系统.docx

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

计算机高级语言课程设计C学生成绩管理系统.docx

计算机高级语言课程设计C学生成绩管理系统

本科生课程论文封面

课程名称计算机高级语言课程设计(C)

教师姓名

本科生姓名

本科生学号

本科生专业

所在院系

类别

日期

 

目录1

1.题目要求2

2.需求分析2

3.总体设计2

3.1功能模块划分及流程图2

3.2数据结构设计2

4.详细设计3

4.1主函数3

4.2各功能模块设计7

5.上机操作15

5.1数据源说明15

5.2编译、链接和运行15

5.3运行结果16

6.总结19

7.致谢20

参考文献21

 

1.题目要求

某学期某班级学生成绩见文件“”,该学期课程的相关信息见“”,请根据上述两个文件编写代码实现如下功能:

(1)统计该班级学生的学习科目数、总分、所修学分数、不及格科目数、不及格学分;

(2)计算各个学生的成绩绩点;

课程绩点计算方式

(成绩/10.0-5)

学分绩点计算方式

∑(课程绩点*该课程学分*该课程权重)/∑(课程学分)

2.需求分析

根据题目要求,由于学生成绩信息与学期课程相关信息存放于文件中,所以应提供文件的读取,输出等操作;在程序中需要根据相应数据进行计算,所以应提供显示、查找、排序等操作;另外,还应提供键盘式的选择菜单来实现功能选择。

3.总体设计

3.1功能模块划分及流程图

根据上面的需求分析,可以将该系统的设计分为大模块,即查询模块、浏览模块、统计模块、排序模块、输出模块、退出模块。

学生课程成绩查询系统

查询

浏览

统计

排序

输出

退出

 

3.2数据结构设计

本系统的实现,全部采用链表这种数据结构,用链表实现课程的查询、浏览、统计、学生成绩信息、挂科情况、以及绩点排序输出,读入的课程信息、读入的学生成绩信息、学生信息统计采用的是结构体这种数据结构。

 

读入学生成绩信息结构体

{

[11];学号

[10];姓名

g[];所选课程

}[];

读入课程信息结构体

{

[30];课程名称

;学分

[5];课程类型

}[];

学生信息统计结构体

{

[11];学号

[10];姓名

;课程数目

;总分

;学分

;挂科科目

;挂科学分

;绩点

}[];

4.详细设计

4.1主函数

开始

读取学生课程文件

读取文件

读取课程信息文件

信息统计

结束

【主函数流程图】

 

【程序】

()

{

i=0=0;

*1,*2;

[50];

=1;

(i=0<)

{

(j=0<30)

{

[i][j]='\0'课程名称

}

}

("********************************************************************************\n");

("欢迎使用学生课程查询系统\n");

("制作人:

174131班王雪峰\n");

("********************************************************************************");

("开始读取文件...\n");

1=("","")打开第一个文件

(1)

{

("!

!

!

无法读取文件\n");

;

}

{

i=0;

j=0;

n=0;

[500];

(,5001);

([i]'\n')统计学习科目

{

([i]'')''空格号

{

([1]'')

{

}

{

;

}

}

;

}

1;

i=10;

([i]'\n')读取学习科目名称

{

([i]'')

{

[j][]='\0'‘\0’是字符串结束符

}

{

[j][]=[i];

}

([i]'')

{

([1]'')

{

}

{

n=0;

;

}

}

;

}

[13][27]='\0';

(i=0<)读取学习科目成绩

{

(1,""[i][i]);

(j=0<)

{

(1,""[i][j]);

}

}

}

("读取完毕\n");

("开始读取文件...\n")读取第二个文件

2=("","");

(2)

{

("!

!

!

无法读取文件\n");

;

}

{

[500];

(,5002);

(i=0<)

{

(2,""[i][i][i]);

}

}

(i=0<)读取课程信息

{

(j=0<)

{

(([i][j])0)

{

[i]=[j];

(([j],"必修"))

{

[j]=1.2;

}

(([j],"选修"))

{

[j]=1.0;

}

{

[j]=1.1;

}

}

}

}

("读取完毕\n");

(1);

(2);

();统计

4.2各功能模块设计

(1)具体功能菜单模块

【需求分析】

功能菜单模块设计比较简单,主要功能为提供数据查询,处理,选择和部分函数的调运。

其中各功能菜单模块用菜单方式选择。

【流程图】

开始

显示一系列功能选项

输入n,判断n是否是1~4

Y

N

 

1,输入m,则判断m是否是1~3

1,调用其他功能模块函数

根据n的值调用个功能模块函数

结束

根据m的值调用个功能模块函数

N

Y

 

【程序】

()

{

n=0;

i=0;

j=0;

w;

("********************************************************************************\n");

("|1-查询学生信息|\n");

("|2-浏览挂科信息|\n");

("|3-绩点排序输出|\n");

("|4-退出查询系统|\n");

("********************************************************************************");

("请输入相应数字进行查询:

");

("");

(n1)

{

m=0;

("********************************************************************************\n");

("|1-查看各位成绩信息|\n");

("|2-查看同学各科成绩|\n");

("|3-请返回上一层菜单|\n");

("********************************************************************************\n");

("请输入相应数字进行查询:

");

("");

(m1)

{

s[20];

("**************************\n");

("请输入学号或姓名进行查询:

\n");

("**************************\n");

("");

(s[0]'1')

{

(i=0<)

{

(([i])0)

{

("学号\n"[i]);

("姓名\n"[i]);

("该学生的学习科目数\n"[i]);

("学分绩点\n"[i]);

("总分\n"[i]);

("所修学分数\n"[i]);

("不及格科目数\n"[i]);

("不及格学分.1f\n"[i]);

("\n");

}

}

}

{

(i=0<)

{

(([i])0)

{

("学号\n"[i]);

("姓名\n"[i]);

("该学生的学习科目数\n"[i]);

("学分绩点\n"[i]);

("总分\n"[i]);

("所修学分数\n"[i]);

("不及格科目数\n"[i]);

("不及格学分.1f\n"[i]);

}

}

}

}

(m2)

{

s[20];

("|请输入学号或姓名进行查询|:

\n");

("");

(s[0]'1')

{

(i=0<)

{

(([i])0)

{

("学号\n"[i]);

("姓名\n"[i]);

("学分绩点\n"[i]);

(j=0<)

{

(""[j]);

("\n");

("\n"[i][j]);

}

("\n");

}

}

}

{

(i=0<)

{

(([i])0)

{

("学号\n"[i]);

("姓名\n"[i]);

("学分绩点\n"[i]);

(j=0<)

{

([i][j]>0)

{

(""[j]);

("\n");

("\n"[i][j]);

}

}

}

}

}

}

}

(n2)

{

("\n本学期挂科学生有如下:

\n");

(i=0<)

{

([i]0)

{

("\n**********************************\n");

("*学号*:

*姓名*:

\n"[i][i]);

("**********************************\n");

("**挂科科目有**:

\n");

("**********************************\n");

0;

(j=0<)

{

(([i][j]<60)([i][j]>0))

{

("\n"[j]);挂科项目

}

}

("共挂科门\n");

}

}

}

(n3)

{

();排序

}

(n4)

{

("\n****************!

请按任意键退出!

*********************\n");

("\n");

;

}

{

(n<1>5)

{

1;

();

("\n!

!

!

!

!

!

!

!

!

!

!

!

!

您的输入有误,请重新重新输入!

!

!

!

!

!

!

!

!

!

!

\n");

}

0;

}

}

}

(2)挂科统计模块

【需求分析】

该功能模块主要根据题目要求,通过上述数据显示,进行相关挂科统计得到的相应信息。

【流程图】

开始

读取学生课程信息数据

 

选课各科成绩>=60

输出相应数据到程序界面

返回主菜单

结束

Y

N

 

【程序】

(){

i=0;

j=0;

("统计学生成绩信息完毕,请进行相关查询....\n");

(i=0<)统计相关信息

{

=0总分

c=0总学分

=0学分绩点计算分子

f=0挂科数

=0挂科学分

0科目数

([i][i]);

([i][i]);

(j=0<)

{

(([i][j]<60)([i][j]>0))

{

;

[j];

}

[i][j];

([i][j]0)

{

;

c[j];

([i][j]>=60)

([i][j]/10.0-5)*[j]*[j]学分绩点计算

([i][j]<60)

=0;

}

}

[i]科目数

[i]=f;挂科数

[i]=;挂科学分

[i]=;总分

[i]=c;总学分

[i]=;学分绩点

}

}

(3)绩点排序显示输出模块

【需求分析】

该模块功能是根据上述数据,运用相关计算方法,进行简单计算后,利用冒泡排序法对绩点大小进行排序,并输出至文件中。

【流程图】

开始

读取学生课程信息

依次选取学生所选课程的学分以及对应成绩,计算学生选课绩点

依据公式进行绩点计算

绩点排序

输出至文件

 

返回主菜单

结束

 

【程序】

()

{

("开始根据绩点排序...\n");

*;

=("","w");

i=0;

j=0;

(i=0<)冒泡排序

{

(j=0<)

{

;

([i]>[j])

{

=[i];

[i]=[j];

[j]=;

}

}

}

("学号姓名绩点\n");

(0<)

{

("\n"[i][i][i]);

}

();

("已经将绩点信息输出至文件内,可以进行查看\n");

(i=0<)

{

(,"\n"[i][i][i]);使得信息输出到指定的文件

}

();

}

5.上机操作

5.1数据源说明

由于数据是之前存储在文件中,所以数据形式等不需要太大形式的改动,只需要适当更改代码间隔等来实现数据的读取,从而对数据进行合理的运用。

5.2编译、链接和运行

减压压缩包全部文件,即可打开运行,可能会出现错误,请注意需要减压压缩文件全部内容,才可以正常运行。

5.3运行结果

【具体功能菜单】

【学生相关信息查询】

【各位成绩信息】——以同学为例

 

【同学各科成绩】——以同学为例

【挂科信息查询】

 

【绩点排序输出功能】

【输出到文件】

6.总结

这次c语言课程设计虽然准备不足,仓促赶工,但是最后还是勉强的把程序基本框架以及程序运行写好,但其中还有几多小错误,比如说只能用自己的文件打开以后运行c程序才是可以较完整的运行,而用老师的原件打开以后,读取会出现错误,尤其是在绩点排序的问题上,最后不断地修改,但还是无能为力,加上对c语言的淡忘,原本还掌握些许技巧,但现在实在是改不好,找了同学帮忙结果他们也不会改,我只能说我尽力了,真的改不下去了,还希望老师能谅解,毕竟学完之后这么久,再加上有许多概念已经不清楚了,所以学习过后还是有些力不存心。

程序可以运行,有些地方也可以有正确的答案,但是在绩点排序问题上无法解决,这点让我自己很失望,改了好多次,但是还是有些不对,最终还是感觉有错误,还请老师批评。

当然,这次程序设计也给我能复习c语言起到了一定的帮助作用,虽然写过报告之后可能又会忘记,但是能再学一次也无妨不是好事,总体来说这次c语言实习是充实的。

 

7.致谢

参考文献

[1]谭浩强.C程序设计(第三版)[M].北京:

清华大学出版社,2005.

[2]张冬梅,刘远兴,陈晶,等.基于的C语言课程设计及学习指导[M].北京:

清华大学出版社,2011.

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

当前位置:首页 > 工程科技 > 能源化工

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

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