文档库 最新最全的文档下载
当前位置:文档库 › C语言课程设计指导书2015版(试用版)201506

C语言课程设计指导书2015版(试用版)201506

C语言课程设计指导书2015版(试用版)201506
C语言课程设计指导书2015版(试用版)201506

C语言课程设计

指导书

信息技术教学与实验中心

2015-04

目录

第1章 C语言课程设计基本要求 (1)

§1.1 设计目的 (1)

§1.2 设计时间 (1)

§1.3 设计要求 (1)

§1.4 进度安排 (1)

§1.5 成绩评定方法 (1)

§1.6设计报告结构及要求 (2)

§1.7 需提交的材料 (2)

§1.8 推荐的参考资料 (2)

第2章C语言课程设计选题指导 (4)

§2.1选题说明 (4)

§2.2 控制类模拟软件设计 (4)

§2.3 算法演示(CAI)软件设计 (5)

§2.4 数据库管理软件 (7)

§2.5 动画设计 (9)

§2.6文字处理软件设计 (9)

§2.7菜单设计 (10)

§2.8 游戏类软件设计 (10)

第1章C语言课程设计基本要求

§1.1 课程设计目的

通过一个综合应用程序的开发,帮助学生巩固C语言程序设计的基本知识;掌握C语言程序设计的基本方法和常用算法,学会从实际应用出发来分析问题,进行软件规划和算法设计;熟悉软件设计的基本步骤,养成良好的编程风格。培养学生程序设计开发的基本素质和技能,锻炼学生的程序设计综合能力,为后续课程的学习打下良好的基础。

§1.2 课程设计安排

课程设计时间一般为2周,安排40个学时的集中上机。学生利用课余时间查阅资料,编制程序,集中上机调试程序,每班配备两名指导教师进行答疑指导。§1.3 课程设计要求

1.每个同学可从课设选题中选择一个题目,独立完成设计。鼓励同学自拟题目,但需经指导教师确认题目符合设计要求。

2.每个班分成若干个小组,每组3~5名同学,指定1名组长。要求组内同学题目类别不能相同,每组最终要将组内各成员的程序集成在一起,统一运行。

3.按时参加集中辅导,每天由指导教师记考勤和过程性评价。

4.答辩时,每位同学提交一份打印版设计报告,报告格式见§1.6 设计报告结构及要求。每组提交一份打印版小组设计情况说明及成绩自评。上述资料及源程序的电子版由组长收集好统一用电子邮件发给任课教师。

§1.4 进度安排

1.课设开始时应安排设计动员,讲解有关课程设计内容及分组安排等,要求全体同学必须参加。动员会后指定的各小组组长到指导教师处领取设计任务书,课设指导书同时在教育在线上发布。各组长组织自己的组员,进行分工和选题,在课设开始的两天内由小组长将本组选题结果和组内详细分工情况报指导教师。

2.学生利用业余时间查阅资料,制定方案,进行程序总体设计和模块划分、确定基本算法。

3.利用业余时间和集中辅导时间进行各模块设计与调试、系统集成。在答辩前,提交设计报告,集中安排现场验收及答辩。

§1.5 成绩评定方法

1.课程设计成绩为五级分制,由验收答辩、设计报告两部分组成。其中:验

收答辩60%,设计报告及平时成绩40%。

2.答辩按组进行,先由组长介绍组内设计情况,演示程序,验收。各成员独立答辩,答辩缺席者成绩为不及格。

3.每个人的课程设计报告按照《北京石油化工学院课程设计报告撰写规范》完成,手写、打印均可,打印用A4纸,注意页眉按统一格式,手写用专用的课程设计报告用纸。

4.每组有一个本组设计情况说明,主要说明系统集成的实现方法及组内成员的成绩自评。

§1.6 设计报告结构及要求

1.封面包括:题目、院系、班级、学生签字、指导教师签字及时间(年、月、日);采用学校统一的电子模版打印;

2.任务书将自己选定的题目及要求抄写或打印;

3.目录目录要层次清晰,要给出标题及页次,目录的最后一项是无序号的“参考文献资料”;

4.正文正文应按目录中编排的章节依次撰写,包括总体设计、模块划分、算法说明、各函数模块功能及流程图、程序测试、结论、体会及建议,要求论述清楚,文字简练通顺,插图简明,书写整洁。文中图、表不能徒手绘制,正文用小四或五号字打印;

5.参考文献(资料)只列出在课程设计中真正阅读过和采用过的参考文献,按照在正文中的出现顺序依次排序。各类文献的注录格式如下:

