第17周 任务二

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

* 对任务及求解方法的描述部分
* 输入描述:数据来自score.txt
* 问题描述:

(1)结构体中的成员多些;

(2)从文件中读入数据;

(3)一边读数据一边得计算总分,为计算总分的平均值也得做些准备;

(4)并不是输出所有的节点
* 程序输出:所有的节点

* 程序头部的注释结束(此处也删除了斜杠)
//下面是程序
#include <fstream>
#include"iomanip"
#include<string>
#include<iostream>
using namespace std;
struct Student
{
 string num;
 char name[12];
 double grade[3];
 double score;
    struct Student *next;
};
int num=180; 
Student *head=NULL,*p,*q;
int main()
{
 //从文件读入学生成绩的结构体数组;
    //下面的程序建立起一个有180个节点的动态链表
    ifstream infile("score.txt",ios::in);
    for(int i=0;i<num;i++)
 {
  p = new Student;

    if(!infile)
 {
  cerr<<"open error!"<<endl;
        exit(1);
 }

 {
  infile>>p->num>>p->name>>p->grade[0]>>p->grade[1]>>p->grade[2];
  p->score=p->grade[0]+p->grade[1]+p->grade[2];    
 }
   
       
        p->next=NULL;
        if (i==0)
   head=p;
        else
   q->next=p;
            q=p;
   
 }
   infile.close();
    //输出所有的节点
   p=head;
   cout<<"学号"<<'\t'<<'\t'<<setiosflags(ios::left)<<setw(9)<<"姓名"<<setw(7)<<"C++"<<setw(8)<<"高数"<<setw(8)<<"英语"<<setw(8)<<"总分"<<endl;
   while(p!=NULL)
   {
      
    cout<<p->num<<" "<<setw(8)<<p->name<<": "<<p->grade[0]<<"\t"<<p->grade[1]<<"\t"<<p->grade[2]<<"\t"<<p->score<<endl;
       p=p->next;
   }
 return 0;
}

运行结果:

(贴图)

经验积累:
1.动态链表把所有的数都连了起来,只用找到头所有的都出来啦
2.链表就像是螳螂捕蝉黄雀在后啊

上机感言:链表很爽啊,只要是找到头谁都跑不了啊


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值