LinuShell程序设计实验

LinuShell程序设计实验
LinuShell程序设计实验

Linux shell程序设计实验指南

请在vi中逐一编辑并执行以下10个shell脚本程序,然后结合所学知识和程序的输出分析各程序中各语句的含义:

1.编写一个简单的回显用户名的shell程序。

#!/bin/bash

#filename:date

echo "Mr.$USER,Today is:"

echo 'date'

echo Whish you a lucky day!

2.使用if-then语句创建简单的shell程序。

#!/bin/bash

#filename:bbbb

echo -n "Do you want to continue: Y or N"

read ANSWER

if [ $ANSWER=N -o $ANSWER=n ]

then

exit

fi

3.使用if-then-else语句创建一个根据输入的分数判断是否及格的shell程序。

#!/bin/bash

#filename:ak

echo -n "please input a score:"

read SCORE

echo "You input Score is $SCORE"

if [ $SCORE -ge 60 ];

then

echo -n "Congratulation!You Pass the examination."

else

echo -n "Sorry!You Fail the examination!"

fi

echo -n "press any key to continue!"

read $GOOUT

4.使用case语句创建一个菜单选择的shell程序。

#!/bin/bash

#filename:za

#Display a menu

echo _

echo "1 Restore"

echo "2 Backup"

echo "3 Unload"

echo

#Read and excute the user's selection

echo -n "Enter Choice:"

read CHOICE

case "$CHOICE" in

1) echo "Restore";;

2) echo "Backup";;

3) echo "Unload";;

*) echo "Sorry $CHOICE is not a valid choice

exit 1

esac

5.使用for语句创建简单的shell程序。

#!/bin/bash

#filename:mm

for ab in 1 2 3 4

do

echo $ab

done

6.使用for语句创建求命令行上所有整数之和的shell程序。#!/bin/bash

#filename:qqq

sum=0

for INT in $*

do

sum='expr $sum + $INT'

done

echo $sum

7.使用while语句创建一个计算1-5的平方的shell程序。#!/bin/bash

#filename:zx

int=1

while [ $int -le 5 ]

do

sq='expr $int \* $int'

echo $sq

int='expr $int + 1'

done

echo "Job completed"

8.使用while语句创建一个根据输入的数值求累加和(1+2+3+4+…+n)的shell程序。#!/bin/bash

#filename:sum

echo -n "Please Input Number:"

read NUM

number=0

sum=0

while [ $number -le $NUM ]

do

echo number

echo "$number"

number=' expr $number + 1 '

echo sum

echo "$sum"

sum=' expr $sum + $number '

done

echo

9.使用until语句创建一个计算1-5的平方的shell程序。

#!/bin/bash

#filename:xx

int=1

until [ $int -gt 5 ]

do

sq='expr $int \* $int'

echo $sq

int='expr $int + 1'

done

echo "Job completed"

10.使用until语句创建一个输入exit退出的shell程序。

#!/bin/bash

#filename:hk

echo "This example is for test until....do "

echo "If you input [exit] then quit the system "

echo -n "please input:"

read EXIT

until [ $EXIT = "exit" ]

do

read EXIT

done

echo "OK!"

本章项目设计

1.编写一个shell脚本,输入1 – 10之间的一个数,并判断它是否小于5。

2.编写一个shell脚本,随机输入5个数,打印出了值为3的所有数。

实验四-循环结构汇编语言程序的设计实验报告

循环结构汇编语言程序设计实验报告

实验四循环结构汇编语言程序设计 一、实验目的 1、学习循环结构的汇编语言程序的设计和调试。 2、学习通过直接对8086计算机的寄存器和存的直接访问,编写更高效简洁的汇编程序。 3、加深掌握计算机整体的工作过程。 3、加深对排序算法的理解。 二、实验任务 编写程序求出数组A中(20个元素)的最大值和最小值(数组没有排序)。 要求至少采用二种不同的排序算法来实现。( 快速排序,归并排序、堆排序、Shell排序、插入排序、冒泡排序、交换排序、选择排序、基数排序……) 三、实验容 为了更好地实现老师所布置的实验任务,我们根据情况选取以下两种方式实

验。 1、利用冒泡排序的方式求解数组A中元素的最大值最小值。设计流程图如 下所示: 2、利用选择排序的方式求得数组A中元素的序列。设计流程图如下所示:

四、实验环境 PC机: winXP/win7(32位)/win7(64位)+winxp 虚拟机 汇编工具:Masm.exe+Link.exe。 五、实验步骤 1)建立和生成的文件 (1)编写的源程序,源程序名为abc、扩展名为.asm (2)源程序经汇编程序Masm.exe汇编(翻译)后生成二进制目标程序,文件名为abc.obj (3)目标程序需要经Link.exe连接生成可执行程序,文件名为abc.exe 2)汇编环境 最基本的汇编环境只需要两个文件:Masm.exe和Link.exe。将这两个文件拷入到已经建好的文件夹(例如 huibian)中,并将文件夹huibian放在硬盘根

目录C :\>下 3)上机步骤 进入DOS窗口中执行。 4)调试程序 进入DEBUG后,调试程序 5)调试成功后重新汇编、连接并生成可执行代码 6)执行程序,并对运行结果截图。 利用冒泡排序求得数组A中元素的最大值最小值的实验结果如下图所示:(说明:输入数据为:13,0,59,900,587,1,657,234,34,48) 利用选择排序对数组A中元素排序得到的序列得实验结果如下图所示:(说明:输入数据为13,0,59,900,587,1,657,234,34,48)