①图书类的参考文献

[序号]作者名.书名(版次).出版单位.出版年:引用部分起止页码。

②翻译图书类的参考文献

[序号]作者名.书名.译者(版次).出版单位.出版年:引用部分起止页码。

③期刊类的参考文献

[序号]作者名.文集名.期刊名.年,卷(期):引用部分起止页码。

6.附源程序清单。

§1.7 需提交的材料

1.每人提交设计报告1份及电子版源程序。

2.每组提交一份本组设计情况说明及集成后的电子版源程序。

§1.8 推荐的参考资料

1.谭浩强.C程序设计(第四版).清华大学出版社.2010

2.谭浩强.C程序设计(第四版)学习辅导.清华大学出版社.2010

3.韩莹等.C语言实训教程.清华大学出版社.2013

4.苏小红等.C语言大学实用教程(第3版).电子工业出版社.2012

5.苏小红等.C语言大学实用教程(第3版)学习指导.电子工业出版社.2012 6.校园网资源ftp://https://www.wendangku.net/doc/a617119742.html,//课件//信息工程学院//2015春-C语言课程设计7.校园网资源教育在线

8.互联网上查阅相关资料

第2章C语言课程设计选题指导

课程学习中只学习了C语言的基本语法,若想真正用C语言编程解决实际问题还有漫长的路要走,由于每个设计题目对于C的知识点有不同侧重,因此我们将设计题目分为以下几个大类:1)基于文件的数据管理类2)动画设计类3)小游戏类4)模拟控制类5) 算法演示类等,希望同学们根据自己的兴趣爱好,同时兼顾C语言不同知识点的着重训练,综合选择题目,鼓励同学们自由命题,但需同指导教师协商,以便更好地把握题目的难度、工作量及知识点。每组3~5名同学,由小组长负责,同一组内同学不能选择相同类型的题目。为保证课程设计顺利进行,选题必须在规定时间报指导教师,原则上一旦确定题目不得修改,特殊情况经指导教师同意,在课程设计开始3天内可以调整。

§2.1 基于文件的数据管理类

数据管理软件要求能够实现数据的录入、添加、修改、删除、查询、统计、报表和打印等功能。本次设计建议非计算机专业的同学用静态结构体数组方式实现,计算机专业的同学也可以使用动态链表方法实现。

1. 图书管理系统设计

基本要求:

(1)出现欢迎界面,系统功能选择。

(2)图书的基本信息包括书号、书名、作者、单价、数量和简介(50字)等,以文件的形式存储。

(3)实现图书信息的录入、添加、删除、保存功能。

(4)实现图书的浏览,按书号查询功能。

相关知识:文件操作、按键操作、动态链表等

功能扩充:(1)实现多种信息查询(2)增加图书的信息

2. 学生宿舍管理系统设计

基本要求:

(1)出现欢迎界面,系统功能选择。

(2)宿舍的基本信息包括楼号、房间号、面积、所容纳人数、已入住人数等,以文件的形式存储。

(3)实现宿舍信息的录入、添加、删除功能。

(4)实现宿舍信息的浏览,按房间号查询。

(5)实现宿舍信息的统计和打印。

相关知识:文件操作、按键操作、动态链表等

功能扩充:(1)实现多种信息查询(2)增加宿舍的信息

3. 职工工资管理系统设计

基本要求:

(1)出现欢迎界面,系统功能选择。

(2)职工工资的基本信息包括编号、姓名、基本工资、奖金、工资总额等,以文件的形式存储。

(3)实现职工工资信息的录入、添加、删除功能。

(4)实现职工工资信息的浏览,按编号查询。

(5)实现职工工资信息的统计和打印。

相关知识:文件操作、按键操作、动态链表等

功能扩充:(1)实现多种信息查询(2)增加职工工资的信息

4. 职工人事管理系统设计

基本要求:

(1)出现欢迎界面,系统功能选择。

(2)人员的基本信息包括职工编号、姓名、性别、年龄、身份证号和简历(50字),以文件的形式存储。

(3)实现人员信息的录入、添加、删除功能。

(4)实现人员信息的浏览,按编号查询。

(5)实现人员信息的统计和打印。

相关知识:文件操作、按键操作、动态链表等

功能扩充:(1)实现多种信息查询(2)增加人员的信息

5. 学生选课管理系统设计

基本要求:

(1)出现欢迎界面,系统功能选择。

(2)选课的基本信息包括课程号、课程名、学时、学分、学号、姓名等。

以文件的形式存储。

