没有合适的资源?快使用搜索试试~ 我知道了~
首页大学C/C++软件课程设计报告
这是我大二的软件课程设计报告,编程语言c++,包括多个程序源代码,包括了用迭代法求a的立方根、从键盘输入正整数n,求出n与其反序数之和并输出、自定义一个示意性的复数类型complex、编写一个具有类模板tmplt,用于实现所谓的反序输出问题、用你熟悉的一种可视化编程语言实现计算器、单机版俄罗斯方块、编一程序对至少三个排序方法进行比较、编写程序,让计算机来猜测用户“暗记”的某张扑克牌
资源详情
资源评论
资源推荐

1、编程序 用迭代法求 a 的立方根..................................................................................................8
/////////////////////////////////........................................................................................................................8
1.1 需求分析:.....................................................................................................................................8
本程序主要解决的是: 用迭代法求 a 的立方根,求立方根的迭代公式为
::Xi+1=2/3*Xi+a/(3*Xi*Xi)...............................................................................................................8
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////.............8
程序执行的结果:................................................................................................................................8
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////.............8
.............................................................................................................................................................8
//////////////////////////////............................................................................................................................8
1.2 概要设计:......................................................................................................................................8
本程设计思路:本程序主要是运用迭代法求立方根的过程。由于迭代法的算法:
Xi+1=2/3*Xi+a/(3*Xi*Xi)已经给出,所以需要做的就是加一些必要的程序代码就可以实现
了。在编程的过程中,对于迭代公式的处理有些不到位,由于没有做必要的更改,所以一
直得不到正确的运行结果,后来我改变了迭代公式的写法如下:xi = (2.0 * xi + x / (xi *
xi)) / 3.0,很快搞定。.......................................................................................................................8
///////////////////////////////////////////////////....................................................................................................8
程序流程图:........................................................................................................................................8
.............................................................................................................................................................9
///////////////////////////////..........................................................................................................................9
1.3 详细设计与编码:.........................................................................................................................9
1.4 调试分析:...................................................................................................................................10
在调试过程中由于需要迭代到|Xi+1-Xi|<10 的-5 次方为止,而自己对于这些却不是很明白,
运行后的结果不符合要求,后来经过查找资料,才弄明白了他的用法。..............................10
//////////////////////////////////////.................................................................................................................10
1.5 用户使用说明:...........................................................................................................................10
用户根据程序的提示输入需要进行求立方根的数字,就可以得到结果了!.........................10
/////////////////////////////////////..................................................................................................................10
1.6 设计心得:....................................................................................................................................10
这是我的第一个软件设计成果,通过自己的亲手做,开始觉的有点不熟悉,不过还算顺利,
看着自己的程序能够最终实现自己想要的,感觉真的很好。..................................................10
2、编程序,从键盘输入正整数 n,求出 n 与其反序数之和并输出。......................................10
/////////////////////////////////......................................................................................................................10
2.1 需求分析:....................................................................................................................................10
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////..........10
程序执行的结果:..............................................................................................................................10
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////..........10
...........................................................................................................................................................11
//////////////////////////////..........................................................................................................................11
2.2 概要设计:....................................................................................................................................11
本程设计思路:本程序主要是要求实现输入一个整数求出其反序数并输出其和。开始时我想
用数组实现,输入一个整数存储在数组中,然后反序输出存储在数组中的数据。不过在编
程的过程中,我却发现没有办法实现。此路不通!于是找资料,后来发现了一个很简单的
算法:...............................................................................................................................................11

while (n!=0); //若“甩掉”个位形成的新 n 非则继续循环................................................................11
这个算法的精髓就是循环调用!...................................................................................................11
///////////////////////////////////////////////////..................................................................................................11
程序流程图:......................................................................................................................................11
...........................................................................................................................................................12
///////////////////////////////........................................................................................................................12
2.3 详细设计与编码:.......................................................................................................................12
} 2.4 调试分析:.................................................................................................................................13
这个程序是比较简单的。不过在一开始的时候,用于反序数输出的 x 我定义了,却没有使
其初始化为 0,每次执行,程序是直接崩溃!搞得我也很崩溃,百思不得其解。想了好久,
才试出来,是因为 x 需要初始化为 0。初始化后,很快做好了这个程序。............................13
//////////////////////////////////////.................................................................................................................13
2.5 用户使用说明:...........................................................................................................................13
用户根据程序的提示输入一个正整数,按下 Enter 就可以得到结果了!...............................13
/////////////////////////////////////..................................................................................................................13
2.6 设计心得:....................................................................................................................................13
这个程序还是比较简单的。短短几句代码就可以解决了。虽然这个程序可以运行,不过那
是在正常输入的情况下。加入我输入一个非要求的数字,得到的结果却让人不知所以。如
下:...................................................................................................................................................13
...........................................................................................................................................................13
我们知道,一个好的程序应该健壮,不仅需要对正确的输入可以进行处理,当输入数据非
法时,也能适当的做出反应或进行处理,而不会产生莫名其妙的输出结果。我本应该改正
过来再提交,可是实在不知道该怎么该,只得先提交。可是我会继续思考下去。^_^........13
3、 自定义一个示意性的复数类型 complex,其中含有若干个成员函数,............................14
使用该类可以完成复数的加法以及对复数的输出......................................................................14
/////////////////////////////////......................................................................................................................14
3.1 需求分析:....................................................................................................................................14
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////..........14
程序执行的结果:..............................................................................................................................14
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////..........14
...........................................................................................................................................................14
其中 c1(3,5),c2(3,-5),c3。................................................................................................................14
//////////////////////////////..........................................................................................................................14
3.2 概要设计:...................................................................................................................................14
本程设计思路:本程序主要是类的使用应用。通过题目给出的一个类对其进行扩充,使其具
备对复数的各种操作。这个题目还是比较简单的。只需要分别写出加、减、乘、除以及输
出函数,最后集成到主函数中就可以了。...................................................................................14
///////////////////////////////////////////////////..................................................................................................14
程序流程图:......................................................................................................................................15
...........................................................................................................................................................15
///////////////////////////////........................................................................................................................15
3.3 详细设计与编码:.......................................................................................................................15
}.........................................................................................................................................................17
3.4 调试分析:....................................................................................................................................17
2

