实验一-源程序的输入和扫描
基于arm的汇编实验报告
竭诚为您提供优质文档/双击可除基于arm的汇编实验报告篇一:汇编实验报告实验一(1)熟悉汇编语言程序调试环境及顺序程序设计一、实验目的及要求:1.学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互之间的关系。
2.学会使用eDIT、mAsm、LInK、Debug等软件工具。
3.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。
二、熟悉汇编语言程序调试环境1.汇编语言源程序的建立本例中给出的程序是要求从内存中存放的10个无符号字节整数数组中找出最小数,将其值保存在AL寄存器中。
设定源程序的文件名为Abc。
DATAsegmenTbuFDb23h,16h,08h,20h,64h,8Ah,91h,35h,2bh,7Fh cneQu$-buFDATAenDscoDesegmenTAssumecs:coDe,Ds:DATAsTART:pushDsxoRAx,AxpushAxmoVAx,DATAmoVDs,AxmoVbx,oFFseTbuFmoVcx,cnDeccxmoVAL,[bx]IncbxLp:cmpAL,[bx]JbenexTmoVAL,[bx]nexT:IncbxDeccxJnZLpmoVAh,4chInT21hcoDeenDsenDsTART键入以下命令:c:\>eDITAbc.Asm此时屏幕的显示状态如图1所示。
1图1用eDIT编辑Abc.Asm程序窗口程序输入完毕后一定要将源程序文件存入盘中,以便进行汇编及连接,也可以再次调出源程序进行修改。
2.将源程序文件汇编成目标程序文件一般情况下,mAsm汇编程序的主要功能有以下3点:(1)检查源程序中存在的语法错误,并给出错误信息。
(2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.obJ。
(3)若程序中使用了宏指令,则汇编程序将展开宏指令。
源程序建立以后,在Dos状态下,采用宏汇编程序mAsm 对源程序文件进行汇编,其操作过程如图2所示。
实验一-源程序的输入和扫描
湖南农业大学信息科学技术学院学生实验报告printf("#");if(s[j]>= 'a' && s[j]<='z'|| s[j]>='A' && s[j]<='Z')//判断字符串是否是由字母组成的单词{if(s[j]!=' ')printf("%c",s[j]);elseprintf("#%c",s[j]);}if(s[j]=='<'||s[j]=='>'||s[j]=='>='||s[j]=='<='||s[j]==';'||s[j]=='(' ||s[j]==')'||s[j]=='.'||s[j]=='+'||s[j]=='-'||s[j]=='='||s[j]=='*')printf("#%c",s[j]);if(s[j]>='0'&&s[j]<='9')printf("%c",s[j]);elseprintf("#%c",s[j]);}printf("#\n");return 0;}【实验结果和总结】(对实验结果进行相应分析,或总结实验的心得体会,并提出实验的改进意见)1 实验结果记录(截图)2 实验总结遇到的问题所用的时间所用方法和手段以及心得体会通过这次试验我理解了源程序被编译器读取的过程,掌握扫描程序的编写方法,同时也重新熟悉了C 语言的使用。
C语言程序设计实验报告 实验一 简单程序设计
C语言程序设计实验报告实验一简单程序设计班级 2017231 学号 201723128 姓名郭鹏博一、实验目的1、熟悉VC6.0编程环境。
2、掌握使用VC6.0输入源程序、编译连接和运行程序的基本过程。
3、练习C调试程序的方法。
4、熟练使用赋值运算、算术运算等表达式。
5、熟练使用标准输入、输出函数及各种数据类型的格式说明符。
二、实验内容及步骤1、分析程序,根据要求写出结论:课本P83页第4题、第5题;第4题(1)c1=a,c2=bc1=97,c2=98原因:字符变量实质上是一个字节的整形变量,由于它常用来存储字符,所以称为字符变量。
可以把0到127之间的整数赋给一个字符变量。
在输出字符变量的值时,可以选择以十进制整数形式或字符形式输出。
(2)c1=?c2=?c1=-59,c2=-58原因:Visual C++系是把char默认为signed char类型的,而signed char类型的变量允许存储的值为—128~127,但字符的代码不可能为负值,所以在存储字符时实际上只用到0~127这一部分,其第1位都是0。
给字符型变量赋值197和198时,所赋之值超出了字符变量的取值范围,导致无论是以以十进制整数形式输出还是以字符形式输出,输出结果均错误。
(3)c1=a,c2=bc1=97,c2=98原因同(1)第5题2、程序改错下面程序的功能是计算球体的表面积和球体的体积,程序中有多处错误,并且指定必须按下面的形式输入、输出数据。
请对程序做相应的修改。
#include <stdio.h>main{double r,s,v;int pi=3.14;scanf("%d",r);S=4*pi*r*r; /*计算球体的表面积*/V=4.0*pi*r*r*r/3.0; /*计算球体的体积*/printf("%d",r);printf("s=%f\n",s,"v=%d\n",v);}当程序运行时,要求屏幕的显示和指定的输入形式如下:input r:2.0<回车> (此处的2.0是由用户输入的数据)r=2.000000 (此处要求的是输出形式)s=50.24000000,v=33.49333333具体要求:(1)在VC6.0环境中输入上述源程序。
微机原理及应用实验(题目)
微机原理及应用实验实验一开发环境的使用一、实验目的掌握伟福开发环境的使用方法,包括源程序的输入、汇编、修改;工作寄存器内容的查看、修改;内部、外部RAM内容的查看、修改;PSW中个状态位的查看;机器码的查看;程序的各种运行方式,如单步执行、连续执行,断点的设置。
二、实验内容在伟福开发环境中编辑、汇编、执行一段汇编语言程序,把单片机片内的30H~7FH 单元清零。
三、实验设备PC机一台。
四、实验步骤用连续或者单步的方式运行程序,检查30H-7FH 执行前后的内容变化。
五、实验思考1.如果需把30H-7FH 的内容改为55H,如何修改程序?2.如何把128B的用户RAM全部清零?六、程序清单文件名称:CLEAR.ASMORG 0000HCLEAR: MOV R0,#30H ;30H 送R0寄存器MOV R6,#50H ;50H 送R6寄存器(用作计数器)CLR1: MOV A,#00H ;00 送累加器AMOV @R0,A ;00 送到30H-7FH 单元INC R0 ;R0 加1DJNZ R6,CLR1 ;不到50H个字节,继续WAIT: LJMP WAITEND实验二数据传送一、实验目的掌握MCS-51指令系统中的数据传送类指令的应用,通过实验,切实掌握数据传送类指令的各种不同的寻址方式的应用。
二、实验内容1.编制一段程序,要求程序中包含7中不同寻址方式。
2.编制一段程序,将片内RAM30H~32H中的数据传送到片内RAM38H~3AH中。
3.编制一段程序,将片内RAM30H~32H中的数据传送到片外RAM1000H~1002H 中。
4.编制一段程序,将片内RAM40H~42H中的数据与片外RAM2000H~2002H中的数据互换。
三、实验设备PC机一台。
四、实验步骤逐段编制程序,汇编无误后,用连续或者单步的方式运行程序,检查程序的运行结果,看是否达到预期的效果。
五、实验思考1.如何把片外RAM中1000H~100FH单元中的数传送到片外RAM中2000H~200FH单元中?2.如何把ROM中0200H~0207H单元的数传送至片外RAM0000H~0007H单元中?实验三数码转换一、实验目的掌握采用软件方法进行不同形式数据之间的转换,如十进制数与二进制数的转换、十六进制数与BCD码的转换、BCD数与ASCII码之间的转换、非压缩BCD码与压缩BCD码之间的转换。
编译原理实验报告
编译原理实验报告班级姓名:学号:自我评定:实验一词法分析程序实现一、实验目的与要求通过编写和调试一个词法分析程序,掌握在对程序设计语言的源程序进行扫描的过程中,将字符形式的源程序流转化为一个由各类单词符号组成的流的词法分析方法。
二、实验内容根据教学要求并结合学生自己的兴趣和具体情况,从具有代表性的高级程序设计语言的各类典型单词中,选取一个适当大小的子集。
例如,可以完成无符号常数这一类典型单词的识别后,再完成一个尽可能兼顾到各种常数、关键字、标识符和各种运算符的扫描器的设计和实现。
输入:由符合或不符合所规定的单词类别结构的各类单词组成的源程序。
输出:把单词的字符形式的表示翻译成编译器的内部表示,即确定单词串的输出形式。
例如,所输出的每一单词均按形如(CLASS,VALUE)的二元式编码。
对于变量和常数,CLASS字段为相应的类别码;VALUE字段则是该标识符、常数的具体值或在其符号表中登记项的序号(要求在变量名表登记项中存放该标识符的字符串;常数表登记项中则存放该常数的二进制形式)。
对于关键字和运算符,采用一词一类的编码形式;由于采用一词一类的编码方式,所以仅需在二元式的CLASS字段上放置相应的单词的类别码,VALUE字段则为“空”。
另外,为便于查看由词法分析程序所输出的单词串,要求在CLASS字段上放置单词类别的助记符。
三、实现方法与环境词法分析是编译程序的第一个处理阶段,可以通过两种途径来构造词法分析程序。
其一是根据对语言中各类单词的某种描述或定义(如BNF),用手工的方式(例如可用C语言)构造词法分析程序。
一般地,可以根据文法或状态转换图构造相应的状态矩阵,该状态矩阵同控制程序便组成了编译器的词法分析程序;也可以根据文法或状态转换图直接编写词法分析程序。
构造词法分析程序的另外一种途径是所谓的词法分析程序的自动生成,即首先用正规式对语言中的各类单词符号进行词型描述,并分别指出在识别单词时,词法分析程序所应进行的语义处理工作,然后由一个所谓词法分析程序的构造程序对上述信息进行加工。
《编译原理及实践实验课程》实验一 C++源代码单词扫描程序(词法分析)
院系:计算机学院实验课程:编译原理及实践实验课程实验项目:C++源代码单词扫描程序(词法分析)指导老师:XXX开课时间:XXXX~ XXXX年度第 1学期专业:XXXX班级:XXXX级本X班学生:XXX学号:XXXXXXXX实验一:C++源代码单词扫描程序(词法分析)一、实验题目C++包含了多种符号类型,主要有标识符、数(包括整数、浮点数)、关键字、注释、字符串、特殊符号、运算符号等等。
通过编写一个C++源代码打你扫描程序,实现对扫描文件进行词法分析,并输出分析结果。
二、实验功能1. C++源代码扫描程序识别C++记号C++语言包含了几种类型的记号:标识符,关键字,数(包括整数、浮点数),字符串、注释、特殊符号(分界符)和运算符号等。
2. 打开一个C++源文件,打印出所有以上的记号3. 要求应用程序应为Windows界面4. 选作部分:为了提高C++源程序的可读性,C++程序在书写过程中加入了空行、空格、缩进、注释等。
假设你想牺牲可读性,以节省磁盘空间,那么你可以存贮一个删除了所有不必要空格和注释的C++源程序的压缩文本。
因此,程序中还应该有这样的压缩功能。
5. 选作部分:进一步思考或实现——如何进一步实现减小源文件大小的压缩功能。
6. 应该书写完善的软件文档。
三、实验思路1. 通过文件流方式,实现字符的读取,因此先定义文件流名:FILE *fp; //定义文件名,在文件流使用2. 对于读取出来的字符,进行类型的判断,分别从以下函数实现:(1)当读取的是字符串时,则调用字符串处理函数,声明如下:c har string(char c[]); //字符串处理函数声明(2)当读取的是字母时,则调用字母处理函数,声明如下:char letter(char ch); //字母处理函数声明(3)当读取的是数字时,则调用数字处理函数,声明如下:char number(char ch); //数字处理函数声明(4)当读取的既不是字符串,也不是字母,又不是数字,则调用其他处理函数,声明如下:char other(char ch); //其他处理函数声明3. 为了空格、换行等进行判断识别,调用了头文件为“ctype.h”中的函数isspace( )、isdigit( )、isalnum( )等。
C语言实验报告(实验一)
运行结果:
分析:当对源程序进行编译时,如果屏幕上没有出现“出错信息”,就对其进行运行并得出结果运行结果是会出现如下信息:
得到的运行结果如下:
分析:当写完一个源程序要仔细检查,如果出现错误提醒就按照上面的指示对其进行修改,只有
输入的数为:
运行结果:
分析:如果在输入数时两个数中间用空格符隔开,即
为
当把其改为原来的程序再运行时错误提醒就会消失,并得到和上面的结果一样的结果:
分析:合并后没有出现错误提醒,即这样做是正确的。
输入的三个数为:
分析:在前面的比较两个数中的大数的基础上比较三个数的最大数,只要在输入的源程序没有错。
试验一 源程序的输入和扫描
试验一源程序的输入和扫描试验一源程序的输入和扫描实验一源程序的输入和扫描学时数:2[实验内容]:1、基本建设一个源程序的输出、读取程序,从文件中每次初始化一行至输出缓冲区(可以用字符数组实现);然后从缓冲区中依次取出字符显示在屏幕上。
2、从文件每次初始化一行至输出缓冲区的功能(可以用字符数组同时实现)用一个子程序同时实现。
[实验目的]:1、通过基本建设一个源程序的输出、读取程序,熟识和介绍从文件中初始化数据至输出缓冲区的过程。
[实验步骤]:1、准备工作:用tc、vc++等开发工具;确认被处置的语言的语法特点(初步确认,可以采用非常简单语言如pascal、c等)。
编成不好程序,写下不好实验报告。
2、上机:输出源程序,修正、调试,运转。
编程思想:使用一个子程序同时实现的形式。
(1)程序判断源文件是否为null,如果是,则输出错误提示!如果不是,则进入循环。
(2)调用子程序readbuffer(),每次读入一个字符给字符变量,如果字符变量的内容不是回车符,则把字符变量的内容取走数组buffer(),然后初始化下一字符,再推论再取走数组,直至一行全系列取走数组,然后回到主程序,用输入语句输入刚才取走数组的一行字符;(3)如果没至文件尾,则重复第(2)步,直至文件完结,则选择退出主程序,顺利完成任务![程序要求]:1)在磁盘上创建一个文件a.c,文件内容输出如下一段c语言源程序。
2)运行编制好的输入、扫描程序,要求运行的输出结果与输入的文件内容相同。
本次实验主要熟识用c语言同时实现文件的输出和输入过程,撰写这个程序必须能够同时实现从键盘输入若干行字符并载入文件中,然后从文件中念出字符,按照输出的格式输入在屏幕上。
首先在磁盘上创建a.c文件,文件内容如下:a.c文件内容:main(){inta,b,c;a=10;b=20;c=a+b;}然后撰写源程序并运转和调式,看看输入的文件内容与否和输出的格式一样。
源程序:输入、扫描程序源代码(仅供参考):#include#include#includeinti;file*fp;charbuffer[256];//声明变量intreadbuffer()//念字符子程序已经开始{intj=0;charch;while(j<256){ch=fgetc(fp);if(ch=='\\n')//字符变量的内容就是回车符吗?{i=j;return0;//是回车符,保存字符个数返回0。
【精品】实验一汇编语言源程序的输入70
实验一汇编语言源程序的输入一、实验目的1.通过实验了解和熟悉微机系统的配置。
2.学习在DEBUG状态下输入汇编源程序的方法。
3.初步掌握调试(在DEBUG状态下)的过程。
二、实验原理1. 本实验要求在DEBUG状态下输入汇编源程序,并用DEBUG命令进行调试。
用单步跟踪的方法验证指令的功能。
2. 以下是给定的参考程序,并在实验时在每条指令的“;”符号右边按要求填写指令的执行结果。
注:⑴微机进入DEBUG状态下之后,一切立即数和地址数据均被默认为十六进制数,在输入时数的后面不加后缀“H”;⑵在DEBUG状态下执行程序时,“INT 20H”指令可使系统执行完该指令前的程序时返回到“-”提示符状态,并且恢复CS和IP寄存器原来的值。
三、实验仪器微机一台,软盘一块。
四、实验步骤1.开机和关机操作顺序开机:先打开微机外部设备电源开关,如显示器、打印机,最后打开主机电源开关。
关机:与开机相反,先关掉主机电源开关,然后关闭所有外设的电源开关。
2. 开机之后,把已准备好的PC-DOS系统软盘插入到A驱动器中,等待微机系统自检完成。
若自检无故障,计算机将自动引导A驱动器的DOS操作系统,实现DOS系统的启动,并出现提示符:A >若微机系统带有硬盘驱动器,且PC-DOS操作系统已装入硬盘,机器自检后(A驱动器门应打开),可以在硬盘上直接启动PC-DOS操作系统,此时,出现提示符:C >若计算机启动、自检出现故障,不能启动DOS系统时,可同时按下Ctrl+Alt+Del三个键,再重新启动一次(热启动),或关断主机电源重新送电一次(冷启动),若再失败,说明主机确有故障,应停止上机。
3. 装入DEBUG程序若计算机系统启动正常,可以从磁盘上调用DEBUG程序到内存。
一般C盘上或PC-DOS软盘上装有DEBUG软件,若没有,可以用COPY命令从其它盘拷贝过来,然后从装有DEBUG的磁盘上调用DEBUG程序。
例如:C > DEBUG↙(↙回车符)-(-DEBUG 提示符)或A > DEBUG-当显示器出现提示符“-”时,说明已进入DEBUG状态,这时,可用DEBUG命令进行操作。
实验一 程序的输入与执行
实验一程序的输入与执行一、实验的目的1.熟悉键盘的使用方法2.熟悉程序的输入和执行过程3.通过实验了解程序和数据在RAM 中的位置二、实验内容求算式1AH+0FH +24H+4EH+18H+2DH=???E0默认16进制,不需要输入表示16进制H.输入数据用 E如在3000处开始输入数据为提示符>E3000显示0000:3000=CC- 输入1A后面数据用空格间隔,下一个数据0F 空格全部数据输入完成后回车显示数据用D提示符>D3000为显示地址为3000处的数据内容如果发现数据错误,重新编辑某地址内容还是用E**** (****为偏移地址)重新输入,空格键是移向下一个字节,-号键是移向上一个字节。
输入程序用 A如在2000处开始输入程序提示符>后输入A2000以回车结束后输入新一行程序检查显示程序用U**** (****为偏移地址),显示内容为地址16进制编码汇编编码用调节看上下行程序单纯查看程序的16进制编码(机器码)用E如提示符>后输入E2000程序运行用G=如运行2000处开始的程序为提示符>后输入G=2000检查运行结果,为检查地址的16进制内容。
为E**** (****为偏移地址)录入数据:提示符>E30001A 0F 24 4E 18 2D输入回车提示符>D3000一行显示8个字节。
1A 0F 24 4E 18 2D CC CC (空的用CC标示)参考程序:MOV SI,3000H (地址2000开始,为BF 00 30)MOV CX,0006H (地址2003开始,为B9 06 00)XOR AL,AL (地址2006开始,两个字节)AA:ADD AL,[SI] (输入时不输入AA:,检查时会显示ADD AL,B[SI]) (地址2008开始)INC SIDEC CXJNZ AA(实际输入时输入AA的偏移地址2008.不需要加[])MOV [3040H] ,ALHLT提示符>U2000回车为检查刚刚输入的程序提示符> E2000回车为检查刚刚输入的程序反汇编后的机器码提示符> G=2000回车为运行2000处开始的程序最后输入E3040回车为显示保存在3040处的结果为E0思考题:如果将数据区和程序区的开始地址相同,结果如何?程序采用什么数制存储在RAM区?。
大学c语言实验报告-1基本输入输出
实现程序流程
写程序代码
调试验证代码
四、实验原始纪录(源程序、数据结构等)
11.原程序:
12.原程序:
13.原程序:
14.原程序:
五、实验结果及分析(计算过程与结果、数据曲线、图表等)
11题输出结果:
12题输出结果:
13题输出结果:1ຫໍສະໝຸດ 题输出结果:六、实验总结与思考
1.本次试验初步了解了输入与输出函数在实际程序中的运行及VC++的使用。
2.对逻辑运算了解的更加深刻。
教师评语:
二实验主要仪器和设备计算机三实验方法与步骤需求分析算法设计思路流程图等分析题目实现程序流程写程序代码调试验证代码四实验原始纪录源程序数据结构等11
实验报告
课程名称程序设计基础——c语言
实验项目名称实验1基本输入输出
实验学生班级
实验学生姓名
学 号
同组学生姓名\
实验时间
实验地点
实验成绩评定
指导教师签字年月日
一、实验目的和要求
1.理解该部分的概念。包括:
掌握该部分的用法,熟练编写程序应用
2.上机调试之前必须携带已经编写完毕的程序源代码,实验过程中主要是进行调试。
3.上机时间不足以完成实验项目的同学利用课外时间做完所有项目。
4.根据所选实验内容完成实验报告。
二、实验主要仪器和设备
计算机
三、实验方法与步骤(需求分析、算法设计思路、流程图等)
c语言程序设计实验指导书
c语⾔程序设计实验指导书《C 语⾔程序设计》实验指导书实验⼀C 程序的运⾏环境⼀、实验⽬的1、了解所⽤的计算机系统的基本操作⽅法,学会独⽴使⽤该系统;2、了解在该系统上如何编辑、编译、连接和运⾏⼀个C 程序;3、通过运⾏简单的C 程序,初步了解C 程序⼆、实验预习1、认真阅读简单的C 程序介绍,C 程序上机步骤部分内容;2、编写好所需要的程序,程序的书写应该清楚整洁,⼀般检查应该是没有明显的错误。
如果在程序中有疑问的地⽅,可以标记起来,以便于上机调试时予以注意。
初学者特别忌讳上机前⾃⼰不编写程序,到时随便地抄别⼈的程序。
三、实验指导1、输⼊并运⾏⼀个简单的程序,从⽽熟悉所⽤系统的上机⽅法与步骤。
(1)选择“File”—“New”—“Win32 console application”,输⼊⼯程名称,确定。
直接选择第⼀项“An empty project”,点击“Finish”。
“File”—“New”—File框下⾯选择⽂件类型“C++ Source File” ,输⼊⽂件名称,点击“OK”。
(2)输⼊下⾯的程序(例题1.1)#includevoid main( ){printf("This is a C program.\n");}(3)选择“Build”菜单下“Compile”选项,快捷键为Ctrl+F7。
编译过程将源代码转化成⽬标⽂件格式,后缀名为.o。
选择“Build”菜单下“Build”选项,快捷键为F7。
如果出现“出错信息”,则应找出原因并改正之,再进⾏编译构建。
(4)如果编译⽆错误,选择“Build”菜单“Execute”选项,运⾏程序,快捷键为Ctrl+F5,观察分析运⾏结果。
2、输⼊并编辑⼀个C 程序(1)同上,新建⼯程和⽂件。
(2)输⼊以下程序(例题1.2,但故意漏打或打错⼏个字符)#includevoid main( ){int a,b,sum ;a=123 ;b=456 ;sum=a+b ;printf("sum is %d\n",sum);}(3)以下步骤同上⼀例题3、输⼊并运⾏⼀个需要在运⾏时输⼊数据的程序(1)清空编辑窗⼝,输⼊下⾯的程序(例题1.3)。
实验一_源程序的输入和扫描
} //main()结束
实验调试过程及测试结果
输入程序运行调试后实现源程序的输入和扫描:
1、源程序输入如下一段:(可以输入别的任何程序段)
main()
{
int a,b,c;
a = 10;
b=20;
c=a+b;
}
程序运行时输入如下图:
2、源程序扫描又输出上面输入的程序段如下图
i++; //i是统计已写入的字符个数
}
fclose(fp); // 关闭文件句柄
return i;
}
int readbuffer() //子程序开始
{
int flen=0; //定义整形变量flen,初始值为0
int j=0;
char ch;
char *filename="yanan";
//声明变量
printf("2、input o open the file \n");
scanf("%c",&creatflie) ;
if(creatflie=='c')
//printf("\n请输入内容进入你所创建的文件中,输入数字$创建完成\n");
WriteFile(filename);
if(creatflie=='o')
flen++;} //数组指针下移
printf("\n"); //换行
return 1;
} //子程序结束
main() //main()开始
{
char *filename={"yanan"};
源程序的输入和扫描演示教学
湖南农业大学信息科学技术学院学生实验报告
4 关键代码
#include <stdio.h>
int main()
{
freopen("D:\\colin1.txt","r",stdin);//读取实验文件
input();
process();
return 0;
}
【实验结果和总结】(对实验结果进行相应分析,或总结实验的心得体会,并提出实验的改进意见)1 实验结果记录(截图)
实验文件:(截图)
实验结果:(截图)
2 实验总结遇到的问题所用的时间所用方法和手段以及心得体会
这个程序存在很多的不足和漏洞,但是我想这只是我的初步程序,应该花更多的时间去考其他的可能性,尽力的完善它。
所用的时间:程序花费2小时。
遇到的问题;
1. 在处理字母字符和数字字符的时候将每个字符分开输出,比如:#P##R#,#2##3#。
2. 程序里的输入处理语句比较困难,不会用freopen条令。
所用的方法和手段:
1. 设置循环语句,进行判断然后输出。
2. 与同学交流,并上网查询。
源程序的输入及预处理实验报告
实验报告一一、实验题目:源程序的输入及预处理二、实验目的:根据所学知识编写程序使其在预处理之后,将源程序中的注释与空格去掉,并将处理后的源程序输出。
三、实验内容:(1)源代码#include <fstream.h>#include <iostream.h>void pro_process(char *);void main( ) //测试驱动程序{//定义扫描缓冲区char buf[4048]={'\0'}; //缓冲区清0//调用预处理程序pro_process(buf);//在屏幕上显示扫描缓冲区的内容cout<<buf<<endl;}void pro_process(char *buf) //预处理程序{ifstream cinf("source.txt",ios::in);int i=0; //计数器char old_c='\0',cur_c; //前一个字符,当前字符。
bool in_comment=false; //false表示当前字符未处于注释中。
while(cinf.read(&cur_c,sizeof(char))){ //从文件读一个字符switch(in_comment){case false:if((old_c=='/' && cur_c=='*')||(old_c=='/' && cur_c=='/')){ //进入注释i--; //去除已存入扫描缓冲区的字符'/'in_comment=true;}else {if(old_c=='\\' && cur_c=='\n') //发现续行i--; //去除已存入扫描缓冲区的字符'\' else {if(cur_c>='A' && cur_c<='Z')//大写变小写cur_c+=32;if(cur_c =='\t' || cur_c =='\n') //空格取代TAB换行cur_c=' ';buf[i++]=cur_c ;}}break;case true:if((old_c=='*' && cur_c=='/')||cur_c=='\n') //离开注释in_comment=false;}//end of switchold_c= cur_c; //保留前一个字符}//end of whilebuf[i++]='#'; //在源程序尾部添加字符'#'}(2)、运行源代码,将源程序写入source.txt文本中。
实验 简单扫描程序
实验简单扫描程序实验要求与目的初步掌握Socket 网络编程基础。
实验内容实现简单的扫描器程序,只简单地测试与对方主机的某个端口是否能够连接成功,如果连接成功,就说明该端口已经打开,否则说明端口未打开。
实验结果:(记录完毕后,填写页眉的姓名班级学号,然后上传)1.程序源代码// nmnmmn.cpp : Defines the entry point for the console application. //#include "stdafx.h"// nmnmmn.cpp : Defines the entry point for the console application. //#include "stdafx.h"#include <string.h>#include <winsock.h>#include <windows.h>#include <iostream.h>#pragma comment(lib,"ws2_32.lib")int main(int argc, char* argv[]){// return 0;int iportForm=1,iportTo=65535;int testsocket;int iopenedport=0;struct sockaddr_in target_addr;WSADATA wsaData;WORD wVersionRequested=MAKEWORD(1,1);if(argc<2){cout<<"usage:"<<argv[0]<<"host startport endport\n"<<endl; exit(1);}if(iportForm>iportTo){cout<<"错误!开始端口号必须小于结束端口号"<<endl;exit(1);}else{if(WSAStartup(wVersionRequested,&wsaData)){cout<<"连接socket库失败,请检查版本号是否为1。
实验一、二实验报告
实验一熟悉VC++开发环境实验一熟悉VC++开发环境一、实验目的1、熟悉VC++开发环境。
2、学会启动Visual C++集成环境;生成和编辑源程序;编译链接源程序;运行程序。
二、实验内容1、启动Visual C++当在桌面上建立了VC++的图标后,可通过鼠标双击该图标启动VC++;若没有建立相应的图标,则可以通过菜单方式启动VC++,即用鼠标单击“开始”菜单,选择“程序”,选择“Microsoft Visual Studio 6.0”,选择“Microsoft Visual C++ 6.0”启动VC++。
VC++启动成功后,就产生如图1.1所示的VC++集成环境。
VC++集成环境是一个组合窗口。
窗口的第一部分为标题栏;第二部分为菜单栏,其中包括“File(文件)”、“Edit(编辑)”、“View(视图)”、“Insert(插入)”、“Project(项目)”、“Build(编译、连接和运行)”、“Tools(工具)”、“Windows (窗口)”、“Help(帮助)”等菜单。
第三部分为工具栏,其中包括常用的工具按钮;第四部分为状态栏。
还有几个子窗口。
图1.1 VC++集成环境2、生成源程序文件生成源程序文件的操作步骤为:(1)选择“File”菜单中的“New”命令,产生“New”对话框,如图1.2所示。
图1.2 新建对话框(2)单击此对话框的左上角的File(文件)选项卡,选择C++ Source File 选项。
如下图所示:图1.3 设置源文件保存路径(3)设置源文件保存路径若将源文件保存在默认的文件存储路径下,则可以不必更改Location(目录)文本框,但如果想在其他地方存储源程序文件则需在对话框右半部分的Location (目录)文本框中输入文件的存储路径,也可以单击右边的省略号(…)来选择路径(例如输入“E:\sperls\vc试验手册\”,表示源程序文件将存放在“E:\sperls\vc 试验手册\”子目录下,当然,这么做还必须有个前提,就是你的电脑上必须已经建立了“E:\sperls\vc试验手册”这个文件夹)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南农业大学信息科学技术学院学生实验报告
printf("#");
if(s[j]>= 'a' && s[j]<='z'|| s[j]>='A' && s[j]<='Z')//判断字符串是否是由字母组成的单词
{
if(s[j]!=' ')
printf("%c",s[j]);
else
printf("#%c",s[j]);
}
if(s[j]=='<'||s[j]=='>'||s[j]=='>='||s[j]=='<='||s[j]==';'||s[j]=='('
||s[j]==')'||s[j]=='.'||s[j]=='+'||s[j]=='-'||s[j]=='='||s[j]=='*')
printf("#%c",s[j]);
if(s[j]>='0'&&s[j]<='9')
printf("%c",s[j]);
else
printf("#%c",s[j]);
}
printf("#\n");
return 0;
}
【实验结果和总结】(对实验结果进行相应分析,或总结实验的心得体会,并提出实验的改进意见)
1 实验结果记录(截图)
2 实验总结遇到的问题所用的时间所用方法和手段以及心得体会
通过这次试验我理解了源程序被编译器读取的过程,掌握扫描程序的编写方法,同时也重新熟悉了C语言的使用。
指导教师签名:
20 年月日【备注】。