zoukankan      html  css  js  c++  java
  • C语言程序设计课程设计自查表格

    课程设计自查表格

    序号 项目 完成与否(完成打勾)
    1 格式是否符合标准(缩进是否规范)
    2 是否模块化设计(使用函数分解系统功能)
    3 函数名否易懂(不得使用f1(int a1,int a2)这样的函数函数名、入参名,建议使用英文)
    4 变量名是否规范(循环中次序变量一般使用i,j,k,计数建议使用count,其他建议使用英文或英文缩写,如avg, sum)
    5 每个函数有无注释(包括函数功能、入参说明、返回参数说明)
    6 函数名是否规范(建议使用英文)
    7 是否滥用全局变量(建议不用)
    8 除非你明确知道为什么使用goto语句,且明白goto语句的副作用。否则,不得使用goto语句
    9 有无测试边界条件

    表格使用说明:

    For 老师:课程设计之前就将此表格分发。
    For 学生:可以在程序编写完,再对照此表格进行重构。课程设计检查前请先按照此表格进行自查。该表格为基本要求,请务必按照此要求改正。

    变量、函数命名建议:

    使用驼峰法
    void printStudentName(...) //打印学生姓名的函数, int addUser(User* user) //添加学生
    avgScore //存放平均分变量,

    常用变量名与函数名:
    tmp 一般用于临时变量,
    i, j, k 作为局部循环变量,不要用x,y,z或者a1,a2,a3作为局部循环变量。
    add, sub, mult, div, count, avg, sum
    day, month, year
    flag 一般用于标志位
    max(最大), min(最小)
    num用于数字,如numStudents(学生数目)

    指针类型变量:
    ptr 一般用来代表指针 ,如ptrA
    pre 代表指向前一个的指针, next 代表指向下一个指针, cur 当前一个的指针
    p, q

    常用单词(建议背下来):
    search 搜索,get 获取,arr 数组,list 列表, file 文件, str 字符串,
    len 长度,arrLen 数组长度,name 名称
    add/remove,添加/移除 add/delete,添加/删除 insert/delete,插入/删除
    start/stop,开始/停止 begin/end,开始/结束 send/receive,发送/接收
    get/set,取出/设置 get/release,获取/释放 put/get,放入/取出
    show/hide,显示/隐藏 open/close,打开/关闭
    source/target,源/目标 increment/decrement,增加/减少
    source/destination,源/目的地 也可以src/dst
    create/destroy,创建/销毁, min/max,最小/最大 store/query,存储/查询

    结构体首字母应用大写
    struct Student{....}

    常量名应用大写
    #define MAX_NUM 10

    范例程序

    #include <stdio.h>
    #include <stdlib.h>
    
    #define YES 1
    #define NO -1
    #define ERROR -2147483000
    #define ARR_LEN 5
    
    
    /**********************************************************************************
    Descriptions: 判断参数value是否在low(包含low)与high(包含high)之间
    Input   para: value, 所要判断的数值
                  low,  范围的下界
                  high,  范围的上界
    Return value: YES,   在范围内。NO, 不在范围内
    ***********************************************************************************/
    int isBetween(int value, int low, int high)
    {
        if(value >= low && value <= high)
            return YES;
        return NO;
    }
    
    /**********************************************************************************
    Descriptions: 返回arr数组从下标0到len之间(不包括len)所有在low与high之间的值的和
    Input   para: arr,  传入数组
                  len, 数组长度
                  low,  数值范围下界
                  high, 数值范围上界
    Return value: arr数组从下标0到len之间(不包括len)所有在low与high之间的值的和
    ***********************************************************************************/
    int sumInArray(int arr[], int len, int low, int high)
    {
        /*注意:每个函数的功能要简单,该函数只负责计算,不负责处理输入输出*/
        /*一般函数入口可以判断参数有效性*/
        if (low>high )
        {
            printf("参数无效!参数high必须大于low
    ");
            return ERROR;
        }
        if (len<=0)
        {
            printf("参数无效!参数len必须大于0
    ");
            return ERROR;
        }
    
        int sum = 0;
        int i;
        for(i = 0; i < len; i++)
        {
            if (isBetween(arr[i], low, high)==YES)
            {
                sum += arr[i];
            }
        }
        return sum;
    }
    
    /*每个函数的功能尽量简单,此函数只负责显示菜单和返回用户选择的值*/
    char mainMenu()
    {
        char choice;
        printf("		*****欢迎进入XX系统*****
    ");
        printf("		*****1.选择1计算   *****
    ");
        printf("		*****2.选择2退出   *****
    ");
        while (1)
        {
            scanf("%c",&choice);
            if (choice<'1' || choice>'2')
                printf("		输入错误,重选1-2
    ");
            else
                break;
            getchar();//消化输入缓冲区的回车换行符
        }
        return choice;
    }
    
    void calAndDisp(int arr[])
    {
        int len, low, high;
        printf("请输入len、low与high(中间以空格分隔):");
        scanf("%d %d %d",&len, &low, &high);
        getchar();
        
        int result = sumInArray(arr, len, low, high);
        printf("输出结果:数组arr中,所有在%d与%d之间的值的总和为%d
    ", low, high, result);
        
    }
    
    
    int main()
    {
        int arr[ARR_LEN] = {-1,1,2,3,11};
        char choice;
        while(1)
        {
            choice = mainMenu();
            switch(choice)
            {
            case '1':
                calAndDisp(arr);
                break;
            case '2':
                printf("退出系统!");
                exit(0);
                break;
            }
        }
        return 0;
    }
    
    

    评分标准

    基本考虑因素:

    1.功能是否完整。
    2.是否模块化设计?
    3.实现难度如何?(如,使用链表实现相对数组实现难,起评分也应提高)。
    4.有多少是自己做的?借鉴部分能否看懂代码?

    其他考虑因素:

    1.有无出错处理。
    2.有无特别功能。
    3.是否会使用调试技巧解决问题。

    附件

    C语言程序设计课程设计自查表格

  • 相关阅读:
    Spring-扫描并创建bean
    MySQL源码解读之数据结构-lf_alloc-pin
    MySQL源码解读之数据结构-LF_DYNARRAY
    MySQL源码解读之数据结构-动态数组
    Zookeeper事件监听机制
    zookeeper javaAPI
    zookeeper权限控制 ACL
    zookeeper常用客户端命令
    zookeeper安装部署
    zookeeper简介
  • 原文地址:https://www.cnblogs.com/zhrb/p/6270496.html
Copyright © 2011-2022 走看看