第四周《C语言及程序设计》实践项目11 体验结构体

Posted weixin_35827498

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四周《C语言及程序设计》实践项目11 体验结构体相关的知识,希望对你有一定的参考价值。

【项目1-复数结构体】

/*  
 * Copyright (c) 2016, CSDN学院  
 * All rights reserved.  
 * 文件名称:【项目1-复数结构体】.cpp  
 * 作    者:张易安  
 * 完成日期:2016年 9 月 17 日  
 * 版 本 号:v1.0  
 *  
 * 问题描述:编写一个程序,首先定义一个复数数据类型,即结构类型。然后按照复数的运算规则进行计算,并按照复数表示的格式进行输出,请将程序补充完整。
 */
#include<stdio.h>
struct complex

	int re;
	int im;
;
int main()

	struct complex x,y,s,p;
	scanf("%d%d",&x.re,&x.im);
	scanf("%d%d",&y.re,&y.im);
	s.re=x.re+y.re;
	s.im=x.im+y.im;
	printf("sum=%5d+%5d\\n",s.re,s.im);
	p.re=x.im*y.im+x.re+y.re;
	p.im=x.re*y.im+x.im*y.re;
	printf("product=%5d+%5d\\n",p.re,p.im); 
	
	return 0;
 

运行结果



【项目2-学生成绩处理】

/*  
 * Copyright (c) 2016, CSDN学院  
 * All rights reserved.  
 * 文件名称:【项目2-学生成绩处理】.cpp  
 * 作    者:张易安  
 * 完成日期:2016年 9 月 17 日  
 * 版 本 号:v1.0  
 *  
 * 问题描述:(1)定义学生结构体,在结构体数组中,输入了学生学号和两门课的成绩,计算均分后,输出成绩单,请在下面的程序基础上,将程序补充完整。 
 */
#include<stdio.h>
#define N 100
struct Student 

	int num;//学号 
	int c;//c语言成绩 
	int math;
	float aver;//两课平均分 
;
int main()

	int n,i,pass=0;
	struct Student stu[N];
	printf("请输入学生人数:");
	scanf("%d",&n);
	printf("请输入学号,C和数学课的成绩:\\n");
	for(i=0;i<n;i++)
	
		scanf("%d %d %d",&stu[i].num,&stu[i].c,&stu[i].math);
		stu[i].aver=(stu[i].c+stu[i].math)/2;//求出两门课的平均数
		if(stu[i].c>=60&&stu[i].math>=60)
		  pass++;
	
	//输出成绩单
	printf("成绩单:\\n");
	printf("学号\\tC\\t数学\\t均分\\n");
	for(i=0;i<n;i++)
	  printf("%d\\t%d\\t%d\\t%.2lf\\n",stu[i].num,stu[i].c,stu[i].math,stu[i].aver); 
    //及格的人数
	printf("两门课都及格了的人数有:%d\\n",pass); 
	return 0; 

运行结果


【项目2-学生成绩处理】2

/*  
 * Copyright (c) 2016, CSDN学院  
 * All rights reserved.  
 * 文件名称:【项目2-学生成绩处理】.cpp  
 * 作    者:张易安  
 * 完成日期:2016年 9 月 17 日  
 * 版 本 号:v1.0  
 *  
 * 问题描述:(2)请在上面的程序的基础上增加功能,使运行结果如下图: 
 *其中,需要做出的改动是:

 *计算每名学生的学分绩——各科成绩乘以学分的和,再除以总学分(本题中,C语言和数学课的学分分别是3和4);
 *计算各科的均分;
 *输出得奖学金的同学学号清单——奖学金规则是,学分绩要高于80且没有挂科。 
 */
#include<stdio.h>
#define N 100
struct Student 

	int num;//学号 
	int c;//c语言成绩 
	int math;
	float aver;//学分绩 
;
int main()

	int n,i,sum1=0,sum2=0;
	float ave1=0,ave2=0;
	struct Student stu[N];
	printf("请输入学生人数:");
	scanf("%d",&n);
	printf("请输入学号,C和数学课的成绩:\\n");
	for(i=0;i<n;i++)
	
		scanf("%d %d %d",&stu[i].num,&stu[i].c,&stu[i].math);
		stu[i].aver=(stu[i].c*3+stu[i].math*4)/7;//学分绩 
		sum1+=stu[i].c;
		sum2+=stu[i].math;
		ave1=sum1/n;
		ave2=sum2/n;  
	
	//输出成绩单
	printf("成绩单:\\n");
	printf("学号\\tC\\t数学\\t学分绩\\n");
	for(i=0;i<n;i++)
	  printf("%d\\t%d\\t%d\\t%.2lf\\n",stu[i].num,stu[i].c,stu[i].math,stu[i].aver); 
	printf("科均分\\t%.2lf\\t%.2lf\\n",ave1,ave2);
	//求学号
	printf("得奖学金的同学的学号是:\\n");
	for(i=0;i<n;i++)
	
		if(stu[i].aver>=80&&stu[i].c>=60&&stu[i].math>=60)
		printf("%d",stu[i].num);
	  
    
	return 0; 
