中国矿业大学软件课程设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编号:()字号
《软件课程设计》报告
班级: 12级信息安全二班
姓名:李江涛
学号: 08123608
指导老师:徐慧
中国矿业大学计算机科学与技术学院
2013年 6 月
软件课程设计任务书
专业年级:信息安全二班
学生姓名:李江涛
任务下达日期:2013 年 4 月日
课程设计日期:2013 年 4 月5日至200年7月 3 日
课程设计题目:面向过程
目录
一第一阶段-----------面向过程 (4)
1 --------------------人民币凑数问题 (4)
1.1 需求分析 (4)
1.2 概要设计 (5)
1.3 详细设计与编码 (5)
1.5 用户使用说明 (6)
1.6 设计体会 (6)
2-------------------- 日期星期转换 (7)
2.1.需求分析: (7)
2.2 概要设计 (7)
2.4.调试分析 (10)
2.5.用户使用说明 (10)
2.6.测试分析 (10)
2.7.设计体会: (10)
二第二阶段------------面向对象 (11)
1--------------------学生管理系统 (11)
1.1----需求分析 (11)
1.2.概要设计 (11)
1.3.详细设计与编码 (11)
1.4 运行结果: (17)
1.5调试分析 (18)
1.6用户使用说明 (18)
1.7测试分析: (18)
1.8 实验体会 (18)
2 面向对象函数模板反向输出 (19)
1--------------------函数模板反向输出 (19)
1.1 需求分析: (19)
1.2函数模板反向输出源代码: (19)
1.4 运行结果: (21)
三第三部分----------可视化 (21)
1--------------------计算器: (21)
用你熟悉的一种可视化编程语言实现如下图所示的计算器。该计算器需要实现基础
的数学运算,如加,减,乘,除。 (21)
1.1重要程序 (21)
1.3运行结果图: (22)
四第四部分----------数据结构 (23)
1--------------------求矩阵的转置 (23)
1.1 需求分析: (23)
1.2 概要设计: (24)
1.3 详细设计与编码: (24)
1.4 运行结果: (27)
1.5 用户使用: (27)
1.6 设计体会: (27)
2--------------------数据结构统计选票 (27)
2.1 需求分析: (28)
2.2 概要设计: (28)
2.3 详细设计与编码: (28)
2.4 运行结果: (30)
2.6 用户使用: (31)
2.7 设计体会: (31)
五第五部分课程总结----学与做 (31)
一第一阶段-----------面向过程
1 --------------------人民币凑数问题
1.1 需求分析
程序要求:输入正整数m,它代表一个人民币钱数(元数)。求取这样一个方案,使用最少张数的人民币纸币,凑成上述的钱数m,并输出求取结果。注意,现在共有7种元以上面值的人民币纸币,分别为:100,50,20,10,5,2,1。
本题的主要的任务是编制一个函数,这个函数的主要的作用是用来把一个输入的人民币的钱数,使用最少张数的人民币纸币,凑成上述的钱数。从提供的钱数来看,本题的输入值的范围是钱数m 大于等于1 元的钱数,理论上讲没有上限,但是要看数据类型,int 型,或long 型,它们有自己的取值范围。int 型的最大值是127,long 型的最大值是2147483647。
输出的代表100,50,20,10,5,2,1的钱的张数。它们的值都是整数。
输入形式:整数
输出形式:
输入钱数m=
需要100元面值的纸币数是:
需要 50元面值的纸币数是:
需要 20元面值的纸币数是:
需要 10元面值的纸币数是:
需要 5元面值的纸币数是:
需要 2元面值的纸币数是:
需要 1元面值的纸币数是:
程序功能:输入一个代表人民币钱数的正整数m,然后使用最少的人民币纸
币凑成该钱数m。
测试数据及输出结果如下:
1.2 概要设计
由于是面向过程的设计,所以我就用最简单的算法实现:通过不断的取模、除法运算来实现,然后输出结果。可能过程上比较繁琐,但我觉得对于这个程序还算可以。
1.3 详细设计与编码
#include
#include
#include
using namespace std;
int main()
{ int number,i;int a[8];string name[8]={"开始","100¥","50¥","20¥","10¥","5¥","2¥","1¥"};
cout <<"请输入钱的数:";
number=-1;
for(;number<=0;)
{cin>>number;
if(number<=0){cout<<"输入错误请重新输入:"< } if(number>0) { a[1]=number/100; a[2]=(number%100)/50; a[3]=(number%100%50)/20; a[4]=(number%100%50%20)/10; a[5]=(number%100%50%20%10)/5; a[6]=(number%100%50%20%10%5)/2; a[7]=(number%100%50%20%10%5%2)/1; for(i=1;i<=7;i++) { if(a[i]>0) {cout< } } main(); return 0; } 1.4 调试分析: 在调试过程中,可以输入一个简单的三位的正整数,然后程序自动运行,最后输出结果凑起来的和就是m 钱的总数,从而解决了问题。 1.5 用户使用说明 根据输出提示输入你要转换的钱数的值,经过程序的判断运算,就会得到问题的答案。 1.6 设计体会