金陵科技学院实验报告
四、实验结果与分析(程序运行结果及其分析)
结果正确,但是程序只看懂了一点点,是通过查书还有百度才完成了程序的编程,运行时有好多错误都查不出来,是通过老师的帮助才解决,纠结了好长时间。
五、实验体会(遇到问题及解决办法,编程后的心得体会)
对于子函数的运用还是不熟悉,虽然对于上一次而言好了许多,不过还是不怎么熟悉。许多的程序都不会做,不过在老师的提醒下我还是编写了出来。以后我会针对自己在这方面的薄弱环节多看书多做题,才能弥补回来。自己亲自动手编写程序让我增加了对C语言程序开发环境的了解,在上课的时候老师就讲,学习C语言最重要的是学习C语言的逻辑思维,不管以后从事什么行业,学习C语言都对自己的职业很有帮助,如果是从事编程工程工作的话,就更有帮助了,即使以后的编程工作可能不用C语言,但是拥有扎实的C语言基础是对工作很有用的。
27
金陵科技学院实验报告
实验项目名称: 构造类型程序设计 实验学时: 4 同组学生姓名: 实验地点: A206 实验日期: 2014/6/15 实验成绩: 批改教师: 郭海凤 批改时间:
28
金陵科技学院实验报告
实验4 构造类型程序设计
一、实验目的和要求
(1)熟悉结构体和共同体的概念;
(2))熟悉并掌握结构体变量、数组和共同体变量的定义、赋值与使用; (3)掌握结构体指针的定义与引用;
(4)掌握链表的概念,初步学会对链表进行操作;
(5)熟悉文件打开、关闭、写入、读出的方法;学会使用文件操作函数。
二、实验仪器和设备
奔腾以上计算机,装有windows XP以上版本操作系统和Visual C++ 6.0软件。
三、实验内容与过程
1、程序调试 (1) struct aa
{int x,*y;}*p;
int a[8]={10,20,30,40,50,60,70,80};
struct aa b[4]={100,&a[1],200,&a[3],10,&a[5],20,&a[7]}; main() {p=b;
printf(″%d″,*++p->y); printf(″%d\n″,++(p->x)); } (2) struc STU
{ char name[10]; int num; };
void f1(struct STU c)
{ struct STU b={“LiSiGuo”,2042}; c=b; }
void f2(struct STU *c)
{ struct STU b={“SunDan”,2044}; *c=b; } main( )
{ struct STU a={“YangSan”,2041},b={“WangYin”,2043}; f1(a) ;f2(&b) ;
printf(“%d %d\\n”,a.num,b.num); } 2、程序设计
29
金陵科技学院实验报告
说明,所有题目均需添加main(),在main()中调用子函数并设计完整的输入输出才可调试通过。
(1)(2)两题的学生记录由学号和成绩组成,结构体类型定义如下:
typedef struct { char num[10]; double s;
} STREC; (1)功能:a所指向的数组中有N名学生的数据,请编写函数double fun(STREC *a,STREC *b),把a数组中分数最高的学生数据放在b所指的数组中。分数最高的学生可能不止一个,函数返回分数最高的学生人数。
(2)功能:a所指的数组中有N名学生的数据,请编写函数double fun(STREC *a,STREC *b,int *n),把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。
(3)从键盘输入一系列字符(以$作为输入结束标志),将其存入文件file1.txt中,再从该文件中查找某个字符(该字符可以输入),如果查找成功将返回成功标志,否则返回不成功标志。
3、讨论、思考题
功能:N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写子函数double fun(STREC *h),找出学生的最高分,由函数值返回。
注意:链表的节点类型定义如下: struct slist { double s;
struct slist *next; };
typedef struct slist STREC;
程序清单及流程图: <1>
#include
double s; }
typedef struct slist STREC; double fun(STREC *a,STREC *b) {
int i,j=0; double k=0;
for(i=0;i<10;i++)
if((*a).num[i]>j)j=(*a).num[i];
30