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


    这个作业属于哪个班级 C语言--网络2011/2012
    这个作业的地址 c语言博客作业03--函数
    这个作业的目标 学习如何设计函数、C语言基本数据类型
    姓名 张静雯

    0.展示PTA总分(0----2)

    1.本章学习总结(4分)

    整理这两周学习主要知识点,并能对每个知识点介绍简单案例或语法。不要截图ppt,自己文字书写。知识点包含:

    1.1 函数定义、调用、声明

    1.1.1函数定义

    函数是一个完成特定工作的独立程序模块,包括库函数和自定义函数两种。

    • 库函数:由C语言系统直接提供定义,可以直接调用
    • 自定义函数:需要用户自己定义
      ==自定义函数的一般形式
    函数类型 函数名 (形式参数表)/*函数首部*/
    {
       函数实现过程           /*函数体*/
    }
    

    函数名:函数整体的称谓
    函数类型:函数结果返回的类型一般与return语句中的表达式的类型一致。
    形参表:函数计算所要用到的有关已知条件,格式:(类型1 形参1,类型2 形参2,...类型n 形参n)
    函数的形参可以是多个或者没有
    函数的首部不能加括号,他和函数体一起构成完整的函数定义

    1.1.2函数的调用

    函数调用的一般形式:

    函数名(实际参数表)
    

    对于实现计算功能的函数,函数调用常常出现在两种情况

    • 赋值语句
      a=valuea(i)
    • 输出函数的实参
      printf("%d",aluea( i))

    注意:retunrn语句只能返回一个值
    形参不会影响实参的值

    1.1.3函数声明

    函数类型 函数名(参数表)
    

    函数调用前一定要定义和声明

    1.2 全局、局部变量、静态局部变量

    1.2.1全局变量

    • 定义:定义在函数外而不属于任何函数的变量。
    • 作用范围:从定义开始到程序所在的文件结束,他对作用范围内的所有函数起作用。
    • 优点:解决多个函数间的变量共用
      一般情况下把全局变量定义在函数的最前面,即第一个函数的前面

    1.2.2局部变量

    • 定义:定义在函数内部的变量
    • 作用范围:局限于所在函数的内部
    • 优点:避免了各个函数之间的变量互相干扰
      全局变量可以解决函数多结果返回的问题,但全局变量更多的用于多函数间的全局变量表示。

    1.2.3静态局部变量

    定义格式:

    static 类型名 变量表
    

    特征:
    1.变量定义时没有赋初值,系统将自动赋初值为零
    2.赋初值只在第一次调用的时候起作用,以后调用都按前一次保留的值使用。

    1.3 C数据类型及注意点

    每个数据类型特点及其相关知识的扩展。如浮点误差、字符型数据输入问题等等

    1.3.1整型与整型常量

    整型常量的表示

    进制 首数字 组成
    十进制 不能是0 +,-,0~9
    八进制 0 +,-,0~7
    十六进制 0x或者0X +,-,09,af,A~f

    1.3.2字符型与字符型常量

    1.字符型
    在内存中占用一个字节,用于储存它的ASCII码
    ==整型变量和字符型变量的定义和值都可以相互交换
    2.字符型常量

    • ASCII字符集
    • 转义字符
      | 字符 | 含义 |
      | ---- | ---- |
      | | 换行 |
      | |横向跳格|
      ||反斜杠|
      |"|双引号|
      |'|单引号|
      |ddd|1~3位八进制整数所代表的字符|
      |xhh|1~2位十六进制所代表的的字符|

    1.3.3实型和实型常量

    1.实型
    实数类型又称浮点型,指存在小数部分的数

    • 单精度浮点型:float %f
    • 双精度浮点型:double %lf
      2.实型常量
      表示方法:
    • 浮点表示法:实数由正号负号和0~9和小数点组成,必须要有小数点,小数点后面必须至少有一个数字
    • 科学计数法:实数由正号负号和0~9和字母E组成,E是指数的标志,E之前要有数据,E之后的指数只能是整数
      使用浮点数的时候考虑是否产生浮点误差

    1.3.4例题

    1.3.4.1展示题目

    1.3.4.1展示提交列表

    分析错误原因

    由于最低有效位的限制,浮点数的表示法存在精度丢失的问题,,可以在输入的时候扩大有效位,加0.0000001

    正确案例

    1.4 C运算符

    1.5学习体会

    通过分装函数可以减少代码的重复,在接下来的编程中我会尽可能的使用函数,加大熟练度

    2.综合作业(6分):小学生口算表达式自动生成系统

    口算题参考网站

    一、基本功能要求:
    1.至少完成一个年级的口算题自动出题系统,尽量完成3个年级的出题设计。
    2.注意每个年级运算数要求,运算数和运算符要随机生成
    3.用户每选择一个难度级别后必须输入题目数量,能统计用户的正确率。用户每算一题,若错误,给出正确答案。 用户中途退出,不继续做题,需要有个提示操作可中途退出。

    二、注意

    1. 请先画流程图理清数据处理流程,再进入代码编写。理清系统需要设计的模块。
      2.流程图中,对应一个模块内容,务必设计函数封装,不要把代码都放main或某一个函数中。独立功能代码块、重复功能代码块、各种异常情况要单独封装函数处理,让程序的扩展性更强。
    2. 软件界面必须友好,多加文字提示,能让用户自己当前做什么,接下来怎么做,每步操作可以退到主菜单界面。
      4.注意异常数据处理,如除0错误、不合法数据、临界数据,系统保证运行时候不崩溃。

    三、进阶功能:
    1.每个年级设计二级菜单,选择不同题型出题。不想做题可以返回主菜单。
    2.混合运算比如2+3*4运算,注意考虑运算符优先级问题
    3.可以设置答题时间,用户超过答题时间,提示不能继续做题,重新选抽题。请查阅C的时间函数。
    以下为博客作业需要完成内容:

    2.1.模块流程图

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

    介绍你用到核心函数接口及全局变量。

    2.2.1.全局变量

    int value1;//存放第一个随机数
    int value2;//存放第二个随机数
    int a;
    char op[4]{ '+','-','*','/' };//存放产生的符号
    int correctAnswer = 0;//统计正确答案的个数
    int yuorAnswerNum = 0;//存放已答题的个数
    int answerNum = 1;//统计答题个数
    

    2.2.2 菜单相关函数

    2.2.2.1分装不同年级的菜单





    函数功能:主要作用是进入不同的年级,输出不同年级的操作界面,产生对应的算式,判断正误,操作结束后输出正答率和提示

    2.2.2.2.输出计算前的提示词的函数

    函数功能:随机生成一种提示,对操作者进行鼓励
    函数思路:生成一个随机数,对该随机数除3,取余,根据得到的余数用switch case 语句进入不同分支,输出不同的鼓励的话

    2.2.2.3答案正确的提示词函数


    函数功能:当操作者回答正确时,随机输出一种表扬的话
    函数思路:生成一个随机数,对该随机数除3,取余,根据得到的余数用switch case 语句进入不同分支,输出一种表扬的话

    2.2.2.4答案错误的提示词函数

    函数功能:当操作者回答错误时,随机输出一种鼓励的话
    函数思路:生成一个随机数,对该随机数除3,取余,根据得到的余数用switch case 语句进入不同分支,输出一种鼓励的话

    2.2.2.5不同正答率输出函数

    函数功能:根据不同的正答率输出不同的提示词
    函数思路:将正确率传入函数,用if_else_if语句从大到小判断正确率所处的范围,输出对应的提示,如果正确率高,则进行表扬,如果正确率低,则进行鼓励

    2.2.2.6游戏操作界面


    函数功能:输出函数的菜单,使操作者能选择不同年级的题目
    函数思路:输出菜单页面,操作者输入对应年级,用switch case语句进入不同的年级题目菜单,用while语句判断操作者的输入是否合理,若不合理,进入循环,输出提示,重新展示菜单页面

    2.2.3 出题相关函数

    2.2.2.1产生随机式子的函数



    函数功能:根据不同年级产生不同的式子
    函数思路:传入该年级数,用switch case 进入不同年级的分支,产生两个相应范围的随机数;再用一个switch case 语句,进入不同年级的分支,随机产生相应等级的符号。判断式子是否合理,处理不合理的式子,输出该式子。由于随机数1和随机数2和符号使用的是全局变量,所以该函数调用结束后,随机数1和随机数2和符号被改变。

    2.2.2.2运算答案的函数

    函数功能:算出结果
    函数思路:传入产生的数和运算符,用switch case语句判断运算类型,算出答案。

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

    2.3.1测试数据1:

    年级1,回答题数5


    2.3.1测试数据2

    二年级 答题数:4

    2.3.2测试数据3

    三年级 答题数:10

    2.4.大作业中编程技巧总结

    2.4.1如何解决除法结果为小数的问题

    通过用除数加上余数的方法,使结果一定为整数
    实现代码如图:

    2.4.2清屏函数

    system("cls");
    

    2.4.3延时函数

    Sleep (500) ; 
    

    注意第一个字母是大写,windows C语言中单位是毫秒(ms)。
    就是到这里停半秒,然后继续向下执行。

    2.3.2exit(0)与exit(1)

    exit(0):正常运行程序并退出程序;
    exit(1):非正常运行导致退出程序
    代码提交
    请博客作业页面内容+口算系统的全部代码复制到一个word文档中。(记住,要复制过去,不能截图),文档保存好请提交课堂派的作业中。我们会用课堂派对你写的代码进行查重,请务必要独立完成。

  • 相关阅读:
    CDE 快捷键
    shell 快捷键
    Monitor 问题
    vim 编辑快捷键
    MySQL 的include lib文件夹找不到怎么
    深入分析C++引用
    vim 查找匹配字符串次数
    如何配置Vim背景色以及字体?
    vim中字体和配色方案设置
    C#设置richtextbox滚动到最后一行
  • 原文地址:https://www.cnblogs.com/zjw123/p/14026272.html
Copyright © 2020-2023  润新知