大整数计算器..

合集下载

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

请针对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的正整数之和。

计算器按键的使用说明

计算器按键的使用说明

计算器按键的使用说明.1、电源开关键:ON、OFF2、输入键:0—9、. +/—:正负转换键3、运算功能键:+ - * / (注意:加、减、乘、除键在计算时都可能代替等号键) √:开平方键,用来进行开平方运算。

先输入数字,再按下此键,不必按等号键即可得出结果。

4、等号键:=5、清除键:①C:清除键。

在数字输入期间,第一次按下此键将清除除存储器内容外的所有数值.如果是太阳能计算器,在计算器关闭状态下,按此键则开启电源,显示屏显示出“0”。

②AC或CA键:全部清除键,也叫总清除键,作用是将显示屏所显示的数字全部清除。

③→:右移键。

其功能是荧屏值向右位移,删除最右边的尾数。

④CE:部分清除键,也叫更正键。

其功能是清除当前输入的数字,而不是清除以前输入的数。

如刚输入的数字有误,立即按此键可清除,待输入正确的数字后,原运算继续进行。

如5+13,这时发现“13”输入错了,则按“CE”键就可以清除刚才的“13”,但还保留“5”这个数。

值得注意的是,在输入数字后,按“+”、“-”、“/”、“*”键的,再按“CE”键,数字不能清除。

⑤MC:累计清除键,也叫记忆式清除键。

其功能是清除储存数据,清除存储器内容,只清除存储器中的数字,内存数据清除,而不是清除显示器上的数字。

6、累计显示键:(1)M+:记忆加法键,也叫累加键。

是计算结果并加上已经储存的数;用作记忆功能,它可以连续追加,把目前显示的值放在存储器中(也就是将显示的数字与内存中已有的任何数字相加,结果存入存储器,但不显示这些数字的和)。

如去和小商贩买几种冰淇凌,买5筒五羊牌雪糕,每筒1.6元;买10筒绿色心情,每筒0.8元;买15筒蒙牛布丁,每筒0.4元。

共多少元?如先输入“5×1.6”→按“M+”键(把“5×1.6”的结果计算出来并储存起来)→然后输入“10×0.8”→按“M+”键(把“10×0.8”的结果计算出来并和前面储存的数相加)→接着输入“15×0.4”→按“M+”键(把“15×0.4”的结果计算出来并和前面储存的数相加)→最后按“MR”键(把储存的数全部取出来)→则出结果“22”(2)M-:记忆减法键,也叫累减键。

整数计算器已经调试

整数计算器已经调试

整数计算器已经调试.txt铁饭碗的真实含义不是在一个地方吃一辈子饭,而是一辈子到哪儿都有饭吃。

就算是一坨屎,也有遇见屎壳郎的那天。

所以你大可不必为今天的自己有太多担忧。

/*****现在这个CPU处理的数据的顺序与常用的不太一致:运算操作符是最后输入功能:只可对整数进行:+ - * /已经在Q7.0中通过,尽管有些警告****/module myCPU(clk,reset_n,DataIn,DataOut);parameter ADD=4'd10,MIN=4'd11,MUL=4'd12,DIV=4'd13,EQUAL=4'd14,Eorr=4'd15;input clk,reset_n;input [3:0] DataIn; //数据输入,0~9为相应数值,A~F为操作指令output [31:0] DataOut; //供显示用reg [31:0] DataOut;reg [31:0] DataNew;reg [31:0] DataOld;reg enData; //选择运算结果或者当前输入做为显示输出always @(posedge clk)beginif(!reset_n)beginDataOld = 32'd0;DataOut = 32'd0;DataNew = 16'd0;endelsebegincase(DataIn)ADD:begin DataOld =DataOld+DataNew; enData=1'b0;endMIN:begin DataOld =DataOld-DataNew; enData=1'b0;endMUL:begin DataOld =DataOld*DataNew; enData=1'b0;endDIV:begin DataOld =DataOld/DataNew; enData=1'b0;endEQUAL: enData=1'b0; //只是显示结果Eorr: enData=1'bz; /*数据无效*/defaultbeginDataNew =10*DataNew+DataIn; enData=1'b1;endendcaseif(enData)beginDataOut=DataNew;endelsebegin DataOut=DataOld; DataNew = 16'd0; endendendendmodule。

大数计算器c语言实训报告

大数计算器c语言实训报告

大数计算器c语言实训报告一、实训目的本实训主要目的是通过编写大数计算器的程序,提高学生对于C语言中计算器程序的实现能力和大数计算的理解。

