2016c语言课程设计心得体会
c语言课程设计心得体会,C语言课程是一种程序设计的编程学习基础,对于学习计算机类专业的学生,C语言是必学,以下是学生的C语言课程设计设计心得,为大家介绍在课程设计当中学到的知识和个人感受。
c语言课程设计心得体会
在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到了大家的喜爱,在每次的简报中都得到了较好的成绩。
虽然在上个学期中,我们已经学习了《C语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。
C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。
在我们小组有解决不了的问题时,我们会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。为了增大信息的安全性,需要用文件来存储信息,由于我们在上课时不注重对文件的运用,所以在这方面有较大的困难。我先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己的理解,终于,经过我们的不懈努力,我们小组的程序有了突破,成功地实现了用文件来保存并查看学生的信息。
这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自己的想法画出图来,后来画多了,就更加了解它的功能,十分得心应手,能够比较快而准确的画出来。
在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了!
在参考书上,我们不仅参考了曾经学过的高敬阳主编的《c语言程序设计》,还找到了由谭浩强主编的第三版《c语言》进行参考
当然,我们的程序还有一些不完善的地方,比如说,当输入的数据不符合我们定义的数据的格式的时候,程序会出现一些错误,有时会出现主菜单的死循环;在一次程序运行中,只能行使一种权限,要想再行使另一种权限,就只能退出程序,然后再运行程序。
三周的小学期即将结束,时间虽短,但是我收获了很多。最后,谢谢老师和同学们的指导,更要感谢我们小组成员之间的合作与交流
以上这c语言课程设计心得体会就为您介绍到这里,希望它对您有帮助。如果您喜欢这篇文章,请分享给您的好友。更多体会在:心得体会望大家多支持本网站,谢谢
高级语言课程设计指导
一、课程设计的目的
“高级语言程序设计课程设计”是在学完《高级语言程序设计》之后开设的一门独立的实践性课程,是对高级语言程序设计的综合实践,其目的在于加深对高级语言程序设计的基本思想、基础知识和方法的理解,进一步锻炼分析、解决比较复杂问题的能力,提高学生独立编程的能力,为实际软件开发和后续课程的学习打下坚实的基础。
二、课程设计的基本要求
首先要明确课程设计的目的和重要性,选择适当的题目,分组或独立有计划地按照软件工程的思想,在教师的指导下,对题目进行分析、设计和实现,并按照一定的格式写出设计报告。在课程设计过程中,要学会如何运用所学知识和技巧,如何查阅、搜集、归纳整理相关资料,注意如何有意思的按照软件工程的基本规范进行分析、设计和实现。选定题目之后,需要经历下面几个阶段进行课程设计。
1) 题目分析:弄清楚问题到底要干什么,明确设计目标,搜集和查阅相关资料。
2) 系统设计:怎么做才能实现系统的目标。
首先确定问题中有哪些数据,该如何存储,是用多个单个的数组呢,还是用结构体数组,是连续的数组存储,还是不一定连续存储,结构体之间通过指针链接起来呢;数据是怎样输入的,是在运行时通过键盘输入,还是从文件读入,有哪些数据需要输出,输出格式如何,输出到屏幕上还是写到文件中。
然后确定解决该问题有哪些功能模块,每个功能的名字什么,给出对应的函数原型,画出主函数的流程图和典型功能模块的流程图;对所有的功能模块,从主模块,到各个层次的子模块,画出各个功能模块之间的调用层次图。
其次设计一个系统操作界面,确定用户如何使用系统,是命令窗口界面还是图形界面,如何操作。
3) 系统实现:建立一个工程文件,其中至少包含三个文件,第一个是主函数所在的源文件,第二个是各个功能子模块对应的函数所在的源文件,第三个是各个功能子模块的函数原型所在的头文件。
4) 调试程序:上机调试。未必要等把所有的代码都写好才进行编译调试。可以先实现主模块,只调试主函数,所有的子模块函数均使用所谓的树桩函数进行测试。然后逐个实现各个模块,一个一个添加,实现一个调试一个。
5) 系统测试:通过精心准备的测试数据,对系统进行测试,如果发现错误要查找原因改正错误。检查系统是否真正实现了系统的设计目标,操作界面是否方便使用。测试数据最好是通过文件加载,这样可以避免重复输入。
6) 撰写报告:按照给定的格式写出完整、规范的报告并打印。其中模块图、流程图要画得清楚、规范,尽量避免错别字。(另附报告模板)
7) 答辩:告知指导教师设计任务已经完成,进入考核阶段。首先展示和讲解设计报告然后运行系统,演示系统功能和运行结果,准备回答指导教师提出的问题。
三、课程设计的基本内容(题目)
课程设计题目按“高级语言程序设计”课程的成绩分成两类
A组: 成绩较差的同学,必须完成下列所有题目
题目1:写一个函数计算下列函数的值f(0),f(3),f(-3)。测试之
题目2:写一个函数可以打印下面的图案
*
***
*****
*******
*****
***
*
要求每个打印语句只打印一个*号 ,测试之
题目3:写一个函数void maxMinAver(int *data, int *max, int *min,float * ave,int size), 求一组数据的最大值、最小值和平均值,测试之。其中data指向给定数据的数组的指针,max、min、ave分别指向最大值、最小值和平均值,size是数组的大小。
要求第一个实参是数组,第2、3、4个实参都是对普通的简单变量的某种操作,最后一个实参是数组的大小。测试之
题目4 写一个函数用指针型字符串实现两个字符串比较,int mystrcmp(const char *str1, const char *str2),如果大于返回1,等于返回0,小于返回-1,测试之
题目5写一个函数求求圆周率的近视值,精确到小数7位。计算公式是
题目6定义一个学生结构体,取别名STU,包含学号、姓名、数学、语文、计算机、英语等课程成绩,还有总分和平均分,写一个函数实现求一组学生每个学生各门课程的平均值,函数原型为float ave(STU stu[],int size)。测试之。
题目7 写一个函数能够从文件读入一组学生STU的信息,保存到一个结构体数组中。测试之
题目8 写一个函数能够输出某一学生结构体数组STU stu[10]的信息和每个人的总分、平均分到某一文本文件中,测试之。输出格式是:
“%s %s %d %d %d %d %d %5.2f”
题目9 写一个函数能够打印输出学生结构体数组STU stu[10]的信息到屏幕上,测试之
题目10 写一个函数能够把一组学生成绩信息按总分进行排序,测试之。
题目11 写一个函数能够查找给定学号的学生成绩信息,如果找到打印成绩信息,如果没有,显示“not found!”.测试之。
题目11 设计一个界面函数,包含上述11个题目的调用,即
请选择
1 调用第一个函数(具体的函数名)
2 调用第二个函数(具体的函数名)
3
4 。。。
。。。
5 10 调用第10个函数(具体的函数名)
继续吗?输入y继续下一次选择,输入n结束
题目12 创建一个工程文件,包含三个文件,第一个是主函数所在的源文件,含有显示界面,选择1-10,调用不同的函数,第二个是各个函数所在的源文件,第三个是各个函数原型所在的头文件。
B组:成绩较好的同学
必做题:
(1) 编一程序对2种排序方法进行比较:交换法、选择法、插入法、冒泡法四种方法选2。具体比较方法是随机生成一组(≥300个)的100以内的整数数据,用选定的2种排序方法进行排序。纪录排序过程中数据比较和交换的次数,输出比较结果。
(2) 写一个函数void maxMinAver(int *data, int *max, int *min,float * ave,int size), 求一组数据的最大值、最小值和平均值,测试之。其中data指向给定数据的数组的指针,max、min、ave分别指向最大值、最小值和平均值,size是数组的大小。
要求第一个实参是数组,第2、3、4个实参都是对普通的简单变量的某种操作,最后一个实参是数组的大小。测试之
下列题目选其一
题目1:基于数组的学生成绩管理系统的设计与实现
具体要求:
(1)系统具有打开已有数据文件、添加一条学生纪录(即一条学生成绩信息)、删除一条学生纪录、修改一条学生纪录,查看所有的成绩信息、按照学号查找学生成绩信息、按照总分降序排序学生成绩信息、按照平均值查询平均值大于90的学生信息、按照平均值查询平均值小于60的学生信息等功能。注意添加、修改、删除学生纪录之后要把修改后的数据输出到相应的文件中。
(2) 程序应该能进行简单的异常处理。如检查用户输入数据的有效性,在用户输入数据有错误(如类型错误)或无效时,不应中断程序的执行,应该给出提示。打开文件时检查文件是否存在。除数是否为零的检测。
(3)从文件中读入的数据保存在一个结构体数组中,对数组的操作可以用指针,也可以只用下标,最好有用指针的函数模块,如通过文件加载数据到数组。
题目2:基于指针的学生成绩管理系统的设计与实现
具体要求:
(1)系统具有打开已有数据文件、添加一条学生纪录(即一条学生成绩信息)、删除一条学生纪录、修改一条学生纪录,查看所有的成绩信息、按照学号查找学生成绩信息、按照总分降序排序学生成绩信息、按照平均值查询平均值大于90的学生信息、按照平均值查询平均值小于60的学生信息等功能,注意添加、修改、删除学生纪录之后要把修改后的数据输出到相应的文件中。
(2) 程序应该能进行简单的异常处理。如检查用户输入数据的有效性,在用户输入数据有错误(如类型错误)或无效时,不应中断程序的执行,应该给出提示。打开文件时检查文件是否存在。除数是否为零的检测。
(3)从文件中读入的数据保存在一个结构体链表中,对数据的访问是遍历已经建好的链表。
类似的还有下列题目,具体的功能模块自己分析设计,它们都应该具有从文件加载数据、添加、删除、修改、查询、显示等功能,具体的要求同题目1、题目2非常类似。
题目 3基于数组的学生信息管理系统的设计与实现
题目 4 基于数组的图书信息管理系统的设计与实现
题目 5 基于数组的通讯录管理系统的设计与实现
题目 6 基于指针的学生信息管理系统的设计与实现
题目 7 基于指针的图书信息管理系统的设计与实现
题目 8 基于指针的通讯录管理系统的设计与实现
其它类型的题目:
题目9模拟简单的计算器
设计一个程序来模拟一个简单的手持计算器。程序支持算术运算+、-、*、/、=、以及C(清除)、A(全清除)操作。
基本要求
程序运行时,显示一个窗口或菜单界面,等待用户选择运算类型,并输入数据,回车后输出计算结果(不用考虑运算符的优先级)
测试数据
程序输入不少于5种不同的表达式进行测试。
题目10 写一个日历显示程序
基本功能:
1).输入任一年将显示出该年的所有月份日期,对应的星期
2). 注意闰年情况
其显示格式要求如下:
1)月份:中文英文都可以,
2)下一行显示星期,从周日到周六,中英文都可以
3)下一行开始显示日期从1号开始,并按其是周几实际情况与上面的星期数垂直对齐
当输入2004显示如下:
Input the year:2004
Input the file name:a
The calendar of the year 2004.
Januray 1 February 2
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
1 2 3 1 2 3 4 5 6 7
4 5 6 7 8 9 10 8 9 10 11 12 13 14
11 12 13 14 15 16 17 15 16 17 18 19 20 21
18 19 20 21 22 23 24 22 23 24 25 26 27 28
25 26 27 28 29 30 31 29
=========================== ===========================
March 3 April 4
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 1 2 3
7 8 9 10 11 12 13 4 5 6 7 8 9 10
14 15 16 17 18 19 20 11 12 13 14 15 16 17
21 22 23 24 25 26 27 18 19 20 21 22 23 24
28 29 30 31 25 26 27 28 29 30
=========================== ===========================
…
题目11钟表显示程序
要求: 能模拟机械钟表行走,还要准确地利用数字显示日期和时间,在屏幕上显示一个活动时钟,按任意键时程序退出。(如下图)
提示:可以使用Turbo C的图形库或者课件中提供的postscript的格式的图形库
题目12 贪吃蛇游戏
程序要求:游戏时,一条蛇在密闭的围墙内, 围墙内会随机出现一个食物,通过键盘上的4个光标键控制蛇向上下左右4个方向移动,蛇头接到食物,则表示食物被蛇吃掉,这时蛇的身体加长一节,同时计10分。接着又出现食物等待被蛇吃掉。如果蛇在移动过程中,撞到墙壁或身体交叉(蛇头撞到自己的身体),则游戏结束。
提示:使用Turbo C的图形库
四. 学时安排:
课程设计的时间是一周。
具体地点:学校计算中心,北教1号楼102,103
计算机系实验室 C2-416, C2-418
具体时间:周1:3-8(计算中心)
周2:1-2,7-8(计算中心),C2-416, C2-418(全天)
周3:1-2 (计算中心) 3-4 C2-416, 5-8 C2-416, C2-418
周4:1-2,7-8(计算中心),3-4 C2-418,5-8 C2-416, C2-418
周5:1-4(计算中心),5-8 C2-416, C2-418
其它时间待定系实验室
五. 程序设计可选编译器或集成开发环境
(1) Turbo C 或 WinTC (机房电脑已安装)
(2) Visual C++ 6.0(机房电脑已安装)
(3) Gcc 和 Code::Block (下载后自行安装,下载codeblocks-10.05mingw-setup.exe 下载地址 http://www.codeblocks.org/downloads/26
六、建议教材和参考书
建议教材:
自编教材《问题求解与程序设计》以及本课程设计指导
参考书:
[1] 《C程序设计语言》(第2版·新版),(美)Brian W.Kernighan,Dennis M.Ritchie 著,许宝文等译,机械工业出版社,2004
[2] 《C语言程序设计·现代方法》(美)K.N.King著,吕秀锋译,人民邮电出版社,2007
[3] 《C Primer Plus中文版(第五版)》,(美)Stephen Prata著,云巅工作室译,人民邮电出版社,2005
[4] 《C大学教程》(第5版),(美)H.M.Deitel,P.J.Deitel著,苏小红等译,电子工业出版社,2008
[5] 《你必须知道的495个C语言问题》,(美) STEVE SUMMIT著,孙云等译,人民邮电出版社,2009
[6] 《C陷阱与缺陷》,(美)Andrew Koenig著、高巍译,人民邮电出版社,2008
[7] 《C专家编程》,(美)Peter vander Linden(著),徐波(译),人民邮电出版社, 2008
[8] 《C语言程序设计(C99版)》,陈良银等编著,清华大学出版社,2006
[9] 《C程序设计课程设计》,刘振安,孙忱,机械工业出版社,2004
七、考核方式与评分办法或标准
考核方式:演示和口试相结合
评分标准:
1. 程序的基本功能是否实现
2. 数据结构是静态还是动态
3. 是否包含文件操作(游戏类除外)
4. 是否考虑异常处理
5. 文档和代码书写是否规范
5.回答问题是否清晰
6.是否使用了多文件建立工程
7.是否有旷课
最终的成绩按五分制评定:优、良、中、及格和不及格。
高级语言程序设计课程设计
题目:
专 业
班 级
学 生
学 号
指导教师
起止时间
____年 ____月
报告内容
A组和B组必做题
写出题目
每个题目给出完整实现代码
每个题目做一个简短的评论,指出解决该问题的关键所在
B组选做题
先写出题目
一、 系统分析
系统要做什么?什么样的数据需要处理,数据要求怎么输入怎么输出,有哪些基本功能,
二、 系统设计
1. 数据结构设计:即怎么表示数据,如何存储数据?用数组还是链表,数据结构体怎么定义的
2. 功能设计,有哪些功能,画出总体功能结构图
给出主函数流程图
3. 给出每个功能对应的函数原型和该功能对应的流程图
4. 系统界面设计:给出操作界面
三、 系统实现
写出每个子函数和主函数的实现代码
按照下列顺序分别写出
1. 函数原型构成的头文件
2. 主函数所在的文件代码
3. 各个函数模块对应的文件代码
四、 运行测试
设计测试数据,并输入,给出运行结果
五、 心得体会
六、 参考文献
在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到…
体会通过这次C语言的课程设计我明白了很多也知道了很多更收获了很多在课程设计的过程中出现过困难三周的课程设计已经结束了回想学习C语言…
河南城建学院C语言程序设计课程设计报告适用专业工程管理专业课程名称指导教师设计人051409112王田20xx年6月一设计目的和要…
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过…
C语言程序设计心得体会在设计打字游戏的过程中通过我们小组各成员之间的相互讨论和合作我们完成了打字练习的程序设计在这个学期中我们已经…
在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到…
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过…
课程设计心得体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的…
数据结构课程设计设计题目:两个链表的交叉合并专业班级:08软件工程3班姓名:**学号:***设计时间:20XX/9/25指导教师:…
河南城建学院C语言程序设计课程设计报告适用专业工程管理专业课程名称指导教师设计人051409112王田20xx年6月一设计目的和要…
C语言程序设计心得体会在设计打字游戏的过程中通过我们小组各成员之间的相互讨论和合作我们完成了打字练习的程序设计在这个学期中我们已经…