十进制和二进制相互转化程序的设计书

十进制和二进制相互转化程序的设计书
十进制和二进制相互转化程序的设计书

十进制和二进制相互转化

程序设计书

需求分析

随着技术的不断提高,进制转换向着简单化,规模化发展,而对于只能识别二进制0和1码的计算机来说,如何翻译成人类可以认识和编译的语言,和安全加密等给信息管理有关的信息随之增加。在这种情况下单靠人工来处理这些信息不但显得大不从心,而且极容易出错。因此,需要开发二进制与十进制互换系统,该系统可以实现由计算机代替人工执行一系列复杂而繁琐的操作,使得办公人员可以轻松快捷的完成进制转换的任务。

总结系统需求分为大体分为5个模块:

首先第一个需要数据的信息输入,即输入数据的基本信息包括输入的进制选项,所输入的二进制位数,所输入的二进制数,所输入的十进制数和判断是否全1或全0五个模块。

第二个需求是判断数据进制选项信息,在信息和科技不断进步的今天,数据及时准确的更新成了任何一个系统的首要任务,本系统应时代所需设计了数制信息功能,包括对包括数据的进制,二进制数据的位数,十进制数据,进行进制转换计算。

第三个需求是所输入的二进制数据,数据的运行使用主要是解决向十进制转换

第四个需求是所输入的十进制数据,数据运行使用主要是解决向二进制转换。

第五个需求是打印退出,在对系统进行操作后,退出系统。

1.1 数据需求分析

本系统的主要数据进制转换的实现。转换包括:二进制数向十进制数转换,十进制数向二进制数转换,判断是否为全0或全1,是否继续执行等。

1.2功能需求分析

本程序功能为二进制和十进制的相互转换,二进制转十进制主要根据进制转换的根本方法,分别乘以2的次方得到十进制数;十进制转二进制主要根据“除2取余法”得到二进制数。另外,本程序简单易懂,操作简便,给出引导说明,以及还出错处理,只需按照提示输入即可用。

本系统主要实现对二进制与十进制之间互换,需要实现以下几个方面的功能:

(1)二进制转十进制:选择二进制向十进制转换,选择二进制位数,输入二进制数,进行数制转换,输出结果,判断是否继续。

(2)十进制转二进制:选择十进制向二进制转换,输入十进制数,进行数制转换,输出结果,判断是否继续。

2系统总体设计

2.1系统模块划分

本系统主要是对二进制与十进制互换的管理,包括了二进制转十进制、十进

制转二进制。整个系统分为以下几个模块。

1、主界面模块

本模块提供选择界面的欢迎界面和主菜单界面,供用户选择与执行各项操作工作。

2、输入界面

本模块用于输入数据信息,例如输入二进制位数并输入二进制数(3,101)等。

3、显示转换结果

本模块用于显示转换后的数据信息,以及提供是否继续信息。

2.2系统模块结构图

算法

二进制转十进制:通过循环将二进制每一位分别乘以2的相应次方,相加得到十进制数;

十进制转二进制:通过“除二取余”发循环,将每一位存在一个数组中;直到除数为0,将此数组逆置,得到该数相应的二进制数。

3 系统详细设计

3.1程序流程图

开始

选择转换类型,存入k

K=1 K=2

K!=1&&k!=2

3.2中文DOS界面

在VC++6.0环境中将已编写好的程序代码通过编译、调试和运行操作,即可得到以下DOS界面。

3.3程序代码清单

/*二进制与十进制的相互转换*/

#include

#include

#include

#include

void main()