微机原理简单输入输出实验报告

东南大学 《微机实验及课程设计》 实验报告 实验四(1)简单输入输出 一. 实验目的与内容 (一)实验目的 1)进一步掌握TPC实验装置的基本原理和组成结构; 2)掌握利用I/O指令单步调试检查硬件接口功能,学会利用示波器检测I/O指令执行时总线情况; 3)掌握简单并行输入输出接口的工作原理及使用方法,进一步熟悉掌握输入输出单元的功能

和使用。 (二)实验内容及要求 1、输出接口输出,根据8个发光二极管发光的情况验证编程从键盘输入一个字符或数字,将其ASCII码通过正确性。(输出端口实验必做) 2、用逻辑电平开关预置某个字母的ASCII码,编程输入这个ASCII码,并将其对应字母在屏幕上显示出来。(输入端口实验必做) 3、利用基本实验(1)中的输出锁存电路,设计L0~L7为流水灯,流水间隔时间由软件产生。(输出端口实验) 4、利用基本实验(2)中的输入电路,监测逻辑电平开关K0~K7的变换,当开关状态为全开时,在屏幕上显示提示信息并结束程序。(输入端口实验) 要求: 1、输入输出端口应该可以响应外设的连续变化。 2、输出按ESC键退出;输入按任意键退出。 3、内容3、4比做一题,选做一题 二. 实验基本原理 (一)基本原理 简单并行输出实验:八D触发器74LS273的八个输入端接数据总线D0~D7,从键盘输入一个字符或数字,通过2A8H~输出接口输出该字符或者数字代表的ASCII码,再通过8个发光二极管发光显示二进制数码,从而验证编程以及电路的正确性。 简单并行输入实验:八缓冲器74LS244的八个输出端接数据总线D0~D7,8个输入端分别接逻辑电平开关K0~K7,在逻辑电平开关上预置任意字符的ASCII码,编程将此ASCII码通过2A0H~输入,ASCII码对应字符显示在屏幕上,从而验证编程及电路的正确性。 (二)实验接线图

程序设计心得体会

程序设计心得体会 程序设计感受1 刚学习C#的时候,感觉很难,做的时候出现很多错误而且我是照着书打代码还有错误,那时的感觉是迷茫的。在学习的过程中,我还是坚持下来,虽然学的不是很好,但是慢慢就理解了,现在也不要仿照书打代码。现在讲讲做项目的感想。我们项目做不好也有一个小原因,是因为我们三个项目同时进行,而三个项目不同,在需求分析方面没有弄好,导致后面在做项目时,数据库出现了很多问题,所以我觉得现在我们项目不要做多,而是好好做一个项目,从需求开始就要做好每一步,到后面编程才不会出现特别多的错误。 不得不说:在老师检查完第一次之后,我去看了一下师兄做过的项目,就觉得自己这个项目相差太远了。我觉得我有以下几方面做不好:1.在刚上C#时老师叫我们现在就要做项目但我没有,一直等到老师快要检查时才急急忙忙的做。2.老师上完课,自己做完作业之后,没有好好的复习。其实我觉得三层架构也不难,三层结构就是主要调用了类,而类中定义了方法,归根到底我们还是引用了类中的方法实现它的功能,类就类似于C语言里的函数,因为在数据访问层要用到数据操作类所以要创建一个数据操作类。而我们建三层架构是为了就是倒觉得在表示层里实现一些功能能时要去分析,但是C#语言只学习过浅的知识,数据结构我们也没有学习所以分析起来就有点问题。但是所有问题都是觉得自己太懒,如果自己好好自学数据结构,学习离散数学,也许在分析功能模块会得到提高。所以本人决定寒假做一个像样的项目出来。 无论是学习还是做项目的过程中,耐心都要非常重要。有时出现错误,上网查了,自己又想了很久,又找同学讨论还是不能解决时就会有不想做的念头。因为自己曾经在大一时就是因为连关机都不会关,当时都吓到宿舍友了,觉得还是转专业好了。虽然转专业没有成功,

汇编语言-实验五 输入输出程序设计

实验五输入输出程序设计 一、实验目的 1) 掌握输入输出程序的编写方法。 2) 熟悉系统功能调用的方法。 3) 熟悉动画程序的编写方法。 二、实验内容 1)在CRT上每隔一秒连续显示字符0-9。 编程提示 为了使输出的字符之间有空格,在每一个循环中输出一个0-9的字符和一个空格。为了输出0-9,置寄存器BL初值为0,每循环一次使其增量。为了保证输出是十进制,增量后用DAA调整指令。由于输出为一位十进制数,用AND 0FH 指令屏蔽高4位。 2)用系统功能调用将‘HELLO’由键盘输入,再从屏幕输出‘***HELLO***’。 3)编制在屏幕上画线的子程序,调用该子程序画一矩形。 4)编制字母下落一行的子程序,调用该子程序使字母从屏幕顶部下落到底部。 5)创建一磁盘文件,保存从键盘输入的字符串。 6)编写程序用设置系统时间,首先从键盘以十进制数形式输入时间,然后修改系统时间,并重新以十进制形式显示时间。 7)编写程序将屏幕分割成格状,每一格涂上不同颜色,格数从键盘输入。 8)编写程序在屏幕上显示菜单,输入相应菜单的序号后,选种该菜单项。 三、源程序 EXAM5-1 STACK SEGMENT STACK DB 1024 DUP(0)

STACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK START:MOV BL,0 LP:MOV DL,20H MOV AH, 2 INT 21H MOV AL,BL ADD AL, 0 DAA AND AL,0FH MOV BL,AL PUSH BX OR AL,30H MOV DL,AL MOV AH, 2 INT 21H MOV BX,3E8H LP2:MOV CX,176H ;延时1ms LP1:PUSHF POPF LOOP LP1 DEC BX JNZ LP2 POP BX INC BL JMP LP CODE ENDS END START 执行程序EXAM5-1·EXE,屏幕上依次循环显示一个数字一个空格: 0 1 2 3 4 5 6 7 8 9 …… EXAM5-2 STACK SEGMENT STACK DB 1024 DUP(0) STACK ENDS DA TA SEGMENT BUFF DB 6,7 DUP(?),‘$’ DA TA ENDS INPUT MACRO BUFE MOV DX,OFFSET BUFE MOV AH,0AH INT 21H ENDM

简单的C语言程序设计实验报告完美版

本科实验报告专用纸 课程名称C语言程序设计成绩评定 实验项目名称简单的C语言程序设计 实验项目编号实验项目类型验证型 实验地点指导教师 学生姓名学号 学院专业 一、实验目的 1.掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。 2.学会正确使用逻辑运算符和逻辑表达式。 3.熟练掌握if语句和switch语句。 4.结合程序掌握一些简单的算法。 二、实验内容和实验要求 实验内容1::试编写程序,用getchar函数读入两个字符给c1,c2,然后分别用putchar函数和printf函数 输出这个字符。 实验要求:(1) 输入事先已编好的程序,并运行该程序。分析运行结果是否正确。 (2)比较用Printf函数和putchar函数输出字符的特点。 实验内容2:给出一百分制成绩,要求输出成绩等 级’A’,’B’,’C’,’D,’E’。90分以上为’A’,80-89分 为’B’,70-79分为’C’,60-69分为’D’,60分以下 为’E’。 第1页(共11页)

实验要求:(1)事先编写好程序,要求分别用if语句和switch 语句来实现。 (2)输入程序,并运行该程序。分析运行结果是 否正确。 (3)再运行一次程序,输入分数为负值(如-70), 这显然是输入是出错,不应该给出等级,修改程序, 使之能正确处理任何数据,当输入数据大于100和 小于0时,通知用户“输入数据错”,程序结束。 三、主要仪器设备 仪器:计算机 实验环境:windowsXP+visual c++6.0 四、实验过程 实验内容1: 原理:1)用getchar函数输入两个字符赋给c1,c2; 2) 用putchar函数输出这两个字符; 3) 用printf函数输 出这两个字符。 (1)源程序

程序设计实训心得体会

程序设计实训心得体会 心得体会这种学习方法对于一个人来说也许是优秀的,但没有被推广普及的必要。因为学习的方法因人而异,方法的奏效是它与这个人相适应的结果,以下《程序设计实训心得体会》由心得体会栏目为您精心提供。 在软件实验室经过2个星期Jsp程序设计实训,从对软件开发没有太多经验的我掌握了更多的软件开发的方 法和技能,收获颇多。 经过这次理论学习,了解到要做好软件开发,要求 掌握的知识并不是只有编写代码方面的,网络、数据库、操作系统等的知识对做好项目开发是很有帮助的。这让 我明确了以后学习的目标,在不断学习软件开发的同时,也应该继续其他相关知识的深入学习。 实训期间经历的许许多多,给我们带来了很多很多 有实无形的东西,知识、友情以及团队开发的热情,快 乐无一不包围着我们。在这我很想感谢几个人,王璐老 师和班上一同参与这次实训的2位同学。王璐老师对我 们备至关心,不论在学习前后,都给予我们关怀不少, 并且王璐老师不愧是从事多年软件开发的专业人士,其 深厚的专业技能知识和丰富的经验令我等钦佩无比。对 于我们未出茅庐的大学生而言,遇到的问题多而复杂,

询问有经验的人,他们或许一句话就能解决问题,而自 己就得找资料或上网摸索可能要一两天,有时甚至绞尽 完脑汁都不得其解。用个词形容,老师的解答如醍醐灌顶,而对我们,则甘之如饴。 实训这段期间真的好累,尽管实验室给我们提供了 一个相当不错的上课学习环境,但是整天木木地待在实 验室面对毫无生气的荧屏,为 code而烦恼,为bug而郁闷,被文档所包围,随程序侵蚀。然而,这就是学习的 生活,既选之也则安之。忙碌的生活让我每天似乎没有 太多的时间去想一些其他的事,耐心的去调试,专注的 去编写更好的算法,沉浸充实和快乐之中。 更重要的是,两个星期的实训使我们明白我们所欠 缺的不仅仅是技术知识,更重要的是有一种处理事情的 方法、面对问题的心态和动手能力。面对完全陌生的新 知识、新技术、新项目以及整个IT行业,我们不能畏惧,要以一种积极的心态去面对,分析并抓住关键所在。因 为我们所即将应对的每一个项目都是既需要实际操作, 又需要详细规划的。作为组长,协调组员、激励其他组 员和积极参与项目开发是我每天必做的工作。我认为每 个人都应该在团队中做好自己应尽的职责,再优秀的个 人也可能完成一个即庞大又复杂的项目工作,我们必需 紧密的联合在一起,以一个团队的角色来面对。

实验四 MATLAB程序设计

