微型计算机原理及应用课程设计简易计算器的设计

上传人:仙*** 文档编号:147978160 上传时间:2022-09-03 格式:DOC 页数:18 大小:497KB
收藏 版权申诉 举报 下载
微型计算机原理及应用课程设计简易计算器的设计_第1页
第1页 / 共18页
微型计算机原理及应用课程设计简易计算器的设计_第2页
第2页 / 共18页
微型计算机原理及应用课程设计简易计算器的设计_第3页
第3页 / 共18页
资源描述:

《微型计算机原理及应用课程设计简易计算器的设计》由会员分享,可在线阅读,更多相关《微型计算机原理及应用课程设计简易计算器的设计(18页珍藏版)》请在装配图网上搜索。

1、 微型计算机原理及应用课程设计简易计算器的设计姓名陈*院系信息学院自动化系班级*学号200911*时间2011年 12月 29日目 录目 录摘要 IINTRODUCTIONII1课程设计目的与任务11.1设计目的11.2设计任务12基本要求13简易计算器的设计23.1程序设计流程图23.2程序基本算法33.3程序源代码33.4程序调试84课程设计总结与心得11参考文献12摘要摘要本次课程设计是通过使用emu8086汇编语言编程软件实现较复杂程序的设计。该课程设计的内容为采用汇编语言设计一个简易计算器,界面显示要求用键盘分别输入两个随机数,完成加法,减法,乘法和除法的运算,然后将运算结果显示出来

2、。该设计只能运行简单正整数间的单步加减乘除运算,不能识别小数。除法中的结果可以精确到3位小数,减法可以显示负数的结果。采用DOS调用(INT 21H)来完成输入和输出,输出字符串操作。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。关键词:微机原理;计算器;汇编IIABSTRACTINTRODUCTIONThis course is designed to through the use of emu8086 assembly language programming software to r

3、ealize complex program design. The content of the course design for the assembly language design a simple calculator, interface display with the keyboard input requirements are two random number, complete the addition, subtraction, multiplication, and division of the operation, and then will operati

4、on result shows it. This design can only easy operation between the positive integer single step add, subtract, multiply and divide operation, cant identify decimal. The result in the division accurate to 3 decimal places, subtraction can display the negative results. Using DOS call (INT 21 H) to co

5、mplete the input and output, the output string operation. This design practice can further deepen the theoretical knowledge of professional knowledge and learning the understanding and the understanding, make oneself of the design level of knowledge and the application ability and the ability to ana

6、lyse and solve questions fully improve.KEYWORDS: Microcomputer principle;calculator;Assembly language广东海洋大学微型计算机原理及原理课程设计简易计算器的设计自动化1091,200911632102,陈焯坚1 课程设计目的与任务1.1 设计目的为了使学生加深对所学的微机原理知识的理解,培养学生的专业素质,提高其利用微机原理知识处理问题的能力,为今后专业课程的学习、毕业设计和工作打下良好的基础。使学生能比较扎实地掌握微机原理的基础知识和基本理论,掌握控制系统及有关设备的分析、开发等基本技能,受到必

7、要工程训练、初步的科学研究方法训练和实践锻练,增强分析问题和解决问题的能力,了解微机原理和接口技术的新发展。1.2 设计任务本次课程设计有四个任务可供选择,这里选择设计一个简易计算器,要求能正确完成加、减、乘、除四则运算。2 基本要求本次课程设计,1人1题,可以相互讨论,但设计报告由学生独立完成,不得互相抄袭。教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑难问题和按设计进度进行阶段审查。学生必须发挥自身学习的主动性和能动性,主动思考问题、分析问题和解决问题,而不应处处被动地依赖指导老师。同学应积极主动的提出问题、解决问题、讨论问题,互相帮助和启发。学生在设计中可以引用所需的

8、参考资料,避免重复工作,加快设计进程,但必须和题目的要求相符合,保证设计的正确。指导教师要引导学生学会掌握和使用各种已有的技术资料,不能盲目地、机械地抄袭资料,必须具体分析,使设计质量和设计能力都获得提高。学生要在老师的指导下制定好自己各环节的详细设计进程计划,按给定的时间计划保质保量的完成个阶段的设计任务。设计中可边设计,边修改,软件设计与硬件设计可交替进行,问题答疑与调试和方案修改相结合,提高设计的效率,保证按时完成设计工作并交出合格的设计报告。3 简易计算器的设计设计一个简易计算器过程包括:确定功能,画流程图,确定算法,编写程序,程序调试。设计工具:个人电脑,emu8086。设计语言:8