{

char c, Y[33],temp[33];

int n,i=0,k,j=0;

double T;

for(c='y';c!='n'&&c!='N';)

{cout<<"请选择:"<

cout<<"1.二进制转十进制;"<

cin>>k;

switch(k)

{

case 1:

{

printf("请输该数位数:\n");

cin>>n;

cout<<"请输该数:";

for(i=0;i

{

cin>>Y[i];

if(Y[i]!='0'&&Y[i]!='1')

{

cout<<"输入有误!"<

break;

}

}

if(i

break;

else

{

for(T=0,i=0;n>0;i++)

{

if(Y[i]=='1') T=T+pow(2,n-1);

n=n-1;

}

cout<<"该数的十进制为:"<

break;

}

}

case 2:

{

cout<<"请输入十进制数:"<

cin>>n;

for(i=0;n!=0;i++)

{

k=(n%2);

n=n/2;

if(k==1)Y[i]='1';

else

if(k==0)Y[i]='0';

}

for(j=0,i=i-1;i>=0;i--,j++)

temp[j]=(int)Y[i];

temp[j]='\0';

cout<<"该数的二进制数为:";

for(i=0;temp[i]!='\0';i++)

cout<

break;

}

default:cout<<"输入有误!"<

}

cout<

cin>>c;

cout<

}

}

4系统连编与运行结果

4.1程序运行起始界面

4.2输入一个十进制的正整数,转化为二进制

4.3输入一个二进制数,转化为十进制

4.4输入一个十进制的负数,转化为二进制

4.5输入一个十进制小数,转化为二进制时,提示为

总结

通过此次对数据结构课程设计课题的实践操作,本设计开发的二进制与十进制相互转换系统从最后的测试结果来看,基本上实现了二进制与十进制互换的几大功能:按选项选择输入操作,根据选项选择输入的二进制数位数,输入二进制转十进制,输入十进制转二进制,判断是否为全0或全1等功能要。系统采用模块化程序设计的方法,便于不同功能操作间的独立与联系。

本系统经过测试,证明其运行是可靠、稳定的。但在系统设计中中也遇到很多的问题,并且本系统的功能还需要不断的完善和改进,在以后的空闲时间里进一步完善,使系统功能更加完善。

在此次设计过程中,得益于老师的尽心指导。在此表示由衷的感谢!

参考文献

[1]谭浩强.C程序设计(第三版).北京:清华大学出版社,

2002.7

[2]严蔚敏,吴伟民.数据结构(C语言版).北京:清华大

学出版社,2003.4

[3]商信华.数据结构.西北大学出版社,2005.6

[4]王珊,萨师煊.数据库系统概率.高等教育出版社,2004.6

《面向对象程序设计》实验指导书

《面向对象程序设计》课程实验指导书

实验一 Java开发环境的安装与配置 一、实验目的: 1. 掌握JDK、Eclipse的安装步骤。 2. 理解环境变量PATH, CLASSPATH的作用,以及Eclipse的配置。 3. 熟悉Eclipse的编辑、编译与调试环境,编写简单的Application程序 编译执行并完成调试。 二、实验内容: 熟悉JDK的安装和配置,学习如何编写并运行简单的Application程序 (能输出一条简单的问候信息); 三、实验要求: 1. 能正确地安装JDK 2. 熟悉环境变量PATH, CLASSPATH设置方法,熟悉编辑环境 3. 调试程序、编译,运行后得到正确的结果 四、实验步骤: 1.从https://www.360docs.net/doc/1510366552.html,/technetwork/java/index.html上下载最新版本的JDK,并安装。 2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。 3.在Eclipse环境下编写一个HelloWorld.java程序, (1)在主方法static public void main(String[ ] args)中调用System. out.println()方法,使程序输出一条问候信息; (2) 编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用 javac.exe和java.exe编译和执行程序)

实验二 Java语言基础 一、实验目的: 熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。 二、实验内容: 1.编写Java Application程序,输出1900年到2000年之间的所有润年。 (闰年的判断条件:能被4整除且不能被100整除,或能被400整除); 2.金字塔:Pyramid.java 在屏幕上显示一个由星型符号“*”组成的金字塔图案,示例如下: * *** ***** ******* 要求:金字塔高度h,可以由用户设置。 三、实验要求: 1. 正确使用Java语言的选择语句,循环语句; 2. 调试程序、编译,运行后得到正确的结果 3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提成 示,并给出解决办法。 四、实验步骤: 1.编写主类; 2.在static public void main(String[ ] args)方法中加入实现要求功能 的代码,主要步骤如下: (第一题)从1900到2000循环,按照闰年的判断条件是则输出1900年到2000年之间的所有润年。 (第二题)允许用户设置金字塔高度。 4. 编译运行程序,观察输出结果是否正确。

【汇编语言程序设计】试题及答案合集

《汇编语言程序设计试题及答案》合集 汇编语言程序设计试题及答案 1.对于有符号的数来说,下列哪个值最大(D) A:0F8H B:11010011B C:82 D:123Q 2.下列有关汇编语言中标号的命名规则中,错误的是(D) A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符 C:?和$不能单独作为标号 D:.号不可位于标号首 3.8088/8086存储器分段,每个段不超过(D ) A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 4.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式(B)A:寄存器寻址B:相对基址变址寻址 C:变址寻址D:基址变址寻址 5.若AX= - 15要得到AX=15应执行的指令是(A ) A.NEG AX B.NOT AX C.INC AX D.DEC AX 6.8086/8088系统执行传送指令MOV时( A) A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 7.若要求一个操作数中的若干位维持不变,若干位置?1?,可以使用(B)A:NOT B:OR C:AND D:XOR 8.下列指令中段默认为堆栈段的是( C) A.MOV AX,[BX+SI+10] B.ADD AX,ES:[SI] C.SUB [BX],[BP][DI] D. MOV DX,[1000H] 9.关于8086/8088微机系列,下列说法哪个是正确的(D) A:一个存储单元由16个二进制位组成,简称字。

B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。 C:在内存空间中,可以无限分配段,且段的大小不受限制。 D:段与段之间可以邻接,也可以重叠。 10.下列关于堆栈的说法,错误的是(D) A:以?先入后出?为原则。 B:栈区最高地址单元的前一个单元为栈底。 C:运行中SP寄存器动态跟踪栈顶位置。 D:压栈和弹出都是以字节为单位。 11.表示过程定义结束的伪指令是( A) A.ENDP B.ENDS C.END D.ENDM 12.BUF1 DB 3 DUP(0,2 DUP (1,2),3) COUNT EQU $-BUF1 符号COUNT等价的值是( B) A.6 B.18 C.16 D.9 13.下列标志位中,可以用来判断计算结果正负的是(B) A:PF B:SF C:DF D:OF 14.下列指令正确的是( CD) A. MOV [100H], [BX] B.MOV DS, ES C. ADD V[BX], CX D.MOV AX, 34H 15.下列哪个寄存器是属于指针寄存器(C) A:SI B:DX C:SP D:ES 二、填空题 (每小题4 分,共 20 分) 1.下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出) FLD DW 10, -20, 30, -60, -71, 80, 79, 56 _LEA SI,FLD______ MOV CX, 8 XOR AX, AX

汇编语言程序设计实验教程

汇编语言程序设计实验教程

目录 第一章上机过程 (4) 1.1编辑源程序 (4) 1.2 汇编源程序 (5) 1.3连接目标程序 (6) 1.4运行程序 (7) 第二章DEBUG命令祥解 (8) 2.1 DEBUG程序使用 (8) 2.2 DEBUG的常用命令 (8) 第三章汇编语言程序设计实验 (13) 3.1实验一顺序与分支程序设计 (13) 3.2 实验二循环与子程序程序设计 (15) 3.3 实验三算术运算与代码转换程序设计 (16) 3.4 实验四字符串的匹配与替换程序设计 (18) 3.5 实验五输入输出程序设计 (19) 第四章部分实验参考答案 (21)

第一章上机过程 1.1编辑源程序 汇编语言源程序:用汇编语句编写的解决应用问题的程序。 汇编程序:将汇编语言源程序翻译成机器语言程序的系统。 汇编:将汇编语言程序翻译成机器语言程序的过程。 在编辑汇编语言源程序时,对计算机硬件工作环境无特殊要求,对软件工作环境要求也很简单,只需用建立ASCII码文本文件的软件即可。 (1)编辑软件 编辑软件:EDIT、QE、WORD、NOTEPAD等。 当输入、建立和修改源程序时,可任选一种编辑软件,不要用格式控制符,要求编辑完成的文件扩展名一定是.ASM。 (2)汇编程序 有汇编ASM.EXE、宏汇编MASM.EXE及TASM等,一般使用宏汇编MASM.EXE,因它比ASM.EXE功能强。TASM适用于8086/8088~Pentium系列指令系统所编写的汇编语言程序,是比较先进的汇编工具。 (3)连接程序 用连接程序LINK.EXE或TLINK.EXE,将MASM.EXE产生的目标代码程序(.OBJ)文件连接成可执行程序.EXE,TLINK比LINK更先进。 (4)辅助工具程序(.EXE) 进行汇编语言程序调试和文件格式转换的程序有: https://www.360docs.net/doc/1510366552.html, 动态调试程序 EXE2BIN.EXE文件格式转换程序

程序设计实践_任务书

程序设计实践任务书 课程名称:程序设计实践 课程编号:25070748 学分/学时:3学分/3周 课程类型:实践性课程 考核方式:考查 开课学期:大一第3学期 开课单位:计算机与信息工程学院 先修课程:C语言程序设计、C++面向对象程序设计 后续课程:数据结构与算法、网络编程、嵌入式软件设计等 适用专业:计算机科学与技术、网络工程、空间信息科学与工程 一、课程设计的目的、任务与要求 课程性质:程序设计实践是学习C/C++程序设计的一个重要环节。通过课程设计的综合训练,可以使学生在学习理论知识并在实验中进行了一系列基本训练的基础上,进一步加强学生对实际问题分析、编程和动手能力的提高,强化综合应用能力,扩充知识,开阔视野。学生在熟练运用Visual C++ 6.0以后,通过使用Visual C++ 6.0的训练,扩展程序设计的知识面,提高综合应用C++知识能力的要求。 教学目标:本通过学习本课程,学生能够更熟练地掌握C/C++语言的语法规则,能够运用简单的算法,综合运用编程方法和问题分析方法,设计针对解决问题的算法步骤。初步培养数据采集、数据分析、数据处理及结果分析的能力。 a.加强掌握C/C++程序设计语言的语法规程和综合编程能力; b.培养学生面向对象和面向过程的编程思想,学会从现实问题中抽象出一般的解决方法;贯彻面向对象编程思想,抽象出合适的类,封装相关功能函数。 c.掌握基本的软件分工,根据算法画出流程图、报告书写及答辩汇报技巧; 二、设计任务及要求 任务一:C语言部分(以下选做一题) (1)某班学生基本信息管理,可包括以下功能: 学生基本信息输入、输出、插入、删除、排序、查询、数据保存及打开。 struct student /*定义一种结构体类型*/ { int num; char name[20]; char sex; int age; } ; #include “stdio.h”

汇编语言程序设计

汇编语言程序设计 一、选择题 (共72题) 1、 用于指针及变址寄存器的有()。 A、 AX,BX,CX,DX B、 SP,BP,IP C、 CS,DS,SS D、 PSW 考生答案:B 2、 完成把汇编语言源程序模块转换为目标模块的程序是()。 A、 编辑程序 B、 汇编程序 C、 连接程序 D、 调试程序 考生答案:B 3、 指令JMP FAR PTR DONE中的寻址方式属于()。 A、 段内转移直接寻址 B、 段内转移间接寻址 C、 段间转移直接寻址 D、 段间转移间接寻址 考生答案:C 4、 对于下列程序段: AGAIN:MOV AL,[SI]

MOV ES:[DI],AL INC SI INC DI LOOP AGAIN 也可用()指令完成同样的功能。 A、 REP MOVSB B、 REP LODSB C、 REP STOSB D、 REPE SCASB 考生答案:A 5、 在程序执行过程中,IP寄存器中始终保存的是()。 A、 上一条指令的首地址 B、 下一条指令的首地址 C、 正在执行指令的首地址 D、 需计算有效地址后才能确定地址 考生答案:B 6、 在汇编语言程序的开发过程中使用宏功能的顺序是()。 A、 宏定义,宏调用 B、 宏定义,宏展开 C、 宏定义,宏调用,宏展开 D、 宏定义,宏展开,宏调用 考生答案:C 7、 CPU要访问的某一存储单元的实际地址称()。 A、 段地址

偏移地址 C、 物理地址 D、 逻辑地址 考生答案:C 8、 AND、OR、XOR、NOT为四条逻辑运算指令,下面解释正确的是()。 A、 指令XOR AX,AX执行后,AX内容不变,但设置了标志位 B、 指令OR DX,1000H执行后,将DX最高位置1,其余各位置0 C、 指令AND AX,OFH执行后,分离出AL低四位 D、 NOT AX,执行后,将AX清0 考生答案:C 9、 完成对CL寄存器的内容乘以2的正确操作是()。 A、 ROL CL,1 B、 MUL 2 C、 SHL CL,1 D、 SHR CL,1 考生答案:C 10、 检查两个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMP A L,BL”指令后应跟的分支指令是()。 A、 JE LOP1 B、 JAE LOP1 C、 JC LOP1 D、 JGE LOP1 考生答案:B 11、 已知变量VAR为字型,则TYPEVAR=()。

80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著)