实验四 MATLAB 程序设计 1.实验目的 (1)熟练掌握MATLAB 的程序流程控制结构。 (2)掌握M 文件的结构,M 函数文件编写、使用。 (3)熟练掌握函数调用和参数传递。 2.实验仪器 (1)Matlab6.5应用软件安装版 一套 (3)PC 机 一台 3. 实验原理 依据MA TLAB 的编程的原理,编写M 函数文件,调用M 函数文件,完成曲线绘制。 4. 实验步骤 (1)利用for 、while 控制语句和sum 指令求和。 (2)使用MA TLAB 函数文件绘图。 (3)利用置换指令绘制脉冲响应曲线. (4)利用feval 指令实现指定的函数。 5. 实验报告内容(选做其中两题) (1)分别用for 和while 循环语句计算∑==630i i 2 K 的程序,再写出一种避免循环的计算程序。 (提示:可考虑利用MA TLAB 的sum (X,n )函数,实现沿数组X 的第n 维求和。)保存为M 文件. (2)将课本例4-8子函数编程及调用演示,三个子图上的圆和多边形绘制在同一坐标系中。并保存为M 文件。保存输出结果图。 (3)利用置换指令subs(X,new),例4-18中的脉冲响应在t=[0,18]的曲线。并保存为M 文件。保存输出结果图。 (4)试利用feval ()指令计算F(x)+F 2(x),其中F 可取‘sin ’、‘cos ’。(提示:先编写以个M 函数function y=trif(F,x)实现F(x)+F 2(x)的计算,在编写调用函数完成F 为‘sin ’、‘cos ’的计算),并保存为M 文件。(指定完成sin(pi/2)+sin(pi/2)^2; cos(pi/3)+cos(pi/3)^2)

实验四 输入输出流程序设计

C++面向对象程序设计课程实验报告 课程名称C++面向对象程序设计班级实验日期2014.5.16-2012 .5.23 姓名学号实验成绩实验名称实验四输入输出流程序设计 实验目的及要求1.理解输入输出流的基本概念,明确流是一个类 2.了解输入输出流类库基本结构和主要类,掌握主要层次,其中重 点理解fstream,iostream和iomanip 3.理解流缓冲区类的派生关系以及设备缓冲、文件缓冲和流缓冲 4.熟悉格式化的输入和输出,记住主要的常用的操作符,以及各种 应用(对齐) 掌握文件的输入和输出,区别C语言中的文件写入、打开等操作,会对一个文件进行I/O操作 实验环境硬件平台:普通的PC机 软件平台:Windows 操作系统编程环境:VisualC++ 6.0 实验内容1.文件数据的读取。编制一程序来显示并保存[2,1000]内的所有素数。显示、保存素数的格式为:每行10个素数,每一个素数占7个字符,右对齐,最后一行不足10个素数时按一行输出 2.编写一个单向链表的类模板,分别实现增加、删除、查找和打印操作 算法描述及实验步骤1、这个题主要考察了文件中数据的读取,还包括数据格式化输入输出。首先定义一个ofstream类的对象output,在main函数中打开文件后,再分别编写判断素数、每行输出10个数以及使辖域为7的代码,最后关闭文件。 2 这个题是C++与数据结构的结合,实现单向链表内各种功能。首先定义一个类ListNode,然后利用前插入法初始化链表,编写类模板的成员函数,再分别进行增加、删除和查找的操作

调试过程及实验结果 总结1.一旦文件被打开,文件中的文本数据信息的读/写操作与控制台文件信息的输入/输出操作就完全一致 2.定义ifstream、ofstream、fstream流类对象时,应用对象名替代控制台文本信息输入/输出使用的输入流类对象(如cin)和输出流类对象(如cout)

实验一简单程序设计实验

实验一:简单程序设计实验 (1)编写一个 32 位无符号数除法的程序,要求将存放在 NUM1 中的 32 位无符号数与存放 在 NUM2 中的 16 位无符号数相除,结果存放在 NUM3 和 NUM4 中。 程序流程图略。 参考源程序: DATA SEGMENT NUM1 DD 2A8B7654H NUM2 DW 5ABCH NUM3 DW ? NUM4 DW ? DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX,DATA ;数据段寄存器初始化 MOV DS,AX MOV AX, WORD PTR NUM1 MOV DX, WORD PTR NUM1+2 DIV NUM2 MOV NUM3,AX MOV NUM4,DX MOV AH,4CH ;正常返回DOS 系统 INT 21H CODE ENDS END START (2)编写一个拆字程序。要求将存放在 ARY 单元的 2 位十六进制数 X 1X 2 拆为 X 1 和 X 2 两 部分,并以 0X 1 和 0X 2 的形式分别存入 ARY+1 和 ARY+2 单元中。 程序流程图略。 参考源程序: DATA SEGMENT ARY DB 2AH,?,? DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET ARY ;取ARY 的偏移地址 MOV AL,[SI] ;取16进制数至AL

MOV BL,AL AND AL,0F0H ;取16进制数的高四位,即X1 SHR AL,4 MOV [SI+1],AL ;存0X1 MOV AL,BL AND AL,0FH ;取16进制数的低四位,即X2 MOV [SI+2],AL ;存0X2 MOV AH,4CH INT 21H CODE ENDS END START

完成Java面向对象程序设计实验课的心得体会

