C程序设计上机实验报告
《C程序设计上机实验报告》由会员分享,可在线阅读,更多相关《C程序设计上机实验报告(4页珍藏版)》请在装配图网上搜索。
1、C程序设计实验报告实验名称:结构程序设计 学时安排:2课时实验类别:上机操作型 实验要求:1人1组 一、实验目的1. 掌握结构变量的基本使用方法;2. 掌握结构数组的基本使用方法;3. 掌握结构的简单嵌套应用;4. 掌握结构指针的概念,以及结构指针作为函数参数的编程方法。二、实验设备介绍软件需求: Visual C+ 6.0或CFree3.5以上版本硬件需求: 对于硬件方面的要求,建议配置是Pentium III 450以上的CPU处理器,64MB以上的内存,200MB的自由硬盘空间、CD-ROM驱动器、能支持24位真彩色的显示卡、彩色显示器、打印机。三、实验内容1. 定义一个关于年、月、日的
2、结构,并编写函数计算某日是该年中的第几天?要求用结构指针作为函数参数,注意闰年问题。以下部分程序供参考,可自行改动:struct date/*日期结构体:包含年月日*/int year;int month;int day;void dayofyear(struct date *pday);int main(void)struct date temp,*pday;pday=&temp;/*请添加*/运行结果示例如下:Input year、month and day: 2006 3 5642. 改正程序error09_2.cpp中的错误。建立一个有n(3到10之间)个学生成绩的结构记录,包括学号、
3、姓名和3门成绩,输出总分最高的学生姓名和总分。输入输出结果如下所示: n=31 zhang 78 83 752 wang 76 80 773 shen 92 88 78总分最高的学生是:shen,258分要求把正确的代码(按规范缩进)写入报告,并以注释的方式说明错误原因。注释示例如下:int i;/*循环控制变量不能定义为double类型*/3. 编写一程序,计算两个时刻之间的时间差,并将其值返回。时间以时、分、秒表示,假设两个时刻的差小于24 小时。(此题选做)提示:先输入两个时间,然后比较两个时间的大小,用大的减去小的。时间相减从秒开始,如果负数则需位,再减分,最后减小时。四、程序清单第一
4、题#includeint main() int result; struct riqi int year; int month; int day; date; printf(Input year、month and day:); scanf(%d%d%d,&date.year,&date.month,&date.day); int day_of_year(int year,int month,int day); result=day_of_year(date.year,date.month,date.day); printf(%dn,result); return 0;int day_of_y
5、ear(int year,int month,int day) int k,leap,yearday; int tab213=0,31,28,31,30,31,30,31,31,30,31,30,0,31,29,31,30,31,30,31,31,30,31,30; leap=(year%4=0&year%100!=0)|year%400=0; yearday=0; for(k=1;kmonth;k+) yearday=yearday+tableapk; yearday=yearday+day; return yearday;第二题#include int main (void) struct
6、 student int number;char name20;int score3;int sum; ; struct student student20;/*定义记录20个学生信息的结构数组*/ int i, j, k, n, max=0; printf(输入n:); scanf(%d,&n); for (i = 0; i n; i+) printf(输入第%d个学生的学号、姓名和3门成绩:,i+1);/*输入第i+1个学生*/ studenti.sum=0;/*将成绩和初始化*/ scanf(%d%s, &studenti.number, &studenti.name); for(j =
7、 0; j 3; j+) scanf(%d, &studenti.scorej); studenti.sum += studenti.scorej; max = student0.sum; for(i = 0; i n; i+) if(max studenti.sum) max = studenti.sum; k = i; printf(总分最高的学生是: %s,%d分n, studentk.name, studentk.sum); return 0;第三题#include struct timeint hour;int minute;int second;void main()struct
8、time time1,time2;int timestart,timeend,hours,minutes,seconds;printf(输入起始时刻:);scanf(%d:%d:%d,&time1.hour,&time1.minute,&time1.second);printf(输入结束时刻:);scanf(%d:%d:%d,&time2.hour,&time2.minute,&time2.second);timestart=time1.hour*3600+time1.minute*60+time1.second;timeend=time2.hour*3600+time2.minute*60+time2.second;hours=(timeend-timestart)/3600;minutes=(timeend-timestart-3600*hours)/60;seconds=timeend-timestart-3600*hours-60*minutes;printf(两时刻相差:%d小时%d分%d秒n,hours,minutes,seconds);return 0;五、运行结果第一题第二题第三题六、实验心得写结构的程序题时,注意结构定义以及结构名。注意程序要条理清晰。
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。