第十七周实验报告2

 

实验目的:学会建立动态链表
实验内容:学会建立动态链表* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:  动态链表                           
* 作    者:  徐嘉健                           
* 完成日期:  2011       年  12     月    19     
* 版本号:    number one       

* 对任务及求解方法的描述部分
* 输入描述:数据来自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;
}

运行结果:
第十七周实验报告2

第十七周实验报告2

第十七周实验报告2

第十七周实验报告2

经验积累:

1.老师说的没错,一个好的程序,是要有注释的,越是复杂的程序,注释的重要性就越是可见一斑,它能让你的思路清晰,当然也有利于自己读程序的方便,因为毕竟,代码越来越长,很多时候自己也会忘记一些语句的含义,所以,我以后的程序中会坚持使用注释。

2.这个程序,是在上一个程序的基础上的算是改进吧,主要,握个人觉得还是练习动态链表,所以啊,搞清动态链表的规则就很重要了,地址的传递很让人同疼,课本就显得很重要了,纵上所述,多看课本。

3.老师给的例题很有用,废话,没用的话老师也不会花那功夫对吧,所以啊,看好老师提供的资源,避免资源的浪费,不能辜负老师的劳动成果,看好老师给的例题,改写这个程序应该不是什么难题。

上机感言:

就像我上面经验积累中所说的,其一,要注意细节,细节怎么使它公诸于世那,注释是个很好的方法,怎么样,今天又学到一点东西吧!!!!!可以稍微的高兴一下。其二,明白程序需要什么,换句话说就是清楚要用什么学过的只是解决它,所以要求对课本知识的掌握程度必须熟练,不然,我想,要用动态链表解决问题,是很让人头疼的,因为中间有很多东西比较难以理解。所以,童鞋们,还是回归课本,好好打基础吧!!!!!当然这句话也是对我自己说的,其三,不要让老师的汗水付诸东流,这其实是为自己好,明明老师给了例题,你偏偏不看,非要我行我素,是会走弯路的,我就曾经反过左倾错误,在做从文件中读取数据的练习时,没看老师给的例题,结果浪费时间精力,结果是抓耳挠腮,徒劳无功。所以亲们,不要搞个性,苦了自己!!!!!!好了,就说这么多吧,先~~~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值