(3)实现基本信息的录入、添加、删除功能。

(4)实现基本信息的浏览、查询功能。

(5)按学号进行排序。

相关知识:文件操作、按键操作、动态链表等

功能扩充:(1)实现多种信息查询(2)增加基本信息

6.学生健康体检档案管理系统设计

功能:实现简单的学生健康档案基本信息管理,记录的基本信息包括学生的学号,姓名、出生日期,系别,,性别体检日期、身高、体重、肺活量、健康评价等信息

基本要求:

(1)设计简单的菜单,能够进行系统功能选择。

(2)实现基本信息的录入功能。

(3)在已有信息的基础上添加新的记录。

(4)删除指定学号的记录。

(5)修改指定学号的记录

(6)实现信息的浏览功能

(7)按体检日期进行的查询功能

(8)按身高进行排序功能

7.小型实验室设备管理系统设计

功能:实现实验室的设备管理,设备的基本信息包括设备编号、设备类别(如计算机、交换机、电脑桌、椅子等)、生产厂家、型号、价格、使用人姓名等信息。

基本要求:

(1)设计简单的菜单,能够进行系统功能选择。

(2)实现信息的录入功能。

(3)在已有信息的基础上添加新的记录。

(4)删除指定设备编号的记录。

(5)修改指定设备编号的学生记录

(6)实现信息的浏览功能

(7)按设备编号查询功能

(8)按价格排序功能

8.文具店销售管理系统设计

功能:实现小型文具零售店的销售管理,商品的基本信息包括商品名称、商品编号、类别(如笔、本、尺、橡皮等)、生产厂家、型号、库存数量、当日销售数量、零售价格、进货价格等信息。

基本要求:

(1)设计简单的菜单,能够进行系统功能选择。

(2)实现信息的录入功能。

(3)在已有信息的基础上添加新的记录。

(4)删除指定商品编号的记录。

(5)修改指定商品编号的记录

(6)实现信息的浏览功能

(7)按设备编号查询功能

(8)按价格排序功能

(9)能够计算出当日销售额、毛利

§2.2 动画设计类(代码已有,需要熟悉)

动画设计可以做得异彩纷呈,鼓励同学自由命题,作出各具特色的动画作品,下面给出一些参考题目,同学们可以同指导教师协商,自主设计。

1. 时钟显示设计

功能:实现时钟的实时显示与定时

基本要求:

(1)画出表盘时钟,时、分、秒针填充不同的颜色(自选)。

(2)数字同步显示时间信息。

(3)整点报时。

(4)通过键盘输入闹铃时间,实现闹铃功能。

相关知识:图形操作、按键操作、时间函数等

功能扩充:1)实现秒表功能

2)给出其它国家的时钟同步信息

2. 生命游戏设计

功能:设计一个动画,模拟演示生命游戏,又称细胞自动机。生命游戏包括一个N*N的二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的细胞的数量。每个格子的生死遵循下面的原则:

(1)如果一个细胞周围有3个细胞为生(一个细胞周围共有8个细胞),则该细胞为生(即该细胞若原先为死,则转为生,若原先为生,则保持不变)。(2)如果一个细胞周围有2个细胞为生,则该细胞的生死状态保持不变;

(3)在其它情况下,该细胞为死(即该细胞若原先为生,则转为死,若原先为死,则保持不变)

相关知识:图形操作、按键操作、时间函数等

功能扩充:1)可以设置演化速度;2)还可以设定一些更加复杂的规则,例如当前方格的状况不仅由父一代决定,而且还考虑祖父一代的情况。你还可以作为这个世界的上帝,随意设定某个方格细胞的死活,以观察对世界的影响。3.祝福烟花设计

功能:设计一个祝福烟花动画,从屏幕下侧随机向上发射烟花,发射至超过屏幕一半后的随机位置烟花爆开。

相关知识:图形操作、按键操作、时间函数等

功能扩充:1)画面上同时伴有动态的祝福文字

2)伴有背景音乐

§2.3 小游戏类

1.打字母游戏设计

功能:设计一个如右图所示的打字母

游戏,屏幕随机产生下落的字母并伴有背

景音乐,敲击键盘上的相应字母键则该字

母消失,字母下落到白线则该字母失败。

打中一次加1分,失败1次扣一滴血,初

始为8滴血,游戏结束后显示得分数。

相关知识:图形操作、按键操作、时

间函数等

功能扩充:1)可以设置每次下落的

字母数;2)可以设置游戏速度

2. 涂格子游戏设计

功能:设计一个如右图所示的涂格子

