• C语言博客作业03--函数


    0.展示PTA总分


    1.本章学习总结

    1.1 学习内容总结

    • 函数的声明:在main函数之前进行函数声明,如int abc(int a);分号切记不能漏),其中‘int’表示函数返回值的类型是int,‘()’ 可传入参数,当不声明 ‘()’中内容时,不可传入参数。
      此外,当类型为void时无返回值,但可以返回函数(即return;)。
    • 函数的定义:通常于main函数结尾进行函数定义,如int abc(int a){ (语句) },(切记这里大括号外均无‘;’)。
    • 全局变量:在程序开头main定义的变量,生存周期为程序开始到结束,其变量在所有函数中都能使用。
    • 局部变量:在某一函数中定义的变量,生存周期仅在这一函数中,一旦离开此函数,变量也就消失,再一次调用函数时该变量不会保留初值,仅在此函数中使用
    • 静态局部变量:在局部变量的基础上,当再一次调用该函数时,静态变量会保留原先的值并在本次函数调用中仍能使用

    1.2 本章学习体会及代码量学习体会

    1.2.1 学习体会

    • 也不难吧,只是把主函数语句放到其他函数再进行调用,只不过多了一些函数的返回、如何调用等等的判断吧。

    1.2.2 代码累计

    • 如图;最后一个函数展开时为427

    题目:小学生口算表达式自动生成系统

    暂无设计扩展功能。

    函数关系图如下:


    3.函数功能及全局变量介绍

    3.1.全局变量

    • 如图:
    • grade跟number为用户输入的年级以及题目数量。
    • count为出题过程中判断是否达到出题数量。
    • right为用户答对的题目数量,计数正确率用。

    3.2.ListMenu()函数

    • 我直接在菜单函数中读取用户输入的年级跟题数,以便用户返回菜单重新开始时读取参数。

    3.3 grade1()函数

    • 功能:根据要求出题。
    • 思路:通过随机数挑选题目类型,并在相应的题目类型下随机相应的运算数后调用适当的函数。

    3.4 grade2()函数

    • 功能:根据要求出题。
    • 思路:同grade1()函数。

    3.5 grade3()函数


    • 功能:根据要求出题,
    • 思路:同grade1()函数。

    3.6 plus();times();reduce();devide();函数

    plus();

    times();

    reduce();

    devide();

    • 功能:对传入的参数进行对应的加、减、乘、除运算。
    • 思路:四者整体一样,即:
      1.输出算式
      2.读取用户答案
      3.判断正误
      4.输出话语
    • 其中reduce我添加了判断答案若为负数,则将减数于被减数换位。
    • devide我添加了判断答案若有余数,则需输入余数,若无,则无需输入。

    3.7 Threenumbers()函数



    • 功能:实现三个数的所有混合运算
    • 思路:传入进行运算的三个数跟对应的题型(1:三个数连加。2:加减混合。3:一位数的四则运算。)
      1. 若是题型1,仅有加法
      2. 若是题型2,通过随机数跟switch函数随机运算符。
      3. 若是题型3,通过随机数先随机乘除再随机加减。

    3.8 Accuracy_rate()函数

    • 功能:计算正确率。

    3.9 Rightsentence();Wrongsentence();函数

    • 功能:答题完输出鼓励的话

    4.运行结果截图,测试用例。

    一年级:

    二年级:

    三年级:


    5. 调试碰到问题及解决办法

    1.问题:遇到三个数混合运算时,仅通过我的四个运算函数无法实现。办法:我又写了一个专门进行三个数混合运算的函数来实现该功能。
    2.问题:返回主菜单重新开始做题发现正确率大于1。办法:忘了重新定义right=0;在ListMenu();中添加right=0;。
    3.问题:1年级遇到减法时出现了负数。办法:在减法函数添加了对减数和被减数大小的判断。

    6.大作业总结

    • 这个程序刚开始毫无头绪,只写了简单的菜单以及相应的输入等等,对于各个函数是否需要返回值和如何定义都是边写边解决的,这也导致我的代码显得较粗糙。
    • 对于要求的各个题型,绝大部分都能实现,但有的题型并不是很理想。
    • 从这次综合作业中,我觉得在以后编写代码过程中需先要有个清晰的思路,不妨拿笔来写一写,这也在编写代码过程定会更加清楚,简单。也会使得代码易于修改阅读。
  • 相关阅读:
    Python 常用Web框架的比较
    数据库SQL优化大总结之 百万级数据库优化方案
    百万级数据下的mysql深度解析
    微信小程序:bindtap等事件传参
    微信小程序:POST请求data数据请求不到
    动软代码生成器分页存储过程
    微信 获取wx.config 参数 基类
    小程序中的block
    提高商城系统响应速度
    时光煮雨 Unity3D让物体动起来③—UGUI DoTween&Unity Native2D实现
  • 原文地址:https://www.cnblogs.com/gdlkblue/p/11785303.html
Copyright © 2020-2023  润新知