




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实 验 报 告 专业 软 件 工 程 班级 X 班 学号_ XXXXXXXXX_ 姓名 实验日期:201X年X月X日 报告退发 (订正 、 重做) 课程 C程序设计实验 实验名称 结 构 体 一、实验目的二、实验环境(描述实验的软件、硬件环境)1 软件环境:windows xp/win7等操作系统,Microsoft Visual C+ 6.0编译器;2 硬件环境:PC机一台三、实验内容、步骤和结果分析题目一:#include #include struct Stuint num;char name20;char sex;int age;float score3;void fun(struct Stu *stu, int i)float sum = stu-score0 + stu-score1 + stu-score2, aeg = sum / 3.0;printf(n第%d位学生的基本信息如下:nn, i);printf(学号:(%d)t姓名:(%s)t性别:(%c)t年龄:(%d)nn, stu-num, stu-name, stu-sex, stu-age);printf(三科成绩:(%.2f,%.2f,%.2f)nn, stu-score0, stu-score1, stu-score2);printf(总成绩:(%.2f) 平均成绩:(%.2f)n, sum, aeg);printf(n+n);int main()int i, n;printf(The number of students is:);scanf(%d, &n);struct Stu *stu = (struct Stu *)calloc(n, sizeof(struct Stu);for (i = 0; inum);printf(姓名:);scanf(%s, (stu + i)-name);printf(性别:);scanf( %c, &(stu + i)-sex);printf(年龄:);scanf(%d, &(stu + i)-age);printf(三科成绩:);scanf(%f%f%f, &(stu + i)-score0, &(stu + i)-score1, &(stu + i)-score2);putchar(n);printf(=n);for (i = 0; in; i+)fun(stu + i, i + 1);return 0;题目二:计算每一个结构体的两个变量所表示的长度之和(单位:厘米)要求:(1)分别定义公制METRIC(成员包括:米、厘米)和英制BRITISH(成员包括:英尺、英寸)两个结构体;(2)为每一个结构定义两个变量。#include int main()struct METRIC float m;float cm; m1, m2;struct BRITISHfloat foot;float inches; b1, b2;printf(Enter the info of m1(米,厘米):);scanf(%f%f, &m1.m, &m1.cm);printf(Enter the info of m2(米,厘米):);scanf(%f%f, &m2.m, &m2.cm);printf(nEnter the info of m2(英尺,英寸):);scanf(%f%f, &b1.foot, &b1.inches);printf(Enter the info of m2(英尺,英寸):);scanf(%f%f, &b2.foot, &b2.inches);printf(nSum of m1 and m2 is:%.2f(厘米)n, (m1.m + m2.m) * 100 + m1.cm + m2.cm);printf(Sum of b1 and b2 is:%.2f(厘米)nn, (b1.inches + b2.inches)*30.48 + (b1.foot + b2.foot)*2.54);return 0;题目三:编写一个函数用于计算某个日期是相应年份的第几天要求:声明一个描述日期(年、月、日)的结构体类型。#include struct time int year;int month;int day;void fun(struct time time)int a,b,sum=0;for(a=1;atime.month;a+)if(a=4|a=6|a=9|a=11)sum+=30;else if(a=2)if(time.year%4=0)&(time.year%100!=0|time.year%400=0)sum+=29;elsesum+=28; elsesum+=31;sum+=time.day;printf(%d-%d-%d 是该年的第 %d 天!nn,time.year,time.month,time.day,sum);int main()struct time time;printf(Enter the date(Example:xxxx xx xx)(End with 0000 00 00):nn);while(scanf(%d%d%d,&time.year,&time.month,&time.day)!=EOF)if(time.year=0&time.month=0&time.day=0)break;fun(time);return 0;题目四:定义两个函数分别用于输入和输出N个STUDENT结构体变量的信息要求:定义两个结构体STUDENT和BIRTHDAY。 其中结构体STUDENT包含成员有:姓名(char name20),学号(int number),出生日期(BIRTHDAY birth);结构体BIRTHDAY包含的成员有:年份(int year),月份(int month)和日期(int day)。#include #include struct BIRTHDAY int year;int month;int day;struct STUDENT char name20;int number;struct BIRTHDAY birth;void input(struct STUDENT *stu,int n)int i;putchar(n);for (i = 0; i n; i+)printf(第 %d 位学生的信息:n姓名:, i + 1);scanf(%s, );printf(学号:);scanf(%d, &stui.number);printf(生日:);scanf(%d-%d-%d, &stui.birth.year, &stui.birth.month, &stui.birth.day);if (i != n - 1)putchar(n);elseprintf(输入完毕!n);void output(struct STUDENT *stu, int n)int i;for (i = 0; i n; i+)printf(n第 %d 位学生的信息如下:n, i + 1);printf(姓名:(%s)t学号:(%d)t生日:(%d-%d-%d)n, , stui.number, stui.birth.year, stui.birth.month, stui.birth.day);if (i != n - 1)putchar(n);elseprintf(输出完毕!n);int main()int n;printf(请输入待输入资料的学生的数目N:);scanf(%d, &n);struct STUDENT *stu = (struct STUDENT *)calloc(n, sizeof(struct STUDENT);input(stu, n);printf(=n);output(stu, n);printf(=n);return 0;题目五:函数sortInfo()是按照总成绩从高到低的顺序进行排序的。如果两位学生的总成绩相等,则按照学号从小到大排序。要求:1 声明一个STUDENT结构体,成员有:姓名(char name20),学号(int number),总成绩(float totalScore)2 在main函数中定义一个长度为N的结构体数组arr,调用函数sortInfo(struct STUDENT *arr, int n)对N位学生的信息进行排序#include #include struct STUDENT char name20;int number;float totalScore;void input(struct STUDENT *stu,int n)int i;putchar(n);for (i = 0; i n; i+)printf(第 %d 位学生的基本信息:n姓名:, i + 1);scanf(%s, );printf(学号:);scanf(%d, &stui.number);printf(总成绩:);scanf(%f, &stui.totalScore);putchar(n);void sortInfo(struct STUDENT *stu, int n)int i,j;struct STUDENT temp;for (i = 0; i n; i+)for (j = 1; j n - i; j+)if (stui.totalScore (stui + j.number)temp = stui;stui = stui + j;stui + j = temp;void output(struct STUDENT *stu, int n)int i;for (i = 0; i n; i+)printf(姓名:(%s)t学号:(%d)t总成绩:(%.2f)n, , stui.number, stui.totalScore);int main()int n;printf(请输入待输入资料的学生的数目N:);scanf(%d, &n);struct STUDENT *stu = (struct STUDENT *)calloc(n, sizeof(struct STUDENT);input(stu, n);printf(=n);printf(排序之前的初始状态:n);output(stu, n);printf(=n);sortInfo(stu, n);printf(排序之后的最终状态:n);output(stu, n);printf(=n);return 0;题目六:编程模拟一个时钟(时间实时更新)要求:1 声明一个时间结构体TIME,包含成员:时(int hour),分(int minute),秒(int second)。定义函数updata()用于更新时间。2 假设当前时刻为23:59:59,则调用函数updata将得到的下一刻时间为00:00:00假设当前时刻为23:45:56,则调用函数updata将得到的下一刻时间为23:45:57#include #include struct TIME int hour;int minute;int second;updata(struct TIME *t)if (t-second = 59)t-second = 0;if (t-minute = 59)t-minute = 0;if (t-hour = 23)t-hour = 0;else(t-hour)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 居民议事日常管理制度
- 公司货车出入管理制度
- 公司健身活动管理制度
- 咖啡员工请假管理制度
- 合租收纳宿舍管理制度
- 厂区用火用电管理制度
- 午托学生制度管理制度
- 医保药品追溯管理制度
- 助理医师师资管理制度
- 工厂质检宿舍管理制度
- DB36_T 420-2019 江西省工业企业主要产品用水定额(高清无水印-可复制)
- 车间精益改善总结报告课件(PPT 19页)
- 中小学教育惩戒规则(试行)全文解读ppt课件
- TCECS 850-2021 住宅厨房空气污染控制通风设计标准
- 《冬病夏治工作指南》
- 布鲁克纳操作手册
- 印度尼西亚煤炭购销合同
- GB∕T 25119-2021 轨道交通 机车车辆电子装置
- 2022年国网输变电工程质量通病防治工作要求及技术措施[1]
- 三年级美术下册16奇石教学设计1浙美版
- 支气管分段亚段及及支气管镜检查
评论
0/150
提交评论