实验报告结构体【精选】

阅读: 评论:0

实验报告
第  1 页
专业__软件工程__ 班级软工1班学号_1230120130xx _ 姓名xx
实验日期:2013年11 月1 日报告退发(订正、重做)
课程c语言实验设计实验名称结构体一、实验目的
(1)掌握一维数组的基本操作;
(2)掌握二维数组的基本操作;
二、实验环境(描述实验的软件、硬件环境)
安装有Microsoft VC++6.0的PC机
三、实验内容、步骤和结果分析
(列出实验内容,阐明实验步骤及中间的结果或现象、最终结果和现象,对这些结果和现象进行分析,若出现误差也予以分析误差原因)
题目一、有n个学生,每个学生的数据包括学号(num)、姓名(name)、性别(sex)、年龄(age)、三门课的成绩(score[3])。
要求从键盘上输入这n个学生的数据,然后调用一个函数来计算每个学生的总分和平均分然后打印所有数据。
(1)源码
#include "stdafx.h"
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct student
{
long int num;
char name[20];
char sex;
int age;
float score[3];
};
float sum(struct student a)
{
float s=0;
int i;
for(i=0;i<3;i++)
中国产经新闻报社s = s+ a.score[i];
大有前途下载
return s;
}
float aver(struct student a)
{
return sum(a)/3;
302医院陈菊梅}营销科学
int main()
{
int i,j,n;
printf("请分配内存空间n = ");
scanf("%d",&n);
struct student *a=(struct student *)malloc(n*sizeof(student));
for(i=0;;i++)
{
printf("请输入第%d位学生的基本信息:(学号=0结束输入)\n",i
+1);
printf("学号:");
scanf("%d",&a[i].num);
if(a[i].num==0)
break;
fflush(stdin);
printf("姓名:");
gets(a[i].name);
printf("性别:");
scanf("%c",&a[i].sex);
printf("年龄:");
scanf("%d",&a[i].age);
printf("三科成绩:");
scanf("%f%f%f",&a[i].score[0],&a[i].score[1],&a[i].score
[2]);
printf("\n");
}
printf
("===============================================================\n") ;
for(j=0;j<i;j++)
{
printf("学号:<%d>\t姓名<%s>\t性别<%c>\t年龄<%d>\n",a
[j].num,a[j].name,a[j].sex,a[j].age);
printf("三科成绩:<%.2f, %.2f, %.2f>\n",a[j].score[0],a
[j].score[j],a[j].score[2]);
printf("总成绩<%.2f> 平均成绩<%.2f>\n",aver(a[j]),sum(a
[j]));
printf
("***************************************************************\n");
}
free(a);
return 0;
}
(2)运行结果截图
题目二、分别定义公制METRIC(成员包括:米、厘米)和英制BRITISH(成员包括:英尺、英寸)两个结构体。为每一个结构定义两个变量,计算每一个结构体的两个变量所表示的长度之和(单位:厘米)
(1)源码
#include<stdio.h>
#include<stdlib.h>
struct metric
{
float centimeter;
float meter;
};古方温经贴
struct british
{
float inch;
float inches;
};
struct metric *a=(struct metric *)malloc(2*sizeof(metric)); struct british *b=(struct british *)malloc(2*sizeof(british)); float meter_sum(struct metric *a)
{
int i,j;
float sum=0;
for(i=0;i<2;i++)
{
a[i].meter=a[i].meter*100;
sum=sum+a[i].meter;
}
for(j=0;j<2;j++)
{
sum=sum+a[j].centimeter;
}
return sum;
}
float inchs_sum(struct british *b)
{
int i,j;
float sum=0;
for(i=0;i<2;i++)
{
b[i].inch=b[i].inch*2.54;
sum=sum+b[i].inch;
}
for(j=0;j<2;j++)
{
b[j].inches=b[j].inches*30.48;
sum=sum+b[j].inches;
}
return sum;
}
int main()
{
printf("Enter the info of m1<;米,厘米>:");
scanf("%f%f",&a[0].meter,&a[0].centimeter);
printf("Enter the info of m1<;米,厘米>:");
scanf("%f%f",&a[1].meter,&a[1].centimeter);
printf("Enter the info of b1<;英尺,英寸>:");
scanf("%f%f",&b[0].inches,&b[0].inch);
printf("Enter the info of b2<;英尺,英寸>:");
scanf("%f%f",&b[1].inches,&b[1].inch);
printf("Sum of m1 and m2 is: %.2f<cm>\n",meter_sum(a));
printf("Sum of b1 and b2 is: %.2f<cm>\n",inchs_sum(b));
}
(2)运行结果截图
题目三、声明一个描述日期(年、月、日)的结构体类型。编写一个函数用于计算某个日期是相应年份的第几天。
(1)源码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
struct date
{
int year;
int month;
拉美债务危机
int day;
};
int judge_year(int y)
{
if((y%4==0&&y%100!=0)||y%400==0)
return 1;
else
return 0;
}
int sum_leapyear(int *month,int *day)
{

本文发布于:2023-08-15 05:53:16,感谢您对本站的认可!

本文链接:https://patent.en369.cn/xueshu/361226.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:实验   学生   计算   结构   结果
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图