80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著) 《计算机操作系统原理》 《Inside Windows 2000》(微软出版社,我看的是E文版的,中文的书名想必是Windows 2000 技术内幕之类吧)。 《数据结构和算法》——这门课程能够决定一个人程序设计水平的高低,是一门核心课程。我首选的是清华版的(朱战立,刘天时) 《软件工程》——这门课程是越到后来就越发现它的重要,虽然刚开始看时就象看马哲一样不知所云。我的建议是看《实用软件工程》(黄色,清华) 《Windows 程序设计》——《北京大学出版社,Petzold著》我建议任何企图设计Windows 程序的人在学习VC以前仔细的学完它。而且前面的那本 建议:你还可以在CSDN上阅读到许多书评。这些书评能够帮助你决定读什么样的书 关于编程的网站 计算机编程 郭新明-FTP服务器体验式学习课程(张孝祥监制) https://www.360docs.net/doc/1510366552.html,/so/so138.aspx?id=3997 https://www.360docs.net/doc/1510366552.html,快速开发新闻系统在线播放 https://www.360docs.net/doc/1510366552.html,/so/so138.aspx?id=4708 数字电路基础[宁波电大] https://www.360docs.net/doc/1510366552.html,/so/so138.aspx?id=774 计算机组成与汇编语言程序设计(赵丽梅)宁波电大 https://www.360docs.net/doc/1510366552.html,/so/so138.aspx?id=1242 操作系统(陈访荣)宁波电大(在线播放) https://www.360docs.net/doc/1510366552.html,/so/so138.aspx?id=4708 计算机网络(马敏飞)宁波电大 https://www.360docs.net/doc/1510366552.html,/so/so138.aspx?id=1243 https://www.360docs.net/doc/1510366552.html, 2.0快速入门(12)-https://www.360docs.net/doc/1510366552.html, 2.0网站快速导航 https://www.360docs.net/doc/1510366552.html,/so/so138.aspx?id=2501 Internet和Intranet应用(薛昭旺)宁波电大 https://www.360docs.net/doc/1510366552.html,/so/so138.aspx?id=1245 2004年电脑硬件安装调试维修视频教学讲授 https://www.360docs.net/doc/1510366552.html,/so/so138.aspx?id=4825 https://www.360docs.net/doc/1510366552.html, 高级排错技巧 https://www.360docs.net/doc/1510366552.html,/so/so138.aspx?id=768 SQL Server 2000管理专家系列课程 https://www.360docs.net/doc/1510366552.html,/so/so138.aspx?id=4832 开心三人行系列(2):使用Atlas 构建AJAX应用 https://www.360docs.net/doc/1510366552.html,/so/so138.aspx?id=2564 Visual Basic 2005开发技巧系列课程(4): 在Visual Basic 2005中使用.NET Framework 2.0新增功能 https://www.360docs.net/doc/1510366552.html,/so/so138.aspx?id=2526 SQL Server 2005 系列课程-使用ADO https://www.360docs.net/doc/1510366552.html,开发SQL Server 2005 OLAP应用 https://www.360docs.net/doc/1510366552.html,/so/so138.aspx?id=2535

