C语言程序设计《程序设计基础实验》实验6 张顺利

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


//(第5次)1.有5个学生,每个学生的数据信息包括学号、姓名、3门课的成绩,从键盘输入5个学生的信息,要求输出3门课程的总的平均成绩,以及最高分的学生的信息。
//(第6次)1.有5个学生,每个学生有3门课程的成绩,从键盘输入学生数据(包括学号、姓名、3门课程成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件"stud"中 

struct stu{
	char id[11];
	char name[10];
	int sub_1;
	int sub_2;
	int sub_3;
} student[3];
int main1()
{
	int i,sum[4],all=0,big;
	float average;
	//输入部分开始 
	for(i=1;i<=3;i++)
	{
		printf("请输入第%d个同学的姓名:",i);
		gets(student[i].name);
		printf("请输入第%d个同学的id:",i);
		gets(student[i].id);
		printf("请输入第%d个同学的第1门课成绩:",i);
		scanf("%d",&student[i].sub_1);
		printf("请输入第%d个同学的第2门课成绩:",i);
		scanf("%d",&student[i].sub_2);
		printf("请输入第%d个同学的第3门课成绩:",i);
		scanf("%d",&student[i].sub_3);
		getchar();
	}
	FILE *fp;
	fp=fopen("stud","w+");
	//存入文件 (第6次增加部分) 
	for(i=1;i<=3;i++)
	{
		fprintf(fp,"%s\n",student[i].name);
		fprintf(fp,"%s\n",student[i].id);
		fprintf(fp,"%d\n",student[i].sub_1);
		fprintf(fp,"%d\n",student[i].sub_2);
		fprintf(fp,"%d\n",student[i].sub_3);

	}
	//第6次增加部分结束 
	
	//输出总平均成绩 
	for(i=1;i<=3;i++) 
	{
		sum[i]=student[i].sub_1+student[i].sub_2+student[i].sub_3;
		all+=sum[i];
		if((sum[i]>sum[i-1])&&i>=2)
		{
			big=i;
		}
		else
		{
			big=i-1;
		}
	}
	average=all/9;
	printf("三门课程总的平均成绩为%f",average);
	printf("\n%s同学成绩最高,学号为%s,总成绩为%d",student[big].name,student[big].id,sum[big]);
	fprintf(fp,"三门课总的平均分为%f",average);//此句为第6次增加部分 
	fclose(fp);
	return 0;
	
}
//2. 在当前目录中存在文件名为"data1.in"的文本文件,要求使用fopen 函数命令打开该文件,读出里面的所有字符,遇到大写字母的,将其变为小写字母,其它字符不变,最后将所有字符按顺序在屏幕上输出。
 
 
 int main2()
 {
 	//先生成data1.in,并输入随机字符
 	FILE *fp;
 	fp=fopen("data1.in","w");
 	fprintf(fp,"Ssskjfds*¥@#SJ*JKSFSzsSJD");
 	if(fclose(fp)!=0)
 	 printf("ERROR IN CLOSING FILE!");
 	//重新打开文件 
 	char s[30];
 	int i;
 	fp=fopen("data1.in","r");
 	fgets(s,30,fp);//读入文件内的字符 
 	for(i=0;i<30;i++)
	 //大小写转换并在屏幕上打印 
 	{
 		if(s[i]>64&&s[i]<91)
 		 s[i]=s[i]+32;
 		putchar(s[i]);
	}
	return 0;
 }
 
 //3.从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存。输入的字符串以"!"结束。
 
 void main()
 {
 	char str[50];
 	int i=0;
	 FILE *fp;
	 fp=fopen("test","a+");
	gets(str);
	for(i=0;str[i]!='!';i++)
	{
		putc(str[i],stdout);
	}
 	 
 	for(i=0;str[i]!='!';i++)
	 //大小写转换并输出到文件 
 	{
 		if(str[i]>64&&str[i]<91)
 		{
 			str[i]=str[i]+32;
		}
 		
	}
	fputs(str,fp);
 }
//4.有一磁盘文件“employee”,内存放职工的数据。每个职工的数据包括职工姓名、职工号、姓名、年龄、住址、工资、文化程度。今要求将职工名、工资的信息单独抽出来另建一个简明的职工工资文件。

void main()
 {
 	FILE *fp;
 	fp=fopen("information.txt","r");
 	int i;
 	char str[18][20];//文件共有18行,存了3个人的信息,每个人信息有6条
 	for(i=0;i<18;i++)
    //读取数据,并存放在二维数组中
 	{
 		fgets(str[i],20,fp);
 	}
    //新建一个newinfo文件
 	fp=fopen("newinfo.txt","w");
 	for(i=0;i<18;i++)
    //给新创建的文本文件输出值
 	{
 		if(i==0||i==4||i%6==0||(i+2)%6==0)
 		 fputs(str[i],fp);
 	}
 }
/*--------文件示例---------information.txt----------*/
/*
张三
001
25岁
陕西省西安市
10000
博士
李四
002
22岁
陕西省咸阳市
3500
大专
王麻子
003
30岁
陕西省宝鸡市
50000
本科
*/

/*---------生成文件示例------newinfo.txt--------------*/
/*
张三
10000
李四
3500
王麻子
50000
*/

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值