C语言课程设计实验报告4297210文档格式.docx

上传人:b****4 文档编号:14297274 上传时间:2022-10-21 格式:DOCX 页数:25 大小:234.03KB
下载 相关 举报
C语言课程设计实验报告4297210文档格式.docx_第1页
第1页 / 共25页
C语言课程设计实验报告4297210文档格式.docx_第2页
第2页 / 共25页
C语言课程设计实验报告4297210文档格式.docx_第3页
第3页 / 共25页
C语言课程设计实验报告4297210文档格式.docx_第4页
第4页 / 共25页
C语言课程设计实验报告4297210文档格式.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

C语言课程设计实验报告4297210文档格式.docx

《C语言课程设计实验报告4297210文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计实验报告4297210文档格式.docx(25页珍藏版)》请在冰豆网上搜索。

C语言课程设计实验报告4297210文档格式.docx

“MC0116”。

用来存放班级排名后的成绩,要求按以下形式存放。

名次

学号

姓名

英语

C语言

离散数学

线形代数

大学物理

密码学

平均成绩

1

01

缪军

96

95

94

93

94.7

3

02

陈军

90

84

91

78

92

68

85.1

16

03

曹军

69

81

86

82

64

79.1

9

04

胡均

87

89

58

71

83.3

18

05

武军

57

76

83

77.1

14

06

陶均

72

77

80.7

8

07

喻均

74

66

81.4

11

08

周均

75

80.4

19

09

吴军

59

77.8

6

10

张俊

67

83.7

王俊

79

61

82.3

22

12

李军

54

75.4

5

13

赵俊

83.6

15

郑君

73

85

80.0

20

钱均

75.8

24

欧均

74.2

17

汤俊

80.2

4

廖均

62

83.5

21

扬峻

51

76.3

2

孙俊

86.1

23

冯均

25

周君

73.9

7

曾俊

63

81.0

董均

高军

2)分别统计全班每门课的平均分和标准差,并计算个分数段的学生人数;

课程标准差的计算公式为:

Y=s^2=1n[(x1-m)^2+(x2-m)^2+...+(xn-m)^2]

3)用C语言创建一个数据文件,文件名为:

“KC0116”。

将文件中存放的数据以如下形式存放

编号

课程名称

平均分

标准差

优秀

良好

中等

及格

不及格

82.9

21.8

81.6

20.0

80.6

20.3

线性代数

79.5

25.1

79.2

24.3

76.8

22.5

4)打印每名学生成绩条,结果存放到用C语言创建的一个数据文件中,文件名为:

“cj0116”。

成绩条格式自定。

5)屏幕上显示所有存在不及格的课程的学生的名单(含学号、不及格的课程名称、课程的学分及成绩)。

6)屏幕上显示优等生名单(含学号、6门课程成绩、平均分、名次)。

(二)系统设计

准备工作:

编写两个记事本文件作为原始数据源。

本程序中建立两个文件,第一个中的内容是全班同学的5功课的成绩(英语,C语言,数学,大学物理,线性代数),保存在D盘下,其完整的路径名为D:

\wl0116.txt.第二个中的内容是所有的五门功课的属性(编号,名称,学分),同样保存在D盘下内,起完整的路径名为D:

\wl01kc.txt.

1.系统功能模块框架图

2.菜单结构图。

3.数据结构说明

*学生结构体*

structstudent

{

longnum;

*学号*

charname[20];

*姓名*

intscore[N];

*各科分数构成的一维数组*

doubleave;

*每名学生所有科目的加权平均分*

intt;

*名次*

}st[M];

structsubject

intnum;

*课程编号*

intexcellent;

*成绩优秀*

intgood;

*成绩良好*

intmid;

*成绩中等*

intpass;

*成绩及格*

intfail;

*不及格*

charkc[30];

*课程名称*

floatxuefen;

*课程学分*

*课程平均分*

doublebzc;

*课程标准差*

}course[N];

整个系统的设计,可以将所有数据划分到两个结构体中,一个与学生有关,一个与课程有关。

数据的引入,可以从两个文件中读入,一个是学生成绩表,一个是课程与学分相关。

然后,将数据进行

(1)加权平均;

(2)标准差处理,排出每个学生在班级的名次。

最后,写出文件。

(三)系统实现

(一).部分函数的实现过程:

1.读入数据函数ReadDat1()和ReadDat2()

用函数打开目标文件,通过文件指针指向目标文件,然后调用库函数(fscanf,fgets)将数据读入到定义的结构体当中。

第一步用fgets函数将文件中的的第一行的字符串读入到数组中,然后用一个for循环控制每个人的变化,将各种数据按照不同的类型规格赋值给结构体。

2.求平均分和标准差:

   求五门功课的平均分,用一个for循环控制着科目的变化,然后在内部再一个for循环控制人的变化将全班的人的某门功课的成绩累加起来,再除以总人数即得平均分,类似的即可求的各门课的标准差。

3.求每个人的加权平均成绩:

   首先用for循环得到五门课程的学分的总和,然后再通过for循环控制每个人的不断变化,把每个人的每门成绩乘以各门课的学分,将其累加起来,再除以学分的和即得各个人的加权平均成绩

4.排名次:

    首先用for循环控制各个人的变化,每一次将其名次赋值为1,然后将其平均成绩通过for循环于其他人进行比较,若小就将其自加1,最终即可得名次。

5.统计各分数段的人数:

 首先通过两个for循环检查每个人的每门课程,再通过switch语句判断起属于的类型。

6.C语言创建全班同学成绩单的数据文件和全班成绩分析:

 首先通过函数建立一个新的文件,for循环控制将分数输出到指定的文件中

(二)程序调试过程中的要点和难点:

在程序调试过程中,经常出现警告,这是因为数据类型不一致导致而成的。

由于不小心输入法的改变,容易造成一些不易发现的问题,比如在英文输入中的引号与在中文输入中的引号就是又区别的,应该保持在英文输入的环境中编辑此程序。

难点是,各个函数运行,要注意先后顺序。

因为一个函数的运行,需要上一个函数运行的结果为数据。

另外,还注意主函数的编写,是各个函数相互联系在一起。

(四)系统使用说明

源代码编写完成后,可以存放在记事本中,保存起来。

然后,选择打开方式为TC环境,打开运行程序。

在打开的界面上会显示如下菜单界面:

A在光标处输入:

2在屏幕上显示未及格学生名单;

B在光标处输入:

3在屏幕上显示优等生名单;

C在光标处输入:

4显示成绩分布(一个“=”代表一个人);

D在光标处输入:

5查询成绩

a在光标处输入:

1安学号查寻

b在光标处输入:

2按姓名查寻

E在光标处输入:

0退出界面;

F在光标处输入:

1进入子菜单选项

在光标处输入:

1创建班级名次文档到D盘;

2创建课程成绩文档到D盘;

3在屏幕上显示每个学生的成绩条;

5返回主菜单;

0退出编辑界面;

(五)测试数据

1.两个原始数据

(1)学生成绩表

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

当前位置:首页 > 总结汇报 > 学习总结

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

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