【程序设计实践实验指导书】实验2:指针进阶

河南工业大学实验报告 课程名称:程序设计实践开课实验室: 一、实验目的: 1. 理解指针数组的概念,掌握指针数组的基本应用和编程方法。 2. 掌握单向链表的概念和建立方法。 3. 掌握单向链表的基本操作。 二、实验环境: 1. 运行Window XP/Windows 7/Windows 8等的操作系统的PC机; 2. VC++6.0,CodeBlocks,或Dev C++等编译环境。 三、实验内容: 1.编写程序,输入一个月份,输出对应的英文名称,要求用指针数组表示12个月的英文名称。 输入输出示例: 5 May 【源程序】 #include #include int main() { int num; scanf("%d",&num); getchar(); char *month[12]={"January","February","March","April","May","June","July","August","September","

October","Novermber","December"}; printf("%s\n",month[num-1]); return 0; } 【运行结果】 8 August Process returned 0 (0x0) execution time : 2.466 s Press any key to continue. 2. 定义一个指针数组将下表的星期信息组织起来,输入一个字符串,在表中查找,若 输入输出示例: Tuesday 3 【源程序】 #include #include #include int main() { char *month[12]={"January","February","March","April","May","June","July","August","September"," October","Novermber","December"}; char mnum[10]; scanf("%s",&mnum); getchar();

高级程序设计实践(C++)任务书

