武汉工程大学计算机科学与工程学院综合设计报告设计名称:信息软件综合设计设计题目:长整数计算器设计与实现学生学号:1205110205专业班级:2012级信息技术02班学生姓名:但汉青学生成绩:指导教师(职称):张俊(副教授)完成时间:2013.12.16至2013.12.27武汉工程大学计算机科学与工程学院制说明:1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。3、指导教师评语一栏由指导教师就学生在整个综合设计期间的表现、设计完成情况、报告的质量及答辩等方面,给出客观、全面的评价。4、所有学生必须参加综合设计的答辩环节。凡不参加答辩者,其成绩一律按不及格处理。答辩小组成员应由2人及以上教师组成。5、报告正文字数一般应不少于5000字,也可由指导教师根据本门综合设计的情况另行规定。6、平时表现成绩低于6分的学生,其综合设计成绩按不及格处理。7、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适用于学院各类综合设计),各教研室可根据本门综合设计的特点及内容做适当的调整,并上报学院批准。答辩记录表学生姓名:但汉青学号:1205110205班级:2012信息技术02班答辩地点:J411答辩内容记录:答辩成绩合计分值各项分值评分标准实际得分合计得分备注2510在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。15在规定时间内能准确、完整、流利地回答教师所提出的问题。答辩小组成员(签字):2013年12月27日成绩评定表学生姓名:但汉青学号:1205110205班级:2012信息技术02班类别合计分值各项分值评分标准实际得分合计得分备注平时表现1010按时参加综合设计,无旷课、迟到、早退、违反实验室纪律等情况。完成情况3020按设计任务书的要求完成了全部任务,能完整演示其设计内容,符合要求。10能对其设计内容进行详细、完整的介绍,并能就指导教师提出的问题进行正确的回答。报告质量3510报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理;报告字数符合相关要求,工整规范,整齐划一。5课题背景介绍清楚,综述分析充分。5设计方案合理、可行,论证严谨,逻辑性强,具有说服力。5符号统一;图表完备、符合规范要求。5能对整个设计过程进行全面的总结,得出有价值的结论或结果。5参考文献数量在3篇以上,格式符合要求,在正文中正确引用。答辩情况2510在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。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武汉工程大学计算机科学与工程学院综合设计报告-I-目录摘要………………………………………………………………………………………IIAbstract…………………………………………………………………………………...III第一章设计概述…………………………………………………………………………..11.1设计目的及设计任务………………………………………………………………….11.2报告结构及内容组织…………………………………………..………………………1第二章总体设计…………………………………………………………………………..22.1功能分析及系统结构……………………………………..………………………….…22.2主要技术及难点分析…………………………………..………………………….…3第三章详细设计…………………………………………………………..………………..43.1长整数加法运算的设计与实现…………………………..………………………….…43.2长整数减法运算的设计与实现…………………………..………………………….…53.3长整数乘法运算的设计与实现…………………………..………………………….…63.4长整数除法及求余运算的设计与实现……………………………………………….7第四章设计结果及分析…………………………………………………..………………..94.1长整数加法运算的功能及其运行测试…………………….……………..….…94.2长整数减法运算的功能及其运行测试…………………….……………..….…94.3长整数乘法运算的功能及其运行测试…………………….……………..….…104.4长整数除法及求余运算的功能及其运行测试……………………………………10总结…….……………………………………………………..………………………….…11致谢…….……………………………………………………..………………………….…12参考文献…….………………..………………………………..………………………….…13附录主要程序代码………...………………………………..………………………….…14武汉工程大学计算机科学与工程学院综合设计报告-II-摘要长整