数据结构实验一:C++基础程序设计

数据结构实验一:C++基础程序设计

发表于2018-06-23|分类于||阅读次数:
本文字数:2.8k|阅读时长 ≈5 分钟

实验一: C++ 基础程序设计

1.
实验目的

1.
复习C语言程序设计,

2.
回顾C语言结构体类型和指针类型的应用。

3.
学习用C语言进行文件读写操作.

2.实验内容

某组有15个人,每个人有3门课的考试成绩。求该组单科的平均成绩及每人的平均成绩. 具体成绩单如下表所示:

姓名数学分析高等代数解析几何 张红789490 李丽君657382 成平946878 王伟848669 文锦春749260 林黛玉668370 付凌云887982 岳不群908293 令狐冲817797 温玉琪958468 胡建军857375 刘汉908789 秋昌平837174 秦敖天969295 方世杰839088
三、实验要求:

1.
用结构体数组studentInfo 存储以上表格的数据, 该结构体含有四个成员:

name – 存储学生姓名, 字符串类型

analysis, – 存储数分成绩,整数类型

algebra – 存储高代成绩,整数类型

analGeo– 存储解析几何成绩,整数类型

Average—存放平均成绩

1.
表中的数据需要放入一文本文件(名为Scores.txt)中, 编写代码从中读入数据放入数组studentInfo 中。

2.
编程实现平均成绩的计算,并将每个学生的各科成绩及其平均成绩写入名为ScoresAnalysis.txt的文件中。

3.
在 ScoresAnalysis.txt 的最后一行,写入各门课程的平均成绩。

4.
构造一指针 Sp 指向结构类型studentInfo 变量, 读入scoresAnalysis 中的每个学生信息,放入Sp所指定内存,然后将Sp所指定的内存区域信息在屏幕上显示出来。

5.
在屏幕上显示所有写入文件的数据,显示学生各项成绩时,

6.
填写实验报告。

四、实验报告填写要求: 用表格的形式填写如下信息:

1.
姓名,学号, 实验日期(第几周, 年 月 日)

2.
实验编号(如: 本次实验编号为实验一)

3.
实验名称

4.
实验步骤: (填写本次实验所得完整的程序代码)

5.
实验结果: 把程序运行结果截图拷贝到实验报告中(Word 文档).

学习资料:

-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

#include
#include
#include
#include
#define N 10
usingnamespacestd;
structstudentInfo
{
char name\[50\];
int analysis;
int algebra;
int analGeo;
int Average;
} c\[N\];
intmain()
{
int i;
int analysis_sum=0;
int algebra_sum=0;
int Average_sum=0;
string line;
string stdr;
string writ;
FILE *fp;
char ch;
ifstream in("Scores.txt");
ofstream outf; //定义ofstream类(输出文件流类)对象outfile
outf.open("ScoresAnalysis.txt"); //使文件流与ScoresAnalysis.txt文件建立关联
for(int i=0;i>c\[i\].name>>c\[i\].analysis>>c\[i\].algebra>>c\[i\].analGeo; //变量赋值
c\[i\].Average=(c\[i\].analysis+c\[i\].algebra+c\[i\].analGeo)/3; //计算平均值
if(i==0){
outf<<line<<" "<<"平均成绩"<<endl; //第一行
}else{
outf<<line<<" "<<c\[i\].Average<<endl; //学生平均成绩
analysis_sum+=c\[i\].analysis;
algebra_sum+=c\[i\].algebra;
Average_sum+=c\[i\].analGeo;
}

}
outf<<"平均"<<" "<<analysis\_sum/15<<" "<<algebra\_sum/15<<" "<<""<<Average_sum/15; //科目平均成绩
outf.close(); //关闭文件

//读入ScoresAnalysis.txt
fp=fopen("ScoresAnalysis.txt","rt"); //打开文本
ch=fgetc(fp); //读取文本中第一个字符

while (ch!=EOF)
{
putchar(ch); //打印字符到屏幕上
ch=fgetc(fp); //指针变量加一
}
fclose(fp); //关闭文件
return0;
}