高级程序设计实践(C++) 课程设计任务书 一、课程设计目的 1、复习和巩固C++语言的基础知识,进一步加深对C++语言的理解和掌握; 2、为学生提供独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生独立分析问题、解决问题、查阅资料以及自学能力。 3、学习和掌握C++程序设计方法以及上机调试技巧,为今后学习其它专业课程打好基础。 二、课程设计内容 题目一:复数计算器 运用面向对象程序设计知识,利用C++语言设计和实现一个复数计算器,要求具备如下主要功能: (1)建立实数类、复数类 (2)实现实数、复数信息的初始化 (3)实现实数的加、减、乘、除、自增、自减、求平方、二次方根等操作(4)实现复数的加、减、乘、除、取模、求平方、求共轭复数、求单个复数的向量角、求两个复数的夹角等运算 (5)实现实数、复数信息的输出 在实现过程中,需利用面向对象程序设计理论的基础知识,充分体现出C++语言关于类、继承、封装与多态等核心概念,每一个类应包含数据成员和成员函数。 题目二:字符串处理系统 运用面向对象程序设计知识,利用C++语言设计和实现一个字符串处理系统,要求具备如下主要功能: (1)字符串的输入与输出 (2)求字符串的长度 (3)判断字符串是否为空 (4)将字符串置空 (5)字符串比较

(6)字符串赋值 (7)求指定位置的字符 (8)字符串合并 (9)字符串截取 (10)在指定的字符串中1,查找或替换字符串2 在实现过程中,需利用面向对象程序设计理论的基础知识,充分体现出C++语言关于类、数据成员与成员函数封装的核心概念。 题目三:集合的并、交、差集运算的实现 运用面向对象程序设计知识,利用C++语言设计和实现集合的并、交、差集运算,要求具备如下主要功能: (1)输入输出集合信息,集合元素类型可以是整数、实数或字符串 (2)判断集合的大小 (3)判断集合是否为空 (4)将集合置空 (5)在集合中查找指定的元素 (6)实现集合的交、并、差等运算 在实现过程中,需利用面向对象程序设计理论的基础知识,充分体现出C++语言关于类、继承、封装与多态等核心概念,每一个类应包含数据成员和成员函数。 题目四:图形类设计 运用面向对象程序设计知识,利用C++语言设计和实现一个图形类,要求具备如下主要功能: (1)图形环境初始化 (2)图形窗口定义 (3)设计和实现点类,可以根据输入的坐标信息,根据给定的颜色和点的大小,在界面上绘制显示相应的点。 (4)设计和实现直线类,可以根据输入的端点坐标信息,根据给定的颜色和线条粗细,在界面上绘制显示相应的直线。 (5)设计和实现圆类,可以根据输入的圆心坐标和半径信息,根据给定的颜色和线条粗细,在界面上绘制显示相应的圆,并可以计算其面积。

实验一基础汇编语言程序设计

实验一基础汇编语言程序设计 实验目的 1.学习和了解TEC-XP十六位机监控命令的用法; 2.学习和了解TEC-XP十六位机的指令系统; 3.学习简单的TEC-XP十六位机汇编程序设计。 实验内容 1.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容; 2.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况。 3.学习联机使用TEC-XP教学试验系统和仿真终端软件。 实验要求 在使用该教学机之前,应先熟悉教学机的各个组成部分及其使用方法。 实验步骤 1.关闭电源,将大板上的COMl口与PC机的串口相连; 2.接通电源,在PC机上运行PCEC.EXE文件,设置所用PC机的串口为“l”或“2”,其它的设置一般不用改动,直接回车即可; 3.置控制开关为001110(连续、内存读指令、组合逻辑、16位、联机),开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意。其它实验相同; 4.按一下“RESET”按键,再按一下“START”’按键,主机上显示: 5.用R命令查看寄存器内容或修改寄存器的内容 1.用R命令查看寄存器或修改寄存器内容 1)在命令行提示符状态下输入: R↙;显示寄存器的内容 注:寄存器的内容在运行程序或执行命令后会发生变化。

2)在命令行提示符状态下输入: R R0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格, 也可有—个或数个空格 主机显示: 寄存器原值:xxxx 在后面输入新的值0036 再用R命令显示寄存器内容,则R0的内容变为0036。 2.用D命令显示存储器内容 在命令行提示符状态下输入: D 2000↙ 会显示从2000H地址开始的连续128个字的内容; 连续使用不带参数的D命令,起始地址会自动加128(即80H)。

2位数计算器程序-汇编语言课程设计

信息学院课程设计题目:2位数计算器程序设计 __ 姓名: __ _____ 学号: ____ ___ 班级: 课程:汇编语言 ________ 任课教师:侯艳艳 ____ 2011年12月

课程设计任务书及成绩评定

目录 摘要 (2) 1.设计目的………………………………………………………………………………………………?2 2.概要设计………………………………………………………………………………………………?3 2.1系统总体分析…………………………………………………………………………?3 2.2程序流程图 (3) 3.详细设计......................................................................................................? (4) 3.1主程序及子程序说明 (4) 3.2程序代码编写 (4) 4.程序调试 (6) 4.1运行界面分析 (6) 4.2算法的分析 (6) 4.3调试过程及分析 (6) 5.心得体会 (7) 5.1设计体会...................................................................................................? (7) 5.2系统改进...................................................................................................? (7) 参考文献 (8)

2021年高级程序设计实践(C++)任务书

