C语⾔课程设计指导书2016版HNUST C语⾔课程设计(2015级计算机、⽹络⼯程、信息安全、物联⽹、软件⼯程专业⽤)指
编著:向德⽣
湖南科技⼤学计算机科学与⼯程学院
2016年2⽉27⽇
⽇程安排表
时间每天应该完成的预期⽬标(可提前、超额完成)
第1周
星期⼀
(2.29)
开始任务1:
先认真阅读、分析并消化“C语⾔程序设计”教材第254页例9.15,重点
熟悉多⽂件⼯程的组织、函数参数的传递及⽂件的读写等。
提醒:⽂件的读写请查阅教材第216页的8.3节。
星期⼆
(3.01)
熟悉第267页第⼆题的第1⼩题(解答见“C语⾔程序设计实践教程”第
124页),重点熟悉单⽂件⼯程的组织、函数参数的传递及⽂件的读写等,
难点是链式存储的特点及链表的操作。
提醒:链表的操作请查阅教材第183页的7.1.5节。
星期三
(3.02)
从本指导书第2.5节的参考题⽬中,⾄少选择⼀题,仿照例9.15进⾏设计。
提⽰:参照例9.15,采⽤结构体数组存储数据。
星期四
(3.03)
继续任务1所选课题的设计,若编写完成,则尝试使⽤链表作为存储结构
进⾏改写。填写课程设计报告的任务1部分。
星期五
(3.04)
开始任务2:
先阅读“3.5关键问题释疑”,学习相关背景知识。然后在⽼师提供的
软件包中,到⼦⽬录“任务2题⽬1的⽰例参考程序”、“任务2题⽬
2的⽰例参考程序”。这是2个演⽰⽤可运⾏程序,意味着你⾃⼰所设计
程序运⾏时,⾄少要达到演⽰程序的效果。
周末(3.05)
(3.06)
在⽼师提供的软件包中,到⼦⽬录“制作BMP图⽚的⽰例参考程序”。
研究源码并修改第四步的程序,完成第1个题⽬的编程任务。
第2周
星期⼀
(3.07)
在⽼师提供的软件包中,到⼦⽬录“制作BMP图⽚的⽰例参考程序”。
研究源码并修改第四步的程序,完成第1个题⽬的编程任务。
星期⼆
(3.08)
继续任务2的设计,若任务2第1个题⽬提早完成,可尝试完成任务2第
2个题⽬的编程任务。填写课程设计报告的任务2部分。
星期三
(3.09)
开始任务3:
阅读、分析并消化教材第9章第1节的实例,并从⽹络查询了解更多算法
设计⽅法;接着在科⼤OJ做任务3训练题。做完⼀题,就在课程设计报
告的任务3部分填写⼀题。
星期四
(3.10)
继续任务3的设计,熟悉更多的程序设计⽅法。
体验⼀些超时超内存的程序提交,并尝试换⽅法进⾏解决。
星期五
(3.11)
继续任务3的设计。
接受指导⽼师的最终检查。
下午将课程设计报告提交给指导⽼师并验收合格后,课程设计结束。
第1章课程设计总体要求
C语⾔课程设计是C语⾔教学中⼀个重要的实践环节。⼀般来讲,课程设计要⽐课后作业及课程实验复杂
⼀些,要求所涉及的内容应该有⼀定的深度和⼴度,并更加接近现实应⽤。通过课程设计的综合训练,培养学⽣实际分析问题和解决问题的能⼒,最终⽬标是想通过这种形式,帮助学⽣系统掌握C语⾔课程的主要内容,为今后的程序开发及后续课程的学习打下扎实的基础。下⾯主要介绍C语⾔课程设计的训练⽬标、要求和任务。
1.1课程设计训练的⽬标
使学⽣综合使⽤所学过的C语⾔程序设计知识,充分发挥⾃主学习的能⼒和查资料的能⼒,解决稍微复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强学⽣利⽤⾃⼰所学知识解决实际问题的能⼒,为以后的程序开发打下基础。
课程设计训练的⽬的和要求:
1)使学⽣巩固和加强《C语⾔程序设计》课程的理论知识。
2)进⼀步理解和运⽤结构化程序设计⽅法,学会利⽤流程图或N-S图表⽰算法。
3)使学⽣掌握利⽤Visual C++、CodeBlocks等⼯具调试程序的基本⽅法。
4)使学⽣学会撰写课程设计报告,逐渐熟悉软件设计相关⽂档的撰写。
5)通过书刊资料和⽹络资源,培养学⽣独⽴分析问题和解决问题的能⼒。
6)初步掌握开发⼀个⼩型实⽤系统的基本⽅法。结合实际应⽤的要求,使课程设计
既覆盖知识点,⼜接近⼯程实际需要。
7)培养学⽣良好的程序设计风格。在实际编程中,为了提⾼编程质量,对空⾏、空格
和注释均有要求。学⽣在课程设计书写代码时,应该严格按要求处理,以便建⽴良
好的程序设计风格(可参阅“⾼质量编程指南”⼀⽂)。
1.2课程设计训练的内容
本设计分为3部分任务。
1.2.1任务1
任务1训练模块化程序设计⽅法。⾸先学习并消化“C语⾔程序设计”教材第254页例9.15和第267页第⼆题的第1⼩题(解答见“C 语⾔程序设计实践教程”第124页)。然后仿照编程,实现对⾃⼰所选课题的解答。
预估完成时间为4天。
1.2.2任务2
任务2通过设计⼀个实⽤的应⽤程序来提⾼学习的热情与兴趣。
预估完成时间为3天。
注:前2个任务不能按时完成者,请充分利⽤周末时间(即3.5和3.6)补做。对于任务1和任务2的完成情况,建议班级指导⽼师在3⽉8⽇完成测试⼯作。电脑c语言编译器
1.2.3任务3
⾸先学习并消化教材第9章第1节的内容,然后在科⼤OJ(www.doczj/doc/79a4d9ba783e0912a3162a6e.html )上做训练题。题⽬主要是训练⼤家熟悉⼀些常⽤的算法设计⽅法,引导⼤家开始考虑算法的效率。时间为3天。
注:对于任务3的完成情况,以科⼤OJ上的数据为主要依据。若质疑部分数据不准确,建议指导⽼师进⾏有针对性的测试。
1.3课程设计训练的要求
1.3.1训练安排
1)训练时间:2016年上学期第1-2周(2.29~3.11)各⼯作⽇1-8节。
2)训练地点:湖南科技⼤学逸夫楼,具体地点如下表所⽰。
指导教师课程名称实践
周次
上课
⼈数
开课班级开课时间地点
欧阳军林C语⾔课程设计1-23115计算机1班逸夫楼330
吴海波C语⾔课程设计1-23115计算机2班逸夫楼330
刘敏C语⾔课程设计1-23115计算机3班逸夫楼330
彭理C语⾔课程设计1-23115计算机4班逸夫楼330
朱海燕C语⾔课程设计1-23115计算机5班逸夫楼330
陈洪龙C语⾔课程设计1-22915计算机6班逸夫楼222
蒋清明C语⾔课程设计1-22915软件⼯程1班逸夫楼220
程喆C语⾔课程设计1-22915软件⼯程2班逸夫楼220
陈燕晖C语⾔课程设计1-23515⽹络1班逸夫楼217
⽂宏C语⾔课程设计1-23415⽹络2班逸夫楼217
郑秋匀C语⾔课程设计1-23415⽹络3班逸夫楼217
周新莲C语⾔课程设计1-23015物联⽹1班逸夫楼220
朱建军C语⾔课程设计1-22915物联⽹2班逸夫楼220
向德⽣C语⾔课程设计1-23515信息安全1班逸夫楼222
朱彬C语⾔课程设计1-23615信息安全2班逸夫楼222
胡蓉C语⾔课程设计1-23615信息安全3班逸夫楼222
3)学⽣训练的注意事项:
a)最重要的是同学们要勤奋,不要偷懒!
b)1-2周各⼯作⽇1-8节课均在实验室进⾏训练,按照要求认真编写和调试程
序。不得⽆故缺勤,不允许迟到早退,不得闲聊和玩游戏。
c)课程设计任务以⾃主钻研为主,遇到解决不了的问题时,可及时与指导⽼师交
流,或与同学交流,或查阅⽹络资源。
d)课程设计期间,报告内容要及时填写,指导⽼师将定期检查。
e)总评成绩将根据平时表现、任务1-2的检查情况、任务3的排名与检查情况
等进⾏综合评定。⽼师保证所给总评成绩公平合理。
f)任务3按⽐赛形式进⾏答题并排名。系统具有代码查重功能,代码相似度超过
70%将进⾏⼈⼯复核。若抄袭属实,每抄袭⼀题则最终成绩降⼀等级。
g)只允许代码相似度低于50%的解答才能写⼊实验报告。⿎励⼀题多解。
1.3.2实验环境
1)硬件:PC机,CPU档次不低于PIII667,内存>512M,硬盘>10G。
2)软件:系统为Windows XP或Windows7,编译器为VC++或Code::Blocks等。1.3.3评分标准
总评成绩将根据以下3部分成绩进⾏综合评定后划分为5个等级,分别为优秀、良好、中等、及格和不及格。
1)各任务的完成质量或排名(50分)。若不能解答⼀个问题,则总评成绩直接
计为不及格。如果指导⽼师认为排名的区分度不够,可以组织学⽣对其所做课程
设计内容进⾏答辩。若不能回答⼀个问题,则总评成绩直接计为不及格。
2)平时上机考勤(20分)。指导⽼师进⾏不定期考勤,学⽣不得以⾃⼰有私⼈电
脑为借⼝⽽不来上机。若⽆故缺勤超过2次,则总评成绩直接计为不及格。
3)课程设计报告(30分)。要求每完成⼀部分内容后应及时将相应内容记录在报
告中,建议设计完成⽇(即3⽉11⽇)就应将课程设计报告交给指导⽼师(具体
时间由指导⽼师确定)。若没交报告,则总评成绩直接计为不及格。
1.3.4其它说明
1)各班课程设计的过程管理与质量控制由各班指导⽼师全权负责。
2)实验报告表格提供⼀份word版电⼦稿。关于实验报告是⼿⼯填写还是采⽤电脑填
写,⼀般的要求是⼿⼯填写,即先打印实验报告表格,然后⼿⼯填写实验内容。部
分编程能⼒强的同学可向指导⽼师申请采⽤电脑填写,指导⽼师同意后⽅可采取先
填写实验内容后打印的⽅式。各班以指导⽼师的要求为准。
3)由于本指导书编者⽔平有限,并受惯性思维约束,任务的设计缺乏创意,因此,恳
请各班指导⽼师,您可对本次课程设计的任何题⽬酌情调整⼯作量及难度,也可另
外布置题⽬,以更好地训练同学们的C语⾔运⽤及编程能⼒。
4)课程设计期间的技术⽀持、经验交流、通知发布等,请关注湖南科技⼤学在线评测
系统(www.doczj/doc/79a4d9ba783e0912a3162a6e.html )和科⼤程序设计交流(175930005)。
5)若有疑问或建议,可直接与编者联系,邮箱:30047495@www.doczj/doc/79a4d9ba783e0912a3162a6e.html ;电话:186********。
第2章任务1(⼩型管理系统程序设计)
2.1设计⽬的
通过⼩型管理系统的开发,引导学⽣熟悉模块化程序设计⽅法(参考“C语⾔程序设计”教材第9章第2节),培养学⽣综合运⽤知识解决实际问题的能⼒。
重点训练知识点:函数、数组、指针、结构体、⽂件。
2.2设计要求
1)学习并消化教材第254页例9.15和第267页第⼆题的第1⼩题(解答见“C语⾔程序设计实践教程”第124页)。在⽼师提供的软件包中,到⼦⽬录“成绩管理系统(采⽤结构体数组)的⽰例参考程序”和“成绩管理系统(采⽤链表)的⽰例参考程序”,阅读研究源代码并调试运⾏。程序中的每⼀条语句要看懂并能回答⽼师提问,重点难点是⽂件的读写和链表的处理。预估时间为2天。
2)每位同学可以从“2.5参考题⽬”中选择⾄少⼀个题⽬完成,也可以与指导⽼师议定⼀个新的同类型题⽬。预估时间为2天。
重要声明:系统源码中,要包括多个函数,各个函数要带⼀个或多个参数,重要数据都要通过函数参数进⾏传递,除⾮确有必要,否则禁⽌定义不带参数的函数。
2.3设计步骤
1)需求分析。分析课题要解决的问题是什么,有什么要求和限制条件。
2)总体设计。分析系统功能,划分功能模块,确定各模块函数名称及数据存储⽅式。
3)详细设计。主程序算法设计和各模块算法设计。
4)编程实现。编程⼯具不限,但机房以VC6和Code::Blocks软件为主。
5)调试和测试。熟练阅读出错提⽰,熟练使⽤debug⼯具。主要测试正确性与容错性。
6)完成设计报告。参照后⾯的参考格式撰写。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。