9、086汇编语言3.1 程序设计流程图1/2?输入单字符开始2:第一次输入字符串09/E?09转换与暂存第二次输入字符串09/E?09转换与暂存输入运算符+-*/E?相应运算转换与输出1:输入字符串az?az转换与输出E退出都不是都不是都不是都不是NNN图1流程图介绍:进入DOS界面,首先显示出计算器功能介绍和个人信息,然后界面输出操提示要求用户输入1或者2选择功能,1表示字母转换功能,2表示计算功能。字母转换功能,只能从小写向大写转换,当用户输入字母时,先判断是否为小写字母,不是则重新进入功能选择界面,是就开始转换并且显示在界面大写。计算功能,提示输入第一个数,先判断是否符合要求的数,符合的话

10、再把输入的数据先从十六进制的ASCII码转换成相应的十进制,再转换成有实际意义的十六进制进制,将该十六进制数存入一个缓冲器单元,对于不符合要求的数就返回重新输入第一个数据。输入完第一个数后,界面再要求操用户输进第二个数,同样的方法判断再进行转换数制,在存到缓冲期的下一个单元。这里转换的方法是采用“乘10加次位”的方法。接下来界面再提示用户输入“+,-,*,/”其中一个运算符,然后程序进行比较输入的运算符,然后跳到相应的代码段执行相应的运算,如果输入的字符不是运算符就重新输入运算符。其中,减法运算中,首先比较被减数与减数的大小,如果减数大于被减数则结果会是负数,所以,首先显示出“-”号,再将被减

11、数与减数换位,进行减法运算。当完成运算后,因为结果是十六进制的,所以要进行转换数制,采用“除10取余倒排列”的方法,最后,就将结果逐位输出显示。3.2 程序基本算法本次计算器计算功能的设计,关键在于数制的转换。用户输入的是字符串,而在以每个字符的十六进制的ASCII码存放,为了把字符串转换成有实际数学意思的十六进制数,就要首先把ASCII码先转换成十进制,再把十进制数转成可以运算的十六进制。例如输入112,系统存放的是31H、31H、32H,通过减去30H,即可转成1、1、2存放,再把三个数1、1、2“乘以10加次位”的方法:(1*10+1)*10+2=112 ,把112也就是70H这个结果放

12、到寄存器里,即可转换成功。只有这样的数才可以利用汇编指令进行正确运算。运算完之后采用“除10取余倒排序”的方法,把结果逐位转换,再加上30H,即可显示。字母转换部分,实现小写向大写转换,只要把相应的ASCII码进行运算就可以,利用这个方法可以实现大小写互换,这里只是简单尝试写出小写向大写转换。例如,a转换成A,a的ASCII码是41H,而A的是61H,要实现a向A转换,61H减去20H 就可以了。要实现A向a转换,对应ASCII码加上20H即可。3.3 程序源代码 12 ;-; *数据段*;-DATA SEGMENT ;-计算器功能信息字符串定义- STR1 DB 0AH,0DH,*$STR2

13、 DB 0AH,0DH, A Simple Calculator $ STR3 DB 0AH,0DH, function :$ STR4 DB 0AH,0DH, 1.Letter Conversion$STR5 DB 0AH,0DH, 2.Four Operations$STR6 DB 0AH,0DH,$ STR7 DB 0AH,0DH,0AH,0DH, Design by Cheukkin Chan$STR8 DB 0AH,0DH,*$ ;-提示字符串变量定义- STR13 DB 0DH,0AH,Please choose the function:$ ARRAY6 DW 2 DUP(0)

14、;保留2个字空间作暂存数据计算RESULT1 DB 30 DUP(0),$ ;保留30个字节存结果数RESULT2 DB 30 DUP(0)$;-字母转换部分- STR9 DB 0DH,0AH,0DH,0AH,Letters Conversion $ STR10 DB 0DH,0AH,Please input the codes:$STR11 DB 0DH,0AH,After conversion: $;-四则运算部分- BUFF DB 28 ;允许输入的最多字符数 DB 0 ;实际输入的字符数DB 28 DUP(0) ;保存实际输入的字符ARRAY1 DB 0DH,0AH,0DH,0AH,P