游戏,按鼠标左键点格子进行涂色或者清

除,每次点击,上下左右的格子也会改变

状态。初始格子数为4*4,每过一关格子

增加一圈,至少设置6关。

相关知识:图形操作、按键操作、时

间函数等

功能扩充:1)增加关卡数;2)增加游戏操作功能

3. 五子棋游戏设计

功能:在单机上通过操作键盘来进行二人对战,五个棋子连在一起时能显示输赢。

基本要求:

(1)键盘上事先设定8个按键,分作两组,每组四个,分别代表两个人用来控制棋子的上下左右键。

(2)绘制棋盘,15条横线,15条竖线,在直线交点处下棋子(实心圆形)。

(3)黑子先行,黑白交替下子,在棋盘上设定一个与棋盘格大小边长相等的正方形,初始状态,正方形的中心位于期盼的中心点。当一方欲走棋的时候,应用四个按键来控制所要下棋的位置,每按一次按键,正方形都要向相应方向移动一个格,并且让喇叭发出某种声音,将要移出边界时,发出另一种警告声音并不让其移出边界。当按下回车键时,应在正方形所在位置放下一个棋子,然后此组按键不能操作,换另一个人下棋,用另一组按键,规则同前。

(4)当任何一方有五个棋子沿着横,竖,斜连在一起时,系统自动判断赢棋,并显示黑方或白方胜利。棋局结束后,任何一方均不能继续操作。

相关知识:图形绘制、音乐制作、键盘响应

功能扩充:(1)可以设置一个按键,用来悔棋。(2)其他自己定义的功能。

4. 扫雷游戏设计

功能:使用C语言及VC绘图库,在VC环境下开发一款类似Windows的扫雷游戏,游戏规则如下:以最快速度找出所有地雷。按下鼠标左键表示翻开格子,如果格子是雷,则宣告失败,游戏结束;如果不是雷,则显示周围雷数,如果当前格子周围都不是雷,系统会以被翻开格子的八个方向将非雷格子翻开。鼠标右键按下被定义为3种功能,反复按下右键时,当前格子会以未标示――标示――疑似三种情况循环。

基本要求:

(1)实现初级游戏功能,即游戏区域为9X9的格区,随机布置10个雷。

(2)用户使用鼠标左键选择雷区中任何一个格子,游戏记时开始。

相关知识:图形操作、按键操作、时间函数等

功能扩充:1)游戏分为初、中、高三个级别;每个级别雷数和游戏区域大小不同。2)增加游戏英雄榜,存储每个级别的最好成绩,即挖出全部地雷且用时最少者。3)选择游戏菜单可以选择“初级”、“中级”、“高级”或“查看英雄榜”。5.贪吃蛇游戏设计

功能:实现简易贪吃蛇游戏软件。

基本要求:在封闭的围墙内有一条蛇,通过键盘控制蛇的运动方向,围墙内

随机出现食物,吃掉食物,蛇的身体长1节,得10分。若蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。

(1)显示初始界面,介绍游戏规则,按键或鼠标点击开始游戏。

(2)游戏画面包括选手得分

相关知识:图形绘制、键盘操作等

功能扩充:1)当积分达到一定值时,提高速度;2)加音乐伴奏

§2.4 模拟控制类

1. 交通信号灯模拟控制软件设计

功能:具有红黄绿三色灯和记时器显示的十字路口的交通信号控制软件

基本要求:模拟显示两组信号灯,每组为红黄绿三个信号灯,一组控制东西方向,一组控制南北方向,每组各有一个计时器,其中一组有盲音提示。建议工作步骤如下:

(1)初始状态为全暗。

(2)通过按键或鼠标启动工作。(也可延时启动)

(3)设南北方向先通行,即绿灯亮60秒,计时器采用倒计时(颜色也为绿色),喇叭发出容许通行的音乐;然后红灯亮57秒,黄灯亮3秒,计时器颜色为红色,以不同的音乐表示。

(4)东西方向的控制与南北方向相反。

相关知识:图形绘制、音乐制作

功能扩充:1)可开发双车道、3车道的交通信号控制软件(增加左转控制,分左转灯、直行灯和右转灯,以灯的不同颜色表示不同信号);2)时间在20~80秒间可灵活设置。

2. 模拟电梯控制软件设计(没有参考代码)

功能:4层以上电梯的模拟自动控制软件

基本要求:

(1)画出电梯的立体轮廓图。

(2)设定初始楼层为1层,各层均有电梯楼层位置显示、升降按钮及电梯上下行标志。