运行结果

【项目3-点结构体】

/*  
 * Copyright (c) 2016, CSDN学院  
 * All rights reserved.  
 * 文件名称:【项目3-点结构体】.cpp  
 * 作    者:张易安  
 * 完成日期:2016年 9 月 17 日  
 * 版 本 号:v1.0  
 *  
 * 问题描述:下面定义了一个表示平面上一点的结构体类型:
 *(1)请编写程序,输入一点的横纵坐标,输出该点到原点的距离 
 *(2)请编写程序,输入两点p1和p2的坐标,输出两点之间的距离,以及p1关于x轴的对称点,p2关于原点的对称点,运行结果如下图所示: 
 */
#include<stdio.h>
#include<math.h>
struct Point

	float x;//横坐标 
	float y;//纵坐标 
;
int main() 

	struct Point p1,p2;
 	float distance,d1,d2;//自己开始还想一口气直接把距离求出来,其实再设两个变量更好 
	printf("请输入p1点的坐标:\\n");
	scanf("%f %f",&p1.x,&p1.y);
	printf("请输入P2点的坐标:\\n"); 
	scanf("%f %f",&p2.x,&p2.y);
	d1 = p1.x-p2.x;
	d2 = p1.y-p2.y;
	distance = sqrt(p1.x*p2.x+p1.y*p2.y);
	printf("两点间的距离是:%.2f\\n",distance);
	printf("P1关于x轴的对称点是(%.1f,%.1f)\\n",p1.x,-p1.y);
	printf("P1关于原点的对称点是(%.1f,%.1f)\\n",-p2.x,-p2.y);
	
	return 0;

运行结果

【项目4-体重监测器】


/*  
 * Copyright (c) 2016, CSDN学院  
 * All rights reserved.  
 * 文件名称:【项目4-体重监测器】.cpp  
 * 作    者:张易安  
 * 完成日期:2016年 9 月 17 日  
 * 版 本 号:v1.0  
 *  
 * 问题描述:根据世界卫生组织推荐的体重标准,男性的标准体重=(身高cm-80)×70﹪,女性的标准体重=(身高cm-70)×60﹪。
 *标准体重正负10﹪为正常体重;标准体重正负10﹪~ 20﹪为体重过重或过轻;标准体重正负20﹪以上为肥胖或体重不足,其中超重计算公式为:超重(%)=[(实际体重-标准体重)/(标准体重)]×100%,体重的单位是kg。 
 *请编程序,输入一个人的姓名、性别、身高、体重,用一句人性味浓的话语输出其体重情况(正常、过重、过轻、肥胖或体重不足),这个程序可以用于体重计上为人们实时报告体重情况。 
 *要求使用下面的结构体类型表示人的相关信息。
 */
#include<stdio.h>
struct Person

	char name[20];
	char sex;
	double height;
	double weight;
  ;
int main()

	struct Person p;
	float s;//标准体重 
	printf("请输入您的姓名,性别,身高,体重:");
	scanf("%s %s %lf %lf",&p.name,&p.sex,&p.height,&p.weight);
	if(p.sex=='F')
	
		s=(p.height-70)*0.6; 
	
	else if(p.sex=='M')
	
		s=(p.height-80)*0.7;
	
	else
	
		printf("你输错了!!!\\n");
	
	//判断是否超重
	if(p.weight>=0.9*s&&p.weight<=1.1*s)
	
		printf("ver well,恭喜恭喜,你的体重是正常水平!!!");
	  
	else if(p.weight>=0.8*s&&p.weight<=0.9*s)
	
		printf("你这体重有点偏轻啊!咋回事?不会是撸多了肾虚了?"); 
	 
	else if(p.weight>=1.1*s&&p.weight<=1.2*s) 
	
		printf("你这体重有点偏胖啊!要注意!"); 
	
	else if(p.weight<0.8*s)
	
		printf("你要我怎么说你???你咋不上天呢?"); 
	
	else if(p.weight>1.2*s)
	
		printf("你可以把地压塌了,有潜质!"); 
	  
	return 0; 

运行结果



后面的我看了看都差不多,就不浪费时间了(其实是我懒,逃。。。

以上是关于第四周《C语言及程序设计》实践项目11 体验结构体的主要内容,如果未能解决你的问题,请参考以下文章

第四周《C语言及程序设计》实践项目14 开发一个电子词典

第四周《C语言及程序设计》实践项目14 开发一个电子词典

第四周《C语言及程序设计》实践项目5 认识递归

第四周《C语言及程序设计》实践项目5 认识递归

第四周《C语言及程序设计》实践项目39 问题求解——求素数

第四周《C语言及程序设计》实践项目2 模块化程序设计及C语言中的函数