大整数计算器
请针对100以内正整数加法运算的计算器设计2条测试用例,要求采用通用用例写作格式

请针对100以内正整数加法运算的计算器设计2条测试用例,要求采用通用用例写作格式标题:针对100以内正整数加法运算的计算器设计2条测试用例引言概述:计算器是我们日常生活中常用的工具之一,而针对100以内正整数加法运算的计算器则是一种常见的类型。
为了确保计算器的准确性和可靠性,设计测试用例是必不可少的环节。
本文将针对该类型的计算器设计两条测试用例,并按照通用用例写作格式进行阐述。
正文内容:1. 输入两个正整数进行加法运算1.1 输入两个小于100的正整数- 输入:num1 = 10, num2 = 20- 预期输出:30- 用例说明:测试计算器能够正确地计算两个小于100的正整数之和。
1.2 输入一个小于100的正整数和一个等于100的正整数- 输入:num1 = 80, num2 = 100- 预期输出:180- 用例说明:测试计算器能够正确地计算一个小于100的正整数和一个等于100的正整数之和。
2. 输入两个等于100的正整数进行加法运算2.1 输入两个等于100的正整数- 输入:num1 = 100, num2 = 100- 预期输出:200- 用例说明:测试计算器能够正确地计算两个等于100的正整数之和。
2.2 输入一个等于100的正整数和一个大于100的正整数- 输入:num1 = 100, num2 = 120- 预期输出:220- 用例说明:测试计算器能够正确地计算一个等于100的正整数和一个大于100的正整数之和。
3. 输入两个大于100的正整数进行加法运算3.1 输入两个大于100的正整数- 输入:num1 = 150, num2 = 200- 预期输出:350- 用例说明:测试计算器能够正确地计算两个大于100的正整数之和。
3.2 输入一个大于100的正整数和一个小于100的正整数- 输入:num1 = 150, num2 = 80- 预期输出:230- 用例说明:测试计算器能够正确地计算一个大于100的正整数和一个小于100的正整数之和。
硬盘分区整数G计算公式及计算器

硬盘分区整数G计算公式及计算器1)我们知道,1GB=1024MB、1TB=1024GB、1PB=1024TB、1EB=1024PB。
如果你想在Windows的“我的电脑”或“计算机”里看到整数G的硬盘分区,就要在分区时进行计算。
2)对于FAT32格式的硬盘分区,由于每1024个字节都会用4个字节来存储磁盘结构和数据存储位置等信息,但分区中的第一GB并不占用额外的存储容量,因此FAT32格式磁盘分区的整数G计算公式为(X-1)*4+1024*X=Y,其中X为你想得到的整数G数(单位为GB),Y为应分配的M数(单位为MB)。
为方便记忆,硬盘整数G计算公式也可写成(G-1)*4+1024*G=M。
3)比如,你想分个100G的整数G分区(FAT32格式),你要在分区软件(比如WinPM)里输入(100G-1)*4+1024*100G=102,796 M才能得到。
因为,Windows 认为100G不等于100,000M,也不等于102,400M,100G=102796 M。
硬盘分区整数G速查表4)对于NTFS格式的硬盘分区,原理比较复杂。
NTFS分区的最小容量不能精确到1MB,而是柱面大小。
硬盘一般有255个磁头,63个扇区,故每个柱面的大小为:512bit*255*63=8,225,280bit=7.84423828125MB。
5)如果要分个10GB的NTFS分区,理应为10*1024MB=10240MB,实际需要的柱面数为10240÷7.84423828125=1305.4。
因柱面只能算整数,即1306个柱面,这样实际分配的M数为1306*7.84423828125=10244.575MB,不管小数点后面几位都进1,也就是10245MB,这样才会被Windows系统认成是10GB。
学生用计算器说明书

