2012计算机学院软件课程设计报告
- 格式:doc
- 大小:482.50 KB
- 文档页数:36
1 编号:( )字 号 《软件课程设计》报告
班 级: 信科10-4班 姓 名: 纵兆丹 学 号: 08103575 指导老师: 葛欣
中国矿业大学计算机科学与技术学院 2011 年10 月 2
软件课程设计任务书 专业年级: 电子信息科学与技术10级 学生姓名: 纵兆丹
任务下达日期: 2011 年 9 月 日
课程设计日期: 200 年 月 日至 200年 月 日 课程设计题目: 面向过程 类别 题目序号 成绩 面向过程 2、求n与其反序之和 4----使用最少张数的人民币纸币 6、编写程序求解骑士巡游问题
面向对象 2. 自定义一个简单的日期类DateType,它具有数据成员y、m、d,用来表示当前日期的年、月、日。 3、 用三种方法通过虚函数求Fibonacci数列
图形界面 创建一个计算器。 数据结构 1用顺序存储结构实现对栈的操作; 3求A矩阵的转置矩阵B
软件课程设计指导教师评阅书 指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力; 3
③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题等):
成 绩: 指导教师签字: 年 月 日
目录 一、面向过程设计题2----- 求n与其反序之和
1.1 需求分析…………………………………………………………………...….…5 4
1.2 概要设计………………………………………………………………………....5
1.3 详细设计与编码………………………………………………………...……...6
1.4 调试分析………………………………………………………………………....6
1.5 用户使用说明 ………………………………………………………………….6
1.6 设计心得………………………………………………………………………....7
二:面向过程设计题4----使用最少张数的人民币纸币
2.1 需求分析……………………………………………………………………….…7
2.2 概要设计………………………………………………………………………...7
2.3 详细设计与编码………………………………………………………………...7
2.4 调试分析………………………………………………………………………...8
2.5 用户使用说明 ………………………………………………………………….9
2.6 设计心得………………………………………………………………………...9
三、面向过程设计题6 ----- 编写程序求解骑士巡游问题
3.1 需求分析…………………………………………………………………………9
3.2 概要设计………………………………………………………………………....10
3.3 详细设计与编码……………………………………………………………….10
3.4 调试分析………………………………………………………………………...13
3.5 用户使用说明 …………………………………………………………………14
3.6 设计心得………………………………………………………………………...14
四:面向对象设计题2——自定义一个简单的日期类可用来实现对天的增加,比
较两个日期是否相等,以及对日期的输出等操作。 4.1 需求分析…………………………………………………………………………14
4.2 概要设计………………………………………………………………………... 14
4.3 详细设计与代码………………………………………………………………..15
4.4 调试分析………………………………………………………………………...17
4.5 用户使用说明 ………………………………………………………………….17
4.6 设计心得………………………………………………………………………...17
五:面向对象设计题3——用三种方法通过虚函数求Fibonacci数列
5.1 需求分析…………………………………………………………………………17
5.2 概要设计………………………………………………………………………... 18
5.3 详细设计与代码………………………………………………………………..19
5.4 调试分析………………………………………………………………………...21
5.5 用户使用说明 ………………………………………………………………….21
5.6 设计心得………………………………………………………………………...21
六:图形界面1——计算器 5
6.1 需求分析…………………………………………………………………………………...21 6.2 概要设计……………………………………………………………………………………21 6.3 详细设计与代码…………………………………………………………………………..22 6.4 调试分析…………………………………………………………………………………...26 6.5 用户使用说明 …………………………………………………………………………….26 6.6 设计心得…………………………………………………………………………………...26
七:数据结构1——用顺序存储结构实现对栈的操作 7.1 需求分析………………………………………………………………………………26
7.2 概要设计……………………………………………………………………………...26
7.3 详细设计与代码……………………………………………………………………..27
7.4 调试分析……………………………………………………………………………...32
7.5 用户使用说明 ……………………………………………………………………….32
7.6 设计心得……………………………………………………………………………...32
八:数据结构3——求A矩阵的转置矩阵B 8.1需求分析……………………………………………………..………….……32 8.2概要设计……………………………………………………………………...32 8.3详细设计与代码……………………………………………………………...33 8.4调试分析……………………………………………………………………...35 8.5用户使用说明 ……………………………………………………………….35 8.6设计心得……………………………………………………………………...35
九:软件课程设计总结……………………………………………………...35
一、面向过程设计题2----- 求n与其反序之和
1.1需求分析 编程序,从键盘输入正整数n,求出n与其反序数之和并输出。例如,输入2038,输出应为 2038+8302=10340。这道题最主要是用什么简单有效的方法求出一个正整数的反序。 用户在程序运行过程中应输入整数,当输入的数大于0时,输出这个数与其反序的和,然后继续输入整数;当输入的数非正时,程序结束运行。
1.2概要设计 求出一个正整数的反序,代码如下: k=n; m=0; 6
while(k){ m=m*10+k%10; k=k/10; } 当k为0是停止循环,此时的m就是n的反序。
1.3 详细设计与编码 #include using namespace std;
void main() { long n,m,k; cin>>n; while(n>0){ k=n; m=0; while(k){ m=m*10+k%10; k=k/10; } cout
1.4 调试分析
经调试验证此程序能满足题目设计的要求。 1.5 用户使用说明 用户在程序运行过程中应输入整数,当输入的数大于0时,输出这个数与其反序的和,然后继续输入整数;当输入的数非正时,程序结束运行。 7
1.6 设计心得 在设计程序时,首先要明白程序要完成的任务,再分析程序的整体流程,然后找到程序的关键点,也就是最难的地方,比如这道题的关键点在于求反序。下面才是核心部分程序的编写,写完后,要对程序进行验证分析,看看有没有可以优化、修改的地方。
二:面向过程设计题4----使用最少张数的人民币纸币
编程序,输入正整数m,它代表一个人民币钱数(元数)。求取这样一个方案,使用最少张数的人民币纸币,凑成上述的钱数m,并输出求取结果。 注意,现在共有7种元以上面值的人民币纸币,分别为:100,50,20,10,5,2,1。 2.1需求分析 以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?明确规定: ·输入的形式和输出、值的范围 从键盘输入正整数money,money为int型变量,m>0; ·输出的形式 输出一种方案:如100元1张,50元1张,20元1张,5元0张,2元2张,1元0张。
·程序所能达到的功能 这个程序输入一个人民币钱数,得到这样一个方案,使用最少张数的人民币纸币,凑成上述的钱数。 ·测试的数据:包括正确的输入和错误的输入及其相应的输出结果 正确的输入: 如输入125,得到的结果是:100元1张,,20元1张,5元1张,2元0张,1元0张。 错误的输入: 如输入-2,得到的结果是:输入错误,您输入的钱数小于零,请重新输入。 2.2概要设计 说明程序中用到的所有抽象数据类型的定义,主程序的流程以及各程序模块之间的层次(调用)关系。
定义了钱数为整型变量,int money;
设计了一个得到方案的for循环体; 开始 → 输入money → 进入for循环 →得出想要的结果退出 2.3 详细设计编码 #include #include using namespace std;