教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 综合文档 >

C语言实验指导书24学时(6)

来源:网络收集 时间:2026-08-26
导读: C语言程序设计实验指导书 实验十 结构体与文件 一 实验目的 1 掌握结构体类型的概念和定义方法与使用。 2 掌握指向结构体变量的指针变量的概念和应用。 3 掌握文件的基本概念 4 掌握文件指针与打开、关闭文件的相关

C语言程序设计实验指导书

实验十 结构体与文件

一 实验目的

1 掌握结构体类型的概念和定义方法与使用。 2 掌握指向结构体变量的指针变量的概念和应用。 3 掌握文件的基本概念

4 掌握文件指针与打开、关闭文件的相关函数

二 实验内容

1 定义一个结构体类型,其成员包括:学号(num),姓名(name[20]),性别(sex),年龄(age),三门课的成绩(score[3])。

2 按上面的结构体类型定义一个结构体数组并初始化,然后调用一个函数count,在该函数中计算出每个学生的总分和平均分,最后返回主函数输出所有各项数据(包括原有的和新求出的)。

【提示】① 在定义结构体类型时应预留出准备计算结果的成员项。

② 设结构体变量为函数参数,将各数据传给count函数。

#include \stdio.h\ struct student

{ char num[9], name[20], sex; int age,score[3],sum; float av; }st[3]=

{{\06040106\,\Li Ping\, 'M', 18, 87,89,91}, {\06040125\,\Chen Fen\, 'F', 19, 78,75,81}, {\06040132\,\Wang Yifei\,'M', 19, 65,67,69}}; void count(struct student *p) { int i,j; for(i=0;i<3;i++) { p[i].sum=0;

for(j=0;j<3;j++) p[i].sum+=p[i].score[j]; p[i].av=p[i].sum/3.0; } }

void main() { int i,j; count(st);

25

C语言程序设计实验指导书

printf(\The student's information:\\n\);

printf(\Num Name Sex Age Score Sum Average\\n\); for(i=0;i<3;i++)

{ printf(\%-10s%-12s%-3c] \,st[i].num,st[i].name,

st[i].sex,st[i].age);

for(j=0;j<3;j++) printf(\=\,st[i].score[j]); printf(\m%9.1f\\n\,st[i].sum,st[i].av); } }

读懂程序,特别注意程序的输出格式,然后调试运行程序,记录程序的输出。

3 将上题改为用指针方法处理,即用指针变量逐次指向数组元素,然后向指针变量所指向的元素输入数据,并将指针变量作为函数参数将地址值传给count函数,在函数count中作统计,再将数据返回到main函数,在main函数中输出。

4 设有一文件cj.dat存放了若干学生的成绩(英语、计算机、数学),存放格式为:每人一行,成绩间用逗号分隔。计算三门课的平均成绩,统计个人平均成绩大于或等于90分的学生人数。

#include \stdio.h\ main()

{ FILE *fp; int num=0; float x,y,z;

fp=fopen(\cj.dat\,\r\); while(!feof(fp))

{ fscanf(fp,\%f,%f,%f\,&x,&y,&z);

if((x+y+z)/3>=90) num=num+1; }

printf(\平均成绩在90分以上的学生人数:-人\\n\,num); fclose(fp); }

建立并调试、运行程序,记录程序的输出结果。

5 统计上题cj.dat文件中每个学生的总成绩,并将原有数据和计算出的总分数存放在磁盘文件stud.dat中。

#include \stdio.h\main()

{ FILE *fp1,*fp2;

26

C语言程序设计实验指导书

float x,y,z;

fp1=fopen(\cj.dat\,\r\); fp2=fopen(\stud.dat\,\w\); while(!feof(fp1))

{ fscanf(fp1,\%f,%f,%f\,&x,&y,&z);

printf(\%.0f,%.0f,%.0f,%.0f\\n\,x,y,z,x+y+z); fprintf(fp2,\%.0f,%.0f,%.0f,%.0f\\n\,x,y,z,x+y+z); }

fclose(fp1); fclose(fp2); }

建立并调试、运行程序,记录程序的输出结果。

三 注意事项

1 当程序编译成功但运行结果不正确时,则表示产生逻辑错误。此时应: ⑴ 查看程序的层次是否正确,尤其要注意复合语句的括号和位置等。

⑵ 采用分段检查的方法。在程序中的不同位置设几个函数语句,输出相关变量的值,逐段检查。

⑶ 最后检查算法是否正确。

2 当读文件时,一定要保证指定路径上有该文件,否则打开文件失败;当写文件时,一定要保证指定盘有足够的存储空间,否则创建文件失败;对文件操作完毕后,一定要关闭文件。

27

C语言程序设计实验指导书

大作业

1.猜数字游戏

1.实验要求:先利用srand()产生随机数种子,再利用随机函数rand()产生的4个0~9之间的整数,进行猜数字游戏,最后根据猜的次数给出评语。

2.分析与设计:利用循环,不断输入数字,与产生的随机数进行比较,直到猜中为止。

3.每次猜数给出mAnB的结论,其中A表示数字和位置均正确,B表示数字正确但是位置不正确,m和n分别表示数目。当m为4时,表示猜中。

4.根据猜的次数给出评分,当猜测次数超过6次时,给出“智商还需锻炼”的提示并退出。在6次以内,根据次数分别给出“人品爆棚”,“运气无敌”,“绝顶聪明”,“高级智商”,“乏善可陈”,“勉强过关”的评语。

2.单链表的操作

1.实验要求:利用带指针选项的结构体构造单链表,并实现单链表的插入、删除和查找等操作。 2.分析与设计

主函数:完成对各函数的声明和调用 建立函数:完成单链表的建立

插入函数:在已有单链表上插入结点

删除函数:在已有单链表上删除某个结点 输出函数:输出已建立的单链表 3.设计程序代码并运行

以上两题任选一题,允许从网上选取代码,但作业上交时不允许有两份完全一致的答案,如有完全相同的答案,则相同者均不得分。

28

…… 此处隐藏:670字,全部文档内容请下载后查看。喜欢就下载吧 ……
C语言实验指导书24学时(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/404591.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)