Java面向对象程序设计实验课的心得体会经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。 在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到能够自主运用。通过对Java的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好Java语言是很重要的,所以在实验的过程中我都尽力理解java编程思想、掌握基本技巧,尽量学到最多的知识。 学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,Java面向对象程序设计是一门实践性比较强的课程,在实际中,我们必须把理论和实践结合起来。在实验中,我们理解理论课上的知识,然后运用到实际的操作中,我们必须在现有的理论的基础上,进行实践。多次实验后,也让我看到了现在学习的一个很大弱点:只听不练,永远不会熟练运用;空记技巧,忽略思想,会在多变的习题中十分无奈。 Java思想:Java是一门面向对向语言,他定义一切都是对象面向对象,就是面对现实; 现实中的一切都是对象,他们有分类,就产生了“类”; 他们有不同,类和类之间的不同,使用类来区分; 同一个类中不同的对象的区别,使用成员区分。

所以,面向对象的内部逻辑是分类。 面向对象编程思想就象数学上的一些概念,如:空间、群、环、域等 原始的编程思想就象古典数学,人们只在一个集合上探讨问题,没有系统的方法(即运算)定义,于是仁者见仁、智者见智,这样在一定程度上造成了理论的一种混乱局面,不利于科学的发展。于是近代数学向公理化发展,这是什么意思呢?就是说,人们除了在限定论域(即上面的集合,面向对象也有此概念)外,还在此论域上加进了一套通用的、公认的运算(方法);集合加上集合上定义的运算就构成了数学上的空间、群等,在计算机领域里,就变成为“类”。这种集合上定义了操作的东西利用起来就方便多了,这使得人们讨论问题时都在给定集合的运算能力上下工夫,即有通用性可事半功倍。 面向对象的编程思想就要想近世代数的分析思想,首先要确定“论域”,即工程所涉及到的所有的“对象”,然后要分类处理,把隶属同一类别的对象集合在一起(做成一个集合),定义他们之间的运算性质及可以进行的操作,这样就构建了一个类,当然以后用到这个类的对象时都要通过已经定义了的操作来完成各项功能,这就是常要求的类的“类的成员变量要通过共有函数来操作”。 我想真正的面向对象编程思想不应该是编程思想,应该是面向对象的分析方法才对! 我的理解: 1、将分析过程为抽象的过程:简言之:分成多个小问题(组成部分),

微机原理实验五输入与输出程序设计

