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

来源:互联网 发布:金山数据恢复账号密码 编辑:程序博客网 时间:2024/06/05 07:58

【项目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 100struct 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 100struct 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; }

运行结果



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

0 0
原创粉丝点击