用户自己建立数据类型实验报告.doc

上传人:自*** 文档编号:124302555 上传时间:2020-03-11 格式:DOC 页数:7 大小:800KB
返回 下载 相关 举报
用户自己建立数据类型实验报告.doc_第1页
第1页 / 共7页
用户自己建立数据类型实验报告.doc_第2页
第2页 / 共7页
用户自己建立数据类型实验报告.doc_第3页
第3页 / 共7页
用户自己建立数据类型实验报告.doc_第4页
第4页 / 共7页
用户自己建立数据类型实验报告.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《用户自己建立数据类型实验报告.doc》由会员分享,可在线阅读,更多相关《用户自己建立数据类型实验报告.doc(7页珍藏版)》请在金锄头文库上搜索。

1、嘉应学院 计算机学院实 验 报 告课程名称程序设计基础实验名称实验地点指导老师实验时间提交时间班 级姓 名座 号一、实验目的和要求1、掌握结构体类型变量的定义和使用。2、掌握结构体类型数组的概念和应用。3、了解链表的概念和操作方法。二、实验环境和方法实验方法:(一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。(二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。(三)根据实验内容,编译程序。实验环境:Windows xp Visual C+6.0三、实验内容及过程描述实验内容:编译以下题目的程序并调试运行。1、有5个学生,每个学生的数据包括学号、

2、姓名、3门课成绩。从键盘输入5个学生数据,要求输出3门课程平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分)。2、13个人围城一圈,从第1个人开始顺序报号1、2、3.凡报到“3”者退出圈子,找出最后留在圈子中的人原来的号。要求用链表实现。3、建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。实验步骤: 进入Visual C+ 6.0集成环境。 输入自己编好的程序。 检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错,及时改正。 进行编译和连接。如果在编译和连接过程中发现错误,频

3、幕上会出现“报错信息”,根据提示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。 运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果是否正确,应运行多次,分别检查在不同情况下结果是否正确。以下是各题源代码:1、有5个学生,每个学生的数据包括学号、姓名、3门课成绩。从键盘输入5个学生数据,要求输出3门课程平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分)。#includestruct Studentint num; char name10; float score3; float total; float ave;stu10;int

4、main()void input(struct Student stu); void max(struct Student stu); void print(struct Student stu); input(stu); print(stu); max(stu); return 0;void input(struct Student stu)int i,j; for(i=0;i10;i+) printf(请输入第%d位学生信息:n,i+1); printf(学号:); scanf(%d,&stui.num); printf(姓名:); scanf(%s,stui.name); for(j=0

5、;j3;j+) printf(第%d门成绩:,j+1); scanf(%f,&stui.scorej); printf(n); stui.total=(stui.score0+stui.score1+stui.score2); stui.ave=stui.total/3; void print(struct Student stu)int i,j;printf(*所有学生成绩*n);printf(学号t姓名t 第一门 第二门 第三门 总分 平均分n);for(i=0;i10;i+)printf(nNO.%dt%st,stui.num,stui.name);for(j=0;j3;j+)print

6、f(%8.2f ,stui.scorej);printf(%8.2f %8.2fn,stui.total,stui.ave);void max(struct Student stu)int i,j,M=0; for(i=0;istuM.total) M=i; printf(*成绩最高的学生*n);printf(学号t姓名t 第一门 第二门 第三门 总分 平均分n);printf(NO.%dt%st,stuM.num,stuM.name);for(j=0;j3;j+) printf(%8.2f ,stuM.scorej);printf(%8.2f %8.2ftn,stuM.total,stuM.

7、ave);printf(*成绩最高的学生*n);printf(学号t姓名t 第一门 第二门 第三门 总分 平均分n);printf(NO.%dt%st,stuM.num,stuM.name);for(j=0;j3;j+) printf(%8.2f ,stuM.scorej);printf(%8.2f %8.2ftn,stuM.total,stuM.ave);2、13个人围城一圈,从第1个人开始顺序报号1、2、3.凡报到“3”者退出圈子,找出最后留在圈子中的人原来的号。要求用链表实现。#include#define N 13struct personint number; int nextp;l

8、inkN+1;int main()int i,count,h;for(i=1;i=N;i+)if(i=N) linki.nextp=1;elselinki.nextp=i+1;linki.number=i;printf(n);count=0;h=N;printf(退出圈子的号数为:n);while(countN-1)i=0; while(i!=3) h=linkh.nextp; if(linkh.number) i+; printf(%4d,linkh.number); linkh.number=0; count+;printf(n最后留下来的号数为:);for(i=1;i=N;i+)if(l

9、inki.number)printf(%3d,linki.number);printf(n);return 0;3、建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。#include #include #define LEN sizeof(struct student)struct student /定义结构体 char num6; /学号 char name8; /姓名 char sex2; /性别 int age; /年龄 struct student *next; /结构体指针 stu10; /结构体变量int ma

10、in() struct student *p,*pt,*head; int i,length,iage,flag=1; int find=0; /找到待删除元素 find=1,否则find=0 while (flag=1) printf(输入链表长度(10):); scanf(%d,&length); if (length10) flag=0; /建立链表 for (i=0;inext=p; pt=p; printf(学号:); scanf(%s,p-num); printf(姓名:); scanf(%s,p-name); printf(性别:); scanf(%s,p-sex); print

11、f(年龄:); scanf(%d,&p-age); p-next=NULL; p=head; printf(n 学号 姓名 性别 年龄n); /显示 while(p!=NULL) printf(%4s %8s %6s%6dn,p-num,p-name,p-sex,p-age); p=p-next; / 删除 printf(请输入要删除的年龄:); /输入待删年龄 scanf(%d,&iage); pt=head; p=pt; if (pt-age=iage) /链头是待删元素 p=pt-next; head=pt=p; find=1; else /链头不是待删元素 pt=pt-next; while (pt!=NULL) if (pt-age=iage) p-next=pt-next; find=1; else / 中间结点不是待删元素 p=pt; pt=pt-next; if (!find) printf( 找不到年龄为 %d的对象.,iage); p=head; printf(n 学号 姓名 性别 年龄9n); /

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号