收藏 分销(赏)

实验10-结构和链表程序设计复习进程.doc

上传人:精*** 文档编号:1620836 上传时间:2024-05-06 格式:DOC 页数:5 大小:50.50KB 下载积分:6 金币
下载 相关 举报
实验10-结构和链表程序设计复习进程.doc_第1页
第1页 / 共5页
实验10-结构和链表程序设计复习进程.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
精品文档 实验十 结构和链表程序设计 班级: 学号: 姓名: 评分: 一.【实验目的】 1、掌握结构变量的基本使用方法。 2、掌握结构数组的基本使用方法。 3、掌握结构指针的概念以及结构指针作为函数参数的编程方法。 4、掌握单向链表的概念和建立方法。 5、掌握单向链表的基本操作 6、进一步掌握C程序的调试方法和技巧。 二.【实验内容和步骤】 1、程序调试题 A.目标:进一步学习掌握程序调试的方法和技巧。 B.内容:参照《实验指导》教材P95“9.改错题”,用递归函数计算xn的值。(注:程序文件保存在“调试示例”文件夹中,文件名为error10_1.cpp) ① 调试正确的源程序清单 #include <stdio.h> double fun(int n,double x); int main(void) {int n; double x, root; printf("Enter x:"); scanf("%lf",&x); printf("Enter n:"); scanf("%d",&n); root=fun(n,x); printf("root=%0.2f\n",root); return 0;} double fun(int n,double x) {if(n==1) return x; else return x*fun(n-1,x);} ② 运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。 2、完善程序,并调试运行程序 题目(1)日期换算。程序功能:定义一个关于年、月、日的日期结构,并编写一个函数计算某日期是该年中的第几天(注意闰年问题)。要求用结构体指针作为函数参数。在主函数中输入一个日期(年、月、日),调用函数计算并输出该日期是该年中的第几天。(注:程序文件保存在“第1题”文件夹中)打开proj1.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。 ① 调试正确的源程序清单 #include <stdio.h> struct date{ int year; //年 int month; //月 int day; //日 }; int main (void ){ int n; struct date d,*p; int ComputeDays(struct date *p); printf("Please Input a date: "); scanf("%d%d%d", &d.year,&d.month,&d.day); //输入一个日期 p=&d; //指针p指向日期变量d //请在两条星线之间填入相应的代码, 调用ComputeDays(struct date *p)函数计算。 /************************************************************************/ n=ComputeDays(p); /************************************************************************/ printf("%d-%d-%d is the %d days.\n",d.year,d.month,d.day,n); return 0; } int ComputeDays(struct date *p) { int i,num=0,flag; //num作为计算天数的累计和变量,flag作为是否闰年的标记。 int tab[2][13]={ {0, 31, 28, 31, 30,31,30,31,31,30,31, 30,31}, {0, 31, 29, 31, 30,31,30,31,31,30,31, 30,31}}; if((p->year%4==0 && p->year%100!=0) || (p->year%400==0))flag=1; //判定闰年 else flag=0; //请在两条星线之间填入相应的代码, 计算某日期是该年中的第几天(注意闰年问题)。 /*************************************************************************/ for(i=1;i<p->month;i++) {num=num+tab[flag][i];} num=num+p->day; /*************************************************************************/ return num; } ② 运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。 题目(2)计算时间差期。程序功能:定义一个关于时、分、秒的时间结构,并编写一个函数计算两个时刻的时间差(注:两个时刻的时间差小于24小时)。要求用结构体指针作为函数参数。在主函数中输入两个时刻(时、分、秒),调用函数计算并输出两个时刻的时间差。(注:程序文件保存在“第2题”文件夹中)打开proj2.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。 ① 调试正确的源程序清单 #include <stdio.h> struct time{ int hour; int minute; int second; }; int main (void ) { struct time t,t1,t2,*p,*q; struct time TimeDiff(struct time *p,struct time *q); printf("Please Input the First time: "); scanf("%d%d%d", &t1.hour,&t1.minute,&t1.second); //输入第一个时间 printf("Please Input the second time: "); scanf("%d%d%d", &t2.hour,&t2.minute,&t2.second); //输入第二个日期 p=&t1;q=&t2; //指针p、q分别指向日期变量d1、d2 //请在两条星线之间填入相应的代码, 调用TimeDiff(struct time *p,struct time *q)函数计算。 /************************************************************************************/ t=TimeDiff(p,q); /************************************************************************************/ printf("The difference between t1 and t2 is "); printf("%d Hours %d minutes and %d seconds.\n",t.hour,t.minute,t.second); return 0; } struct time TimeDiff(struct time *p,struct time *q) {struct time tt; int num1,num2,num; //num作为计算时间差的总秒数变量 num1=p->hour*3600+p->minute*60+p->second; num2=q->hour*3600+q->minute*60+q->second; //请在两条星线之间填入相应的代码, 计算两个时刻的时间差。 /*****************************************************/ num=num2-num1; tt.hour=num/3600; tt.minute=(num-tt.hour*3600)/60; tt.second=num-tt.hour*3600-tt.minute*60; /*****************************************************/ return tt; } ② 运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。 题目(3)成绩处理。程序功能:定义一个关于学生成绩单的结构(包含:学号、姓名、语文、数学、计算机和平均成绩),编写4个对应的函数,分别完成以下几项计算和统计汇总工作: (1) 计算每一个学生的平均成绩。 (2) 计算每门课程的平均成绩。 (3) 输出平均成绩最高的学生的记录。 (4) 按平均成绩从高到低输出学生的成绩单(学号、姓名、数学、英语、计算机和平均成绩)。 要求用结构体指针作为函数参数。在主函数中输入5个学生的学号、姓名和数学、英语、计算机三门课程的成绩数据,分别调用不同的函数完成以上4项工作。(注:程序文件保存在“第3题”文件夹中)打开proj3.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。 ① 调试正确的源程序清单 ② 运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。 题目(4)链表拼接。程序功能:有两个单向链表,头指针分别为list1、list2,链表中每一结点包含姓名、工资基本信息,编写一个函数,把两个链表拼组成一个链表,并返回拼组后的新链表。要求用结构体指针作为函数参数。在主函数中建立两个单向链表list1和list2(注:基本工资为0,表示输入结束。),调用自定义的链表拼接函数,完成程序功能。(注:程序文件保存在“第4题”文件夹中)打开proj4.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。 ① 调试正确的源程序清单 ② 运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。 三.【实验总结】 精品文档
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 实验设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服