实验六输入与输出程序设计 一、实验目的 1.掌握常用DOS中断调用的功能以及在应用程序中的使用方法。 2.学习键盘输入和屏幕输出的基本方法。 3.宏指令、子程序在应用程序中的使用。 4.汇编语言程序设计的调试与完善。 二、设计指标与实验要求 1.设计内容 本实验要求设计完成:①屏幕输出提示(如“Want input(Y/N)?”),若键入N 则结束程序返回操作系统;键入Y则转2步;键入的是其它字母则回①步。②换行后输出提示(如“please input a strings:”),且在该提示后键入一字符串(输入到输入缓冲区)。 ③换行后输出提示(如“your inputting is:”),在该提示后输出由②步输入的字符串。 ④换行后输出提示“Want continue(Y/N)? ”,若键入Y则转②步;键入N则结束程序返回操作系统;其它字母则回第④步。 2.设计要求 ①按屏幕提示要求输入,从屏幕上获得正确结果。 ②把程序中常用的中断调用定义成宏指令(至少定义2个)。 ③字符串回显部分设计成子程序,可以选择用21H中断的2号或9号功能来实现,应 能显示由主程序指定的任一字符串。要注意这两种方法实现的设计过程是不同的。 采用2号功能的,子程序输入参数为“回显字符串地址”和“回显字符数”;采用 9号功能的,子程序输入参数为“回显字符串地址”。 ④屏幕的提示信息显示格式尽量做到兼顾美观。 3.实验步骤 ①.选用合适的程序文本编辑软件编辑源程序,并为文件取以.ASM为扩展名的文件存盘。 ②.用宏汇编软件MASM对源程序文件进行汇编,若有错误,根据提示(行号,错误类型)回源程序文件中修改。 ③.用LINK对由MASM汇编后产生的目标文件做连接,生成可执行文件;若有错误(同

实验3简单的程序设计

实验3简单的程序设计 实验目的: 1.掌握表达式、赋值语句的正确书写规则。 2.掌握VB变量的定义和使用,表达式和常用函数的使用。 3.掌握InputBox与MsgBox的使用。 实验3.1函数考察 实验任务: 考察下列函数的值。 Round(-3.5) Round(3.5) Chr(66) Asc ("c") Asc(Chr(99)) Chr(Asc("K")) Ucase$("abcdefg") Lcase(“ABC”) Str(123.45) Val(“123AB”) Len(“123程序设计ABC”) LenB(“123程序设计ABC”) Ltrim(“ ABC”) String(3, “ABC”) Instr(“EFABCDEFG”, “ef”) Instr(2,“EFABCDEFG”, “ef”,1) Date() Now() Time() 实验步骤: 先自己分析以上函数的功能和可能的结果,然后在立即窗口用Print方法求出相应函数的值,对照比较自己的判断。 22

实验3.2表达式考察 实验任务: 考察下列表达式的值。 Dateadd(“m”,1,#1/30/2000#) Datediff(“y”,#12/03/1999#,#1/03/2000#) ‘计算时间间隔多少日 123 + Mid(“123456”,3,2) 123 & Mid(“123456”,3,2) Ucase(Mid(“abcdefgh”,3,4)) 16 / 4 – 2 ^ 5 * 8 / 4 MOD 5 \ 2 实验步骤: 先自己分析表达式的功能和可能的结果,然后在立即窗口用Print方法求出相应表达式的值,对照比较自己的判断。 实验3.3简单打印图形 实验任务: 使用Print方法、Tab函数和String函数设计一个过程,显示如图3-1所示的图形,并将结果保存到文件中。 图3-1 实验3.2运行界面 参考代码如下: Private Sub Form_Load() Print Tab(15); String(1, "1") Print Tab(14); String(3, "2") Print Tab(13); String(5, "3") Print Tab(12); String(7, "4") End Sub 操作提示: 应先将Form窗体的AutoRedraw属性值设为True。

编程实训心得体会范文3篇

编程实训心得体会范文3篇 编程技术的学习是一个分阶段不断提高的过程,因此教材的内容应按不同的学习阶段进行合理的分配。下面是OK带来的编程实训心得体会范文,欢迎大家阅读。 经过五天的Java实训,感触很深,收获也很大,对自己的缺点也有了很多的认识,回首本学期JAVA学习,重点还是在学习概念等一些常识性的东西,关于类型、变量、接口、输入输出流、分析异常、抛出异常,后期主要是小程序运用,Gui界面设计和事件。 在我学习的语言中,我自己认为Java是一门比较强大的面向对象的编程语言,不仅仅是因为它的跨平台型还有它的较强的实用性,强悍的嵌入性。 本次实训主要是针对我们对项目流程不熟悉和对整体项目的把握不清楚,学习数据库的设计和表的建设以及表与表之间的联系,还有一些代码的编写,这些都是我们所不熟悉的也是我们最薄弱的部分。 通过这一周的实训,虽然实训的时间不长,但是总体上收获挺大的,当我们正式准备学习实训java编程技术时,让我感到非常高兴,因为java一直学的是课本知识,所以实训对于我来说是必须要

学会熟练操作的。当然开始学习后也并非是想象中那样顺利,开始的学习让我异常感到学习任务的艰巨,因为学习中我遇到了很多以前未曾遇到的难点,有时后也难免会失去耐心,但是,通过老师的指导,自己的努力的练习,我顺利的化解了一道道的障碍。克服了Java学习上的一道道难关,现在自己已经基本掌握了java的基础知识。 有些知识点以前没有学过,但我也没有去研究,实训时突然间觉得自己真的有点无知,虽然现在去看依然可以解决问题,但要浪费许多时间,这一点是我必须在以后的学习中加以改进的地方,同时也要督促自己在学习的过程中不断的完善自我。另外一点,也是在实训中必不可少的部分,就是同学之间的互相帮助。所谓”当局者迷,旁观者清”,有些东西感觉自己做的是时候明明没什么错误,偏偏程序运行时就是有错误,让其他同学帮忙看了一下,发现其实是个很小的错误。所以说,相互帮助是很重要的一点,这在以后的工作或生活中也是很关键的。俗话说:“要想为事业多添一把火,自己就得多添一捆材”。 此次实训,我深深体会到了积累知识的重要性。在实训当中我们遇到了不少难题,但是经过我们大家的讨论和老师细心的一一指导,问题得到了解决。两个月的实训结束了,收获颇丰,同时也更深刻的认识到要做一个合格的程序员并非我以前想像的那么容易,

单片机实验4 子程序设计-- BCD码转换为二进制

实验4. 子程序设计----BCD 码转换为二进制 单字节可存放两位压缩BCD 码(0—99) 为0 —9) 单字节BCD 码转换为二进制子程序 入口:(R0)= 压缩BCD 码的地址 出口:(A)= 转换结果 DSFR::MOV A,@R0 ANL A,#0F0H ;取十位数 SWAP A ;变为标准BCD 码 MOV B,#10 MUL AB ;(A)=D1×10 MOV R7,A ;D1× 10暂存 R7 MOV A,@R0 ANL A,#0FH ;取个位 ADD A,R7 ;A=D1×10+D0 RET 1、实验内容: 子程序设计要点: 1) 子程序一般为多次返复使用的程序段,一般应说明入口条件,DSFR 子程序的 入口条件是:被转换为二进制的单字节BCD 码为间接寻址,间接寻址寄存器为R0。要调用DFSR 子程序必需先将压缩BCD 码的存放地址赋与R0。而出口条件是指最后结果在哪儿存放。本子程序转换结果在ACC 内。 2) 主程序调用子程序,在调试时一般要先调试子程序、再调试主程序。

2、实验步骤 1)打开PV32编程序。汇编正确进入调试界面。否则修改程序重新汇编直到通过。 2)打开DATD窗口给20H、21H、R6、R7赋值 3)单步调试DSFR子程序观察并记禄寄存器、内存的变化。判断程序是否正确。若发现 问题重返编辑界面,修改、存盘、汇编。返回调试界面调试通过。 4) 设断点调试主程序观察并记禄寄存器、内存的变化。判断程序是否正确。若发现问 题重返编辑界面,修改、存盘、汇编。返回调试界面调试通过。 3.实验报告 1.写出主程序流程图、子程序流程图、程序清单 2.根据记渌数据给程序加注解 3.调试心得

C语言程序设计实验报告

《C程序设计》实验教学大纲 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分: 4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握C 语言程序设计的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 注:带*的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。

