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

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

  1. 实验目的

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

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

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

2.实验内容

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

姓名 数学分析 高等代数 解析几何
张红 78 94 90
李丽君 65 73 82
成平 94 68 78
王伟 84 86 69
文锦春 74 92 60
林黛玉 66 83 70
付凌云 88 79 82
岳不群 90 82 93
令狐冲 81 77 97
温玉琪 95 84 68
胡建军 85 73 75
刘汉 90 87 89
秋昌平 83 71 74
秦敖天 96 92 95
方世杰 83 90 88

三、实验要求:

  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
58
59
#include <fstream>  
#include <string>
#include <iostream>
#include <sstream>
#define N 10
using namespace std;
struct studentInfo
{
char name\[50\];
int analysis;
int algebra;
int analGeo;
int Average;
} c\[N\];
int main()
{
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<=15;i++)
{
getline (in, line); //接受一个字符串
istringstream is(line); //从string对象str中读取字符
is>>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); //关闭文件
return 0;
}
0%