C课程设计教学大纲

发布 2022-10-02 13:08:28 阅读 3582

一、目的与任务。

根据高教委的要求,高校学生必须具备扎实的计算机基础知识,具有较强的程序设计和软件开发能力,特别对计算机专业及相关专业(如电子信息工程、通信工程、土木工程等)的学生要求更高。安排课程设计的目的,就是要通过一次集中的强化训练,使学生能及时地巩固已学的基础知识,补充未学的但又是必要的内容,更进一步提高程序设计的能力。望同学们能珍惜此次课程设计的机会,不但要使自己的程序设计能力更上一个台阶,而且要提高与程序设计和软件开发相关的各种综合能力。

二、时间安排。

1.课程设计以编程序上机为主,具体按教师每次下发的课程序设计内容进行。

2.总学时为周20个学时。

三、评分标准。

课程设计结束后,由指导老师根据学生在课程设计中的表现及任务完成的数量与质量给每个学生评定成绩。总成绩由两部分组成。总成绩=课堂检查成绩*40%+设计报告成绩*60%

1.课堂检查。

在课程设计的每一次,由指导老师分别对每个学生的设计进行检查,检查的内容主要有以下三个方面。

每次课程设计完成的数量与质量,可采用学生先汇报并自我评价,然后老师作检查。

随机抽取题目对学生提问,从中判定学生的算法设计和程序设计的分析能力。

随机抽取学生地综合设计的模拟运算过程及结果,并作必要的提问,据此判别学生对综合练习的完成情况。

2.课程设计报告。

指导教师认真阅读每个学生的课程设计报告,对其系统设计、数据结构设计、算法设计、程序设计等的合理性和质量以及对报告的编写质量作认真的审核,以此作为评定综合练习成绩的主要依据。

四、设计报告格式(参考附件一)

文档资料的统一要求:

1、文档中的正文字体用五号宋体。

2、每个问题均要有数据结构分析、算法思想描述、源**和上机调试的过程及结果。

3.工程名称:学号姓名任务;文件名称:学号姓名任务。

4、源**是c++编辑正确且含有编译、连接的提示信息贴图、程序运行的结果用贴图方式表示。

5、没有按要求做的同学则视为本课程设计不合格。

6、每次上机所做的内容用移动磁盘带走。

五、课程设计内容。

第1章分支与循环。

1.1 算法与范例。

1.递推算法。

递推算法是循环程序设计的精华之一,在很多情况下使用递推算法能使程序简练,同时还能节省计算时间。

递推算法的基本思想:是利用前一项的值来推算出当前项的值,即利用前一项的值乘以(或加上)一系数得到当前项的值。使用递推算法的前堤,必须有一项的值(一般是最前项)是已知的。

使用递推算法的关键地,是如何将多项式化成递推公式。

示范:求(即1!+2!+3!+…20!)的程序。

编程提示:n=1 to 20

当n=1时,要做两件事:① 实现t=t*n 注意t=1;② 实现 sum=sum+t 注意sum=0。当n=2时,还是要做以上两件事。

因此t=t*n,sum=sum+t是递推项是编程的核心。

参考程序:#include <>

void main()

double sum=0,t=1; int n;

for (n=1;n<=20;n++)

printf("1!+2!+.20!=%22.15e",sum);

2.测试法。

在实际应用中,有许多问题是无法用解释方法实现的,这时采用测试法来求解是一种很有效的方法。

测试法的基本思想是假设各种可能的解,让计算机进行测试,如果测试结果满足条件,则假设的解就是所要求的解。如果所要求的解是多值的,则假设的解也应是多值的,在程序设计中,实现多值解的假设往往使用多重循环进行组合。

示范:百钱买百鸡问题。

已知公鸡每只5元,母鸡每只3元,小鸡1元买3只。要求用100元钱正好买100只鸡,问公鸡、母鸡、小鸡各多少只?

编程提示:设公鸡、母鸡、小鸡分别为a、b、c只,依据题目能列出下列两个方程:

a+b+c=100

5a+3b+c/3=100

这是个不定方程,无法用解释式求解。但可采用多重循环组合出各种可能的a、b、c的值。100元钱,全部买公鸡最多只能买20只,即公鸡的只数范围是:a=1 to 20

100元钱,全部买母鸡最多只能买33只,即母鸡的只数范围是:b=1 to 33

100元钱,全部买小鸡最多只能买100只,即公鸡的只数范围是:c=1 to 100

参考程序:#include<>

void main()

int a,b,c; printf("公鸡母鸡小鸡");

for(a=1;a<=20;a++)

for(b=1;b<=33;b++)

1.2 设计任务。

1.若一个口袋中放有12个球,其中有3个红色球,3个白色球和6个黑色球,从中任取8个球,问共有多少不同的颜色搭配。

2. 输入年月日,求它是该年的第几天。注:闰年的2月有29天,平年的2月有28天。

3. 简单计算器。请编写一个程序计算表达式:data1 op data2的值。其中op为运算符+、-

4. 猜数游戏。由计算机“想”一个数请人猜,如果猜对了,则游戏结束,否则计算机给出提示,告诉人所猜的数是太大还是太小,直到猜对为止。

计算机记录人猜的次数,以此可以反映出猜数者“猜”的水平。

1.3 实现过程。

1.3.1设计任务1的实现过程。

1.算法分析(用文字或流程图进行描述)