(3)用数字键表示要到达的楼层。

(4)电梯具有呼叫判断,顺次载客,自动开关门功能。

相关知识:图形绘制、键盘操作等

功能扩充:1)速度可控;2)开门时,有音乐提示;3)在屏幕上开辟一个区域,模拟电梯内按钮(开、关门,楼层号);4)仔细观察主楼的电梯控制,自主添加功能。

3. 台球游戏软件设计

功能:交互控制具有两个或两个以上台球的台球游戏。

基本要求:

(1)绘制一个台球案子,上面有两个台球。

(2)给出控制台球位置以及运行方向的界面(自己设定)。

(3)若台球碰壁,则根据镜面反射原理求出台球下一步的运动方向并作匀速直线运动。

(4)当台球发生撞击时,按照弹性碰撞原理,主撞击球改变运动方向,被撞击球开始进行匀速直线运动。

(5)当台球距离孔洞距离很小时,应该让球消失,并显示进球的信息。

(6)当按下某个按键时,退出台球运动程序。

相关知识:图形绘制、键盘响应、碰撞的物理学原理、相关数学知识。

功能扩充:(1)设置匀减速功能,使球能自动停止。(2) 完成台球案子上有三个(或三个以上)台球的台球游戏。(3)其他自己定义的功能。

§2.5 算法演示类

1. 排序算法演示

功能:演示两种及以上排序算法的实现过程

基本要求:

(1)出现欢迎界面,选择排序算法。

(2)演示界面要求清晰、形象,演示出变化顺序,同时伴有简单的文字或符号说明。

(3)要求数据随机产生。

(4)能比较不同排序算法的效率。

相关知识:图形绘制、按键操作、排序算法等

功能扩充:1)体现交互性,如用户可以选择数据个数,可以输入数据等;2)加音乐伴奏。3)多种排序算法的演示。

2. 二分法查找演示

功能:演示二分法查找算法的实现过程

基本要求:

(1)出现欢迎界面。

(2)随机产生数据,输入要查找的数据。

(3)演示界面要求清晰、形象,演示出变化过程,同时伴有简单的文字或符号说明。

相关知识:图形绘制、按键操作、排序算法等

功能扩充:1)体现交互性,如用户可以选择数据个数,可以输入数据等;

3. 二叉树遍历算法演示

功能:演示二叉树遍历算法的实现过程

基本要求:

(1)出现欢迎界面,选择遍历类型。

(2)随机产生数据。

(3)演示界面要求清晰、形象,演示出变化过程,同时伴有简单的文字或符号说明。

相关知识:图形绘制、按键操作、排序算法等

功能扩充:1)体现交互性,如用户可以选择数据个数,可以输入数据等;

4. 插入算法演示

功能:演示插入算法的实现过程

基本要求:

(1)出现欢迎界面。

(2)随机产生数据,输入要插入的数据。

(3)演示界面要求清晰、形象,演示出变化过程,同时伴有简单的文字或符号说明。

相关知识:图形绘制、按键操作、排序算法等

功能扩充:1)体现交互性,如用户可以选择数据个数,可以输入数据等;§2.6 菜单设计

功能:实现2级以上弹出式菜单功能,相应鼠标操作

基本要求:

1.显示菜单,至少有5个菜单项,默认在第一个菜单项上高亮显示。

2.当按键或鼠标点击时,高亮点移动。

3.鼠标左键按下后,弹出下级子菜单。

4.用该菜单实现同组同学的系统集成。

相关知识:图形操作、鼠标操作、按键操作等

功能扩充:1)实现键盘热键操作

2)增加菜单项

附录:设计报告模板

计算机程序设计基础(C语言)课程设计

题目:

班级:

学号

姓名:

指导教师:

年月日·北京

信息工程学院信息技术教学与实验中心

第二页:任务书将自己选定的题目及要求抄写或打印

第三页:目录目录要层次清晰,要给出标题及页次

第四页开始:正文正文应按目录中编排的章节依次撰写,包括题目介绍、小组成员信息、总体设计、模块划分、算法说明、各函数模块功能及流程图、

程序测试、结论、体会及建议,要求论述清楚,文字简练通顺,插图简

明,书写整洁。文中图、表不能徒手绘制,正文用小四或五号字打印;参考文献:各类文献的注录格式如下:

[序号]作者名.书名(版次).出版单位.出版年:引用部分起止页码。

[序号]作者名.文集名.期刊名.年,卷(期):引用部分起止页码。

附录:附源程序清单。

相关文档