15、lease enter a number: $;输入第一个数字符串说明ARRAY2 DB 0DH,0AH,Please enter another number: $;输入第二个数字符串说明ARRAY3 DB 0DH,0AH,The result is : $;输出结果字符串说明 ARRAY4 DB 0DH,0AH,The number is wrong,please input again : $;输入错误提示字符串说明STRING DB 0DH,0AH,Please enter the operation(+,-,*,/) : $ ;运算字符串说明 ARRAY DW 2 DUP(0) ;保

16、留2个字空间作暂存数据计算RESULT DB 6 DUP(0),$ ;保留6个字节存结果数CRLF DB 0DH,0AH,$ ;显示结果时回车,转行说明YUSHU DW 4 DUP(0) DATA ENDS ;-; *代码段* ;-CODE SEGMENT ASSUME CS:CODE,DS:DATA ;段寄存器说明伪指令START:MOV AX, DATA MOV DS,AX ;往DS段寄存器送数据段基址;-输出计算器的功能相关信息(调用9号功能输出字符串)- MOV DX,OFFSET STR1 MOV AH,9 INT 21H MOV DX,OFFSET STR2 MOV AH,9 IN

17、T 21H MOV DX,OFFSET STR3 MOV AH,9 INT 21H MOV DX,OFFSET STR4 MOV AH,9 INT 21H MOV DX,OFFSET STR5 MOV AH,9 INT 21H MOV DX,OFFSET STR6 MOV AH,9 INT 21H MOV DX,OFFSET STR7 MOV AH,9 INT 21H MOV DX,OFFSET STR8 MOV AH,9 INT 21H ;- MOV DX,OFFSET CRLF MOV AH,9 INT 21H ;输出回车换行 ;-;*功能选择*;-STAC: MOV DX,OFFSET

18、STR13 ;取STR13偏移地址送进DX MOV AH,9 INT 21H MOV AH,01H INT 21H ;键盘输入单字符 CMP AL,E ;比较输入运算符是否为E JZ LAST ;输入运算符为E,则跳到LAST处,若不是则继续往下执行 CMP AL,31H JZ LC ;如果输入为1,就跳到LC CMP AL,32H JZ INPUT1 ;如果输入为3,就跳到INPUT1 MOV DX,OFFSET CRLF ;1、2都不是,则回车换行 MOV AH,9 INT 21H JMP STAC ;跳回STAC,重新选择功能;-;*字母转换* ;-LC: MOV DX,OFFSET S

19、TR9 MOV AH,9 INT 21H MOV DX,OFFSET STR10 MOV AH,9 INT 21H MOV DX,OFFSET BUFF ;把缓冲区BUFF的偏移地址送到DX MOV AH,0AH INT 21H MOV BX,OFFSET BUFF PUSH BX XOR CX,CX MOV CL,BX+1 A1: MOV AL,BX+2 CMP AL,61H ;比较输入 JB LC ;小于61H跳转 CMP AL,7AH JA LC ;大于7AH跳转 INC BX LOOP A1 POP BX CALL LCC JMP STAC;-;*四则运算* ;-;*输入第一个数*;-

20、;-调用09号输出字符串功能,输出DX内容即ARRAY1内容 -INPUT1: MOV DX,OFFSET ARRAY1 ;取ARRAY1偏移地址送进DX MOV AH,9 INT 21H ;-调用0A号输入字符串功能,输入内容暂存在BUFF缓冲区- AGAIN1:MOV DX,OFFSET BUFF ;把缓冲区BUFF的偏移地址送到DX MOV AH,0AH INT 21H ;-判断输入的是否符合要求- PUSH AX PUSH BX PUSH CX XOR CX,CX MOV BX,OFFSET BUFF MOV CL,BX+1 ;把输入的字符数给CX AA: MOV AL,BX+2 CM

21、P AL,E ;比较输入运算符是否为E JZ LAST ;输入运算符为E,则跳到LAST处,若不是则继续往下执行 CMP AL,30H JB Error1 ; AX低于30H就跳到Error1 CMP AL,39H JA Error1 ;AX高于39H就跳到Error1 INC BX LOOP AA POP CX POP BX POP AX JMP CC1 ;-提示输入错误,重新输入- Error1: MOV DX,OFFSET ARRAY4 MOV AH,9 INT 21H JMP AGAIN1;- CC1: CALL ASC_HEX ;调用ASC_HEX子程序 MOV ARRAY,AX ;