在编程时,因为比较简单,编好之后也没有什么错误。不过个人 认为还可以进一步优化。
这个程序中的复数我是内置的。运行之后直接输出对两个复数所进行的加减乘除运算。我
本来打算再加入一个输入函数,通过键盘输入复数,然后通过运算,输出加减乘除的运算。
...........................................................................................................................................................17
在添加的过程中总是出错误,自己改不好,就放弃了。..........................................................17
//////////////////////////////////////.................................................................................................................17
3.5 设计心得:....................................................................................................................................17
开始做面向对象了。虽然学了一年 C++这一面向对象的语言,但是刚开时做的时候,还是
犯晕。自己好好的看了一下书才渐渐回忆起一些东西,最终做出来这一题。......................17
4、编写一个具有如下样式的类模板 tmplt,用于实现所谓的反序输出问题,其中使用了类
型参数 T(使所处理的元素类型可变化)以及普通参数 n(元素个数也可变化)。............17
/////////////////////////////////......................................................................................................................17
4.1 需求分析:....................................................................................................................................17
程序执行的结果:..............................................................................................................................18
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////..........18
...........................................................................................................................................................18
//////////////////////////////..........................................................................................................................18
4.2 概要设计:....................................................................................................................................18
本程设计思路:本程序主要是通过使用类模板求出一个数的反序数。根据题目只要设计出输
入函数:...........................................................................................................................................18
反序输出函数:...............................................................................................................................18
///////////////////////////////////////////////////..................................................................................................18
程序流程图:......................................................................................................................................18
...........................................................................................................................................................19
///////////////////////////////........................................................................................................................19
4.3 详细设计与编码:.......................................................................................................................19
4.4 调试分析:....................................................................................................................................20
这个程序是比较简单的。可是在调试过程中还是有很多问题存在。主要是自己水平不够编
的程序只能对特定的输入产生正确的结果。此题的问题如下:..............................................20
(a)当输入超出十个数范围后,程序会自动截断到第十个数字而忽略之后的数字,但是不
能给出错误提示!...........................................................................................................................20
...........................................................................................................................................................20
(b)当输入非正整数时得到的结果让人找不到头脑!不能进行出错处理。........................20
...........................................................................................................................................................20
/////////////////////////////////////..................................................................................................................20
4.5 用户使用说明:...........................................................................................................................20
用户根据程序的提示依次输入十个正整数,每个正整数之间需要打下空格键,输入完毕后
点击 enter 键,得到输出结果。.....................................................................................................21
/////////////////////////////////////..................................................................................................................21
4.6 设计心得:....................................................................................................................................21
这个程序还是比较简单的。短短几句代码就可以解决了。面向对象这一章也就第一题和第
六题简单一些。其它的自己短时间内很难设计出来,不得不依靠网络的力量。我感觉自己
的编程能力还很欠缺,有必要加强自己对于编程的认识理解和再学习,只有这样自己才可
能不会被社会淘汰。.......................................................................................................................21
3

