课程设计自查表格

序号 项目 完成与否(完成打勾)
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\n");
return ERROR;
}
if (len<=0)
{
printf("参数无效!参数len必须大于0\n");
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("\t\t*****欢迎进入XX系统*****\n");
printf("\t\t*****1.选择1计算 *****\n");
printf("\t\t*****2.选择2退出 *****\n");
while (1)
{
scanf("%c",&choice);
if (choice<'1' || choice>'2')
printf("\t\t输入错误,重选1-2\n");
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\n", 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语言程序设计课程设计自查表格

C语言程序设计课程设计自查表格的更多相关文章

  1. C语言程序设计课程总结

    第一次教授C语言程序设计课程,相比计算机组成原理.arm体系结构等偏向硬件的课程,C的教学方式要灵活一些.计算机组成原理课程偏向理论,哈尔滨工业大学的计算机组成原理是国家精品课,增加了mooc+spo ...

  2. c语言程序课程设计题目

    <C语言程序设计>课程设计课题表 一.A类 .职工信息管理系统设计 职工信息包括职工号.姓名.性别.年龄.学历.工资.住址.电话等(职工号不重复).试设计一职工信息管理系统,使之能提供以下 ...

  3. Java语言程序设计课程学期总结

    2016-2017 第2学期 课程介绍 编程类课程,76学时(44理论+32实验),学期末还有1周的课程设计. 问题与现状 4个班共120人,教师无法逐一检查每个学生的编程实验. 纸质作业质量不高. ...

  4. 2019年上-C语言程序设计课程内容

    第一节课 序言 为何学习C语言 打印hello world程序 编译步骤,认识编译器 冯诺依曼体系结构 hello world程序如何在计算机上运行的 第二节课 基本数据类型与表达式 求华氏温度对应的 ...

  5. JAVA语言程序设计课程评价

    紧张的又短暂的一个学期结束了,这个学期也许将成为我人生中一个重要的转折点,作为一名半路出家的选手,在初次了解Java语言时我感到非常的迷茫与不知所措.因为之前很多同学都是通过假期时间在家自学,刚转入新 ...

  6. Java课程设计(2019版)

    参考资料 Java课程设计参考资料(2018-12-26更新) Java课程设计常见问题(程序部署.数据库.JSP) 项目开发参考-阿里巴巴Java开发手册(正式版) 更多参考资料请查看QQ群文件中的 ...

  7. 2018年秋季学期《C语言程序设计I》教学过程及学期总结

    一学期下来,问题很多,思考也很多,需要整理.总结,好的经验要形成规律,不好的地方要提示警醒. 教学过程小结: C语言程序设计I-第一周教学 C语言程序设计I-第三周教学 C语言程序设计I-第四周教学 ...

  8. C语言程序设计I—第一周教学

    这是在修改人才培养方案后第一次上C语言程序设计课程,本课程由原来的1学期80课时(周学时6)修改为2学期48(周学时4)+32(周学时2)课时的模式,开课学期也由一年二期改为大一整学年,当时修改的主要 ...

  9. 李志杰的C语言程序设计第一次作业

    这个作业属于C语言程序设计课程 : https://edu.cnblogs.com/campus/zswxy/CST2020-2 这个作业要求在哪里: https://edu.cnblogs.com/ ...

随机推荐

  1. linux下U盘挂载

    linux下挂载U盘 一.Linux挂载U盘:1.插入u盘到计算机,如果目前只插入了一个u盘而且你的硬盘不是scsi的硬盘接口的话,那它的硬件名称为:sda1,可以用"fdisk -l&qu ...

  2. 一次关于mongodb性能踩坑的总结

    发现性能问题 上一次导入数据后,发现系统十分的卡顿,但是才仅仅1000多条数据而已,怎么会让系统变得如何的卡顿呢?于是我开始走在排查系统卡顿的原因的道路上. 首先,先定位问题是出现在前端上还是后端上. ...

  3. Ubuntu无法访问windows分区

    正常情况: 重启, 先进入windows, 再重启进入Ubuntu(一定是重启, 先关机再进Ubuntu没用). 异常情况: sudo ntfsfix /dev/sda5(或6或7,得看哪个盘无法访问 ...

  4. 设计模式之Iterator模式

    STL里的iterator就是应用了iterator模式. 一.什么是迭代模式 Iterator模式也叫迭代模式,是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator按顺 ...

  5. Java面经 面试经验 互联网公司面试经验 后端面试经验

    应聘相关 声明: 1,程序员相关的哈 2,万事无定论,比如说,就算你小学毕业,但是java基础却扎实到变态,我相信open的公司还是会给你机会的. 3,心态很重要,虽然日常的心态不容易控制,面试那俩小 ...

  6. S7-200PLC间的PPI通信

    一. PPI通信协议是一种主从式的通信协议,上位机即PC机为主,PLC为从.通信开始由计算机发起,PLC予以响应. 1).计算机按通信任务,用一定格式,向PLC发送通信命令. 2).PLC收到命令后, ...

  7. 浅酌iOS 11兼容性

    WeTest导读 苹果在WWDC2017大会,公布了最新的iOS 11,系统新特性肯定是让不少果粉充满期待.在网上已能看到不少关于iOS 11的体验文章,那么iOS 11的新特性会对APP产生什么兼容 ...

  8. maven 搭建 SpringMVC + MyBatis(1)

    ·做了两年多Java Web一多半的项目都是SSM架构的,只搭建过两次,趁着周末做个总结整理. Eclipse搭建Maven项目 1.new project  --> Maven project ...

  9. Tomcat启动:Container StandardContext[] has not been started

    Container StandardContext[] has not been started\root.xml 初始化失败,检查数据源配置

  10. 运用jQuery写的验证表单

    //运用jQuery写的验证表单 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...