第17周 任务二

来源:互联网 发布:虚拟机流畅运行mac 编辑:程序博客网 时间:2024/06/05 09:09
实验目的:学会建立动态链表实验内容:学会建立动态链表* 程序头部注释开始* 程序的版权和版本声明部分* 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.链表就像是螳螂捕蝉黄雀在后啊

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


原创粉丝点击