2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。 九、实验项目 实验一 C程序的运行环境和运行一个C程序的方法 一、实验目的 1.了解Visual C++编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1.用编辑程序,输入教材第一章例程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的 2.编写一个C程序,输出以下信息: **************************** very good! **************************** 3.输入并运行教材第一章中例,了解如何在运行时向程序变量输入数据。 实验二数据类型、运算符和表达式 一、实验目的 1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 二、实验内容 1.输入并运行以下程序: main( ) { char c1,c2; c1=97;c2=98; printf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } 在此基础上 ①将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2; 再使之运行,分析其运行结果。。 2.输入并运行以下程序: main( ) {int i=8,j=10,m,n; m=++i;n=j++;

试验项目试验一最简单的C程序设计

试验项目试验一最简单的C程序设计

实验项目:实验一最简单的C程序设计 (所属课程:《C语言程序设计》学时:2) 一、实验目的 1.掌握:使用标准输入/输出函数进行常见数据类型的数据的输入/输出方法。 2.初步培养编制程序框图和源程序、准备测试数据以及实际调试程序的独立编程能力。 3.掌握顺序结构程序设计的基本思路。 二、实验条件 Pc和vc++编程环境 三、实验内容 1.熟悉编程环境。 2.输入并运行一个C程序 3.掌握各种格式转换符的正确使用方法。 4.编程序:设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。要求用scanf函数从键盘上输入数据(半径和高),输出各计算结果,输出时要求有文字说明,取小数点后2位数字。5.编程序:用getchar函数输入两个字符给C1、C2,然后分别用putchar函数和printf函数输出这两个字符。 四、实验步骤 编写程序,输入数据,观察结果。

五、实验结果 观察结果和预期是否一致。 实验项目:实验二选择结构程序设计 (所属课程:《C语言程序设计》学时:2) 一、实验目的 1.了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。 2.学会正确使用逻辑运算符和逻辑表示式。 3.熟练掌握if语句和switch语句 二、实验条件 Pc和vc++编程环境 三、实验内容

1.有一函数: ?????≥-<≤-<=)10x (113x ) 10x 1(12x )1x (x y 用scanf 函数输入x 的值,求y 值。 运行程序,输入x 的值(分别为x<1、1≤x <10、x ≥10三种情况),检查输出的y 值是否正确。 2.给出一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。90分以上为A ,81~89分为B ,71~79分为C ,61~69分为D ,60分以下为E 。 3.输入4个整数,要求按由小到大顺序输出。 四、实验步骤 编写程序,输入数据,观察结果。 五、实验结果 观察结果和预期是否一致。 实验项目:实验三 循环结构程序设计

程序设计心得体会

程序设计心得体会 【收获及体会】 通过两个星期的折腾,总算把课程设计给完成了,这是一个坚苦而又漫长的过程。是啊,读了那么多年的书,课程设计可是第一次。看着劳动成果,很欣慰!虽然这不是我一个人做的,是大家的共同努力得来的。 也许完成不了!两个星期前我们这样说,完成他没问题!一个星期前我们这样说,现在我们可以说:哈哈,完成啦! 刚开始,可以说是没有头绪,于是就去图书馆找资料,找到了一些关于画图方面的,可是这点小进展远远不够,这只是一个小小的开始。下一步是上网查,找到了些与我们题目相似的,那时我们每个人都很高兴,可是那还不是我们要的,于是又上网查到了些有关的函数等等,终于在我们大家的努力下,完成了这个程序。 虽然对着电脑做程序,有点累有点热,可是当看到劳动成果时,真是别有一番滋味在心头啊!世上无难事,只怕有心人,的确如此。做完这个程序最大的收获就是感受到了集体的力量,当然个人的智慧也是很重要的哦! 做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;尽管对于有些人这种程序会很简单,可对我们c语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在很美妙啊! 姜* 【收获及体会】 忙碌了一个多星期,在大家的共同努力下,我们总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。 另外平时扎实的基础也很关键,因为如果你平时学得就不怎么样,那么你面对这么一个比较有难度的程序,你可能会望而却步,看他人的程序都是个难点,更别说让你自己去设计。为了解决此。类问题,最好就是多向同学,老师请教,不要怕难为情。尤其是老师,评他们多年的编写程序的经验,要解决我们的问题,对他们来说只是small case。 在设计这个程序时,我们刚开始是根据老师给我们提供的资料,用画图以及循环将框架设计出来,但是接下去便无从下手了,计算是个关键和难点,我们也查了相应的资料,但是它上面用得是坐标来做的,所以为了方便设计程序,我们也改为坐标来做的,这样计算问题解决了。接下去就是按键问题,我们的资料是用鼠标做的,所以关于按键这个函数就只能我们自己设计,还好手头有类似的资料,经过自己的反复尝试以及与与同学的讨论,这也不难,最好还是被我们搞定了。最后就是闪烁,这个设计的方法很死板,都一个类型,就是算坐标比较烦琐,要确定好它的位置,但是这些只要你自己愿意去尝试,问题都可以迎刃而解的。从这一个多星期的设计过程中,我看到了大家的拼搏与努力,也让我知道团队精神得难能可贵,尽管一年下来大家不怎么有多大接触,但是彼此之间的友谊已经在我们心里扎根生底,在遇到问题时,我们会共同进退,每个人都很慷慨不会因为是通过自己艰辛劳动设计出来的东西而不准他人剽窃了。 总之,这次设计程序让我受益良多,我会好好珍惜像这种难得的机会共11页,当前第1页

微机实验 子程序设计

微机实验三分支和循环程序设计实验 一、分支程序设计实验 1.实验目的 1.掌握分支程序的结构。 2掌握分支程序的设计、调试方法。 2.实验设备 微机一台 3.内容 设计一数据块间的搬移程序 设计思想: 程序要求把内存中一数据区(称为源数据块)传送到另一存贮区(称为目的数据块)。源数据块和目的数据块在存贮中可能有三种情况。 对于两个数据块分离的情况,数据的传送从数据块的首址开始,或者从数据块的末址开始均可,但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏。 可以得出以下结论:当源数据块首址〉目的块首址时,从数据块首址开始传送数据。当源数据块首址〈目的块首址时,从数据块末地址开始传送数据。 流程图: 结果: 在源数据块中存入6个数,分别使SI大于、等于、小于DI均发觉数据正确传送。可见程序正确。

实现代码如下: DATA SEGMENT ORG 3500H SRC_MESS DB 1,2,3,4,5,6 ORG 3510H NEW_LOC DB 20 DUP(0) DATA ENDS ; CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX LEA SI,SRC_MESS LEA DI,NEW_LOC MOV CX,6 CLD ;DF置0 CMP SI,DI ;源数据块首址〈目的块首址时,从数据块末地址开始传送数据。 JL NEXT1 ;如果SI小于DI,则跳转到NEXT1(否则直接执行NEXT2) NEXT2: REP MOVSB NEXT1: ADD SI,CX ; SI=SI+CX-1 从末地址开始传递数据 DEC SI ; ADD DI,CX ;DI+=DI+CX-1 DEC DI ; STD ; DF置1 JMP NEXT2 ; CODE ENDS END START 结果显示:将3500H开始的1,2,3,4,5,6复制到3510H开始的地址。 DATA SEGMENT

c语言程序设计基本输入输出和简单程序设计

实验3 基本输入输出和简单程序设计 实验目的 1.掌握常用的C语言语句,熟练应用赋值、输入、输出语句。 2.理解C语言程序的顺序结构,掌握顺序结构设计的基本方法。 3.进一步熟悉C程序的编辑、编译、连接和运行以及调试跟踪的过程。 实验内容 1.准备实验环境: (1)启动Visual Studio 201X 或者Codeblocker等C程序开发的IDE (2)如果保留了实验1的工程项目,则可以直接双击工程项目文件夹中的.sln 文件打开它即可。否则,按实验1的做法,创建一个Win32控制台应用程序(即ConsoleApplication)工程,以自己的姓名全拼音为工程名称。可能有些同学已经忘记了,我们再指导一遍: 首先新建项目:

2.理解分析程序,熟悉基本的C程序输入输出。 1)给工程新建一个源程序文件,取名为"你的姓名全拼_3_1.c",并将以下程序编写进该源程序保存: #include int main() { int a=25; double d = 4321.123456789012345; char c = 'T'; printf("你的姓名_3_1:理解输出!\n");/* 改姓名哦*/ printf("a = :%d;%5d;%-5d;%+05d!\n",a,a,a,-a); printf("a = :%5x;%o!\n",a,a); printf("d = :%f;%15f;%8.3f;%20.15f;%.2f!\n",d,d,d,d,d); printf("c = :%c;%5c;%-5c!\n",c,c,c); } 运行该程序,将运行的结果截图放在下面: 程序运行的结果图:

实验十一 子程序设计

实验十一子程序设计 知识提要: 1、掌握子程序的定义语句; 过程名 PROC [near/far] 过程体 RET 过程名 ENDP 其中过程名的命名方法与变量名相同,同一源程序中不能有相同的过程名.PROC为过程定义开始的伪指令,ENDP为过程定义结束伪指令,且PROC-ENDP必须配对使用。配对的PROC-ENDP 前面的过程名应相同。NEAR/FAR定义了过程的属性,前者表示所定义的过程只能被相同代码段的程序调用,称为段内调用;而后者所表示的过程只能被不同代码段的程序调用,称为段间远调用。 2.子程序结构形式 一个完整的子程序一般应包含下列内容: 1.)子程序的说明部分 在设计了程序时,要建立子程序的文档说明,使用户能清楚此子程序的功能和调用方法.说明时,应含如下内容: .子程序名:命名时要见名中意. .子程序的功能:说明子程序完成的任务; .子程序入口参数:说明子程序运行所需参数及存放位置; .子程序出口参数:说明子程序运行结果的参数及存放位置; .子程序所占用的寄存器和工作单元; .子程序调用示例; 2、)掌握子程序的调用与返回 在汇编语言中,子程序的调用用CALL,返回用RET指令来完成。当发生CALL过程调用时,返回地址入栈;而运行RET指令时,则由栈顶取出返回地址。 CALL指令执行分两步走;第一步,保护返回地址,利用堆栈实现,即将返回的地址压入

堆栈;第二步,转向子程序,即把子程序的首地址送入IP 或CS :IP 。 RET 指令功能是返回主程序,即把子程序的返回地址送入IP 或CS :IP 。 .段内调用与返回:调用子程序指令与子程序同在一个段内。因此只修改IP ; .段间调用与返回:调用子程序与子程序分别在不同的段,因此在返回时,需同时修改CS :IP 。 3.)子程序的现场保护与恢复 保护现场:在子程序设计时,CPU 内部寄存器内容的保护和恢复,在运行主程序时已经占用了一定数量的寄存器,子程序执行时也要使用寄存器。子程序执行完返回主程序后,要保证主程序按原来状态执行,这就需要对那些在主程序和子程序中都要使用的寄存器的内容在子程序体执行之前加以保护,这就是保护现场。 恢复现场:子程序执行完后再恢复这些主程序中寄存器的内容,称为恢复现场。 一般利用堆栈实现现场保护和恢复的格式: 过程名PROC [NEAR/FAR] PUSH AX PUSH BX . . PUSH DX . . . POP DX . . . POP AX RET 过程名 ENDP 4.子程序的参数传递方法 1. 寄存器传递参数

相关文档
最新文档