《c语言程序设计》课程设计。
刘力斌。一、意义和目的。
c语言是电子科学与技术专业的重要专业基础课。在很多后续课程中,都要使用到c语言。
学生通过对c语言的学习,已经具备了使用c语言编写简单的应用程序的能力。为了加强程序设计基础,开设课程设计课,使学生对c语言有更全面的理解,进一步提高运用c语言编程解决实际问题的能力,同时,为后续课程的学习夯实基础。
课程设计目的:
提高用程序设计解决实际问题的能力。
通过提出算法、指定输入输出来设计一个解决方案。
用c语言合理地开发两个简洁有效的程序**来实现该设计。
测试程序是否工作且满足设计指标并评价其效率。
二、目标。完成本课程设计的学生应能在以下几方面证明你们的能力:
a、分析问题。各种简单的与计算机有关的案例中所需要的输出结果,把大问题分解成小问题,使用自顶向下或类似设计方法给出模块化或计划。
b、提出算法执行特定任务。模块表示为算法,使用自顶向下或伪**等设计手段将模块细化成更详细的成分,清楚地表明顺序、选择和重复等到控制结构。
c、把一个算法变为用c语言编写的结构化程序。
d、用合适的测试方法检查程序是否符合最初的要求,为不合适数据设计错误陷阱,并提供错误信息来帮助用户。
e、写出清晰的用户文档,确保用户或者通过遵循程序中的指示或者使用程序设计者编写的文档能成功地运行程序。
f、写出技术文档,对程序中主要标示符的含义或作用加以说明,并提供一个完整的程序流程图。
g、调试程序、测试数据过程成功。
三、要求。参加本课程设计的学生,应当认真完成本课程设计的全部过程。并以最终课程设计成果来证明其独立完成各种实际任务的能力。从而,反映出理解和运用本课程知识的水平和能力。
完成课程设计应提交如下文档:
1 程序的总体设计和算法分析。
2 技术文档。
3 用户文档。
4 源程序**清单。
5 测试数据和测试过程记录。
6 遇到的问题及解决方法分析。
四、选题 每人一个题,具体题目可以参考附录。
第一题:链表操作题(包括建立、插入、删除、打印等)(参考教材);
第二题:文件操作,具体题目最好是自拟。
如果选题确实有困难的同学,可参考后面参考题目来完成本课程设计(成绩要影响)。
五、评价。评价是检测学生理解问题和解决问题能力的一个重要手段,教师将根据学生提交的一套文件中,严格检查以下各项任务完成情况:
1、 课程设计文档是否齐全。
2、 程序的用户文档。
如果在程序执行期间有足够的指导信息显示在屏幕上显示,这些用户文档可以是很简要的,也许只限于解释如何装入并运行程序。
3、 问题或任务的陈述(描述问题,而且问题是合理原始的、应当包括输入、输出及其预期范围。)是否正确。
4、 问题的解决方案采取由顶向下设计的形式,在适当的地方使用伪**,把整个解决方案划分成若干模块。
5、 程序完成后的**应当加以注解。最少应清楚指出每一个模块。
6、 用于检查程序的测试数据,或者对一个控制程序给出测试的例程。测试应考虑探索通过程序的几条路径,在合适的地方选择打印输出来。
7、 程序的技术文档。
程序**注解得好,文档也可以是简要的,但是必须包含所用变量的全体清单。
8、 程序顺利执行,结果正确。
参考题目:1、长整数四则运算。
【问题描述】设计任意两个长正整数(小于80位)的加法函数add()和乘法函数mult(),并求任意整数(≤58)的阶乘。
实现提示】用无符号整型或字符型数组存储任意长整数。 测试数据】
2、单词统计。
问题描述】统计某篇英文**中某些单词的出现次数。
实现提示】英文**存储在一个文本文件中。待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后全部完成。输出的每个单词的出现次数。
约定**中的词汇一律不跨行,这样每从文本文件中读入一行,就统计每个单词在这行**现的次数,直到文件结束。
要求在程序运行时才输入文本文件名和要统计的词汇。
测试数据】以c语言源程序模拟英文**。统计某些保留字(如:if, else, for, while等)的出现次数。
3、 保龄球计分。
问题描述】打保龄球是用一个滚球去撞击10个站立的瓶,将瓶击倒。一局分10 轮,每轮可滚球1次或多次,以击到的瓶数为依据计分,一局得分为10轮得分之和,而每轮的得分不仅与本轮的滚球情况有关,还可能与后一轮或两轮的滚球情况有关,即:某轮某次滚球击倒的瓶数不仅要计入本轮得分,还可能会计入前一轮或两轮得分。
计分规则如下:
1 若某一轮的第一次滚球就击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加2次滚球),该轮得分为本次击倒瓶数10与以后2次滚球所击倒瓶数之和。
2 若某一轮的第一次滚球未击倒全部10个球,则对剩下未击倒的瓶再滚球一次,如果这2次滚球击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加1次滚球),该轮得分为这2次击倒瓶数10与以后1次滚球所击倒瓶数之和。
3 若某一轮2次滚球未击倒全部10个瓶,则本轮不在滚球,该轮得分为这2次滚球所击倒瓶数之和。
实现提示】1 模拟10个人各打一局保龄球比赛过程,统计每局各轮得分和累计总分。
2 逐人逐轮逐次输入一次滚球击倒的瓶数。
3 对10人的得分由低到高排序并显示。
4 最后,把排序的存入文件中。
测试数据】自定模拟数据。
4、 学生成绩统计。
问题描述】学期考试结束,统计有n个班某班每个人的平均成绩,每门课的平均成绩,并按个人平均成绩从高到低的顺序输出成绩,输出不及格人名单。输入、输出格式自定。
实现提示】假设某班有:30人(姓名自定)
考试课程有:高等数学、物理、外语、c语言、德育5门课程。
将所有同学的成绩保留在文件中,对文件中的数据处理,输出所要求的内容,程序的功能主要包括3方面:
1 输入成绩到文件中。
2 输出成绩。
3 输出不及格学生名单。
4 成绩排序。
5 修改记录。
6 删除记录。
7 插入记录等。
主函数中对3个功能选择(菜单),调用对应的函数完成。
测试数据】自定模拟数据。
5、 readme软件的制作。
问题描述】在现代的一些软件中,常常有这样一个程序,它主要是显示某些软件的使用方法及注意事项。比如:tc2.0下readme等。设计制作一个有自己特色的说明软件。
实现提示】1 某软件的使用方法及注意事项等内容存储在文件中。
2 使用编写的程序能方便地阅读中的内容。
3 能实现上翻一页、下翻一页、下一行、下一行等操作。
测试数据】以某个语言源程序模拟文件。
6、编制一个学生的选课及学籍管理程序。
问题描述】现有若干个班级的学生,进行下学期课程的选课,假设已经通过文件储存了选课内容的数据库,数据库中包括7门课(课程内容由学生自己定)第i门课程的接纳的学生数为10×i,i为课程的序号,如第一门课的接纳的学生数为10×1,第二门课为10×2,..依此类推,每门课的学分数分别为,现要求每一个学生至少选3门课,最多不超过5门。
实现提示】1)显示课程内容供学生选择,并能进行选课的操作(2)随着学生选课工作的进行,动态更新数据库的内容(3)进行学生的最少选课量和最多选课量的控制。
4)显示所有学生的选课的结果(5)把学生所选的课按学分总积分由小到大排列,同样学分按姓名的英文字母排序。
6)录入学生的各科成绩(7)学生的参数有:姓名、学号、性别、总学分、各科成绩,补考情况,请把一门和三门功课不及格的学生的姓名列出,并自动生成补考通知书,通知书中要求有学生的姓名、学号、不及格的科目及补考时间(由编程者自定)
测试数据】7、一个用于医院门诊候诊的队列管理程序。
问题描述】要求采用先来先就诊的排队方式(就诊顺序与**单编号无关),假设**时编码是连续的,但由于同一个门诊科目有3个诊室,其中35(含35)岁以上的在第一诊室,35岁以下男患者进第二诊室,其它的进第三诊室,程序启动后显示下列菜单:
实现提示】1--**2--叫号3--分诊室。
4--显示各诊室队列信息。
5--统计当天就诊的患者情况(要求按性别进行统计和按任意年龄区段进行统计)
6--结束程序。
选1时,提示用户在一行内输入姓名及**单编号;
选2时,显示排在队列中第一位患者姓名、**单编号,并将其从**序列中删除。
选3时,进行诊室分配。
选4时,按队列顺序显示个诊室排队人的姓名、**单编号及所在诊室。
选5时,进行两种统计方法的选择,并进行必要的统计计算。
选6时,退出程序的运行。
要求1~5中每一个步骤完成后都能重新显示此选择菜单。
测试数据】自拟定。
附:课程设计样式
编写课程设计说明书。
c语言课程设计说明书。
专业。班级:
学生姓名:指导教师:
设计题目。第一页。
设计题目。设计条件。
课程设计要求
数据库 课程设计要求。2009 2010学年第一学期。数据库课程设计是本课程必修的实践性教学环节。通过本课程设计,使学生在学习数据库应用系统分析与设计后,联系有关学习 生活中的实际应用,用所掌握的知识,进行数据库应用系统的开发,加深对数据库应用系统设计的理解和应用水平。一 课程设计的主要内容。1.选...
课程设计要求
1.考核目的 自学至少一种多 制作软件的使用。2.考核内容 图像处理软件 例如 photoshop 二维动画制作软件 例如 flash 三维动画制作软件 例如 3ds max 编辑软件 例如 premiere,会声会影 电子杂志制作软件 例如 zmaker,iebook vi.声音编辑软件 例如 c...
课程设计要求
一 应完成的技术文件。1 减速机装配图1张 a1幅面 2 零件图2张 a4幅面 3 每组每人完成一张3d零件图 每人不同 4 课程设计说明书 按照规定的格式写,并要求画出相关的简图 二 编写课程设计说明书程序及内容 1 目录。2 设计任务 附上课程设计任务书,并注明自己的题号 3 传动方案的分析与拟...