22、将第一个数存到暂存区ARRAY ;-;*输入第二个数*;- MOV DX,OFFSET ARRAY2 MOV AH,9 INT 21H AGAIN2:MOV DX,OFFSET BUFF MOV AH,0AH INT 21H ;-判断输入的是否符合要求- PUSH AX PUSH BX PUSH CX XOR CX,CX MOV BX,OFFSET BUFF MOV CL,BX+1 ;把输入的字符数给CX BB: MOV AL,BX+2 CMP AL,E ;比较输入运算符是否为E JZ LAST ;输入运算符为E,则跳到LAST处,若不是则继续往下执行 CMP AL,30H JB Error2

23、 ; AX低于30H就跳到Error2 CMP AL,39H JA Error2 ;AX高于39H就跳到Error2 INC BX LOOP BB POP CX POP BX POP AX JMP CC2 ;-提示输入错误,重新输入-Error2: MOV DX,OFFSET ARRAY4 MOV AH,9 INT 21H JMP AGAIN2 ;- CC2: CALL ASC_HEX MOV ARRAY+2,AX ;- ;*输入运算符*;-INPUT3:MOV AH,09H MOV DX,OFFSET STRING INT 21H ;调用01号输入单字符功能,记运算符 MOV AH,01 ;

24、键盘输入单字符(运算符+-*/) INT 21H ;-比较输入的运算符- CMP AL,+ ;比较输入运算符是否为+ JZ ADD1 ;输入运算符为+,则跳到ADD1 处,若不是则继续往下执行 CMP AL,- ;比较输入运算符是否为- JZ SUB2 ;输入运算符为-,则跳到SUB2处,若不是则继续往下执行 CMP AL,* ;比较输入运算符是否为* JZ MUL3 ;输入运算符为*,则跳到MUL3处,若不是则继续往下执行 CMP AL,/ ;比较输入运算符是否为/ JZ DIV4 ;输入运算符为/,则跳到DIV4处,若不是则继续往下执行 CMP AL,E ;比较输入运算符是否为E JZ L

25、AST ;输入运算符为E,则跳到LAST处,若不是则继续往下执行 JMP INPUT3 ;如果输入运算不是以上,则从新返回到INPUT3处;-;* 加法运算*;- ADD1: ;-回车,换行显示- PUSH AX MOV DX,OFFSET ARRAY3 ;取ARRAY3偏移地址送进DX MOV AH,9 INT 21H POP AX MOV AX,ARRAY MOV BX,ARRAY+2 ADD AX,BX CALL HEX_ASC ;调用HEX_ASC子程序 MOV DX,OFFSET CRLF MOV AH,9 INT 21H ;输出回车换行 JMP STAC ;-;* 减法运算*;-

26、SUB2: ;-回车,换行显示- PUSH AX MOV DX,OFFSET ARRAY3 ;取ARRAY3偏移地址送进DX MOV AH,9 INT 21H POP AX MOV AX,ARRAY MOV BX,ARRAY+2 CMP AX,BX JB KK ;比较AX与BX的大小,如果 AX 低于 BX,则跳到 KK SUB AX,BX ;如果AX大于或者等于,则 AX 减 BX CALL HEX_ASC MOV DX,OFFSET CRLF MOV AH,9 INT 21H ;输出回车换行 JMP STAC ;-负数处理-KK: SUB BX,AX MOV AX,BX CALL HEX_

27、ASC1 MOV DX,OFFSET CRLF MOV AH,9 INT 21H ;输出回车换行 JMP STAC;-;* 乘法运算*;-MUL3: ;-回车,换行显示- PUSH AX MOV DX,OFFSET ARRAY3 ;取ARRAY3偏移地址送进DX MOV AH,9 INT 21H POP AX MOV AX,ARRAY MOV BX,ARRAY+2 MUL BX CALL HEX_ASC MOV DX,OFFSET CRLF MOV AH,9 INT 21H JMP STAC ;-;* 除法运算*;-DIV4: ;-回车,换行显示- PUSH AX MOV DX,OFFSET

28、ARRAY3 ;取ARRAY3偏移地址送进DX MOV AH,9 INT 21H POP AX MOV CX,4 MOV AX,ARRAY DIV5: MOV BX,ARRAY+2 MOV DX,0 DIV BX PUSH DX ;保护余数 PUSH CX CALL HEX_ASC POP CX POP DX ;释放余数 MOV YUSHU,DX CMP CX,4 JNZ YS2 ;CX不等于2就跳转到YS2 MOV DL,2EH MOV AH,2 ; 输出小数点 INT 21H YS2: MOV AX,YUSHU MOV BX,10 MUL BX ;取余数乘以10继续计算,把结果放到AX L