高档程序设计实践(C++) 课程设计任务书 一、课程设计目 1、复习和巩固C++语言基本知识,进一步加深对C++语言理解和掌握; 2、为学生提供独立实践机会,将课本上理论知识和实际有机结合起来,锻炼学生独立分析问题、解决问题、查阅资料以及自学能力。 3、学习和掌握C++程序设计办法以及上机调试技巧,为此后学习其他专业课程打好基本。 二、课程设计内容 ?题目一:复数计算器 运用面向对象程序设计知识,运用C++语言设计和实现一种复数计算器,规定具备如下重要功能: (1)建立实数类、复数类 (2)实现实数、复数信息初始化 (3)实现实数加、减、乘、除、自增、自减、求平方、二次方根等操作 (4)实现复数加、减、乘、除、取模、求平方、求共轭复数、求单个复数向量角、求两个复数夹角等运算 (5)实现实数、复数信息输出 在实现过程中,需运用面向对象程序设计理论基本知识,充分体现出C++语言关于类、继承、封装与多态等核心概念,每一种类应包括数据成员和成员函数。?题目二:字符串解决系统 运用面向对象程序设计知识,运用C++语言设计和实现一种字符串解决系统,规定具备如下重要功能: (1)字符串输入与输出

(2)求字符串长度 (3)判断字符串与否为空 (4)将字符串置空 (5)字符串比较 (6)字符串赋值 (7)求指定位置字符 (8)字符串合并 (9)字符串截取 (10)在指定字符串中1,查找或替代字符串2 在实现过程中,需运用面向对象程序设计理论基本知识,充分体现出C++语言关于类、数据成员与成员函数封装核心概念。 ?题目三:集合并、交、差集运算实现 运用面向对象程序设计知识,运用C++语言设计和实现集合并、交、差集运算,规定具备如下重要功能: (1)输入输出集合信息,集合元素类型可以是整数、实数或字符串 (2)判断集合大小 (3)判断集合与否为空 (4)将集合置空 (5)在集合中查找指定元素 (6)实现集合交、并、差等运算 在实现过程中,需运用面向对象程序设计理论基本知识,充分体现出C++语言关于类、继承、封装与多态等核心概念,每一种类应包括数据成员和成员函数。?题目四:图形类设计 运用面向对象程序设计知识,运用C++语言设计和实现一种图形类,规定具备如下重要功能:

汇编语言程序设计

汇编语言程序设计 实验报告 实验名称上机过程及顺序结构与分支结构程序设计实验班级 学号 姓名 日期2017年10月26号 成绩 评阅人 软件学院

一、实验目的与意义 理解并熟练掌握汇编语言程序设计过程中的编辑、汇编、链接和调试等各个步骤,提高对汇编课程内容的理解和汇编语言的掌握,通过上机练习加深对课程内容的理解和掌握。通过汇编语言编制的程序上机调试、运行检验程序设计是否正确。熟悉和掌握编辑、汇编、连接和调试四个实用程序的使用方法,掌握调试程序中的几个常用命令的使用方法。熟悉其基本的指令操作,debug调试操作命令以及分支结构、顺序结构和循环结构的程序设计。 二、实验环境 操作系统:Microsoft Windows8 集成环境:Masm for Windows 上机地点:信息楼B405教室 三、实验的预习内容 预习的主要内容: 1. 使用DEBUG命令的方法; 2. 熟悉掌握从理论上定义数据的类型(即DB,DW,DD,); 3. 分支结构和顺序结构的步骤以及相关的指令; 4. 常用的标志位状态及相应的作用; 实验思路: 在对题目进行分析后,分析出解题方法,并做出与实验思路相对应的程序框图。依照程序框图的内容输入相对应的代码,最终在调试代码后,发现并解决一系列的汇编语言错误。进一步优化算法。实验之前必须了解十进制、十六进制和ASCII码之间的转换。预习查表法相关命令,掌握顺序程序的结构,从键盘输入数据的命令及显示到屏幕上的命令。 实验一: 题目1:将程序编辑、汇编、连接并通过集成环境中的debug调试,观察运行结果;用E命令修改指定地址的数据,再用G命令执行程序查看变化,用A 命令将加法指令修改成减法指令,再将其编译运行,查看寄存器值变化的异同。 题目2:分别用DB、DW和DD数据段9H,0FAH,41H,27H,编译链接之后生成exe文件,再用debug的r命令找到数据段地址,用d命令指定数据段地址,观察汇编后在机器内部对应的存储情况。 实验二: 先设置数据段地址和堆栈段地址;设置堆栈段指针;读取一个字符然后存储在AL中;用BX来存储AL中字符对应的数值;将BX中的值作为偏移地址;并在数据段中查找对应字符串;最终输出结果结束程序。 实验三: 先初始化数据段地址与堆栈段地址;设置堆栈段指针;然后将数据段中的data1放入AL中;读取数据段中的data2并判断data2是否大于0;然后读取数

汇编语言程序设计(钱晓捷)课后答案

汇编语言程序设计(第二版) 钱晓捷习题答案 第二章(01) 2.1 (1)AX=1200h (2)AX=0100h (3)AX=4C2Ah (4)AX=3412h (5)AX=4C2Ah (6)AX=7856h (7)AX=65B7h 2.2(1) 两操作数类型不匹配 (2) IP指令指针禁止用户访问 (3) 立即数不允许传给段寄存器 (4) 段寄存器之间不允许传送 (5) 两操作数类型不匹配 (6) 目的操作数应为[ BP ] (7) 源操作数应为[BX+DI] (8) 立即数不能作目的操作数 2.3 lea bx,table ;获取table的首地址,BX=200H mov al,8 ;传送欲转换的数字,AL=8 xlat ;转换为格雷码,AL=12H 2.4 堆栈是一种按“先进后出”原则存取数据的存储区域。 堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。 2.5 mov ax,8057h push ax mov ax,0f79h push ax pop bx ;bx=0f79h pop [bx] ;DS:[0f79h]=8057h 2.6 AL=89h CF ZF SF OF PF AL=12h 1 0 0 1 1 AL=0afh 0 0 1 0 1 AL=0afh 1 0 1 0 1 AL=00h 0 1 0 0 1 AL=0ffh 0 0 1 0 1 AL=00h 0 1 0 0 1 2.7 W=X+Y+24-Z

