- 1、本文档共2页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大丈夫处世,不能立功建业,几与草木同腐乎?——《罗贯中》
C语⾔--函数嵌套
⼀、实验作业
注意:
1.可以先初始化2个结构体数组数据以便测试。
2.要求⽤模块化⽅式组织程序结构,合理设计各⾃定义函数。同时,程序能够进⾏异常处理,检查⽤户输⼊数据的有效性,⽤户输⼊数据有错误,如类型错误或⽆效不会中断程
序执⾏,具有⼀定的健壮性。
1.1 PTA题⽬ ⼗进制转换⼆进制
设计思路
主函数:
定义变量n存放⼗进制数
输⼊n
调⽤函数dectobin
被调函数:
如果n2输出n
否则
dectobin(n/2);
输出n取2的余数
代码截图
调试问题
⼀开始使⽤的判断条件是n!=0,但是0这个测试点没有输出,添加0的输出后⾮0数值转换结果⼜错了,后来改⽤n2为判断条件答案正确
1.2 学⽣成绩管理系统
代码总⾏数:340
1.2.1 画函数模块图,简要介绍函数功能。
1.2.2 截图展⽰你的⼯程⽂件
1.2.3 函数代码部分截图
头⽂件
插⼊学⽣信息及学⽣成绩信息代码
【只实现了基础功能,合法性没有判断】
删除学⽣成绩信息代码
【题⽬是删除成绩,觉得这样操作和修改成绩的代码其实没有区别了】
总分排序代码
(通过输出实现代码注释⽅便使⽤操作)
1.2.4 调试结果展⽰
录⼊数据
命令1 :新增学⽣信息
新增学⽣是否已存在
命令3 :删除学⽣信息
命令2 :修改学⽣信息
命令4 :输出所有信息
命令5 :按总分,平均分排序输出
命令6:查询学⽣信息
找不到该学⽣
命令7:退出系统
1.2.5 调试碰到问题及解决办法。
(1)开始建的是c++项⽬,⼀加函数就提⽰结构体重定义,重建项⽬还是不⾏,后来重写了结构体,建⽴新项⽬,这个问题解决了,但是⼜出现全局变量函数中提⽰未定义,改
⽤c项⽬后解决。
(2)
插⼊新学⽣时,循环中数组下标使⽤了i,⽽i初值设为0,导致第⼀组数值被覆盖,换⽤count后解决
(3)忘记定义的是字符数组,排序时⽤整型⽐较的⽅式寻找输⼊学号,导致排序⼀直错误,后改正
⼆、截图本周题⽬集的PTA最后排名
谋事在人,成事在天!——《增广贤文》
大丈夫处世,不能立功建业,几与草木同腐乎?——《罗贯中》
三、阅读代码
找⼀篇优秀代码贴图展⽰,先描述题⽬,再贴代码,可⾃⼰在⾥⾯加注释。
说明该代码功能是什么,优点是什么?
代码本次要求找递归相关代码。代码长度⾄少10⾏以上。
内容不能太泛,⼀定是有针对性讲出代码优势,⾃⼰可以从⾥⾯怎么学习。
功能:主函数控制输出格式,被调函数利⽤递归计算数列元素的值
优点:(1)主函数⾥动态申请变量空间,不浪费内存空间
(2)斐波拉契数列是⽐较典型的使⽤递归的例⼦,如果使⽤循环,另外判断n=1和n=2时的情况是可以的,但是从第三项起,要计算第n-2项和第n-1项之和就有点不好操作了,是不是还得⽤数组存放数值?代价就有点⼤了。⽽递归将这种重复
四、本周学习总结
1.介绍本周学习内容
1.1while (1)可以实现永久循环,通过循环体中的break语句结束循环
1.2#define宏定义将固定不变的系数定义成符号常量,保证符号常量不变性,也增加程序可读性
1.3宏定义格式:#define宏名宏定义字符串 【⾏尾⽆需加分号,常⽤⼤写字母串做宏名,中间可有空格,回车符结束】
1.4在程序编译时,所有出现宏名的地⽅,都会⽤宏定义字符串来替换,即宏替换,只替换不做运算。
1.5宏要在⼀⾏内完成,可实现简单的函数功能,如 #define MAX(a,b) ab?a:b
另外如果#define最后跟的“\”表⽰改⾏未结束,与下⼀⾏合起来成为完整⼀⾏
1.6宏嵌套定义:#define PI 301415926
#define S
文档评论(0)