从键盘输入数据并显示实验报告
实验报告

实验报告08级班级:物理学(2)班课程:中教法实验姓名:彭发强学号:120081001244 日期:11-04-18 实验项目:MA TLAB程序设计实验目的:1、掌握利用if语句、switch语句实现选择结构的方法。
2、掌握利用for语句、while语句实现循环结构的方法。
3、掌握利用向量运算来代替循环操作的方法并理解MA TLAB程序设计的特点。
4、掌握定义和调用MA TLAB函数的方法实验内容:1、从键盘输入一个3位整数,将它反向输出。
如输入639,输出为936。
解:x=input('enter x:','s');j=length(x);for i=1:1:jy(j-i+1)=x(i);enddisp(y);2、输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。
其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
要求:(1)分别用if语句和switch语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
解:If语句x=input(' Please enter your results:');if x<0|x>100disp(' Your input is not valid');elseif x>=90&x<=100disp('A');elseif x>=80&x<90disp('B');elseif x>=70&x<80disp('C');elseif x>=60&x<70disp('D');else disp('E')endSwitch语句x=input(' Please enter your results:');if x<0|x>100disp(' Your input is not valid');elseswitch xcase num2cell(0:59)y='E';case num2cell (60:69)y='D';case num2cell (70:79)y='C';case num2cell (80:89)y='B'otherwisey='A';enddisp(y);end3、输入20个数,求其中最大数和最小数。
汇编语言实验7实验报告

汇编语言实验7实验报告一、实验目的本次实验旨在通过汇编语言编写程序,实现对字符串的操作和输出。
二、实验内容1. 编写一个汇编程序,要求从键盘输入一个字符串,并将其逆序输出到屏幕上;2. 编写一个汇编程序,要求从键盘输入两个字符串,并将它们拼接起来后输出到屏幕上。
三、实验过程1. 字符串逆序输出程序首先,需要从键盘输入一个字符串。
为了方便起见,我们可以先规定字符串的最大长度为100。
接着,我们需要定义两个变量:```buffer db 100 ; 用于存储输入的字符串length dw ? ; 存储输入的字符串长度```其中,db代表定义字节型变量,dw代表定义双字节型变量。
然后,我们需要使用INT 21H中断来读取用户输入的字符串。
具体而言,我们可以使用下面这段代码:```mov ah, 0Ah ; 设置INT 21H功能号为0Ahmov dx, offset buffer ; 将buffer的地址传给DX寄存器int 21h ; 调用INT 21H中断```该代码会将用户输入的字符串存储在buffer中,并且将其长度存储在length变量中。
接着,我们需要将该字符串逆序输出到屏幕上。
为了实现这个功能,我们可以使用栈来存储字符串中的每个字符,并逐个弹出来输出。
具体而言,我们可以使用下面这段代码:```mov si, offset buffer + 1 ; 将si寄存器指向字符串的第一个字符mov cx, length ; 将cx寄存器设置为字符串长度dec cx ; 字符串长度需要减1reverse:push byte ptr [si] ; 将当前字符压入栈中inc si ; 指向下一个字符loop reverse ; 循环直到所有字符都被压入栈中mov ah, 02h ; 设置INT 21H功能号为02h,表示输出一个字符print:pop dx ; 弹出栈顶元素int 21h ; 输出该字符loop print ; 循环直到所有字符都被弹出并输出完毕```2. 字符串拼接程序首先,需要从键盘输入两个字符串。
实验报告

