已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中国矿业大学计算机学院 高级语言程序设计 部分习题解答 教师 李政伟 备注 1 欢迎大家参与讨论并不断更新完善 2 仅供大家平时学习讨论使用 未经同意 切莫随意传播或作其他用途 第 1 页 第第 7 章章 自定义数据类型自定义数据类型 作业 作业 2 5 6 7 8 9 10 7 2 P219 写一个函数 写一个函数 days 由主函数将年 月 日传递给函数 由主函数将年 月 日传递给函数 days 计算出该日在本年是第计算出该日在本年是第 几天并将结果传回主函数输出 几天并将结果传回主函数输出 分析 可以先定义一个结构体类型 包括年 月 日这三个成员 通过调用 days 函数来计算 这一天是该年的第几天 源程序 include using namespace std struct y m d int year 分别存放年 月 日 int month int day int main y m d date int days int int int 对 days 函数的声明 int day sum cout date year date month date day day sum days date year date month date day 对 days 函数的调用 cout date month date day is the day sum th day in date year endl return 0 int days int year int month int day 定义 days 函数 int day sum i int day tab 13 0 31 28 31 30 31 30 31 31 30 31 30 31 day sum 0 for i 1 i 3 day sum 1 如果是闰年 则在上面计算基础上加 1 return day sum 运行结果如下 中国矿业大学计算机学院 高级语言程序设计 部分习题解答 教师 李政伟 备注 1 欢迎大家参与讨论并不断更新完善 2 仅供大家平时学习讨论使用 未经同意 切莫随意传播或作其他用途 第 2 页 7 5 P219 有 有 10 个学生 每个学生的数据包括学号 姓名 三门课的成绩 从键盘输入个学生 每个学生的数据包括学号 姓名 三门课的成绩 从键盘输入 10 个学生数据 要求打印出个学生数据 要求打印出 3 门课的总平均成绩 以及最高分的学生的数据 门课的总平均成绩 以及最高分的学生的数据 源程序 include include include using namespace std const int N 10 struct STUDENT 定义结构体类型 STUDENT string num string name float score 4 float avr stu N int main int i j max 0 maxi 0 float average 0 sum for i 0 i N i 输入 10 个学生的信息 cout 输入第 i 1 个学生的信息 endl cout stu i num cout stu i name for j 0 j 3 j cout 第 j 1 stu i score j cout endl for i 0 i N i sum 0 for j 0 jmax max sum maxi i 记下最高分的学生所对应数组元素的下表 average N cout setiosflags ios left endl cout setw 8 学 号 setw 8 姓 名 setw 6 课 程1 setw 6 课 程 2 setw 6 课程 3 setw 8 平均成绩 endl for i 0 i N i cout setw 8 stu i num setw 8 stu i name for j 0 j 3 j cout setw 6 stu i score j cout setw 8 setiosflags ios fixed setprecision 1 stu i avr endl cout 总平均成绩 average endl cout 最高分的学生信息 endl cout 姓名 stu maxi name endl cout 学号 stu maxi num endl cout 课程 1 stu maxi score 0 endl cout 课程 2 stu maxi score 1 endl cout 课程 3 stu maxi score 2 endl cout 平均成绩 stu maxi avr endl return 0 7 6 P219 写一个函数 写一个函数 creat 用来建立一个动态链表 所谓建立动态链表是指在程序执行过 用来建立一个动态链表 所谓建立动态链表是指在程序执行过 程中从无到有地建立起一个链表 即一个一个第开辟节点和输入各节点的数据 并建立起前后 相链的关系 各节点的数据由键盘输入 程中从无到有地建立起一个链表 即一个一个第开辟节点和输入各节点的数据 并建立起前后 相链的关系 各节点的数据由键盘输入 源程序 include using namespace std struct STUDENT long num float score STUDENT next creat 函数实现 1 int n 定义 n 为全局变量 本文件模块中各函数均可使用它 STUDENT creat void 尾插法 此函数带回一个指向链表头的指针 中国矿业大学计算机学院 高级语言程序设计 部分习题解答 教师 李政伟 备注 1 欢迎大家参与讨论并不断更新完善 2 仅供大家平时学习讨论使用 未经同意 切莫随意传播或作其他用途 第 4 页 STUDENT head STUDENT p1 p2 n 0 p1 p2 new STUDENT 开辟一个新单元 并使 p1 p2 指向它 cin p1 num p1 score head NULL while p1 num 0 当输入的学号为 0 时 终止循环 n n 1 if n 1 head p1 else p2 next p1 p2 p1 p1 new STUDENT cin p1 num p1 score p2 next NULL return head creat 函数实现 2 STUDENT creat 头插法 建立单链表 通过函数返回头指针 STUDENT h p h new STUDENT 建立一个头结点 h next NULL 使头结点的指针域为空 p new STUDENT cin p num p score while p num 0 p next h next 改变指针状况 h next p p new STUDENT h 的直接后继是 p cin p num p score return h 7 7 P219 写一个 写一个 print 函数 将上题建立的链表中各节点的数据依次输出 函数 将上题建立的链表中各节点的数据依次输出 源程序 void print STUDENT head STUDENT p cout endl Now These records are next if p NULL 中国矿业大学计算机学院 高级语言程序设计 部分习题解答 教师 李政伟 备注 1 欢迎大家参与讨论并不断更新完善 2 仅供大家平时学习讨论使用 未经同意 切莫随意传播或作其他用途 第 5 页 do cout num score next while p NULL 7 8 P219 写一个函数 写一个函数 del 用来删除动态链表中一个指定的节点 由实参指定某一学号 表 用来删除动态链表中一个指定的节点 由实参指定某一学号 表 示要删除该学生节点 示要删除该学生节点 源程序 STUDENT del STUDENT head long num STUDENT p1 p2 if head next NULL 是空表 cout list null next 使 p1 指向第一个结点 while num p1 num p1 p1 next p1 后移一个结点 if num p1 num 找到了 p2 next p1 next 否则将下一结点地址赋给前一结点地址 cout delete num endl free p1 else cout cannot find next 使 p1 指向第一个结点 while p1 NULL 使 p2 指向刚才 p1 指向的结点 p1 p1 next p1 后移一个结点 if p1 NULL p2 next st st next p1 中国矿业大学计算机学院 高级语言程序设计 部分习题解答 教师 李政伟 备注 1 欢迎大家参与讨论并不断更新完善 2 仅供大家平时学习讨论使用 未经同意 切莫随意传播或作其他用途 第 6 页 else p2 next st st next NULL return head 7 10 P219 将以上 将以上 4 个函数组成一个程序 由主程序先后调用这些函数 实现链表的建立 个函数组成一个程序 由主程序先后调用这些函数 实现链表的建立 输出删除和插入 在主程序中指定需要删除和插入的结点 输出删除和插入 在主程序中指定需要删除和插入的结点 源程序 include using namespace std struct STUDENT long num float score STUDENT next int n int main STUDENT creat void STUDENT del STUDENT long STUDENT insert STUDENT STUDENT void print STUDENT STUDENT head stu cout input records endl head creat 返回头指针 print head 输出全部结点 long del num cout endl del num 输入要删除的学号 while del num 0 head del head del num 删除后链表的头地址 print head 输出全部结点 cout del num cout endl stu num stu score while stu num 0 head insert head stu 返回地址 print head 输出全部结点 cout endl stu num stu score return 0 STUDENT creat 表头插入法 建立单链表 通过函数返回头指针 STUDENT h p h new STUDENT 建立一个头结点 h next NULL 使头结点的指针域为空 p new STUDENT cin p num p score while p num 0 p next h next 改变指针状况 h next p p new STUDENT h 的直接后继是 p cin p num p score return h void print STUDENT head STUDENT p cout endl Now These records are next if head NULL do cout num score next while p NULL STUDENT del STUDENT head long num STUDENT p1 p2 if head next NULL 是空表 cout list null next 使 p1 指向第一个结点 while num p1 num p1 p1 next p1 后移一个结点 if num p1 num 找到了 p2 next p1 next 否则将下一结点地址赋给前一结点地址 cout delete num endl free p1 else cout cannot find next 使 p1 指向第一个结点 while p1 NULL 使 p2 指向刚才 p1 指向的结点 p1 p1 next p1 后移一个结点 if p1 NULL p2 next s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026及未来5年中国回收机数据监测研究报告
- 美图T8人工智能美颜
- 2026事业单位工勤技能-江苏-江苏计算机文字录入处理员五级(初级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-江苏-江苏机械热加工四级(中级工)历年参考题库含答案详解3套试卷
- 宝山区消防安全评估企业
- 2026事业单位工勤技能-新疆-新疆工程测量员三级(高级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-上海-上海保健按摩师五级(初级工)历年参考题库含答案详解3套试卷
- 健康宣教创新思路-1
- 2026年秋季开学高三稳住心态励志报告课件
- 2026年秋季开学大学一年级新生军训野外生存总结课件
- 设备管理技术培训课件
- 医学科研成果转化的法律路径与风险
- 《JYT 0449-2011教学用玻璃仪器 抽滤瓶》(2026年)实施指南
- 集装箱活动板房施工方案
- SQE质量工程师岗位技能测试题
- 食管胃连接处恶性肿瘤的护理
- 一体化消防泵房水池施工方案
- 公园消防安全培训课件
- 中国2型糖尿病运动治疗指南(2024版)
- CJ/T 283-2017偏心半球阀
- 2026届高中语文一轮复习板块五 文言文阅读 考点突破学案27 理解文言实词(一)-词分古今义究源流 (共107张) +学案+练习(含解析)
评论
0/150
提交评论