《c语言第七次上机作业报告.doc》由会员分享,可在线阅读,更多相关《c语言第七次上机作业报告.doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、青 岛 理 工 大 学课程实验报告课程名称计算机程序设计 (C)班级软件112实验日期201256姓名王涛学号实验成绩实验名称实验七 链表实验目的及要求1掌握结构体类型变量的定义和使用。2掌握结构体类型数组的概念和应用。3掌握链表的概念,初步学会对链表进行操作。实验环境VC+6.0实验内容1编写程序。有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入5个学生数据,要求输出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。2建立一个学生链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去
2、。算法描述及实验步骤1, 建立适当的结构体2,定义相似类型的指针变量3,创建链表4,输出链表5,调用函数实现分数的处理调试过程及实验结果1, 头指针的定义,以及头结点,首节点,尾节点2, 结构体的两种定义形式(typedef)3, 结构体部分指针的定义形式4、利用scanf函数时,地址的写法很容易出错总结掌握好基础知识,有些地方还需要查找资料。附录1、#includetypedef struct int num; char name10; float score3; double aver;student; void inputs(student stu) int i,k;for(i=0;i2
3、;i+) printf( 第%d个学生:,i+1); scanf(%d%s,&stui.num,stui.name);/* 输入学生学号、姓名*/printf(输入分数); for(k=0;k3;k+)scanf(%f,&stui.scorek); /*输入学生三门课的分数*/ void average( student stu) /*求学生的平均分*/ int i,k;for(i=0;i2;i+) float sum=0.0;for(k=0;k3;k+) sum+=stui.scorek; stui.aver=sum/3; void Printf( student stu)/*输出学生信息*
4、/ int i,k; printf(输出执行结果:n); for(i=0;i2;i+) printf(t第%d个学生:t学号:%d t姓名:%st分数:,i+1,stui.num ,stui.name); for(k=0;k3;k+) printf(%g ,stui.scorek); printf(t平均分:%g,stui.aver ); printf(n); void Max( student stu) int i; int max=0; for(i=1;i2;i+) if(stumax.aver stui.aver ) max=i; printf(%gn,stumax.aver ); vo
5、id main() student stu2; printf(输入数据:n); inputs(stu); average(stu); Printf(stu); Max(stu); 2、#include#include#define LEN sizeo(struct student)struct studentchar num6;char name8;char sex2;int age;struct student *next;stu10;void main()struct student *p,*pt,*head;int i,length,iage,flag=1;int find=0;whil
6、e(flag=1)printf(input length of list(10):);scanf(%d,&length);if(length10)flag=0;for (i=0;inext=p;pt=p;printf(No.:);scanf(%s,p-num);printf(name:);scanf(%s,p-name);printf(sex:);scanf(%s,p-sex);printf(age:);scanf(%d,&p-age);p-next=NULL;p=head;printf(n No. name sex agen);while(p!=NULL)printf(%4s%8s%6s%6
7、dn,p-num,p-name,p-sex,p-age);p=p-next;printf(input age:);scanf(%d,&iage);pt=head;p=pt;if(pt-age=iage)p=pt-next;head=pt=p;find=1;elsept=pt-next;while(pt!=NULL)if(pt-age=iage)p-next=pt-next;find=1;elsep=pt;pt=pt-next;if(!find)printf(not found %d.,iage);p=head;printf(n No. name sex agen);while(p!=NULL)printf(%4s%8s,p-num,p-name);printf(%6s%6dn,p-sex,p-age);p=p-next;