2.8 (1)ADD DX,BX (2)ADD AL,[BX+SI] (3)ADD [BX+0B2H],CX (4)ADD WORD PTR [0520H],3412H (5)ADD AL,0A0H 2.9;为了避免与操作数地址混淆,将题中X,Y,Z,V 字操作数改为A,B,C,D mov ax,X ;ax=A imul Y ;dx,ax = A*B (将操作数看作符号数,以下同) mov cx,ax mov bx,dx ;bx,ax <-- dx,ax =A*B mov ax,Z ;ax = C cwd ;dx,ax =C (扩展符号后为双字) add cx,ax adc bx,dx ;bx,cx <-- bx,cx+dx,ax=A*B+C sub cx,540 sbb bx,0 ;bx,cx<-- A*B+C-540 mov ax, V ;ax= D cwd ;dx,ax= D (扩展符号后为双字) sub ax, cx sbb dx, bx ;dx,ax = dx,ax - bx,cx = D-(A*B+C-540) idiv X ;运算结果:[D-(A*B+C-540h)]/A ;ax存商,dx存余数 2.10;(1)xchg的操作数不能是立即数 (2不能对CS直接赋值 (3)两个操作数不能都是存储单元 (4)堆栈的操作数不能是字节量 (5)adc的操作数不能是段寄存器 (6)没有确定是字节还是字操作 (7)in不支持超过FFH的直接寻址 (8)out只能以AL/AX为源操作数 第二章(02) 2.11; 指令AX的值CF OF SF ZF PF Mov ax,1407h1470h----- And ax,ax1470h00000 Or ax,ax1470h00000 Xor ax,ax000011 Not ax0ffffh----- Test ax,0f0f0h0ffffh00101 注意: 1. mov, not指令不影响标志位 2. 其他逻辑指令使CF=OF=0, 根据结果影响其他标志位。

C语言程序设计实验指导书

C 语言程序设计 实 验 指 导 书 电子工程学院 2012-2

实验一 C程序的运行环境和编辑、调试、运行简单C程序 一、实验目的 1.了解 Turbo C 的基本操作方法,学会独立使用该系统。 2.掌握在该系统上如何编辑、编译、运行一个C程序。 二、实验内容及步骤 1.进入C的工作环境 1)在Windouws环境下:“开始”→“程序”→“MS-DOS” 屏幕上进入 MS-DOS窗口 2)在Dos环境下:键入命令c:\> cd c:\tc↙ c:\tc> tc↙ 屏幕上出现Turbo C的工作环境 2.熟悉Turbo C的工作环境 了解Edit窗口与Message窗口 了解主菜单的8个菜单项 File Edit Compile Project Option Debug break/watch 3.输入并运行一个简单的程序 File→New 输入源程序:

main() { printf("This is a C program.\n"); printf("OK\n"); } 按F9进行编译和连接,观察屏幕上显示的编译信息。如果出现出错信息,则应找出原因并改正。 按Run→Run(或按Ctrl+F9) 编译、连接、运行一起完成。 按Run→User screen(或按Alt+F5) 察看运行结果。 按任一键从用户屏切换回TC窗口。 4.输入并编辑第二个C程序 File→New 输入源程序: main ( ) { int a,b,sum; a=123; b=456; sum=a+b; printf("sum is %d\n", sum); }

编辑、运行、调试该程序。 5.编辑、运行、调试自己编写的程序(至少一个程序) 如:输入上底、下底和高,计算梯形面积。 观察屏幕上显示的编译信息。如果出现出错信息,则应找出原因并改正。 用File→Save (或F2)保存程序(程序名为a1.c) 三、实验报告要求 写明: 1.实验目的 2.实验内容与步骤 3.编写的程序(题目,经调试、运行后正确的程序) 4.编译过程中出现的错误信息。 5.总结讨论本次实验的结果和收获。

新版汇编语言程序设计钱晓捷第1章习题答案

第1章汇编语言基础知识(全) 2010-10-18 19:32:40| 分类:答案集锦| 标签:|字号大中小订阅 第1章汇编语言基础知识 〔习题1.1〕简述计算机系统的硬件组成及各部分作用。 〔解答〕 CPU:包括运算器、控制器和寄存器组。运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为 处理单元提供所需要的数据。 存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。 外部设备:实现人机交换和机间的通信。 〔习题1.2〕明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 〔解答〕 主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速 度慢。 RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电 后能保存信息。 存储器由大量存储单元组成。为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常 称做I/O端口。 KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。 〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序? 〔解答〕 用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编 译通过的程序就是目标程序。

汇编语言程序设计教程(第3版 卜艳萍)参考答案