学生用计算器说明书亲爱的同学们:当你打开这个包装,拿到这台学生用计算器时,它将成为你学习数学和其他学科的得力小助手。
为了让你能更好地使用它,发挥它的最大作用,接下来请仔细阅读这份说明书。
一、外观与按键介绍这台计算器的外观简洁大方,尺寸适中,方便携带。
它的按键布局合理,操作起来轻松便捷。
1、数字键:从 0 到 9 ,用于输入数字。
2、四则运算键:包括加(+)、减()、乘(×)、除(÷),用于进行基本的数学运算。
3、等号键(=):用于得出计算结果。
4、小数点键():用于输入小数。
5、清除键(AC):按下此键可以清除所有输入的数据和计算结果,重新开始计算。
6、退格键(Backspace):如果输入有误,可以使用此键删除前一个输入的数字或符号。
7、函数键:例如 sin、cos、tan 等,用于进行三角函数的计算。
8、开方键(√):用于计算一个数的平方根。
9、幂运算键(^):用于进行乘方运算。
二、基本操作1、开机与关机按下“ON”键,计算器开机,屏幕显示初始画面。
按下“OFF”键,计算器关机。
2、数字输入直接点击相应的数字键输入数字。
输入小数时,先输入整数部分,然后点击小数点键,再输入小数部分。
3、四则运算依次输入数字和运算符号,最后按下等号键得出结果。
例如,计算 2 + 3 × 4 ,先输入 2 ,再输入+,然后输入 3 ,接着输入 ×,再输入 4 ,最后按下=,得出结果 14 。
4、清除操作如果在输入过程中发现错误,可以使用退格键删除单个数字或符号。
如果需要完全重新计算,按下清除键 AC 。
三、功能介绍1、科学计算功能三角函数计算:输入角度值,然后按下相应的三角函数键(如sin、cos、tan),即可得出函数值。
指数和对数计算:使用“^”键进行指数运算,例如 2 ^ 3 表示 2 的3 次方;使用“log”键进行对数运算。
2、统计计算功能可以计算一组数据的平均值、总和、方差等统计量。
电脑计算器里面的“科学型”的里面所有的按键的功能