2.编写的源程序**。

3.程序运行的结果。

1.3.2 设计任务2的实现过程。

1.算法分析(用文字或流程图进行描述)

2.编写的源程序**。

3.程序运行的结果。

1.3.3 设计任务3的实现过程。

1.算法分析(用文字或流程图进行描述)

2.编写的源程序**。

3.程序运行的结果。

1.3.4 设计任务4的实现过程。

1.算法分析(用文字或流程图进行描述)

2.编写的源程序**。

3.程序运行的结果。

第2章数组与函数。

2.1 启示与范例。

1.输入n个学生的成绩,并求出其中高于平均分的人数。

编程提示:用程序来实现本题的要求,首先有两个值得思考的问题:一是数据结构的选择;二是数组的长度。

数据结构的选择:n个学生的成绩是否有必要开辟数组来存放还是定义变量来存放?从任务要求分析知,两次用学生成绩,一次是求平均分;另一次是将每个学生的成绩与平均分比较,高于平均分要输出。

因此有必要将其定义数组。

数组的长度定义:学生个数n的具体数值一般表示在编写程序时是未知的,而在程序执行时由使用者随意确定。即n是一个变量,其值需要用输入来确定。

这样一来,存放n个分数的数组a,其长度的定义就必须注意,既不能定义为int a[n];因为数组长度要求是常量,而n是一个变量,又不能将n定义成符号常量,因为n的具体值是未知的。对于这种情况的处理方法一般是:将数组的长度定义较大,让使用者在此范围内随意使用,当然这个长度的定义有其原则,那就是既不让使用者感到长度不够,又不至于定义过大而浪费内存,这种情况视应用情况而定。

参考程序:#include<>

void main()

int i,a[1000],num=0,n;float **er=0;

printf("输入学生个数n");scanf("%d",&n);

printf("输入学生的成绩存放到数组a中");

for(i=0;i

**er=**er/n;

for(i=0;i if(a[i]>=**er) num++;

printf("高于平均分的人数是:%d",num);

2.输入任意个学生的学号及成绩,然后按顺序输出高分的前十名。

编程提示:依据设计任务的要求需要考虑几个问题:初始数据的数据结构选择;采用的算法如何实现及相关的数据结构;任意个数据的实现问题。

初始数据的数据结构选择问题:所谓任意个学生,应该是个数不限,因此,对于存放初始数据的数据结构不宜选择为数组。并且,从算法实现的角度考虑,每个学生的数据输入后只需使用一次,没有再保留的必要,因此可选择简单变量作数据结构来存放一个学生的数据,而且每个学生的初始数据都用同一个数据结构存放,即对一个学生的数据使用完后就将该数据结构让给下一个学生的数据使用。

算法的实现及相关的数据结构:本题核心的算法是排序,由设计任务可知只要求前十名的排序结果,因此算法上不需考虑对所有学生数据进行排序,只考虑对前十名排序即可。因此,应选择合适的数据结构来存放前十名排序结果的数据,显然,选择数组是最合适的。

关于算法的实现可采用插入排序法最为合适。即存放排序结果的数组始终是存放当前已插入数据的前十名的排序结果,而后每输入一个学生的数据就进行一次插入排序更新这一排序结果。

任意个的实现:对于本题的程序来说,总体结构是然是一个循环结构,每次循环的任务是输入一个学生的数据并进行插入排序。问题是何时结束循环?

循环结束的条件是什么?对用户输入的有用数据,循环继续;对用户输入的无用数据即输入数据为负数时,循环结束。

为了使程序更加清晰。主程序只提供输入学生的学号、成绩,并且输出前十名的学号及成绩;子函数实现插入排序的过程。

参考程序:#include<>

void insertsort(int num,int a,int n,int number,int score)

int i,j;

for(i=0;i if(score>a[i])break;

if(i>=n)return;

for(j=n-1;j>i;j--)

num[i]=number; a[i]=score;

void main()

int i,num[10],a[10],number,score;

for(i=0;i<10;i++)

while(1)

{printf("输入学生的学号及学生成绩:");

scanf("%d%d",&number,&score);

if(number<0||score<0)break;

insertsort(num,a,10,number,score);

c 课程设计教学大纲

功能基本要求 1 能查询 录入 增加 删除。2 复制 备份。3 支持网络功能 比如 模仿qq 题目 成绩管理系统。功能基本要求 1 按班级建立学生文件,对应增删改功能。2 建立学生成绩文件的录入,对应增删改功能。3 学生成绩可以按学生,按课程求平均。4 提供必要的查询功能。题目 工资管理系统。功能基...

C语言课程设计教学大纲

c语言课程设计 课程教学大纲。课程英文名称 course exercise in c language 课程编号 设计周数 1周。学分数 2 适用专业 计算机科学与技术。一 课程的性质 目的和任务。该课程是一门计算机重要的专业实践性课程。它培养学生加深对c语言课程和基本知识的理解 掌握使用c语言进行...

课程设计教学大纲

课程名称 工程经济学设计。课程编号 0807906192 设计周数 1.5 设计学分 1.5 开设学期 4 适用专业 工程管理。先修课程 工程经济学。一 目的和意义。1.通过对工程项目经济设计,加强学生对工程项目评价经济评价能力的培养,和工程项目经济计算软件的应用能力。2.通过学生对工程项目经济评价...