综合设计报告长整数计算器的设计与实现.docx
- 文档编号:28179244
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:39
- 大小:124.03KB
综合设计报告长整数计算器的设计与实现.docx
《综合设计报告长整数计算器的设计与实现.docx》由会员分享,可在线阅读,更多相关《综合设计报告长整数计算器的设计与实现.docx(39页珍藏版)》请在冰豆网上搜索。
综合设计报告长整数计算器的设计与实现
武汉工程大学
计算机科学与工程学院
综合设计报告
设计名称:
信息软件综合设计
设计题目:
长整数计算器设计与实现
学生学号:
**********
专业班级:
2012级信息技术02班
学生姓名:
但汉青
学生成绩:
指导教师(职称):
张俊(副教授)
完成时间:
2013.12.16至2013.12.27
武汉工程大学计算机科学与工程学院制
说明:
1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。
2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。
3、指导教师评语一栏由指导教师就学生在整个综合设计期间的表现、设计完成情况、报告的质量及答辩等方面,给出客观、全面的评价。
4、所有学生必须参加综合设计的答辩环节。
凡不参加答辩者,其成绩一律按不及格处理。
答辩小组成员应由2人及以上教师组成。
5、报告正文字数一般应不少于5000字,也可由指导教师根据本门综合设计的情况另行规定。
6、平时表现成绩低于6分的学生,其综合设计成绩按不及格处理。
7、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适用于学院各类综合设计),各教研室可根据本门综合设计的特点及内容做适当的调整,并上报学院批准。
答辩记录表
学生姓名:
但汉青学号:
1205110205班级:
2012信息技术02班
答辩地点:
J411
答辩内容记录:
答辩成绩
合计
分值
各项分值
评分标准
实际得分
合计得分
备注
25
10
在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。
15
在规定时间内能准确、完整、流利地回答教师所提出的问题。
答辩小组成员(签字):
2013年12月27日
成绩评定表
学生姓名:
但汉青学号:
******0205班级:
2012信息技术02班
类别
合计
分值
各项分值
评分标准
实际得分
合计得分
备注
平时表现
10
10
按时参加综合设计,无旷课、迟到、早退、违反实验室纪律等情况。
完成情况
30
20
按设计任务书的要求完成了全部任务,能完整演示其设计内容,符合要求。
10
能对其设计内容进行详细、完整的介绍,并能就指导教师提出的问题进行正确的回答。
报告质量
35
10
报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理;报告字数符合相关要求,工整规范,整齐划一。
5
课题背景介绍清楚,综述分析充分。
5
设计方案合理、可行,论证严谨,逻辑性强,具有说服力。
5
符号统一;图表完备、符合规范要求。
5
能对整个设计过程进行全面的总结,得出有价值的结论或结果。
5
参考文献数量在3篇以上,格式符合要求,在正文中正确引用。
答辩情况
25
10
在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。
15
在规定时间内能准确、完整、流利地回答教师所提出的问题。
总评成绩
指导教师评语
指导教师:
(签字)日期:
2013年12月27日
四、摘要:
长整数计算器包含长整数的加法运算、长整数的减法运算、长整数的乘法运算、长整数的除法运算、长整数的求余运算的程序。
设计的意义:
可以在远远超出int(甚至double)表示范围的整型数据之间进行数学运算。
长整数计算器可以完成两个长整数的加、减、乘、除四则运算以及求余运算。
要实现这些功能,首先需定义HugeInt类,提供必要的成员函数和运算符实现对象的构造、复制、赋值和输入/输出等操作。
接着重载运算符实现长整数的算术运算:
加、减、乘、除(带余数的除法)。
然后,长整数对象的文件输入/输出:
在退出程序之前把对象保存到文件中;在下一次启动程序的时候,从文件中读入现有对象。
最后,菜单选择:
提供清晰的文字菜单,从键盘读入用户的选项,然后执行相应的操作。
实现这些过程需要进行字符串长度比较、补‘0’、倒序相加、进位、借位、换位、整型与字符之间的转换、辗转相减法、make_pair封装。
比较难的就是补‘0’和倒序相加,首先得比较两个长整数的长度,对较短的数从其左边依次加上‘0’直至补齐,然后将字符数组下标改为从右向左的顺序,依次读入每一个字符进行相加。
所设计的长整数计算器,能够准确的算出两个远远超出int(或double)表示范围的整型数据的各种运算结果。
但是除法及求余运算运算效率很低,不能很快的算出结果。
还要对其进行改进,使其运算效率达到标准水平。
关键词:
长整数;计算器;运算
五、Abstract:
Longintegercalculatorcontainslongintegeraddition,longintegersubtraction,longintegermultiplication,divisionandstrivesfortheremainderoperation.Themeaningofdesign:
Youcanperformmathematicaloperationsinthefarbeyondtheint(ordouble)rangeofintegerdata.
Longintegercalculatorcancompleteaddition,subtraction,multiplication,divisionandremainderoperationoftwolongintegers.Inordertoachievethesefunctions,thefirstneedtodefineHugeIntclass,providenecessarymemberfunctionsandoperatorstoachievetheconstruct,copy,assignmentandinput/outputoperationoftheobjects.Thenoverloadedoperatorsachievelongintegerarithmeticoperations:
addition,subtraction,multiplication,anddivision(divisionwithremainder).Then,thelongintegerobjectfileinput/output:
savedtheobjecttoafilebeforeexittheprogram;Thenexttimewhenstarttheprogram,readinanexistingobjectfromafile.Finally,menuchoices:
providecleartextmenus,readuser’soptionsfromkeyboard,andthenperformthecorrespondingoperation.Toachievetheseprocessesneedtocomparethelengthofthestring,add‘0’,addinreverseorder,carry,borrow,transposition,convertbetweenintegerandcharacter,phasesubtraction,andmake_pairencapsulation.Difficultistoadd‘0’andadditiveinreverseorder,firstofallhavetocomparethelengthoftwolongintegers,thenadd‘0’fromtheleftoftheshorterlongintegeruntilcomplete,andthenchangethecharacterarraysubscripttoorderfromrighttoleft,andreadeverycharacterinproperorder.
Thelongintegercalculatordesignedcanperformmathematicaloperationsinthefarbeyondtheint(ordouble)rangeofintegerdata.Buttheefficiencyofdivisionandstrivesfortheremainderoperationislow,cannotcalculateresultsquickly.Itstilltobeimprovedtoitscomputationalefficiencyreachthestandardlevel.
Keywords:
longinteger;calculator;operation
一、综合设计目的、条件、任务和内容要求:
设计目的
《信息软件综合设计》是信息技术专业学生进入专业课学习后,综合运用所学习的面向对象程序设计思想和方法、C++语言及工具环境等知识完成较为复杂的程序设计。
通过该设计,能够锻炼学生的综合应用能力,为后续专业学习奠定知识和能力基础。
具备条件
已经学习过C程序设计、C++面向对象程序设计等一系列专业相关课程。
设计任务
1、用面向对象思想和方法完成较为简单程序系统的设计和实现;
2、完成所设计系统的报告撰写。
设计内容
1、用C++语言和STL标准库开发出一个功能较为完善的软件系统;
2、撰写规范、详细的综合设计报告;
3、设计陈述及答辩。
二、进度安排:
第16周~第17周周二:
选题,布置任务。
完成系统设计。
第17周周三~周五:
完成文档撰写。
第17周周五:
答辩,检查完成情况。
三、应收集资料及主要参考文献:
应收集如下几方面资料:
1、C++面向对象程序设计相关书籍
2、STL标准库相关参考书籍
主要参考文献:
[1]Horton,I.著;李予敏译.C++入门经典(第3版).北京:
清华大学出版社,2006.1
[2]NicolaiM.Josuttis著;候捷/孟岩译.C++标准程序库.武汉:
华中科技大学出版社,2002.9
[3]张俊.C++面向对象程序设计.北京:
中国铁道出版社,2012.8
[4]张俊.C++面向对象程序设计习题与实验指导.北京:
中国铁道出版社,2012.8
摘要………………………………………………………………………………………II
Abstract…………………………………………………………………………………...III
第一章设计概述…………………………………………………………………………..1
1.1设计目的及设计任务………………………………………………………………….1
1.2报告结构及内容组织…………………………………………..………………………1
第二章总体设计…………………………………………………………………………..2
2.1功能分析及系统结构……………………………………..………………………….…2
2.2主要技术及难点分析…………………………………..………………………….…3
第三章详细设计…………………………………………………………..………………..4
3.1长整数加法运算的设计与实现…………………………..………………………….…4
3.2长整数减法运算的设计与实现…………………………..………………………….…5
3.3长整数乘法运算的设计与实现…………………………..………………………….…6
3.4长整数除法及求余运算的设计与实现……………………………………………….7
第四章设计结果及分析…………………………………………………..………………..9
4.1长整数加法运算的功能及其运行测试…………………….……………..….…9
4.2长整数减法运算的功能及其运行测试…………………….……………..….…9
4.3长整数乘法运算的功能及其运行测试…………………….……………..….…10
4.4长整数除法及求余运算的功能及其运行测试……………………………………10
总结…….……………………………………………………..………………………….…11
致谢…….……………………………………………………..………………………….…12
参考文献…….………………..………………………………..………………………….…13
附录主要程序代码………...………………………………..………………………….…14
摘要
长整数计算器包含长整数的加法运算、长整数的减法运算、长整数的乘法运算、长整数的除法及求余运算的程序。
设计的意义:
可以在远远超出int(或double)表示范围的整型数据之间进行数学运算。
长整数计算器可以完成两个长整数的加、减、乘、除四则运算以及求余运算。
要实现这些功能,首先需定义HugeInt类,提供必要的成员函数和运算符实现对象的构造、复制、赋值和输入/输出等操作。
接着重载运算符实现长整数的算术运算:
加、减、乘、除(带余数的除法)。
然后,长整数对象的文件输入/输出:
在退出程序之前把对象保存到文件中;在下一次启动程序的时候,从文件中读入现有对象。
最后,菜单选择:
提供清晰的文字菜单,从键盘读入用户的选项,然后执行相应的操作。
实现这些过程需要进行字符串长度比较、补‘0’、倒序相加、进位、借位、换位、整型与字符之间的转换、辗转相减法、make_pair封装。
比较难的就是补‘0’和倒序相加,首先得比较两个长整数的长度,对较短的数从其左边依次加上‘0’直至补齐,然后将字符数组下标改为从右向左的顺序,依次读取每一个字符进行相加。
所设计的长整数计算器,能够在远远超出int(或double)表示范围的整型数据之间进行数学运算。
但是除法及求余运算运算效率很低,不能很快的算出结果。
还要对其进行改进,使其运算效率达到标准水平。
关键词:
长整数;计算器;运算
Abstract
Longintegercalculatorcontainslongintegeraddition,longintegersubtraction,longintegermultiplication,divisionandstrivesfortheremainderoperation.Themeaningofdesign:
Youcanperformmathematicaloperationsinthefarbeyondtheint(ordouble)rangeofintegerdata.
Longintegercalculatorcancompleteaddition,subtraction,multiplication,divisionandremainderoperationoftwolongintegers.Inordertoachievethesefunctions,thefirstneedtodefineHugeIntclass,providenecessarymemberfunctionsandoperatorstoachievetheconstruct,copy,assignmentandinput/outputoperationoftheobjects.Thenoverloadedoperatorsachievelongintegerarithmeticoperations:
addition,subtraction,multiplication,anddivision(divisionwithremainder).Then,thelongintegerobjectfileinput/output:
savedtheobjecttoafilebeforeexittheprogram;Thenexttimewhenstarttheprogram,readinanexistingobjectfromafile.Finally,menuchoices:
providecleartextmenus,readuser’soptionsfromkeyboard,andthenperformthecorrespondingoperation.Toachievetheseprocessesneedtocomparethelengthofthestring,add‘0’,addinreverseorder,carry,borrow,transposition,convertbetweenintegerandcharacter,phasesubtraction,andmake_pairencapsulation.Difficultistoadd‘0’andadditiveinreverseorder,firstofallhavetocomparethelengthoftwolongintegers,thenadd‘0’fromtheleftoftheshorterlongintegeruntilcomplete,andthenchangethecharacterarraysubscripttoorderfromrighttoleft,andreadeverycharacterinproperorder.
Thelongintegercalculatordesignedcanperformmathematicaloperationsinthefarbeyondtheint(ordouble)rangeofintegerdata.Buttheefficiencyofdivisionandstrivesfortheremainderoperationislow,cannotcalculateresultsquickly.Itstilltobeimprovedtoitscomputationalefficiencyreachthestandardlevel.
Keywords:
longinteger;calculator;operation
第一章设计概述
1.1设计目的及设计任务
一.设计目的
设计一个长整数计算器,来实现两个任意长的长整数的加减乘除及求余运算。
二.设计任务
1.定义长整数类HugeInt,以便在远远超出int(甚至double)表示范围的整型数据之间进行数学运算。
以STL的string类存储类似"999999999999999999999999999"的长整数。
2.提供必要的成员函数和运算符实现对象的构造、复制、赋值和输入/输出等操作。
在构造长整数对象时,可以给定一个int进行构造,也可以以字符串的形式进行构造。
3.重载运算符实现长整数的算术运算:
加、减、乘、除(带余数的除法)、取余。
4.重载运算符实现长整数的关系运算、增量和减量运算、类型转换运算(把长整数转换为int或者字符串)等。
5.长整数对象的文件输入/输出:
在退出程序之前把对象保存到文件中;在下一次启动程序时,从该文件中读入现有对象。
6.菜单选择:
提供清晰的文字菜单,从键盘读入用户的选项,然后执行相应操作。
具体示例请见所附源代码。
1.2报告结构及内容组织
1封面2目录3摘要4Abstract
5第一章设计概述:
(1)设计目的及设计任务
(2)报告结构及内容组织
6第二章总体设计:
(1)功能分析及系统结构
(2)主要技术及难点分析
7第三章详细设计:
(1)长整数加法运算的设计与实现
(2)长整数减法运算的设计与实现
(3)长整数乘法运算的设计与实现
(4)长整数除法及求余运算的设计与实现
8第四章设计结果及分析:
(1)长整数加法运算的功能及其运行测试
(2)长整数减法运算的功能及其运行测试
(3)长整数乘法运算的功能及其运行测试
(4)长整数除法及求余运算的功能及其运行测试
9.总结10.致谢11.参考文献12.附录:
主要程序代码
第二章总体设计
2.1功能分析及系统结构
一.功能分析
(1)输入功能序号0,退出程序;
(2)输入功能序号1,输入两个长整数,输出相加后的结果;
(3)输入功能序号2,输入两个长整数,输出相减后的结果;
(4)输入功能序号3,输入两个长整数,输出相乘后的结果;
(5)输入功能序号4,输入两个长整数,输出相除后的带商和余数的结果;
二.系统结构
图2.1系统结构图
2.2主要技术及难点分析
一.主要技术
字符串长度比较、补‘0’、倒序相加、相加时的进位表示、相减时的借位表示、相减时大小数换位相减、整型与字符之间的转换、除法运算时的辗转相减法、相除后用make_pair封装商和余数。
二.难点分析
比较难的就是补‘0’和倒序相加,首先得比较两个长整数的长度,对较短的数从其左边依次加上‘0’直至补齐,然后将字符数组下标改为从右向左的顺序,依次读取每一个字符进行相加。
第三章详细设计
要实现长整数点的四则运算,首先要定义HugeInt类,在类里面定义string私有成员存放字符串型的长整数。
然后,声明并定义整型、字符串型、复制、赋值运算构造函数。
因为在运算过程中要用到倒序和比较字符串长度大小,所以接着要定义倒序和字符串长度大小比较运算的重载函数。
另外,还会用到自增、前加、后加、流输入/输函数,因而还要定义自增、前加、后加、流输入/输出运算的重载函数。
最后在这些前提条件下声明并定义加减乘除四则运算及求余运算的重载函数。
3.1长整数加法运算的设计与实现
在设计长整数的加法运算过程中,首先,要进行字符串长度的比较。
如果长度相等则可以进行加法。
如果长度不相等,则必须先用补零的方式把两个字符串的长度补齐,才能进行加法运算。
对于补零,到底该补多少个零呢?
所以,在比较出长短的前提下,要用长度较长的长度减去较短的长度,并定义一个整型变量a来储存这个相差的长度。
然后用ostringstream函数进行补零,并输出补零后的长整数。
接下来就是相加了,但是字符串不能直接相加,直接相加就是把两个字符串连接在一起。
所以,要依次取出两个长整数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 综合 设计 报告 整数 计算器 实现