29、OOP DIV5 MOV DX,OFFSET CRLF MOV AH,9 INT 21H JMP STAC;-返回操作系统- LAST: MOV AH,4CH INT 21H ;-;* ASC_HEX子程序(把ascii码转换成对应的十六进制数);-ASC_HEX PROC XOR CX,CX ;清空CX,CX=0 MOV CL,BUFF1 ;存入字符数 JCXZ ABCD ;如果CX=0,即输入字符数为0,跳到ABCD处,返回主程序 PUSH CX ; 保护CX,把CX的值放入栈区 MOV BX,OFFSET BUFF+2 ;取首字符地址 PUSH BX ; 保护BX,把BX的值(首字符地址

30、)放入栈区 L0: SUB BX,30H ;输入字符即十六进制的ASCII码转换成相对应的十进制码(09),以BX作为指针 INC BX LOOP L0 POP BX ;释放原来栈区的BX的值(首字符地址) MOV AX,0 MOV CH,0 MOV CL,BX-1 ; 取字符数 L1: MOV DX,10 ;十进制转换成二进制 ,以10为基数 MUL DX ADD AL,BYTE PTR BX ; INC BX LOOP L1 POP CX ABCD: RET ;返回主程序ASC_HEX ENDP;-; * HEX_ASC子程序(十六进制转换成相应的ascii码)*;-HEX_ASC PRO

31、C MOV SI,OFFSET RESULT ;将RESULT暂存结果的单元偏移地址送到SI寄存器中 ADD SI,4 ;将源变址指针指到最后一个单元 MOV SI+1,$ ;预先放结束码,用来后面调用09号输出功能的停止 MOV CX,5 ;循环次数,最多不超过5位十进制数,因为16位二进制数即4位16进制数不超过65535HA1: MOV DX,0 ;DX用来放余数的,所以每次都要清零 MOV BX,10 ;以10为基数 DIV BX ;二进制转换成十进制,除10取余法 ADD DL,30H ;十进制转换成十六进制的ASCII码 MOV SI,DL ;保存当前位结果,(先个位、再十位、后百

32、位、倒序!) DEC SI ;指向前一位 LOOP HA1 MOV CX,4 ;循环次数为4次,对应上面的SI所设的单元数HA2: INC SI MOV AL,SI CMP AL,30H ;判断是否为0,若是,则继续循环。 JNZ NOTZEARO ;若不是则跳到NOZEARO,显示出该字符 LOOP HA2 INC SINOTZEARO: ;-09号输出字符串功能调用,显示出内容- MOV DX,SI MOV AH,9 INT 21H RET HEX_ASC ENDP ;-; *减法负数情况的HEX_ASC1子程序(十六进制转换成相应的ascii码)*;-HEX_ASC1 PROC MOV

33、SI,OFFSET RESULT ;将RESULT暂存结果的单元偏移地址送到SI寄存器中 ADD SI,4 ;将源变址指针指到最后一个单元 MOV SI+1,$ ;预先放结束码,用来后面调用09号输出功能的停止 MOV CX,5 ;循环次数,最多不超过5位十进制数,因为16位二进制数即4位16进制数不超过65535AB1: MOV DX,0 ;DX用来放余数的,所以每次都要清零 MOV BX,10 ;以10为基数 DIV BX ;二进制转换成十进制,除10取余法 ADD DL,30H ;十进制转换成十六进制的ASCII码 MOV SI,DL ;保存当前位结果,(先个位、再十位、后百位) DEC

34、 SI ;指向前一位 LOOP AB1 MOV CX,4 ;循环次数为4次,对应上面的SI所设的单元数AB2: INC SI MOV AL,SI CMP AL,30H ;判断是否为0,若是,则继续循环。 JNZ NOTZEARO1 ;若不是则跳到NOZEARO1,显示出该字符 LOOP AB2 INC SINOTZEARO1: ;- PUSH AX MOV AH,02H MOV DL,- ;预先输出一个-号,表示结果为负数 INT 21H POP AX ;- MOV DX,SI MOV AH,9 INT 21H RET HEX_ASC1 ENDP ;- ;-LCC子程序-;-LCC PROC