电脑计算器里面的“科学型”的里面所有的按键的功能科学型计算器是一种功能强大的计算器,通常具有更多的数字、符号和特殊功能键,以完成更复杂的数学和科学计算。
下面是电脑科学型计算器中常见的按键功能:1.数字键:0-9、用于输入数字和小数点。
2.加、减、乘、除键:+、-、×、÷。
用于进行基本的加减乘除运算。
3.等于键:“=”。
用于计算输入的表达式并显示结果。
4.清除键:“C”。
“AC”或“CE”。
用于清除计算器的输入或结果。
5.方根键:“√”。
用于计算一些数的平方根。
6.平方键:“x²”。
用于计算一些数的平方。
7.倒数键:“1/x”。
用于计算一些数的倒数。
8.百分数键:“%”。
用于将一些数转换为百分比。
9.正负切换键:“+/-”。
用于改变数的正负号。
10.小数点键:“.”。
用于输入小数点。
11.括号键:“(”。
用于分组复杂的计算表达式。
12.清除键:“AC”。
用于清除计算器的输入和结果。
13. 回退键:“←”或“Backspace”。
用于删除输入错误或最后一个输入的字符。
14.存储功能键:“M+”、“M-”、“MR”和“MC”。
用于在计算器内存中存储和检索值。
15.科学计数法键:“EE”或“EXP”。
用于输入或显示科学记数法表示的数字。
16.平均值键:“AVG”。
用于计算一组数字的平均值。
17.取整键:“INT”。
用于将一个数舍入到最接近的整数。
18.大数运算键:“10^x”。
用于计算10的指数次幂。
19. 对数键:“log”。
用于计算一些数的常用对数。
20. 自然对数键:“ln”。
用于计算一些数的自然对数。
21. 指数函数键:“exp”。
用于计算e的指数次幂。
22. 双曲函数键:“sinh”、“cosh”和“tanh”。
用于计算双曲正弦、余弦和正切。
23. 最大值键:“Max”。
用于计算一组数字中的最大值。
24. 最小值键:“Min”。
用于计算一组数字中的最小值。
25. 随机数键:“Rand”。
计算器有关按键说明大全

计算器有关按键说明大全一、基本按键ON 开机OFF 关机AC 总清,清除所有存储和显示数值(又:CA, All ClearC 清除所有显示和当前运算、归零(又:CLR、Esc,英文名Clear注:以上又有组成组合键的情况为ON/OFF、ON/AC、ON/CCE 清除输入,清除当前输入数据中最后一个不正确的输入数据并显示“0”,可重新更正输入(英文名Clear Error或Clear Entry⌫清除光标前一字符(又:←、Backspace、BS、DEL(delete) INS 改写模式,从当前位置插入(英文名insertREPLAY 指令状态移动方向,上下查记录,左右移动当前表达式中光标(一般此键上有成十字排列的方向标识:▲▼◄►SHIFT 转换,上档选择(又: 2ndF、2nd、2nd(第二功能选择,Second Function)、ALT,按键设定为与其同色的功能ALPHA 阿尔法,字母,按键设定为与其同色的功能MODE 方式、模式,用于模式切换(不同的计算器有所不同,常用的见下表:对于数值计数法有:Norm(normal)标准计数法Fix(fixed)固定小数点Eng(engineering)工程计数法Sci(scientific)科学计数法Inv 反、倒置,用于使用其它有关按键的相反功能,多用于电子计算器。
如ln键变为e x键,sin键变为sin-1键,lsh键变为rsh键等EXP 以科学记数法输入数字,即表示以10为底的方幂(又:EE,英文名Exponent说明:科学记数法:将一个数字表示成a×10的n次幂的形式,其中1≤|a|<10,n表示整数,这种记数方法叫科学记数法。
如:5EXP2即5×102,就是500F-E 科学记数法开关,显示方式转换作用:十进制浮点(Floating Point)与科学记数法(Exponent)显示转换S⇔D 数值在标准形式(Standard)和小数形式(Decimal fraction)之间转换作用:分数与小数显示转换Ran# 随机数(又:RAND、RND、Rnd#,英文名Random, : 分隔符,用于输入方程式之间、坐标数据之间分隔用∠角,用于标识极坐标数据的角度数据或复数的虚数二、基础运算0、00、1、2、3、4、5、6、7、8、9 数字A、B、C、D、E、F 十六进制数字或存储单元. 十进制小数点+-×(*)÷(/)四则运算符注:-有的作为负号=等号⁄、±(-)+/-正负转换,负号(又:+−()括号,(称为始括号或左括号,)称为末括号或右括号注:=前的)键操作可省略a b c⁄、d/c 分数输入或将计算结果在小数值和分数值之间变换注:一般结果为小数,如果其绝对值大于或等于1,按一次d/c 以假分数形式显示,再按一次d/c则以带分数形式显示;如果其绝对值小于1,则两次均以真分数形式显示% 百分号,关于百分比的计算方法见下表注:以上实物计算器不按等号,不同的计算器定义不同,按其实际运算规则。
实验五 整数四则混合运算计算器

实验五整数四则混合运算计算器一、实验目的掌握具有一定实用功能的汇编程序开发思路。
二、实验原理和内容1、在数据段上开辟:1个叫OP的字数组,长度为10个字;1个叫OPERATOR 的字节数组,长度为10个字节;以及1个RESULT字数组,长度1个字。
如下图:OP OPERATOR RESULT共10 共10个字个字节2、在数据段定义一个字符串缓冲区。
编写程序,输入字符串(该字符串有多个操作数和运算符,例如:12+34*56)到缓冲区中,然后从缓冲区把所有操作数转换为补码并分别保存到OP数组中,把所有运算符保存到OPERATOR中。
3、编写四则混合运算程序,结果以补码方式存放在RESULT上。
并在屏幕上输出结果。
三、实验器材:Windous 7系统下的Masm 2009汇编软件四、实验步骤:1、先画框图(如下)输入字符是“=”小于28H 大于39H 小于30H 输入结束是否是是是否否否是符号,执行相应处理是数值,执行相应处理输入是数值结果作为新的原值保存减30H与原值的10倍相加输入是符号是“(”是“)”否配对标志加1配对标志减1是是保存符号否输入结束配对标志为0出错,退出进行计算是否1212*34+563456*+数值存储符号存储(a)1212*(34+56-8)3456*(数值存储符号存储(b)8+-)1212*21-((34+56-8)+1)2134*(数值存储符号存储(c)56+-)81-(+)21优先级2优先级332优先级55132、 编写程序:;----------------------------------------------------------------------------- ;----------------------------数据定义----------------------------------------- DSEG SEGMENTSIGN1 DW 0 ;判断数字是否输入完毕 SIGN2 DW 0 ;判断括号是否配对 NUMB DW 20H DUP (0) ;保存输入的数值 MARK DB 'A' ;保存输入的运算符 DB 10H DUP (0) ;ERROR DB ' YOUR INPUT ARE WRONG$' DSEG ENDS;----------------------------宏定义-----------------------------------------DISP MACRO M ;字符串输出LEA DX,M ;将M的偏移地址传送给DX寄存器MOV AH,9 ;其中09H是字符串输出INT 21H ;通过给AH寄存器赋值,再调用INT 21H指令,根据AH寄存器中的值执行相应的操作ENDMCHOICE MACRO ASC1,HAO1,HH ;宏定义,给运算符赋权值CMP AL,ASC1 ;比较键盘输入的运算符(运算符的ASC码存放在AL寄存器)与ASC1JNE OTHER&HAO1 ;若不等,则往下执行OTHER1,如此类推MOV CH,HH ;将运算符的权值(即优先级高低值)传送到CH 寄存器JMP OTHER7 ;执行后,返回ENDM;----------------------------------------------------------------------------CSEG SEGMENT;ASSUME CS:CSEG,DS:DSEGSTART: CALL CLEARMOV AX,DSEG ;MOV DS,AX ;LEA DI,NUMB ;将NUMB的偏移地址传送到DI,NUMB存储单元中存放输入的数值LEA SI,MARK ;将MARK的偏移地址传送到SI,MARK存储单元中存放输入的运算符MOV AX,0;数据寄存器清零MOV DX,0MOV BX,0MOV CX,0STA1 : CALL CR ;回车换行;--------------------------------初始化-------------------------------------INPUT:MOV AH,1 ;其中1H是键盘输入并回显,AL中有输入字符INT 21H ;通过给AH寄存器赋值,再调用INT 21H指令,根据AH寄存器中的值执行相应的操作;--------------------------------输入字符-----------------------------------CMP AL,'q'JE J_SHU;----------------------------若输入q,则返回dos状态--------------------------CMP AL,'=';JE PD ;判断配对标志位;--------------------是等号,进一步判断输入括号是否配对---------------------- CMP AL,28H ;JB BC ;JB为小于就跳转CMP AL,39H ;JA BC ;JA为大于就跳转;-------------------输入字符的ASC码小于28H或大于39H,则继续输入-------------- CMP AL,2FH ;判断是数字还是符号JBE JUD ;是符号转入响应操作;----------------------------------------------------------------------------INC WORD PTR SIGN1 ;将数字标志位加1SUB AL,30H ;将ASC码转16进制MOV AH,0 ;XCHG AX,[DI] ;互换两个操作数的存放位置,实现字交换MOV BX,10 ;MUL BX ;无符号数乘法指令XCHG AX,[DI] ;ADD [DI],AX ;JMP INPUT ;;-------------------------输入为数值时的操作----------------------------------PD: CMP WORD PTR SIGN2,0 ;判断配对标志位JE JUD ;跳到判断数值是否输入完毕JMP BC ;不配对则显示ERROR;----------------------------------------------------------------------------JUD: CMP WORD PTR SIGN1,0 ;判断数值是否输入完毕JE FUH1 ;跳到判断优先级ADD DI,2 ;DI向下移一个字MOV WORD PTR SIGN1,0;数值标志位清零;----------------------------------------------------------------------------FUH1: CALL ADV ANCE ;判定优先级CMP CH,5 ;判断输入的运算符中是否有左括号JNE PY ;不是,则判断输入的运算符中是否有右括号;----------------------------------------------------------------------------INC WORD PTR SIGN2 ;是左括号,括号标志位加1;----------------------------------------------------------------------------PY: CMP CH,1 ;判断输入的是否是右括号JNE AGAIN ;跳到判断运算存储区是否为空DEC WORD PTR SIGN2 ;是右括号,括号标志位减1;----------------------------------------------------------------------------AGAIN: CMP BYTE PTR[SI],'A';判断运算符存储区是否为空JE SA VE ;判断输入是否为=CMP CH,[SI] ;JA SA VE ;计算高优先级的SI指向运算符,每个运算符都有相应的权值CMP BYTE PTR[SI],'('JNE YIDO;寻找左括号DEC SI;是左括号,还是向上移,判断左括号前边是否还有运算符JMP INPUT;;----------------------------------------------------------------------------YIDO: DEC SI ;SI向上移MOV CL,[SI] ;将运算符传送给CLCALL MATCH ;判断是什么运算符并进行相应的计算JMP AGAIN ;判断运算符存储区是否为空;----------------------------------------------------------------------------SA VE: CMP CH,0 ;JE OVER ;=时,则输出结果CMP CH,1 ;JE INPUT ;“)”不保存,输入下一个数INC SI ;MOV [SI],AL ;INC SI ;CMP CH,5 ;JNE GO_ON ;MOV CH,2 ;改变(的权值GO_ON: MOV [SI],CH ;JMP INPUT ;;----------------------------------------------------------------------------BC: LEA DX,ERROR ;将ERROR的偏移地址给DXMOV AH,9 ;INT 21H ;CALL CRJMP J_SHU1 ;;----------------------------四则运算子程序---------------------------------- MATCH PROC ;子程序,进行相应的运算PUSH AX ;XOR AX,AX;异或XOR BX,BX;----------------------------乘法运算---------------------------------------CMP CL,2AH ;乘法运算JNE NEXT1SUB DI,2XCHG BX,[DI]SUB DI,2XCHG AX,[DI]IMUL BXMOV [DI],AXADD DI,2JMP FINISH;---------------------------------------------------------------------------;----------------------------除法运算--------------------------------------- NEXT1: CMP CL,2FH ;除法运算JNE NEXT2SUB DI,2XCHG BX,[DI]SUB DI,2XCHG AX,[DI]CWDIDIV BXMOV [DI],AXADD DI,2JMP FINISH;---------------------------------------------------------------------------;----------------------------加法运算--------------------------------------- NEXT2: CMP CL,2BH ;加法运算JNE NEXT3SUB DI,2XCHG BX,[DI]SUB DI,2ADD [DI],BXADD DI,2JMP FINISH;---------------------------------------------------------------------------;----------------------------减法运算--------------------------------------- NEXT3: CMP CL,2DH ;减法运算JNE FINISHSUB DI,2XCHG BX,[DI]SUB DI,2SUB [DI],BXADD DI,2FINISH: POP AXRETMATCH ENDP;----------------------------------------------------------------------------;----------------------------定义优先级-------------------------------------- ADV ANCE PROCCHOICE 28H,1,5 ;( 28H为( 的ASCII码OTHER1: CHOICE 29H,2,1 ;)OTHER2: CHOICE 2AH,3,4 ;*OTHER3: CHOICE 2FH,4,4 ;/OTHER4: CHOICE 2BH,5,3 ;+OTHER5: CHOICE 2DH,6,3 ;-OTHER6: CHOICE 3DH,7,0 ;=OTHER7: RETADV ANCE ENDP;----------------------------------------------------------------------------;----------------------------***清屏***-------------------------------------- Clear PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXMOV AH,06HMOV AL,00HMOV CH,0MOV CL,0MOV BH,0FHMOV DH,18HMOV DL,4FHINT 10HMOV BH,0MOV DX,0MOV AH,02HINT 10HPOP DXPOP CXPOP BXPOP AXRETClear ENDP;----------------------------------------------------------------------------;----------------------------****回车换行****-------------------------------- CR PROCPUSH AXPUSH DXMOV AH,2MOV DL,13;回车INT 21HMOV AH,2MOV DL,10;换行INT 21HPOP DXPOP AXRETCR ENDP;----------------------------------------------------------------------------OVER:SUB DI,2CMP WORD PTR[DI],0JGE W1NEG WORD PTR[DI]MOV DL,'-'MOV AH,2INT 21H;---------------------------------------------------------------------------- W1: MOV BX,10000MOV CX,5MOV SI,0;---------------------------------------------------------------------------- W2: MOV AX,[DI]MOV DX,0DIV BXMOV [DI],DXCMP AL,0JNE W3CMP SI,0JNE W3CMP CX,1JE W3JMP W4;---------------------------------------------------------------------------- W3: MOV DL,ALADD DL,30HMOV AH,2INT 21HMOV SI,1;---------------------------------------------------------------------------- W4: MOV AX,BXMOV DX,0MOV BX,10DIV BXMOV BX,AXLOOP W2;---------------------------------------------------------------------------- J_SHU1: MOV WORD PTR[DI],0CALL CRMOV NUMB,0MOV SIGN1,0LEA DI,NUMB ;LEA SI,MARKJMP STA1;----------------------------****返回DOS状态****-----------------------------J_SHU: MOV AH,4CH;返回DOS状态INT 21H;----------------------------------------------------------------------------CSEG ENDSEND START3、显示结果五、实验总结:在本次的课程设计中,我遇到了很多难题,在通过翻看书本和上网找资料后,我渐渐的接触到一点眉目,开始进行尝试的编程,在不断的尝试、失败和修改中,我慢慢的懂得汇编一个计算器的基本原理和所需要的一些细节问题。
计算器有关按键说明大全

计算器有关按键说明大全计算器是一种用于进行算术运算的仪器或工具。
每个按键都有其特定的功能,下面是计算器上常见的按键和其功能的说明:1.数字键:计算器上通常有0-9十个数字键,用于输入数字。
2.加号键(+):用于进行加法运算。
3.减号键(-):用于进行减法运算。
4.乘号键(×):用于进行乘法运算。
5.除号键(÷):用于进行除法运算。
6.等于键(=):用于得出运算结果。
7.小数点键(.):用于输入小数。
8.百分号键(%):用于进行百分数计算。
9.正负号键(+/-):用于切换数字的正负号。
10.清除键(C或AC):用于清除当前输入的数字或所有已输入的数字。
11. 删除键(Del或←):用于删除最后一个输入的数字或字符。
12.平方根键(√):用于计算一个数的平方根。
13.平方键(x^2):用于计算一个数的平方。
14.倒数键(1/x):用于计算一个数的倒数。
15.清零键(CE):用于清空当前的计算结果。
16.存储键(M或MC/MR/M+/M-):用于存储和读取数字。
17.撤销键(UNDO):用于撤销上一步的操作。
18.括号键(()):用于进行运算表达式的分组。
19. 正弦键(sin):用于计算一个角度的正弦值。
20. 余弦键(cos):用于计算一个角度的余弦值。
21. 正切键(tan):用于计算一个角度的正切值。
22. 自然对数键(ln):用于计算一个数的自然对数。
23. 对数键(log):用于计算一个数的以10为底的对数。
24.指数键(x^y):用于计算一个数的指数。
25. 渐进对数键(logY(x)):用于计算一个数以Y为底的对数。
26.取绝对值键(,x,):用于计算一个数的绝对值。
27.阶乘键(n!):用于计算一个正整数的阶乘。
28. sin反函数键(sin^-1):用于计算一个正弦值的反正弦。
29. cos反函数键(cos^-1):用于计算一个余弦值的反余弦。
30. tan反函数键(tan^-1):用于计算一个正切值的反正切。
有符号大整数计算器

齐鲁工业大学面向对象程序设计课程设计报告学号:************姓名:***班级:计科12-1班课程设计题目:有符号大整数计算器成绩:一:设计目的与要求对数值很大、精度很高的数进行高精度大整数计算是一类十分常见的问题。
但由于C++语言中数据长度和范围受数据类型的限制,普通数学计算很难实现此类问题,为尝试解决这个问题,专门设计一个C++语言程序用于有符号大整数的计算。
二:设计内容分析1.功能分析:2.函数设计:A.运算辅助函数(1)检测用户输入运算符函数:Check_Oper()函数原型:char Check_Oper(string &str,string &num_1,string &num_2);功能:检测用户输入的运算符,并将char类型的运算符作为函数的返回值,若用户输入有误则提示用户。
(2)反转字符串函数:Reverse_String()函数原型:string Reverse_String(string &str);功能:传入string类型对象的引用,将其中保存的字符串全部反转后作为函数的返回值返回。
(3)字符串ASCII码减48位函数:SUB_ASC()函数原型:string SUB_ASC(string &str);功能:将string类型对象中字符串的所有元素的ASCII码减48。
(4)字符串ASCII码加48位函数:ADD_ASC()功能:将string类型对象中字符串的所有元素的ASCII码加48。
(5)获取最大数函数:GET_MAX()函数原型:string GET_MAX(string &num1,string &num2);功能:将两个以string类型存放的大整数传入函数,返回值最大的整数的string对象。
B.数据运算(1)加法运算:addition()函数原型:string addition(string &num1,string &num2);实现步骤:依次将两个字符串的每一位元素的ASCII码进行加法运算并存入结果中,对满十的结果进行进位,然后对该位进行对十取余存入当前元素中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课程设计报告撰写要求(一)纸张与页面要求1.采用国际标准A4型打印纸或复印纸,纵向打印。
2.封页和页面按照下面模板书写(正文为:小四宋体1.5倍行距)。
3.图表及图表标题按照模板中的表示书写。
(二)课设报告书的内容应包括以下各个部分:(按照以下顺序装订)1.封页(见课设模版)2、学术诚信声明,所有学生必须本人签字,否则教师拒绝给予成绩。
2.任务书(学生教师均要签字,信息填写完整)3.目录4.正文一般应包括以下内容:(1)题目介绍和功能要求(或描述)课程设计任务的详细描述(注意不能直接抄任务书),将内容做更详细的具体的分析与描述;(2) 系统功能模块结构图绘制系统功能结构框图及主要模块的功能说明;(3) 使用的数据结构的描述: 数据结构设计及用法说明;(4) 涉及到的函数的描述 ;(5) 主要算法描述( 程序流程图)(6) 给出程序测试/运行的结果设计多组数据加以描述(包括输入数据和输出结果)(7) 课程设计的总结及体会(8) 参考文献格式要求:[1]作者,等. 书名.出版地:出版社,出版年5.附录:程序清单 (应带有必要的注释)沈阳航空航天大学课程设计报告课程设计名称:数据结构课程设计课程设计题目:大整数计算器院(系):计算机学院专业:班级:学号:姓名:指导教师说明:结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依据;格式不符合要求;数据不实,不予通过。
报告和电子数据必须作为实验现象重复的关键依据。
学术诚信声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。
尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。
与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。
报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。
本人签名: 日期:年月日沈阳航空航天大学课程设计任务书目录1 课程设计内容 (1)1.1题目介绍 (1)1.2功能要求 (2)2 系统功能模块 (3)2.1主模块 (3)2.1.1 系统功能结构图 (3)2.2主要模块功能说明 (3)3 详细设计 (5)3.1数据结构描述 (5)3.2 算法流程 (7)4 程序测试及总结 (11)4.1测试、运行 (11)参考文献 (13)附录(关键部分程序清单) (16)1 课程设计内容1.1 题目介绍由于整形数据存储位数有限,因此将整型数据用字符串进行存储。
在大整数计算器分为四个大模块,分别为大整数加法运算、大整数减法运算、大整数乘法运算、大整数除法运算函数模块。
由一个主模块所调用。
加法运算功能,从个位开始逐位相加,超过或达到10则进位,同时将该位计算结果存到另一个字符串中,直至加完大整数的所有位为止。
减法运算功能,首先调用库函数strcmp判断这两个大整数是否相等,如果相等则结果为0,否则用Compare函数判断被减数和减数的大小关系,进而确定结果为正数还是负数,然后对齐位依次进行减法,不够减则向前借位,直至求出每一位减法之后的结果。
乘法运算功能,首先让乘数的每一位都和被乘数进行乘法运算,两个乘数之积与进位相加作为当前位乘积,求得当前位的同时获取进位值,进而实现大整数的乘法运算。
除法运算功能,类似做减法,基本思想是反复做减法,从被除数里最多能减去多少次除数,所求得的次数就是商,剩余不够减的部分则是余数,这样便可计算出大整数除法的商和余数。
主函数,主函数是程序的入口,采用模块化设计。
通过一定的入口可以进行加法运算功能、减法运算功能、乘法运算功能、除法运算功能。
1.2 功能要求1.大整数加法:采用数学中列竖式的方法,从个位开始逐位相加,超过或达到10则进位,同时将该位计算结果存到另一个字符串中,直至加完大整数的所有位为止。
2.大整数减法:首先调用库函数判断这两个大整数是否相等,如果相等则结果为0,否则用Compare函数判断被减数和减数的大小关系,进而确定结果为正数还是负数,然后对齐位依次进行减法,不够减则向前借位,直至求出每一位减法之后的结果。
3.大整数乘法:首先让乘数的每一位都和被乘数进行乘法运算,两个乘数之积与进位相加作为当前位乘积,求得当前位的同时获取进位值,进而实现大整数的乘法运算。
4.大整数除法:反复做减法,从被除数里最多能减去多少次除数,所求得的次数就是商,剩余不够减的部分则是余数。
5.其实就是利用算法中的高精度算法进行加减乘除的实现。
来实现大整数计算器。
2 系统功能模块2.1 主模块2.1.1 系统功能结构图设计程序实现两个大整数四则运算,输出这两个大整数的和、差、积、商及余数,实现大整数(200位以内的整数)的加、减、乘、除运算。
根据需要可以进行如下操作:加法、减法、乘法、除法。
其功能模块图如图2-1所示。
图2.1 主模块设计图2.2 数据结构描述大整数计算器分为四个大模块,分别为大整数加法运算、大整数减法运算、大整数乘法运算、大整数除法运算函数模块。
加法运算功能,加法运算功能是将两个字符从个位开始进行逐位相加,然后把每一位的相加结果存放到字符串中,并且输出运算结果。
其流程图如图3-2所示。
输入两个相加的字符,然后从个位开始逐位相加,判断两个数相加的结果是否大于或等于十,如果是,那么向前一位进一,并将所得结果存放到另一个字符串中,如果不是,则直接将所得结果存放到另一个字符串中。
当所有结果都存入该字符串中时,判断是否所有位都进行了加法运算,若是,输出结果,若不是,重复上述过程,继续进行运算,直至所有位都进行了加法运算时输出结果。
减法运算功能,减法运算功能是将输入的两个相减的大整数,对齐位依次进行减法运算,并输出结果。
首先,在输入两个大整数后开始判断他们是否相等,若相等,输出结果为零,结束运算。
若不相等,开始进行运算结果的正负判断,当被减数大于减数时,结果为正,否则结果为负。
然后,对两个大整数对齐位依次进行减法,若够减且每一位都已减完,那么输出运算结果;若不够减,则向前借位依次进行减法运算,直到每一位都已减完,输出结果。
其功能流程图如图3-3所示。
乘法运算功能,首先让乘数的每一位都和被乘数进行乘法运算,两个乘数之积与进位相加作为当前位乘积,求得当前位的同时获取进位值,进而实现大整数的乘法运算。
除法运算功能,类似做减法,基本思想是反复做减法,从被除数里最多能减去多少次除数,所求得的次数就是商,剩余不够减的部分则是余数,这样便可计算出大整数除法的商和余数。
主函数,主函数是程序的入口,采用模块化设计。
通过一定的入口可以进行加法运算功能、减法运算功能、乘法运算功能、除法运算功能。
沈阳航空航天大学课程设计报告错误!未指定书签。
3 算法描述3.1 数据结构描述⑴加法运算功能加法运算功能是将两个字符从个位开始进行逐位相加,然后把每一位的相加结果存放到字符串中,并且输出运算结果。
输入两个相加的字符,然后从个位开始逐位相加,判断两个数相加的结果是否大于或等于十,如果是,那么向前一位进一,并将所得结果存放到另一个字符串中,如果不是,则直接将所得结果存放到另一个字符串中。
当所有结果都存入该字符串中时,判断是否所有位都进行了加法运算,若是,输出结果,若不是,重复上述过程,继续进行运算,直至所有位都进行了加法运算时输出结果。
详细代码及程序见附录中的代码的——void IntAddition(char *augend, char *addend, char *sum)//整数加法模块。
流程图见图3.1加法模块⑵减法运算功能减法运算功能是将输入的两个相减的大整数,对齐位依次进行减法运算,并输出结果。
首先,在输入两个大整数后开始判断他们是否相等,若相等,输出结果为零,结束运算。
若不相等,开始进行运算结果的正负判断,当被减数大于减数时,结果为正,否则结果为负。
然后,对两个大整数对齐位依次进行减法,若够减且每一位都已减完,那么输出运算结果;若不够减,则向前借位依次进行减法运算,直到每一位都已减完,输出结果。
详细代码及程序见附录中的代码的void IntSubtration(char *minuend, char *subtrahend, char *difference)//整数减法模块。
流程图见图3.2减法模块⑶乘法运算功能乘法运算功能是将输入的两个大整数进行乘法运算,并输出结果。
首先,输入两个大整数,一个为乘数一个为被乘数,让乘数和被乘数的每一位相乘,并将相乘后所得的结果存放到另一个字符串中,以此循环下去。
然后,判断两个大整数的每一位是否乘完,若是,则将所得的i个字符串相加,并输出相加后的结果,其值为两数相乘的乘积,若不是,继续进行以上操作,直至得到两个大整数相乘的结果。
详细代码及程序见附录中void IntMultiplication(char *multiplicand, char *multiplier, char *product)//整数乘模块。
流程图见图3..3乘法模块⑷除法运算功能除法运算功能是将输入的两个大整数进行除法运算,并输出结果。
输入两个数,其中一个是除数,一个是被除数。
用被除数减去除数,若被除数小于除数,则输出被除数减除数的个数作为商,剩余不够减的数则为余数,并输出商和余数。
若被除数大于除数,继续循环被除数减除数的过程,直至被除数小于除数,输出所得结果。
详细代码及程序见附录中void IntDivision(char *dividend, char *divisor, char *quotient, char *remainder)//整数除模块。
流程图见图3.4除法模块3.2 算法流程1. 加法运算功能图3.1 加法模块设计图2.减法功能图3.2减法模块设计图3.乘法功能乘法运算功能,首先让乘数的每一位都和被乘数进行乘法运算,两个乘数之积与进位相加作为当前位乘积,求得当前位的同时获取进位值,进而实现大整数的乘法运算。
图3.3乘法模块设计图4.除法功能除法运算功能,类似做减法,基本思想是反复做减法,从被除数里最多能减去多少次除数,所求得的次数就是商,剩余不够减的部分则是余数,这样便可计算出大整数除法的商和余数。
图3.4除法模块设计图4 程序测试及总结4.1 测试、运行1、一般而言,编写一个能运行在操作系统上的程序,都需要一个主函数。
主函数意味着建立一个独立进程,且该进程成为了程序的入口,对其它各函数进行调用,当然其它被调用函数也可以再去调用更多函数。
主函数既是程序的入口,又是程序的出口。
先输入两个数,选择所需的运算。
其功能实现图如图4-1所示。
图4.1主界面2、加法运算功能,采用数学中列竖式的方法,从个位(即字符串的最后一个字符)开始逐位相加,超过或达到10则进位,同时将该位计算结果存到另一个字符串中,直至加完大整数的所有位为止。