第一篇:实验2-vi编辑器
西华大学数学与计算机学院上机实验报告
西华大学数学与计算机学院上机实验报告
课程名称: linux操作系统
指导教师:刘世林
上机实验名称:vi编辑器
上机实验编号:
年级:级 姓名:学号: 组号: 上机实验成绩:上机实验日期: 上机实验时间:12:30-13:30 提示:(教材p312)。一些实用的vi命令
yy复制当前行;3yy复制当前行开始的以下3行;4yy复制当前行开始的以下4行;….p粘贴复制的内容
dd删除当前行;3dd删除当前行开始的以下3行;4dd删除当前行开始的以下4行;…./模式查找;例,/count查找文本中的字符串”count”,/[0-9][0-9]
/模式替换;例,:1,9s/abc/xyz将1-9行的字符串abc替换成xyz。若有每行只替换1个。例,:1,9s/abc/xyz/g将1-9行的字符串abc替换成xyz。每行全替换。将第7章所讲的程序均用vi编辑,在编辑中注意使用本实验所提到的命令
一、实验目的学习使用vi编辑器建立,编辑,显示及加工处理文本文件。
二、实验内容
1.2.3.4.进入和退出vi 利用文本插入方式建立一个文件 在信笺的文本文件上移动光标位置 对该文件执行删除,复原,修改,替换等操作。
三、使用环境
1.硬件环境
微型计算机一台(intel® core CPU)(内存2G)
2.软件环境
VMware Workstation、Ubuntu11
四、核心代码及调试过程
五、总结
注:给出x,dd,u,c,r,等命令的功能,和你的体会
第二篇:实验2 vi编辑器和GCC编译器
实验2 vi编辑器和GCC编译器
学院: 工业自动化学院 专业: 机器人工程一班 年级: 19 实验时间:
姓名: 李宇轩 学号: 190410105022 组别:_______ 指导教师:
一、实验目的练习使用vi编辑器三种模式:
了解编译的四个阶段,熟悉gcc编译器的使用。
掌握gcc编译器常用的选项参数。
二、实验环境与条件1.标配PC机
2.VMware Workstation 10
3.Ubuntu 16.04
三、实验过程及说明1.根据实验指导书hello.c的程序,编写程序输出自己的姓名学号。分别截图表示程序的内容和输出结果。
2.将test.c文件转换为汇编语言、机器语言,分别使用cat指令查看,并附上截图。
3.按照实验指导书要求编写C语言源程序sum.c,截图表示该程序的内容,对sum.c预编译后,截图表示预编译后的内容。
4.在sum.c的基础上修改程序(使程序的计算复杂),执行优化选项进行编译。对比不加优化选项,程序的执行耗时,截图表示。
修改后:
四、简答题1.简述vi编辑器三种模式如何进行切换。
按下vi进入默认输入模式,可以输入命令;在命令模式下输入 i可以进行文本输入模式,若想回到命令模式下,按下esc即可;在命令行模式下,输入:可进入末行模式,可以对文本进行保存和退出vi编辑器
2.将C语言源程序编译成可执行文件,依次经过哪些阶段?分别对文件做哪些处理?
预处理→编译→汇编→链接/加载
预处理:将存储在不同文件的源程序(.c文件)聚合在一起,将语言中的宏进行替换,比如预处理指令#include,让编译器打开包含的文件,将其程序与其他程序呆在一起.生成.i文件。
编译:预处理源程序(.i文件)变为汇编程序(.s文件)
汇编:将汇编程序转换为可重定位的机器代码,这一步产生目标文件(.obj或.o文件)。
链接/加载:链接就是把目标文件和其他分别进行编译生成的程序模块(如果有的话)及系统提供的标准库函数连接在一起,生成可运行的可执行文件的过程,加载时将各代码与数据定位到内存合适的位置,这一步产生最终的可执行文件
第三篇:实验报告8、RPM软件管理&vi编辑器
课程:LINUX操作系统
实验课题:RPM软件管理
指导教师:陈懋
实验报告
实验名称:用户管理
实验目的:掌握linux操作系统的RPM软件管理及vi编辑器的使用 实验原理:(空)
实验仪器:计算机、vmware虚拟机软件
实验步骤:
第一步、第二步、。
。
。。
实验结果:
第四篇:VB课程设计-文本编辑器
学院名称学生姓名专业名称班
级VB课程设计报告
——文本编辑器
: : : :
一、课程设计题目
用Visual Basic程序设计语言编写一个简易的文本编辑器
要求:有最基本的文本编辑功能,包括复制、剪切、粘贴、字体设置、背景颜色设置、字体颜色设置;同时拥有文本管理功能,包括打开文件、保存文件;以及完整的系统运行退出等功能,所有的操作可选择设定的快捷键。
二、课程设计目的
虽然本学期的Visual Basic课程是自学的,相对于课堂学习有些不足,但通过平时的上机实验,初步掌握了VB程序设计的各种方法,学会了编写最基本的VB程序;对于完整的VB程序设计来讲是很不足的,平时掌握的只是单独的窗体(Form)程序编写,以及各种简单控件的使用,没有做到很好连贯性,所以有必要做一次完整的VB程序设计,结合所学的基本知识,使用多个窗体自成一套系统,加上各种控件的综合运用,初步设计一个合格的VB应用程序;这样在巩固VB所学的同时,更好地学会程序设计的一些思想和方法,对于以后的编程学习或是工作有重要的实践意义。
三、课程设计说明
题目为文本编辑器,即是最基本的文本编辑程序,首先必须做好文本编辑器本身的功能,然后对其完善,做成一个完整的小程序
功能设计说明:功能是这个文本编辑器的核心内容,也就是程序的作用,它是用来做什么的;本程序就是用来编写文本的,编写过程中要利用到窗体(Form)一个,控件包括:RichTextBox1(超文本框)、CommonDialog(通用对话框),以及InputBox(消息框)、菜单编辑器等。要做的工作就是编写代码把这些控件和窗体等结合为一体,使得程序能够成为一体,顺畅运行。
本次设计在按照题目要求的前提下,为了完整地展示一个应用程序,在最初就设计为最基本的文本的编辑器,所以取名为“易记本”,就是简易记事本的简称,然后加入图标,在程序完成之后还进行了大包操作,得到应用程序的安装文件,最后安装在电脑上运行使用。四.源代码
Private Sub Command1_Click()Dim i As Integer If Text2.Text <> “123456” Then i = MsgBox(“密码错误”, 5 + vbExclamation, “警告”)If i <> 6 Then End Else Text2.Text = “" Text2.SetFocus End If End If Form1.Hide Form2.Show End Sub
Private Sub Form_Load()Text1.Text = ”“ Text1.MaxLength = 6
Text2.Text = ”“ Text2.MaxLength = 6 Text2.PasswordChar = ”*“ End Sub
Private Sub Text1_LostFocus()If Not IsNumeric(Text1.Text)Then MsgBox ”帐号必须为数字“, , ”警告“ Text1.Text = ”“ Text1.SetFocus End If End Sub
Private Sub Command1_Click()Form2.Hide Form3.Show End Sub
Private Sub Command2_Click()Form2.Hide Form4.Show End Sub
Private Sub Command3_Click()Form2.Hide Form5.Show End Sub
Private Sub Color_Click()CommonDialog1.Action = 3 Text1.ForeColor = CommonDialog1.Color End Sub
Private Sub Command1_Click()Form3.Hide Form2.Show End Sub
Private Sub Copy_Click()Dim st As String st = Text1.SelText End Sub
Private Sub Cut_Click()
Dim st As String st = Text1.SelText Text1.SelText = ”“ End Sub
Private Sub Exit_Click()End End Sub
Private Sub Font_Click()CommonDialog1.Flags = cdlCFBoth Or cdlCFEffects CommonDialog1.Action = 4 Text1.FontName = CommonDialog1.FileName Text1.FontSize = CommonDialog1.FontSize Text1.FontBold = CommonDialog1.FontBold Text1.FontItalic = CommonDialog1.FontItalic Text1.FontStrikethru = CommonDialog1.FontStrikethru Text1.FontUnderline = CommonDialog1.FontUnderline Text1.ForeColor = CommonDialog1.Color End Sub
Sub New_Click()Text1.Text = ”“ Me.Caption = File End Sub
Sub Open_Click()CommonDialog1.Action = 1 Text1.Text = ”“ Open CommonDialog1.FileName For Input As #1 Do While Not EOF(1)Line Input #1, inputdata Text1.Text = Text1.Text + inputdata + vbCrLf Loop Close #1 End Sub
Private Sub Paste_Click()Text1.SelText = st End Sub
Private Sub Print_Click()CommonDialog1.Action = 5 For i = 1 To CommonDialog1.Copies
Printer.Print Text1.Text Next i Printer.EndDoc End Sub
Private Sub SaveAs_Click()CommonDialog1.FileName = ”vb课设用.txt“ CommonDialog1.DefaultExt = ”txt" CommonDialog1.Action = 2 Open CommonDialog1.FileName For Output As #1 Print #1, Text1.Text End Sub
Dim arr As Long, sum As Long, a As Integer Private Sub Command1_Click()a = HScroll1.Value Text1.Text = plus(a)Call isprime(a)End Sub
Private Sub Command2_Click()End End Sub
Private Sub HScroll1_Change()Label2.Caption = HScroll1.Value End Sub Sub isprime(max As Integer)Dim x As Integer, i As Integer, j As Integer For i = 2 To max x = 0 For j = 2 To ictP * 2 Show1 ctDu(I), &HFFFFFF /(ctDuS + 1)* I * 0.6 Next Dim x As Single, y As Single Static J As Single Picture1.DrawWidth = 15 x0 = Picture1.ScaleWidth * 0.5: y0 = Picture1.ScaleHeight * 0.5 Picture1.PSet(x0, y0), 255 x = 1200: y = 0: J = JJ x = S * Cos(J + ToJ): y = S * Sin(J + ToJ)End Sub Private Sub Command1_Click()End End Sub
五、运行结果
六. 心得体会
通过本次课程设计,使我对VB的认识更加深入了一层,VB主要由两部分组成,一个是Visual可视化界面设计,另一个是Basic程序设计。对于第一部分,我觉得还是比较容易的,因为它比较直观。就目前我所学的,对于第二部分还是比较困难。在做设计的过程中发现自己存在不少问题,由于word知识欠缺,我没有办法为我的课程设计创建目录,这让我觉得很遗憾,尤其是对VB编程语句的不熟悉而造成在运行过程的很多次出错。具体说文本编辑器的设计,首先是控件的使用要注意,例如不能使用平时一般的Text文本框,因为其只适用于一般的文本显示,使用RichTextBox,可拥有文本的完整功能,不用再添加滚动条等控件,而是使用其自带的滚动条;其实是菜单的设计,应注意菜单的名称书写,不能出现重复现象,否则要使用索引,不仅增加麻烦更不利于程序编写,然后编写代码的时候应注意必须与菜单中的名字一一对应,否则会出现错误;最后要注意程序的完整性以及实用性、便捷性,能够有友好的UI设计,给用户最好的体验。
第五篇:华中科技大学C++实验总结报告(图形编辑器)
C++ 实验总结报告
研究课题:图形编辑器 学 校:华中科技大学 院 系: 班 级: 姓 名: 指导老师:
一、实验目的
1.熟悉C++的一些重要性质,利用封装、继承、虚函数和多态性等特性,通过实验学习如何对各类图元的属性和方法进行合理的封装 2.学习Microsoft的Visual C++编程工具 3.掌握MFC的相关知识
4.掌握基本的文件保存、读取以及操作封装技术
二、实验目的
设计一个简单的图形编辑器
三、实验所用仪器、设备
计算机:PentiumIII 800 以上
256M内存 操作系统:Windows 2000/XP 开发集成环境:Visual C++ 6.0
四、软件功能简介
(注:此软件是从网上下载得来)
该软件具有汉化的菜单界面(仿Windows自带画图软件),具有文件打开、编辑、保存等功能。编辑部分包括可以在编辑区域画直线、圆、矩形、曲线等矢量图形,可插入文字,可以修改线条的线型、颜色等基本属性。
五、部分代码分析
1.直线类代码:
class CCreateLine : public CCommand { private: Position m_begin;// 直线的起点
Position m_end;// 直线的终点
public: CCreateLine();~CCreateLine();
int GetType();int OnLButtonDown(UINT nFlags, const Position& pos);int OnMouseMove(UINT nFlags, const Position& pos);int OnRButtonDown(UINT nFlags, const Position& pos);
int Cancel();};学习C++我们最需要理解的就是它面向对象的设计思想。这种思想可以在类和对象上得到充分的体现。
类是面向对象程序设计的核心,它实际上是由用户定义的一种新的复杂数据类型。它是通过抽象数据类型ADT方法来实现的一种数据类型,将不同类型的数据和与这些数据相关的操作封装在一起形成一个集合体。因此,它具有更高的抽象性,实现了信息的隐藏和封装。
对象是某种类的一个实例,是类的具体体现。一个类可以有多个对象。
分析这一段代码,编程者将直线的起始点和终止点设置为私有成员,这样做就对整条直线实现了隐藏和保护,是面向对象中封装特性的一个具体体现;另外,此函数中还包含了构造函数与析构函数,构造函数完成对新对象的初始化工作,析构函数是构造函数的配对物,它实现与构造函数相反的功能。另外的几个成员函数名称形参返回值都与class Ccommand 中的几个公有函数相同,而在class Ccommand中,这几个函数都是虚函数,这是函数重载,也是多态性的具体体现。
由这段代码我们可以了解关于类和对象的一些知识,为我们进一步了解面向对象程序设计的思想精髓奠定了基础。
2.对构造函数和解析函数的分析
构造函数
CCreateLine::CCreateLine(): m_begin(0,0), m_end(0,0){
m_nStep = 0;// 初始化操作步为 0 }
此构造函数用初始化列表的方式对直线类的私有成员进行初始化,同时记下操作步m_nStep是直线类从指令类中继承来的成员,它在指令类中属于保护成员,在直线类中则成为私有成员。这是数据共享与数据保护两者兼顾时的一种处理方法。
析构函数
CCreateLine::~CCreateLine(){ }
此析构函数中没有任何操作语句,但它并非没有任何操作。在任何一个对象消失时都要调用本类的析构函数进行扫尾工作。在构造对象时,构造函数分配资源给程序,在对象作用结束后,这些资源的释放就要靠析构函数。当然析构函数中也是可以有语句的,当需要在对象消失之前执行某种操作时,可以把语句写在里边。
3.BOOL Cline::Pick(const Position&pos,const double pick_radius){ Position objPos=pos;BOX2D sourceBox,desBOX;GetBox(&sourceBox);desBox.min[0]=sourceBox.min[0]-pick_radius;desBox.min[1]=sourceBox.min[1]-pick_radius;desBox.max[0]=sourceBox.max[0]+pick_radius;desBox.max[1]=sourceBox.min[1]+pick_radius;if(!objPos.lslnBox(desBox))return FALSE;double angle=::GetAngleToXAxis(m_begin,m_end);Position dp =objPos-m_begin;Double dist = fabs(dp.x*cos(angle)+dp.y*sin(angle)-objPos.Distance(m_begin));if(dist<=pick_radius)return TRUE;return FALSE;}
在阅读此函数的源代码过程中,我感觉到对类创建的合理划分对整个程序具有着十分重要的意义。正如上段代码,它的前提是对类进行了合理的划分,只有在对类进行了合理的划分后,我们才能更加高效地处理对象。所以,我感觉到在学习面向对象程序设计时,应当尤为注意类的创建与划分。
六、个人学习体会
在学习C++以前,我认为C++只是在C语言的基础上的一种延伸,认为只要学过C语言,就可以用C语言的那种设计思想来学习C++、设计C++程序。正是由于抱了这种错误的思想,使我在一开始学习C++的时候遇到了很大的困难,我没有办法体会面向对象的设计思想,我在学习这门课的时候老是想着实现这个函数功能的具体过程,而没太注意对象分类的重要性。
随着课程学习的深入,我感觉到了利用类和对象、继承、封装等一系列知识可以把我们程序中很多繁杂、重复的部分省略掉,还可以解决一些利用面向过程的设计思想无法解决的问题,我自己也试着编写一些小的C++程序,当然在这个过程中遇到了很多困难,其中调试带来的困难让我无法忘记,在调试程序的同时,我也总结出来了一些调试的小技巧,让我在C语言课程设计中也受用匪浅。
在学习这门课的过程中,我感受到了自己亲自动手编程序、调程序的重要性,我们要熟悉C++的语法、体会调试的思想,最好的一个手段就是自己动手编程、调试,这会比我们一味的看书效果好得多。另外,我还感觉到一个好的程序编出来需要很多人的团结合作。我在检查自己编写的程序是否有BUG未被找出的时候,我会让我的同学作为一个程序使用者来找出未发现的BUG并提出改进意见,这让我们的工作更加高效。
很高兴能够了解到C++的神奇魅力和面向对象程序设计的独特思想,它为我今后的程序设计奠定了基础。感谢老师对我们的悉心教授!