计算机工程系实验报告课程名称:Java面向对象程序设计班级:网络二班姓名:尚晶晶学号:一、实验目的:1、掌握char类型数据和int类型数据之间的互相转换,了解Unicode字符表;2、掌握从键盘输入基本类型的数据。
二、实验要求:1、有一函数:-1+2x x<0Y= -1 x=0-1+3x x>0 编写一个Java应用程序,从键盘输入一个x值,程序输出y的值。
2、编写一个Java应用程序,使用while循环语句计算1-1000之间能被3和7同时整除的整数之和。
3、编写一个Java应用程序,使用for循环计算8+88+888+8888+88888+...的前10项之和。
4、编写一个Java应用程序,计算1-1/3+1/5-1/7+1/9-1/11+...的前10000项之和。
5、编写一个Java应用程序,计算1+2!+3!+4!+...从第100项到第200项之和。
三、程序代码:1.import java.util.*;public class Example3_1{public static void main(String args[]){Scanner reader=new Scanner(System.in);int x=0,y=0;System.out.println("输入x: ");x=reader.nextInt();if(x<0){y=-1+2*x;}else if(x>0){y=-1+3*x;}else{y=-1;}System.out.printf("%d",y);}}2.public class Example3_2{public static void main(String args[]){int sum=0;int i=1;while(i<=1000){if(i%3==0&&i%7==0){sum=sum+i;}i++;}System.out.println("1000以内能同时被3和7整除的整数之和为:"+sum);}}3.public class Example3_3{public static void main(String srgs[]){long sum=0,a=8,b=a,i=1;for(i=1;i<=10;i++){sum=sum+b;b=b*10+a;}System.out.println("e="+sum);}}4.public class Example3_4{public static void main(String args[]){double sum=0;double a=0;int i=0;for(i=0;i<10000;i++){a=(i%2==0?1:-1)/(2*i+1);sum=sum+a;}System.out.println("前10000项之和为:"+sum);}5.public class Example3_5{public static void main(String args[]){int i=1,a=1;int sum=0;while(i<=200){if(i>=100){a=a*i;sum=sum+a;}i++;}System.out.println("从100项到第200项的和为:"+sum); }}四、运行结果:1.2.3.5.。
查询时键盘实验报告

查询时键盘实验报告一、实验背景在计算机领域,查询是一种常见的操作。
键盘作为计算机的一种输入设备,是用户与计算机进行交互的重要工具之一。
通过键盘,用户可以输入各种指令和数据,包括查询关键词。
键盘的性能和使用体验直接影响到用户的操作效率和舒适度。
为了评估键盘的性能,我们进行了查询时键盘实验。
二、实验目的本实验的目的是评估不同类型键盘在查询操作中的性能表现,包括击键速度、准确性和舒适度等方面。
通过实验结果的比较,可以得出不同类型键盘的优缺点,为用户的选择提供参考。
三、实验方法1. 实验材料- 键盘A:机械键盘- 键盘B:薄膜键盘- 键盘C:触摸板2. 实验步骤1. 进行键盘A的实验:由实验者使用键盘A进行10次查询操作(先手工输入一段文字再进行查询),记录每次的击键速度和准确性。
2. 进行键盘B的实验:由实验者使用键盘B进行10次查询操作,并记录数据。
3. 进行键盘C的实验:由实验者使用触摸板进行10次查询操作,并记录数据。
4. 分析和比较实验结果。
四、实验结果1. 键盘A的实验结果序号击键速度(字/分钟)准确性(百分比)1 120 95%2 130 92%3 115 98%4 125 94%5 110 96%6 135 90%7 121 96%8 114 95%9 118 93%10 112 97%2. 键盘B的实验结果序号击键速度(字/分钟)准确性(百分比)1 95 92%2 100 89%3 90 96%4 105 93%5 92 95%6 97 91%7 100 93%8 91 92%9 98 90%10 93 94%3. 键盘C的实验结果序号击键速度(字/分钟)准确性(百分比)1 80 88%2 85 83%3 90 86%4 75 81%5 88 84%6 82 87%7 85 82%8 79 85%9 84 83%10 81 86%五、实验分析通过对实验结果的分析,可以得出以下结论:1. 在击键速度方面,机械键盘(键盘A)表现出最高的性能,平均每分钟击键速度为120字。
键盘输入与七段数码管显示实验

;查第 5 行无键按下,转查第 6 行 ;第 5 行有键按下,行首键码#05H 送(A) ;转求键码
;查第 6 行无键按下,转查第 7 行 ;第 6 行有键按下,行首键码#06H 送(A) ;转求键码
实 才知道原因,原来是我们那设备箱没有初始化好。后来在老师的指导下,我
验 们把设备箱设置好后,终于做出了结果。也达到了实验目的。①.学会利用
总 8255 扩展 I/O 口;
结
②.掌握行列式键盘、7 段数码显示器接口的设计方法,验证 7 段数码管
显示原理;
③.通过软硬件结合,了解单片机应用中软硬件的相依性。 总的来说,这次实验让我收获颇多啊,锻炼了我独自想考和动手的能力。
;查第 2 行无键按下,转查第 3 行
.
MOV A, #02H
AJMP LKP
LTHR: JB ACC.3, LFOU
MOV A, #03H
AJMP LKP
LFOU: JB
ACC.4, LFIV
MOV A, #04H
AJMP LKP
LFIV: JB
ACC.5, LSIX
MOV A, #05H
AJMP LKP
MOV A, #00H
;第 0 行有键按下,行首键码#00H 送(A)
AJMP LKP
;转求键码
LONE: JB
ACC.1, LTWO
;查第 1 行无键按下,转查第 2 行
MOV A, #01H
;第 1 行有键按下,行首键码#01H 送(A)
AJMP LKP
;转求键码
LTWO: JB
ACC.2, LTHR
C实验报告1参考答案

printf("%c,%d\n",c1,c1); c2=c1+26; printf("%c,%d\n",c2,c2);
c2=c1-32; /* 转换为大写字母 */ /* 输出大写字母及其 ASCII 码值 */
} 2.程序填空题 (1)下列程序的功能为:按给定格式输入数据,按要求格式输出结果。补充完善程序,
摄氏温度为:23.89
printf("请输入一个华氏温度:\n");
scanf("%f",f);
scanf("%f",&f);
c=(5/9)*(f-32);
c=(5.0/9)*(f-32);
printf("摄氏温度为:%5.2f\n" c);
printf("摄氏温度为:%5.2f\n", c);
} (2)下列程序的功能为:按下列公式计算并输出 x 的值。其中 a 和 b 的值由键盘输入。 纠正程序中存在的错误,以实现其功能。程序以文件名 sy3_2.c 保存。
《高级语言程序设计》实验报告
班级:
学号:
姓名:
成绩:
实验 1 熟悉 Visual C++6.0 环境及运行 C 程序
一、实验目的
1.掌握在 Visual C++6.0 环境下 C 程序的建立、编辑、编译和执行过程。 2.掌握 C 程序的最基本框架结构,完成简单程序的编制与运行。 3.了解基本输入输出函数 scanf()、printf ()的格式及使用方法。 4.掌握发现语法错误、逻辑错误的方法以及排除简单错误的操作技能。
以实现其功能。程序以文件名 sy3_4.c 保存。
java输入输出流实验报告总结】

