1、 C 语言程序设计语言程序设计 课程设计报告课程设计报告 (2012012 2 2012013 3 学年学年 第第 3 3 学期)学期) 专 业: 软件工程 班 级: 姓名学号: 指导教师: 成 绩: 软件工程软件工程系系 2013 年年 06 月月 24 日日 目 录 一、课程设计的目的与要求(含设计指标) . 1 二、方案实现与调试 1 2.1 掷骰子游戏 1 2.2 射击游戏 . 3 2.3 计算存款本息之和 5 2.4 肇事逃逸 6 2.5 礼炮 8 2.6 汽车加油 . 10 2.7 排考场座位问题 . 12 2.8 大优惠 . 14 2.9 金币 15 2.10 缩印. 17 三、
2、课程设计分析与总结 . 20 - 1 - 一一、课程设计的目的与要求(含设计指标)课程设计的目的与要求(含设计指标) (一) 、实验目的 C 语言是一种编程灵活,特色鲜明的程序设计语言。C 语言除了学习必须的基本知识, 如概念,方法和语法规则之外,更重要的是进行实训,以提高学习者的动手和编程能力,这 是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程, 使“项目教学法”能在本质上促使学生有更大进步,特编写了该C 语言程序设计任务书 , 以在实训过程中给学生提供帮助。达到如下目的: 1 在课程结束之前,让学生进一步了解 C 程序设计语言的编程功能; 2 让学生扎实掌握
3、 C 程序设计语言的相关知识; 3 通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识 与专业知识有效地结合,更全面系统地了解行业知识。 (二) 、设计要求 根据实验内容的要求自由选定题目。编写程序要求遵循如下基本要求: 模块化程序设计 锯齿型书写格式 必须上机调试通过 二二、方案实现与方案实现与调试调试 2.1 掷骰子游戏 2.1.1 题目内容的描述 : 两人玩骰子,游戏规则如下: 1) 两人轮流掷骰子,每次掷两个,每人最多掷 10 次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为 6 时,计 8 分;当两个点数相等且不为两个 6 时,计 7 分;当两个点
4、数不一样时,计其中点数较小的骰子的点数。 4) 结束条件: 当双方都掷 10 次或经过 5 次后一方累计分数多出另一方的 30% 及以上。最后显示双方分数并判定优胜者。 2.1.2 输入数据类型、格式和内容限制和输出数据的说明 输入数据类型、格式和内容限制:无 输出数据:获胜方及分数 - 2 - 2.1.3 主要模块的算法描述 2.1.4 调试过程及实验结果 开始 初始化 随机取数,比较甲乙方大小 并将获得的分数加起来 当累加分数为 5 次时候,比较 甲是否大于 1.3 倍的乙 甲获胜 乙是否大于 1.3 倍的甲 乙获胜 随机取数,比较甲乙方大小 并将获得的分数加起来 当累加分数为 10 次时
5、候, 比 较甲是否大于 1.3 倍的乙 甲获胜 乙是否大于 1.3 倍的甲 乙获胜 Y Y Y Y N N N N 平局 结束 - 3 - 实验结果: 调试过程: 1.在 printf 中忘记加%d 导致运行没有结果, 2.没有弄清楚全局变量和局部变量,导致出错, 3.对于子函数的定义没有弄明白,以及指针的定义。 2.2 射击游戏 2.2.1 题目内容的描述 : 在程序运行时屏幕上方第一行随机出现一个 符号,要求游戏者输入一 个 1-80 之间的整数,当用户输入一个整数后,一个*立即从屏幕底端的该整 数列向上移动,若移动到屏幕的顶端能撞上 符号,则游戏者获胜;若没 有撞上,则要求再输入一个整数
6、,共允许输入 5 次,如果一直没有撞上,则 认为游戏者输。 提示: 1)输入 符号可以采用 printf(“%c“,1) 2)显示*号向上移动:输出一些空行;输出*号;以循环的方式增加 延时(for(i=0;i0 i0 printf(“n“); j-; ki t=t-i; m=m+i*i; i+; 输出国王总共 奖励了侍从的 结束 N Y m=m+t*i; - 18 - 像最大,你会怎么做?你可以将图像旋转 90 度,然后压缩 50%,图像现在 的大小变为 200280。这样就可以放入页面中! 1)输入:输入数据包含四个用空格隔开的正整数 A,B,C 和 D,表示图像 大小是 AB,页面大小是 CD。所有的数据都小于 1000。 2)输出:如果图像不需要压缩(可能需要旋转)则输出 100%。如果图像 需要被压缩则输出最小压缩比(可能需要旋转) 。我们假定没有图像会被 压缩到 1%以下,所有结果为一个整型的百分比