35、XOR CX,CX MOV CL,BX+1 PUSH BX PUSH CXLCC1:MOV AL,BX+2 SUB AL,20H MOV BX+2,AL INC BX LOOP LCC1 MOV BX+2,$ MOV DX,OFFSET STR11 MOV AH,9 INT 21H POP CX POP BX ADD BX,2 MOV DX,BX MOV AH,9 INT 21H MOV DX,OFFSET CRLF MOV AH,9 INT 21H MOV DX,OFFSET CRLF MOV AH,9 INT 21H RET LCC ENDP CODE ENDS END START广东海洋

36、大学微型计算机原理及应用课程设计3.4 程序调试功能选择界面:图2 图3如图2所示,运行程序,首先显示计算器的相关信息,主要利用系统功能调用实现。然后是输出提示要求用户通过输入1或者2选择功能。字母转换功能功能1可以实现小写字母向大写字母的转换,当用户输入1会进入图3界面。提示用户输入字母,注意要是小写,如果输入不是小写则会提示重新输入如图4所示。输入正确的小写字母自动转换并且返回功能选择。图4(上) 图6(下) 图5(上) 图7(下)加法运算功能如图6所示,任意输入两个正整数相加,结果正确。先输入第一个数,然后再输入第二个数,接着输入运算符,这样程序就会自动输出结果。注意运算两数相加的两个数

37、不能超过五位数,并且结果不能超过65535 。减法运算功能如图7所示,操作方法和加法相同。虽然不可以进行负数间的运算,但是可以输出负数,如图8所示。图8 图9乘法运算功能如图9所示,操作方法和加法相同。除法运算功能如图10所示,操作方法和加法相同。除法输出结果精确到3位小数,但是不会四舍五入,而是直接舍去后面剩下的小数。如图11所示。图10 图11输入错误提示功能以下述说的前提是:输入的字符非大写E。在功能选择的时候,选择错误即输入的既不是1也不是2,则会提示重新选择,如图12所示。在字母转换的时候,输入字母非小写字母,也会提示重新输入,如图5所示。在运算的时候,第一个和第二个输入的必须是数字

38、,输入的运算符号必须是+、-、*、/ 其中之一,否则都会提示错误重新输入。如图13、图14所示。运算时中间有输入错误的字符,会提示重新输入,直到输入正确为止,才继续进行运算,如图15所示。图12 图13图14 图15退出功能本程序设置了退出功能。当用户输入大写字母E的时候就会退出程序。但是在进行小写字母向小写字母转换的时候,不能这种方式退出。其他输入E即可退出。如图16所示。图164 课程设计总结与心得本次课程设计自由选择设计课题的,我选择了简易加减法计算器的题目,看起来不是很难,但是真正做起来才发现其困难之处。其实老师也说过这个题目相对于其他题目比较难的。因为这次设计不仅仅是课本上知识的整合

39、,而且还有很多是课外的扩展。这次课程设计可以说是一个挑战。我做的题目是简易计算器的设计。刚开始思路还是挺清晰的,经过思考,发现计算器中数制的转换是这个设计的难点和重点,但是思考数制转换的算法的时候很快就碰壁了,因为通过系统功能调用输入的字符是以ASCII码存放的,并不是有本来实际数学意义的。首先,我解决了输入后的转换,这里使用“乘10加次位”的方法,最初想使用普通的数制转换,结果觉得很难实现。在完成运算完后再转换输出模块的时候,我开始查看课本和有关的资料,知道了一些编程常用的方法。受益匪浅。而后我用心编写这程序。经过自己的努力和同学的帮助终于完成了相应的要求。在程序完成基本的要求后,我尝试做另

40、外一个题目:代码转换。原计划是:首先单独完成代码转换这一程序,可以实现小写字母向大写字母的转换,还可以实现十进制数向二进制数的转换;然后再把计算器和代码转换结合起来,做成多功能计算器。可是真正实现起来遇到一个问题,就是在十进制向二进制转换的时候,是通过调用子程序转换的,转换完之后不能返回原来调用的地方,而是返回程序的开始。最后只把字母转换功能加到计算器里,最后完成本次的课程设计。下图17是二进制转换的程序运行界面:图17当然我还有很多不足之处,比如知识掌握的不够全面,研究的深度不够,写出的代码效率不高,不能做到精简。这些都是我需要去改进的地方。我会在以后的学习中多加注意。通过这次课程设计,最深

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!