5、用你熟悉的一种可视化编程语言实现计算器........................................................................21
/////////////////////////////////......................................................................................................................21
5.1 需求分析:....................................................................................................................................21
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////..........21
5.2 序执行的结果:............................................................................................................................21
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////..........21
...........................................................................................................................................................22
//////////////////////////////..........................................................................................................................22
5.3 概要设计....................................................................................................................................22
本程设计思路:..................................................................................................................................22
1、 数字输入和输出的代码实现...................................................................................................22
双引号中的值依次为 0、1、2、3、4、5、6、7、8、9..............................................................22
2、 数据计算部分.由以下代码实现..............................................................................................22
UpdateData(FALSE);........................................................................................................................22
通过选择所按下的运算符(该函数的变量)来完成相应的计算并显示。..............................22
key 的值依次为 1、2、3、4 分别对应加、减、乘、除。..........................................................22
3、 小数输入。................................................................................................................................22
4、 等号的实现调用 Onequ(),完成相应运算。如下:.............................................................22
5、 正负号的改变可以通过每按下该键后执行 n=-n 来执行。完成正确的负数录入过程。. 23
6、 AC 键。AC 清空所有变量,重置计算器。...........................................................................23
///////////////////////////////////////////////////..................................................................................................23
///////////////////////////////........................................................................................................................23
5.4 详细设计与编码:.......................................................................................................................23
见上传代码......................................................................................................................................23
5.5 用户使用说明:............................................................................................................................23
用户根据需要选择需要进行的运算,输入数字,进行运算即可以的到需要的结果。因为设
计不够完善,所以需要每运行一次,需要清零一次。假如不清零则会出现这次输入的数字
接着上次的结果如上次计算为 2*9=18 我继续输入则如下:....................................................23
...........................................................................................................................................................23
输入的 555 紧接着 18,不能实现自动清零。..............................................................................23
/////////////////////////////////////..................................................................................................................23
5.6 设计心得.....................................................................................................................................23
6、单机版俄罗斯方块.....................................................................................................................23
/////////////////////////////////......................................................................................................................23
6.1 需求分析:....................................................................................................................................23
6.2 序执行的结果:............................................................................................................................24
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////..........24
...........................................................................................................................................................24
//////////////////////////////..........................................................................................................................24
6.3 概要设计.....................................................................................................................................24
本程设计思路:..................................................................................................................................24
这个俄罗斯方块并不是我自己独立自主的开发出来的,而是找了很多资料且参考了网上下
载的一个源代码开发出来的。.......................................................................................................24
CGAME 类: 负责控制整个游戏,包括游戏的开始、结束、暂停等. CBAR 类:负责产
4

生形状各异的方块,包括图形的旋转等。 CBOX 类:负责一个个小方块的界面显示。
...........................................................................................................................................................24
1、定义一个二维数组,初始的属性和状态,为了界面的美观, 属性可以设成各种颜色,
或者根据某行的信息进行设置,状态是表示该区域有不有方块,这是版面的信息。 2、定
义各种形状的方块,及其对应的操作的类。一个大方块由几个小的方块组成,有一个是原
点,其他每个小方块保存它在相对坐标,这样,在计算旋转移动时比较方便。运动的时候,
假移动原点,察看其他点的位置,版面上是否被占用,没有的话就真移动,更新版面信息,
否则就停止,并检查方块停住的几行里,是不是有满行的,有的话删除,病根新版面信息。
产生新的块,进入循环。 ............................................................................................................24
3、每一步移动一格,速度有时间控制,每步等待 t,t 全局变量,可以调整以满足不同要
求///////////////////////////////////////////////////..............................................................................................25
流程图:...........................................................................................................................................25
...........................................................................................................................................................26
///////////////////////////////........................................................................................................................26
6.4 详细设计与编码:.......................................................................................................................26
见上传代码......................................................................................................................................27
6.5 用户使用说明:............................................................................................................................27
用户点击开始按钮,方块游戏即开始运行。用户需要使用键盘上的左右键来控制方块想要
降落的区域,向下键加速方块下降速度,向上键可以是方块变换不同形状,以便方块的堆
叠。没当一行依次排满,消失一行同时得分数一百,级别加一。..........................................27
/////////////////////////////////////..................................................................................................................27
6.6 设计心得.....................................................................................................................................27
这次的可视化编程对我们而言还是比较困难的。虽然面向对象设计的语言 C++已经系统学
习过,可是对于设计有图形界面的程序是我们的盲点,之前也没有接触过所以根本不知道
从哪里开始着手,visual c++对于图形界面的开发也一无所知。这些都给我做这次的实验带
来了很大的困难。不过幸好可以去图书馆借书,而且网络的发达也为此提供了便利。根据
借来的书,模仿其上的案例,有不会问题找同学讨论找老师请教,CSDN.NET 上的很多大
侠也对我给了很多的帮助,自己才得以解决几个问题。这一次的实验进一步证明了自己专
业知识的贫乏,所以自己以后要多多努力。..............................................................................27
7、编一程序对至少三个排序方法进行比较,比较方法是生成一组数据(≥400),用选定的排
序方法进行排序。输出每种方法数据比较或交换的次数。最后输出所花费的时间。////////////
/////////////////////....................................................................................................................................27
7.1 需求分析:....................................................................................................................................27
7.2 序执行的结果:............................................................................................................................27
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////..........27
...........................................................................................................................................................28
简单选择排序的实现:...................................................................................................................28
...........................................................................................................................................................28
希尔排序的实现:...........................................................................................................................28
...........................................................................................................................................................28
所有排序的比较实现:...................................................................................................................29
...........................................................................................................................................................29
//////////////////////////////..........................................................................................................................30
7.3 概要设计.....................................................................................................................................30
5
剩余48页未读,继续阅读









安全验证
文档复制为VIP权益,开通VIP直接复制

评论5