二、实训内容1.需求分析大数计算器是一种可以计算非常大的数字的计算器。

因为计算机对于整数数据的处理有固定长度限制,如果需要计算更大的数字,就需要使用特殊的算法。

由于人们生活和工作中经常碰到大数字的计算,因此大数计算器的开发具有非常大的应用价值。

2.程序设计在C语言中,可以使用数组存储大数,每一位数字使用数组的一个元素。

因为数组的长度也有限制,所以一般需要使用指针动态分配内存来存储大数。

C语言中提供了类似于Java中的BigInteger类的库,例如GMP库等。

使用这些库可以方便地进行大数计算。

本次实训要求学生编写一个自己的大数计算器程序,通过手动编写实现大数加、减和乘法运算。

3.测试编写完程序后,需要测试程序是否正确运行。

可以使用各种情况下的数据进行测试。

例如,测试小数点和整数的运算、测试负数的计算、测试多位和一位数字的计算、测试大数的计算等。

三、实训总结通过本次实训,我学习了C语言中大数计算的实现方法和相关的概念。

在实现大数计算器的过程中,我加深了对于C语言中数组和指针的理解和应用,同时也提高了编写C语言程序的能力。

在测试程序时,我发现了几个容易出错的地方,在修改后成功完成了大数计算器的编写。

通过本次实训,我掌握了C语言中大数计算的思路和方法,提高了编写C语言程序的能力。

我相信这些知识和经验在将来的工作和学习中都会派上用场。

硬盘分区整数G计算公式及计算器

硬盘分区整数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。

计算器有关按键说明大全

计算器有关按键说明大全

计算器有关按键说明大全一、基本按键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,则两次均以真分数形式显示% 百分号,关于百分比的计算方法见下表注:以上实物计算器不按等号,不同的计算器定义不同,按其实际运算规则。

简单介绍简易计算器的使用方法

简单介绍简易计算器的使用方法

简单介绍简易计算器的使用方法简易计算器使用方法计算器是我们日常生活中常见的小工具之一,它能够方便快捷地完成各种数学运算。

在本文中,我们将简单介绍一下简易计算器的使用方法,帮助大家更好地利用这个小工具。

一、开机与关闭使用简易计算器之前,首先需要开机。

通常,在计算器上会有一个电源开关,打开开关后,计算器便会自动启动。

要关闭计算器,只需要将电源开关关闭即可。

二、数字输入在简易计算器上,数字输入是最基本的操作。

计算器通常会有一个数字键盘,上面标有0到9的数字。

通过按下相应的数字键,可以输入需要计算的数值。

输入多位数时,只需按照正确的顺序依次按下每个数字键。

三、基本运算简易计算器能够完成四则运算,包括加法、减法、乘法和除法。

使用计算器进行基本运算时,需要按下特定的运算符键。

1. 加法:简易计算器上通常会有一个“+”键,按下该键后,计算器会把当前输入的数值记为被加数,再输入另一个数值,按下“=”键,计算器就会显示它们的和。

2. 减法:类似地,简易计算器上通常会有一个“-”键,按下该键后,计算器会把当前输入的数值记为被减数,再输入一个数值,按下“=”键,计算器就会显示它们的差。

3. 乘法:简易计算器上通常会有一个“×”键,按下该键后,计算器会把当前输入的数值记为被乘数,再输入一个数值,按下“=”键,计算器就会显示它们的积。

4. 除法:类似地,简易计算器上通常会有一个“÷”键,按下该键后,计算器会把当前输入的数值记为被除数,再输入一个数值,按下“=”键,计算器就会显示它们的商。

四、小数与分数计算除了整数运算,简易计算器还可以进行小数和分数的计算。

对于小数的输入,直接使用数字键盘即可,对于分数的输入,则需要使用特定的输入方式。

通常,在计算器上会有一个“分数”键或“1/x”键,按下该键后,计算器会进入分数输入模式,在屏幕上显示分子和分母的输入框,通过按下数字键来输入相应的分子和分母。

输入完毕后,按下“=”键,计算器就会进行分数的计算。

实验五 整数四则混合运算计算器

实验五  整数四则混合运算计算器

实验五整数四则混合运算计算器一、实验目的掌握具有一定实用功能的汇编程序开发思路。

二、实验原理和内容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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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则进位,同时将该位计算结果存到另一个字符串中,直至加完大整数的所有位为止。

相关文档
最新文档