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语言程序设计课程设计自查表格

  • 相关阅读:
    LeetCode 275. H-Index II
    LeetCode 274. H-Index
    LeetCode Gray Code
    LeetCode 260. Single Number III
    LeetCode Word Pattern
    LeetCode Nim Game
    LeetCode 128. Longest Consecutive Sequence
    LeetCode 208. Implement Trie (Prefix Tree)
    LeetCode 130. Surrounded Regions
    LeetCode 200. Number of Islands
  • 原文地址:https://www.cnblogs.com/zhrb/p/6270496.html
Copyright © 2011-2022 走看看