汇编语言程序设计教程(第3版) 习题参考答案 第1章汇编语言基础知识 思考与练习 1.计算机系统分哪几个层次?简述计算机系统的硬件结构。 1)数字逻辑层 2) 微体系结构层 3) 指令系统层 4) 操作系统层 5) 汇编语言层 6) 高级语言层 7) 应用层 硬件系统是指构成计算机系统的物理实体或物理装置。它由控制器、运算器、存储器、输入设备和输出设备等部件构成。 2.简述用汇编语言进行程序设计的必要性。 1)程序要具有较快的执行时间,或者只能占用较小的存储容量。例如,操作系统的核 心程序段,实时控制系统的软件,智能仪器仪表的控制程序等。 2)程序与计算机硬件密切相关,程序要直接、有效地控制硬件。例如,I/O接口电路 的初始化程序段,外部设备的低层驱动程序等。 3)大型软件需要提高性能、优化处理的部分。例如计算机系统频繁调用的子程序、动 态连接库等。 4)没有合适的高级语言或只能采用汇编语言的时候。例如,开发最新的处理器程序时, 暂时没有支持新指令的编译程序。 5)汇编语言还有许多实际应用,例如分析具体系统尤其是该系统的低层软件、加密解 密软件、分析和防治计算机病毒等。 3.汉字编码主要分哪几类?每类的功能如何? 汉字编码主要分为四类:汉字输入码、汉字交换码、汉字机内码和汉字字形码。 1)为了能直接使用西文标准键盘进行输入,就必须为汉字设计相应的编码方法,即用 西文标准键盘上的字母数字串表示汉字的编码。目前,汉字输入编码方法主要有三 种:数字编码、拼音编码和字形编码。 2)汉字交换码:在不同汉字信息处理系统间进行汉字交换时所使用的编码,就是国标 码。无论采用哪种方法输入汉字,一旦输入到计算机中,必须采用统一的国标码标 识每个汉字。 3)汉字机内码是汉字在设备或信息处理系统内部最基本的表达形式,是在设备和信息 处理系统内部存储、处理、传输汉字用的编码。 4)字形编码也称为字模码,是用点阵表示的汉字字形代码,它是汉字的输出形式。4.计算机的字长是怎么定义的,试举例说明。 计算机能同时处理二进制信息的位宽定义为计算机的字长。如8086能同时进行16位二进制数据的运算、存储和传输等操作,该机器的字长为16位。 5.在汇编语言中,如何表示二进制、八进制、十进制和十六进制的数值? 用相应进制的数值加上进制标记即可。

《java程序设计》实验指导书(完整)

实验一 Java实验环境的建立一、实验目的 1.掌握Java编程环境的搭建过程; 2.掌握Jcreator pro软件的使用方法; 3.能使用Java doc文档。 二、实验内容 1.下载并安装,配置JDK环境变量; 2.下载Javadoc压缩包并解压在JDK安装路径下; 3.下载Jcreator pro 并安装和配置使用环境; 4.使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。 ①Java application程序代码如下: public class HelloJava { public static void main(String args[]) { "Hello Java!"); } } ②Java applet程序代码如下: import .*; public class Hello extends { public void paint(Graphics g) { ("Hello!",30,30); } } 三、试验要求 1、预习试验内容并写出上机报告。 2、实验中出现的问题及实验体会。

一、实验目的: 1.输入、输出操作实现原理和方法 2.掌握程序流程控制的实现方法 3.掌握数组的定义和操作方法 二、实验内容 1.计算 Result=1!+2!+3!+ (10) public class TestJieC{ p ublic static void main(String arg[]){ long result=1; for(int i=1;i<=10;i++) { result=i*result; result+=result; } " "+result); } } 2.计算1---50之间所有素数的和。 public class Test{ p ublic static void main(String args[]){ int count = 0; for(int i = 2;i<=50;i++){ for(int j = 2;j<=i;j++){ if(i>j){ if(i%j == 0){ count++; } } } if(count==0){

程序设计实践_课程设计任务书_2014

程序设计实践 课程设计任务书 1 课程设计的目的 训练学生灵活应用所学JAVA高级语言方面理论知识的使用,独立完成分析问题并利用Blue J等RAD应用软件开发工具以及JAVA SDK完成一组JAVA应用程序的开发。结合实际的编程知识及结合其它开发工具,编写程序求解指定问题。初步掌握解决各种具体应用问题的基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和各学科知识的综合运用来进行软件开发,巩固、深化学生的理论知识,提高学生的动手能力,并在此过程中培养他们严谨的科学态度和良好的工作作风。 2 课程设计的基本要求 (1)了解并掌握JA V A应用程序的开发方法,具备初步的独立分析和解决问题能力; (2)初步掌握使用Blue J软件的开发过程。包括界面熟悉、功能了解、程序编码、程序调试等基本方法和技能; (3)提高综合运用所学的理论知识和方法独立分析和解决问题的能力; (4)训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风; (5)设计的题目要求达到一定工作量,并具有一定的深度和难度; (6)编写出课程设计说明书。 3 课程设计内容及安排 内容:根据给出问题的要求分析问题,设计出解决该问题的相应算法(采用什么

样的方法来解决问题),并使用JAVA语言编写出程序代码。最后,按照给定的报告模版,编写实习报告。 时间分配:7天 场地:(白云校区)实验楼A508计算机中心4实验室 4 课程设计报告的内容 设计结束后要写出课程设计报告,以作为整个课程设计评分的书面依据和存档材料。设计报告按照给定报告模版的电子文档书写、打印并装订,排版及图、表要清楚、工整,一般应包括以下内容: 4.1 问题分析 以无歧义的陈述说明要解决的问题包括哪些方面? 4.2 算法设计 根据分析得到的问题采用什么样的设计思想或者算法去解决? 4.3 程序编码 把算法设计的结果进一步求精为程序设计语言程序。同时加入一些注解,使程序中逻辑概念清楚。 4.4 调试分析 内容包括:调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析。 4.5 测试结果 列出你的测试结果,包括输入和输出。这里的测试数据应该完整和严格。

相关文档
最新文档