C语言实验指导书24学时(6)
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字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [综合文档]应答器设备技术规范(征求意见稿)A1
- [综合文档]教师 2012年高考政治试题按考点分类汇
- [综合文档]保险公司的总经理助理竞职演说
- [综合文档]卫生应急大练兵大比武活动考试--题库(
- [综合文档]徐州经济技术开发区总体规划环境影响报
- [综合文档]汉语拼音表(带声调)
- [综合文档]二年级 上 思维训练( 1~18)
- [综合文档]特色学校五年发展规划
- [综合文档]机床经常出现报警“X1轴定位监控”
- [综合文档]《电子技术基础》21.§5—2、3、4 习题
- [综合文档]浙江省深化普通高中课程改革
- [综合文档]CRISP原理 - 图文
- [综合文档]2017年电大社会调查研究与方法形考答案
- [综合文档]浅析建筑施工安全毕业论文
- [综合文档]《回忆我的母亲》名师教案
- [综合文档]装饰装修工程监理规划
- [综合文档]三下乡心得体会-文艺
- [综合文档]柱计算长度系数 - 图文
- [综合文档]全流程思考,提高燃电系统热电转换率--
- [综合文档]2018年嘉定区中考物理一模含答案
- 433M车库门滚动码遥控器
- 8、架空线路施工规范
- 大学四年声乐学习的体会
- 新北师大版五年级数学上册《轴对称再认
- 部编版五年级上册语文第六单元小结复习
- 小学六年级英语形容词用法
- 第2课 抗美援朝保家卫国 课件01(岳麓版
- 2015年天津大学运筹学基础考研真题,考
- 微机计算机控制技术课后于海生(第2版)
- 安全教育实践活动
- Delphi程序设计教程_第1章_Delphi概述
- 第八讲 工业革命与启蒙运动
- 《中华人民共和国药典》2005年版二部勘
- 科粤版九年级化学2.3构成物质的微粒(1)
- 西师大版数学三年级下册《长方形、正方
- ch6_冒泡排序演示
- 第4章 冲裁模具设计
- 浙江中小民营企业员工流失论文[终稿]
- 再议有线数字电视市场营运模式
- 昆明供水工程监理大纲