java输入输出流实验报告总结】Java输入输出流实验报告总结在本次实验中,我们学习了Java的输入输出流的概念和用法。
输入输出流是Java中用于处理输入和输出操作的工具。
通过输入流,我们可以将外部数据输入到程序中进行处理,通过输出流,我们可以将程序中的数据输出到外部文件或设备上。
在本次实验中,我们通过几个具体的示例来探索输入输出流的不同用法和特性,以期更好地理解和掌握它们的使用。
首先,我们学习了如何使用FileInputStream和FileOutputStream这两个类来进行字节流的输入和输出操作。
这两个类分别用于从指定文件中读取字节数据和将字节数据写入到指定文件中。
通过这两个类,我们可以实现文件的拷贝、移动、创建等功能。
同时,我们还了解了如何使用BufferedInputStream和BufferedOutputStream这两个类来提高读写效率。
这两个类可以通过缓存数据来减少对底层系统的IO操作次数,从而提高读写速度。
接下来,我们学习了如何使用FileReader和FileWriter这两个类进行字符流的输入和输出操作。
这两个类与字节流的输入输出类似,但它们处理的是字符数据。
通过这两个类,我们可以读取和写入文本文件中的字符数据。
我们还了解了字符编码和字符集的概念,并学习了如何使用InputStreamReader和OutputStreamWriter来进行字符流和字节流之间的转换。
除了字节流和字符流,我们还学习了对象流的使用。
对象流可以将Java 对象直接写入到文件中,也可以从文件中读取Java对象。
这在处理一些复杂的对象数据时非常有用。
我们通过使用ObjectInputStream和ObjectOutputStream这两个类,实现了对象的读写操作。
需要注意的是,被写入和读取的对象必须实现Serializable接口,否则会抛出NotSerializableException异常。
在实验过程中,我们还探索了如何使用标准输入输出流。
数据结构上机实验指导

