c语言 实验八 指针与结构体,实验八:结构体、文件

一、实验名称:

二、实验目的:

1、掌握熟练掌握结构体的定义方法

2、熟练掌握结构体的引用方法

3、掌握单链表的基本操作

4、掌握文件的基本操作

三、实验器材:

1、计算机

四、实验内容:

1、下面程序用于输入某个人的姓名、性别、年龄、平时、笔试、操作这几项信息,再输出完整的上述信息。运行该程序,观察并分析结构体操作的一般注意事项。

#include "stdio.h"

void main()

{

structstudent_info

{

charname[8];//姓名

charsex[3];//性别

unsignedintage;//年龄

intpingshi;//平时

intbishi;//笔试

intcaozuo;//操作

floataverage;//平均

};

struct student_info stu,*pstu;

pstu=&stu;

printf("\n请输入姓名、性别、年龄、平时、笔试、机试这几项的内容:\n");

scanf("%s%s%d%d%d%d",stu.name,stu.sex,&stu.age,&stu.pingshi,&stu.bishi,&stu.caozuo);

printf("%10s%4s%4d%4d%4d%4d\n",stu.name,stu.sex,stu.age,stu.pingshi,stu.bishi,stu.caozuo);

printf("%10s%4s%4d%4d%4d%4d\n",pstu->name,pstu->sex,pstu->age,pstu->pingshi,pstu->bishi,pstu->caozuo);

}

2、编一程序,从键盘输入若干个数,降序排序后存入文件jieguo.txt中去,同时将结果在屏幕上显示。

此练习算法上没有什么难的地方,主要涉及到文件的基本操作

#include

#include

#define N 10

void main()

{

int a[N+1],i,j;

FILE *fp;

printf("\n请输入%d个待排序的数(整数):",N);

for(i=1;i<=N;i++)//输入原始数据

scanf("%d",&a[i]);

for(i=1;i

for(j=N;j>=i+1;j--)

if(a[j]>a[j-1])

{

a[0]=a[j];

a[j]=a[j-1];

a[j-1]=a[0];

}

printf("\n排序如果如下:\n");

for(i=1;i<=N;i++)//向屏幕输出排序结果

printf("%6d",a[i]);

fp=fopen("jieguo.txt","w");//以写方式打开文件

if(fp==NULL)//打开文件不成功,提示用户失败信息

printf("\n文件建立失败,数据保存不成功!\n");

else//打开文件成功

{

for(i=1;i<=N;i++)

fprintf(fp,"%6d",a[i]);//向文件中输出排序结果

fclose(fp);//文件使用完毕,关闭文件

printf("\n数据已成功保存到了文件jieguo.txt中了,用户可直接打开此文件查看结果!\n"); //提示用户成功信息

}

system("pause");

}

3、编一程序,从文件jieguo.txt中去读入所有数据,然后将其中的偶数全挑出来并存入文件oushuji.txt中去。

#include

#include

#define N 10

void main()

{

int a,count=0;

FILE *fp1,*fp2;

fp1=fopen("jieguo.txt","r");//以读方式打开原始数据文件

if(fp1==NULL)//打开文件不成功,提示用户失败信息

printf("\n文件无法打开,操作不能继续进行!\n");

else//打开文件成功

{

fp2=fopen("oushuji.txt","w");

if(fp2==NULL)

printf("\n文件无法建立,数据不能保存!\n");

else

{

while(!feof(fp1))

{

fscanf(fp1,"%d",&a);

printf("%8d",a);

if(a%2==0)

fprintf(fp2,"%6d",a);

}

fclose(fp1);//文件使用完毕,关闭文件

fclose(fp2);//文件使用完毕,关闭文件

printf("\n数据已成功保存到了文件oushuji.txt中了,用户可直接打开此文件查看结果!\n"); //提示用户成功信息

}

}

system("pause");

}

4、下图为某个班若干个人的成绩表,编一程序,输入该班每个人的姓名、性别、年龄、平时、笔试、操作这几项信息,计算每个人的平均成绩,再按平均成绩降序排序后输出完整的成绩表,要求用传统数组方法及结构体数组两种方法分别实现,并对各自优劣性进行比较。

c5c6af4722ef80577332b4628cda27ca.png

五、实验要求:

1、写出所有的程序,填在后面,不够加附页。

2、总结结构体使用的一般注意事项。

3、记录上机过程中所出现的相关英文信息如菜单项名称、错误提示等,查出其中文含义,并写在实验报告后面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值