编号:( )字 号
《软件课程设计》报告
班
姓
学
级:
名:
号:
计科 09-1
禹 勇
08093343
指导老师:
张振环 ____
中国矿业大学计算机科学与技术学院
2010 年 12 月
1
软件课程设计任务书
专业年级:
学生姓名:
计科 09-1
禹 勇
任 务 下 达 日 期 : 2010 年 10 月 11 日
课程设计日期: 2010 年 10 月 11 日至 2010 年 12 月 16 日
课程设计题目:
类别
题目序号
成绩
面向过程
面向对象
图形界面
数据结构
2、7、
2、5、
1、
1、2
2
软件课程设计指导教师评阅书
指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力;
③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及
工作量;⑥总体评价及建议成绩;⑦存在问题等):
成 绩:
指导教师签字:
年
月
日
3
目录
一、面向过程设计题 2-------编程序,从键盘输入正整数 n,求出 n 与其反序数之和
并输出(第一阶段 第二题.cpp)
1.1 需求分析……………………………………………………………………….…9
1.2 概要设计………………………………………………………………………...10
1.3 详细设计与编码………………………………………………………………...11
1.4 调试分析………………………………………………………………………...13
1.5 用户使用说明 ………………………………………………………………….13
1.6 设计心得………………………………………………………………………...13
二、面向过程设计题 7------将输入的罗马数据化为 10 进制数(第一阶段 第七
题.cpp)
2.1 需求分析…………………………………………………………………………13
2.2 概要设计………………………………………………………………………...14
2.3 详细设计与编码………………………………………………………………...16
2.4 调试分析………………………………………………………………………...17
2.5 用户使用说明 ………………………………………………………………….17
2.6 设计心得………………………………………………………………………...17
三、面向对象设计题 2------自定义一个简单的日期类 DateType
(第二阶段 第二题.cpp)
3.1 需求分析…………………………………………………………………………17
3.2 概要设计………………………………………………………………………...19
3.3 详细设计与编码………………………………………………………………...21
3.4 调试分析………………………………………………………………………...22
3.5 用户使用说明 ………………………………………………………………….22
3.6 设计心得………………………………………………………………………...22
四、面向过程设计题 5---------设计一个类 CStudent(第二阶段 第五题.cpp)
4.1 需求分析…………………………………………………………………………22
4.2 概要设计………………………………………………………………………...23
4.3 详细设计与编码………………………………………………………………...25
4.4 调试分析………………………………………………………………………...25
4.5 用户使用说明 ………………………………………………………………….25
4.6 设计心得………………………………………………………………………...25
五、图形界面 1---------计算器(禹勇的计算器.exe)
5.1 需求分析…………………………………………………………………………26
4
5.2 概要设计………………………………………………………………………...26
5.3 详细设计与编码………………………………………………………………...27
5.4 调试分析………………………………………………………………………...27
5.5 用户使用说明 ………………………………………………………………….28
5.6 设计心得………………………………………………………………………...29
六、数据结构 1------用链表和数组两种方式分别实现栈的出栈、入栈、取栈顶元素、判
空、查找等操作(第四阶段 第一题.cpp)
6.1 需求分析…………………………………………………………………………30
6.2 概要设计………………………………………………………………………...30
6.3 详细设计与编码………………………………………………………………...34
6.4 调试分析………………………………………………………………………...35
6.5 用户使用说明 ………………………………………………………………….35
6.6 设计心得………………………………………………………………………...35
七、数据结构 2--------假设有一个循环链表的长度大于 1,且表中既无头结点
也无头指针(第四阶段 第二题.cpp)
7.需求分析………………………………………………………..………….……36
7.概要设计………………………………………………………………………...37
7.详细设计与编码………………………………………………………………...39
7.调试分析………………………………………………………………………...41
7.用户使用说明 ………………………………………………………………….41
7.设计心得………………………………………………………………………...41
八、课程设计总结 ……………………………………………………………… 42
5
一、面向过程设计题 2
1.1 需求分析:
编程序,从键盘输入正整数 n,求出 n 与其反序数之和并输出根据题目要求,规定如下:
测试数据:
【输入数据】:2038
【输出数据】:10340
【输入数据】:1234
【输出数据】:5555
1.2 概要设计:
(1)定义整形变量 n 为用户输入值;
(2)输出反序数;
(3)定义整形变量 sum 求和;
(4)输出 sum 的值。
(5)主程序流程:
step1:让用户输入一个整数 n;
step2:进入 for 循环计算其反序数;
step3:求和并输出。
1.3 详细设计与编码:
(1)
流程图:
用户输入 n
进入 for 循环
判断条件
no
输出反序数
6
yes
输出结果
(2)
源程序
#include
using namespace std;
int main()
{
int n,a,b,c,sum;
cout<<"请输入一个整数 n:";
cin>>n;
a=n;
cout<step2:输入 1234
分析:经过输入多次实验后,都取得了预期值,这说明了程序的正确性。
1.5 用户使用说明:
step1:打开程序;
step2:输入要求的数;
step3:得出结果;
1.6 设计心得:
通过此次实验加深了对 for 循环的使用方法!从小程序开始逐渐把以前遗忘的内
容捡起。
二、面向过程设计题 7
2.1 需求分析:
实现罗马数据与 10 进制数之间的相互转换
根据实验要求,规定如下:
测试数据
【输入数据】LXXXVII
【输出结果】87
【输入数据】99
【输出结果】LXXXXVIIII
2.2 概要设计:
(1) 定义整形数组变量 ROME_DATA[7]={1000,500,100,50,10,5,1};
(2) 定义字符串 ROME="MDCLXVI";
(3) 定义“罗马数据转换为十进制数据”函数 void ROME_INT ();
(4) 定义“十进制数据转换为罗马数据”函数 void INT_ROME();
(5) 主函数调用 ROME_INT ()、INT_ROME()。
8