《数据结构》课程上机实验指导书实验一【实验名称】顺序表的基本算法【实验目的】创建一个顺序表,掌握线性表顺序存储的特点。
设计和验证顺序表的查找、插入、删除算法。
【实验要求】(1)从键盘读入一组整数,按输入顺序形成顺序表。
并将创建好的顺序表元素依次打印在屏幕上。
(2)设计一个带选择菜单的主函数,菜单中具备任意选择删除、插入、查找数据元素的功能。
(3)当选择删除功能时,从键盘读入欲删除的元素位置或元素值,按指定方式删除;当选择插入功能时,从键盘读入新元素值和被插入位置,在指定位置插入;当选择查找功能时,从键盘读入欲查找的元素值,返回其位置序号。
(4)每种操作结束后,都能在屏幕上打印出此时顺序表元素的遍历结果。
【实验步骤】1、实验前先写好算法。
2、上机编写程序。
3、编译。
4、调试。
例程:书上参考算法2-1,2-4,2-5,2-6,2-8!带菜单的主函数参考书上2.5综合实例!注意:顺序表的结构体!typedef struct{datatype items[listsize];int length;}SpList;实验二【实验名称】单链表的基本算法【实验目的】创建一个单链表,掌握线性表链式存储的特点。
设计和验证链表的查找、插入、删除、求表长的算法。
【实验要求】(1)从键盘读入一组整数,按输入顺序形成单链表。
并将创建好的单链表元素依次打印在屏幕上。
(注意:选择头插法或者尾插法!)(2)设计一个带选择功能菜单的主函数,菜单中至少具备任意选择删除、插入、查找数据元素,和求单链表表长等几项功能。
(3)当选择删除功能时,从键盘读入欲删除的元素位置,按指定位置删除;当选择插入功能时,从键盘读入新元素值和被插入位置,在指定位置插入;当选择查找功能时,从键盘读入欲查找的元素值,返回其位置序号;当选择求表长功能时,返回该单链表表长的数值。
(4)每种操作结束后,都能在屏幕上打印出此时单链表元素的遍历结果。
【实验步骤】1、实验前先写好算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
从键盘输入数据并显示实验报告
一、实验目的与内容
1、实验目的
掌握接收键盘数据的方法,并了解将键盘数据显示时须转换为ASCII码的原理,并在程序中设置错误出口。
2、实验内容
编写程序,将键盘接收到的四位十六进制数按“Enter”回车键转化为二进制数,再显示在屏幕上, 按“空格键”结束!。
若输入的不是0-F间的数字,则显示出错信息,并要求重新输入。
二、实验设备(环境)
1、实验设备(含芯片名称、功能简介)
微型计算机一台
2、实验环境
TPC-ZK-II集成环境
3、使用语言
汇编语言
三、实验原理(实验所用到的知识点及相关内容)
1.在TPC-ZK-II集成环境下输入汇编程序,编译、连接,生成.exe文件。
2.按提示输入数据,在屏幕显示的运行结果中查看结果是否正确。
3.输入不同的数据,可得到不同的结果。
4、参考流程图
四、实验步骤(包括步骤、代码、实验截图及其必要说明)
编写程序,将键盘接收到的 4 位 16 进制数转换为等值的二进制数,再显示在荧光屏上。
分析:整个程序分为 3 个部分:键盘输入、转换、显示,可以分别用子程序来完成。
1. 输入。
输入可以利用字符串输入。
这时需要在主程序中先开辟一段输入缓冲区。
字符串输入 ( 0AH 功能 ),入口参数 DS : DX = 缓冲区的首地址,( DS :DX ) = 限制最多输入的字符数,功能号 AH = 0AH,类型号 21H。
出口参数 ( DS : DX+1 ) =实际键入的字符 ( 不含回车符 ),从( DS : DX+2 ) 开始顺序存放键入的字符串,回车符 0DH为串尾最后一字符。
实现功能:等待从键盘输入字符串,并存入设定的缓冲区内,同时回显字符串,光标随着移动,回车符使光标回到行首。
注意事项:应按要求先定义缓冲区,再调用。
数据缓冲区的设置如下:
DATA SEGMENT ; 定义缓冲区
MARK DB ?
MESS DB 'input:$' ;输入字符串提示
ERROR DB 0DH,0AH,'input error!',0DH,0AH,'$' ;输入错误提示
DATA ENDS
从键盘输入‘ ABCD ’, 回车,内存的存放结果 :
子程序如下:
INPUT PROC
LEA DX, stri
MOV AH, 09H ; 调显示功能
INT 21H
LEA DX , max
MOV AH , 0AH
INT 21H ; 调 0A输入功能
RET
INPUT ENDP
2. 转换。
由于在缓冲区中存放的是输入字符的 ASCII 码,比如
1→31H, A→41H ,a→61H,所以首先需要将它们转换成对应的数字的大小。
如何转换?
数字和字母的 ASCII 码是一个有序序列,数字 0~9 : 30H ~ 39H,大写字母 A~Z : 41H ~ 5AH,小写字母 a~z : 61H ~ 7AH。
对于每个字符,先减去 30H,数字 0~9 就转换完了;如果判断是否大于
09H,是则减去 07H,大写字母 A~F转换完毕,如果是小写字母 a~f,还要减去20H。
利用一个循环就可以将 4 个字符转换成相应的二进制数。
现在,在数据缓冲区中存放的是输入的 16进制数每一位的值,占用了 4 个字节,每个字节只用到低四位。
如:输入为 ABCD,则缓冲区中存放的是: 0AH,0BH,0CH,0DH。
实验要求将输入的 4 位 16 进制数转换成等值的二进制数,也就是一个字,所以还要将这 4 个字节进行组合。
组合方法如下:
将DX左移四位,腾出第四位的空间存放一位十六进制数,将此过程循环四次,就可将输入的四个十六进制数全部存放到DX中。
程序如下:
MOV CL,04H
SHL DX,CL ;左移四位,第四位0补齐
XOR AH,AH ;AH清零
ADD DX,AX ;把输入的数据放入DX中
3. 显示。
用“以二进制的形式显示 BX寄存器的内容”程序段来实现。
程序如下:
MOV BX,DX ;把DX的数据放入BX中
SHOW: ROL BX,1 ;循环左移一位
MOV DL,BL
AND DL,01H ;屏蔽掉高7位
ADD DL,30H ;将二进制码转换为ASCLL码输出(按ASCLL码进行输出的)
MOV AH,02H ;字符数出
INT 21H ;显示二进制对应的ASCLL字符
LOOP SHOW
完整代码如下:
CRLF MACRO
MOV AH,02H ;显示器输出
MOV DL,0DH ;换行
INT 21H
MOV AH,02H
MOV DL,0AH ;回车
INT 21H
ENDM
DATA SEGMENT
MARK DB ?
MESS DB 'input:$'
ERROR DB 0DH,0AH,'input error!',0DH,0AH,'$'
DATA ENDS
STACK1 SEGMENT
STA DW 32 DUP(?)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1
START: MOV AX,DATA
MOV DS,AX
HEAD: CRLF ;输出换行回车
MOV MARK,0
MOV AH,09H ;字符串显示
LEA DX,MESS
INT 21H
CALL GETNUM
CMP MARK,01H
JE HEAD ;输入错误,跳转到HEAD重新输入
MOV CX,0010H ;循环次数为16
MOV BX,DX ;把DX的数据放入BX中
SHOW: ROL BX,1 ;循环左移一位
MOV DL,BL
AND DL,01H ;屏蔽掉高7位
ADD DL,30H ;将二进制码转换为ASCLL码输出(按ASCLL进行输出的) MOV AH,02H ;字符数出
INT 21H ;显示二进制对应的ASCLL字符
LOOP SHOW
JMP HEAD
FINI: MOV AX,4C00H ;终止当前程序,返回调用程序
INT 21H
GETNUM PROC NEAR
XOR DX,DX ;清零
GO: MOV AH,01H
INT 21H ;键盘输入
CMP AL,0DH
JE HCHH ;输入为回车,则进行转换
CMP AL,20H
JE FINI ;输入为空格,则返回DOS CMP AL,30H
JB WRONG ;输入有误,显示error SUB AL,30H
CMP AL,0AH ;判断是否为0~9
JB BINGO
CMP AL,11H
JB WRONG
SUB AL,07H
CMP AL,0FH ;判断是否为A~Z
JBE BINGO
CMP AL,2AH
JB WRONG
CMP AL,2FH
JA WRONG
SUB AL,20H ;判断输入的为a~z BINGO: MOV CL,04H
SHL DX,CL ;左移四位,第四位0补齐 XOR AH,AH ;AH清零
ADD DX,AX ;把输入的数据放入DX中 JMP GO
WRONG: MOV AH,09H ;显示字符串
MOV DX,OFFSET ERROR
INT 21H
MOV MARK,01H ;将MARK置1 HCHH: PUSH DX ;压入堆栈
CRLF ;回车换行
POP DX ;弹出堆栈
RET吗
GETNUM ENDP
CODE ENDS
END START
五、实验结果(现象)
我们依次输入实验前一天的日期8位(分两次输入)、自己的学号8位(分两次输入)和四个大写字母ABCD,屏幕回显出它们对应的二进制码值;当我们输入一个不输入范围的字符时(比如说‘M’),程序返回‚input error!‛;当输入回车时,屏幕回显出16个0;当输入空格时,屏幕回显出‚done!‛,并返回DOS。
六、实验心得、疑问、建议
本实验做键盘输入并屏幕显示,将十六进制转换成等值二进制数,我们调用DOS功能,利用软中断指令INT 21H实现了键盘的输入、显示器的输出以及返回到DOS等命令,并通过判断将正确输入的四位十六进制数转换为二进制数回显到屏幕上。
编写程序时,我们要注意一点DOS环境下是不允许汉字输入的,否则视为乱码。
通过本次试验的学习,掌握了接收键盘数据的方法(接收到的数据是以ASCLL值进行存放的),并了解了将键盘数据显示时须转换为ASCLL码的原理。