实验目的:学会建立动态链表
实验内容:学会建立动态链表* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作
* 完成日期:
* 版本号:
* 对任务及求解方法的描述部分
* 输入描述:数据来自score.txt
* 问题描述:
(1)结构体中的成员多些;
(2)从文件中读入数据;
(3)一边读数据一边得计算总分,为计算总分的平均值也得做些准备;
(4)并不是输出所有的节点
* 程序输出:所有的节点
* 程序头部的注释结束(此处也删除了斜杠)
//下面是程序
//下面是程序
#include <fstream> //用于从文件中读入数据的头文件
#include <iomanip> //用于处理一定输出格式的头文件
#include <iostream>
#include <string> //此程序一定要将C++标准库中的string头文件包含进来
using namespace std;
struct Project //声明结构体类型Project
{
int c;
int m;
int e;
int sum; //定义整型变量sum用于求成绩的总和
};
struct Student //声明结构体类型Student
{
char num[12];
string name;
Project grade;
struct Student *next;
};
int main()
{
Student *head = NULL,*p,*q;
int i,sum,average;
ifstream infile("score.txt", ios::in); //开始从文件中读出数据,存放到结构体数组中
if(!infile)
{
cerr << "open error!" << endl;
exit(1);
}
for(i = 0, sum = 0; i < 180; i++)
{
p = new Student;
infile >> p -> num >> p->name >> p -> grade.c >> p -> grade.m >> p -> grade.e;
p -> grade.sum = p -> grade.c + p -> grade.m + p -> grade.e;
sum = sum + p -> grade.sum;
p -> next = NULL;
if(i == 0)
head = p;
else
q -> next = p;
q = p;
}
average = sum / 180;
p = head;
while(p != NULL)
{
if(average <= p-> grade.sum && 60 <= p -> grade.c && 60 <= p -> grade.m && 60 <= p -> grade.e)
{
cout << setiosflags(ios::fixed) << setiosflags(ios::left);
cout << setw(8) << p -> num << " " << setw(8) << p -> name << " " << setw(8) << p -> grade.c << " "
<< setw(8) << p -> grade.m << " " << setw(8) << p -> grade.e << " " << setw(8) << p -> grade.sum << endl;
}
p = p -> next;
}
infile.close();
return 0;
}
1.老师说的没错,一个好的程序,是要有注释的,越是复杂的程序,注释的重要性就越是可见一斑,它能让你的思路清晰,当然也有利于自己读程序的方便,因为毕竟,代码越来越长,很多时候自己也会忘记一些语句的含义,所以,我以后的程序中会坚持使用注释。
2.这个程序,是在上一个程序的基础上的算是改进吧,主要,握个人觉得还是练习动态链表,所以啊,搞清动态链表的规则就很重要了,地址的传递很让人同疼,课本就显得很重要了,纵上所述,多看课本。
3.老师给的例题很有用,废话,没用的话老师也不会花那功夫对吧,所以啊,看好老师提供的资源,避免资源的浪费,不能辜负老师的劳动成果,看好老师给的例题,改写这个程序应该不是什么难题。
上机感言:
就像我上面经验积累中所说的,其一,要注意细节,细节怎么使它公诸于世那,注释是个很好的方法,怎么样,今天又学到一点东西吧!!!!!可以稍微的高兴一下。其二,明白程序需要什么,换句话说就是清楚要用什么学过的只是解决它,所以要求对课本知识的掌握程度必须熟练,不然,我想,要用动态链表解决问题,是很让人头疼的,因为中间有很多东西比较难以理解。所以,童鞋们,还是回归课本,好好打基础吧!!!!!当然这句话也是对我自己说的,其三,不要让老师的汗水付诸东流,这其实是为自己好,明明老师给了例题,你偏偏不看,非要我行我素,是会走弯路的,我就曾经反过左倾错误,在做从文件中读取数据的练习时,没看老师给的例题,结果浪费时间精力,结果是抓耳挠腮,徒劳无功。所以亲们,不要搞个性,苦了自己!!!!!!好了,就说这么多吧,先~~~~~