c++课程设计实验报告.docx

上传人:b****2 文档编号:1398581 上传时间:2022-10-22 格式:DOCX 页数:28 大小:651.68KB
下载 相关 举报
c++课程设计实验报告.docx_第1页
第1页 / 共28页
c++课程设计实验报告.docx_第2页
第2页 / 共28页
c++课程设计实验报告.docx_第3页
第3页 / 共28页
c++课程设计实验报告.docx_第4页
第4页 / 共28页
c++课程设计实验报告.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

c++课程设计实验报告.docx

《c++课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《c++课程设计实验报告.docx(28页珍藏版)》请在冰豆网上搜索。

c++课程设计实验报告.docx

学院

信息科学与工程

专业

电子信息科学与技术

学生姓名

董雪

学号

1503070207

设计题目

一.大整数类的设计与实现二.大整数类MFC的设计与实现

内容及要求:

PARTI.

大整数类的设计与实现

计算机中表示整数的位数是有限的,设计并实现一个能够进行任意长度整数准确计算的类,完成以下功能:

(1) 用构造函数实现大整数的构造。

(2) 重载“+”运算符,实现两个大整数的相加运算;

(3) 重载“-”运算符,实现两个大整数的相减运算;

(4) 重载“*”运算符,实现两个大整数的相乘运算;

(5) 重载“<<”运算符,实现大整数的输出。

提示:

长整数用一维字符型数组来存储,数组的每一个元素顺序存储长整数的一位数字。

设有k位长整数m,用数组a[]存储:

m=a[k]*10^(k-1)+a[k-1]*10^(k-2)+...+a[2]*10^1+a[1]*10^0

并用a[0]存储长整数m的位数,即a[0]=k。

可以自行编写链表类,或者使用STL中的list容器,也可以采用vector类实现

PARTII

大整数类MFC的设计与实现

进度安排:

第17周:

分析题目,查阅课题相关资料,进行类设计、算法设计;

第18周:

上机调试程序,程序测试与分析,撰写课程设计报告,准备答辩。

指导教师(签字):

年月日

学院院长(签字)

年月日

目录

PARTI

1需求分析.......................................................................................................................................................

2算法基本原理...............................................................................................................................................

3类设计............................................................................................................................................................

4详细设计........................................................................................................................................................

4.1类的接口设计.........................................................................................................................................

4.2类的实现................................................................................................................................................

4.3主函数设计............................................................................................................................................

5运行结果与分析...........................................................................................................................................

5.1程序运行结果.........................................................................................................................................

5.2运行结果分析.........................................................................................................................................

6参考文献.......................................................................................................................................................

PARTII

1问题描述.......................................................................................................................................................

2功能描述.......................................................................................................................................................

3需求分析.......................................................................................................................................................

4概要设计.......................................................................................................................................................

5详细设计.......................................................................................................................................................

6设计和调试分析............................................................................................................................................

7用户手册.......................................................................................................................................................

8测试结果.......................................................................................................................................................

9参考文献.......................................................................................................................................................

PARTI

大整数类的设计与实现

1需求分析

(1)大整数运算在科学计算中有着很重要的位置,所谓的大整数运算,是指参与运算的数(加数,减数,因子等)范围大大超出了标准数据类型(整型,实型)能表示的范围的运算。

(2)“大整数”运算在数学验证方面有重要的应用价值。

数学中的大整数运算验证工作如果靠手工计算完成,从时间上看几乎是不可能,而借助于计算机,由于传统编程方法精确度远远达不到要求,所以也无法完成。

有了大整数运算程序,这些工作才能得以进行。

(3)大整数运算在密码学中具有实用价值。

随着计算机发展,密码运算对整数运算长度、速度等要求越来越高,因而对大整数运算的精准精度也越来越高,高效的大整数运算系统不仅可用于密码学的实践教学环节,也可用于实际的密码处理工作中。

(4)大整数运算在微观模拟(如生物信息、基因工程、数量遗传)中的应用前景广泛。

微观世界中的许多对象的活动可以进行数字化模拟,而且其活动变化也可以通过大整数的运算来表示,其表达与处理就非常方便了。

2算法基本原理

(1)大整数的概念“大整数”一般指位数达到十几或成百上千甚至更多的整数,而更准确地说,应该是指普通程序设计语言中的整数类型值集范围以上的整数。

如标准的C的Unsignedlong型整数所能处理的整数范围最大,有效数位也最多,为4294967295(错误!

未找到引用源。

占据32位(4个字节)存贮空间,此时,大整数就是指十位以上的十进制整数了。

(2)“大整数”运算是指“大整数”之间的加减乘除等运算结果依然保持其数学理论上准确和精确的结果。

(3)我们采用数组存储的方式存储,并且存储的位数不能大于256位,否则会发生溢出错误而导致大整数处理错误。

对于负数,程序将不能处理,可以输入,计算结果输出为整数。

所以程序需要满足如下几点要求:

(1)建立一维数组a[500]用以存放大整数的位数,长整数用一维字符型数组来存储,数组的每一个元素顺序存储长整数的一位数字。

设有k位长整数m,用数组a[]存储:

m=a[k]*10^(k-1)+a[k-1]*10^(k-2)+...+a[2]*10^1+a[1]*10^0

并用a[0]存储长整数m的位数,即a[0]=k。

(2)构造函数的建立Longint();

(3)运算符重载函数的建立

建立重载运算符+Longintoperator+(Longint&longint2);

建立重载运算符-Longintoperator-(Longint&longint2);

建立重载运算符*Longi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1