第一篇:實(shí)驗(yàn)2-vi編輯器
西華大學(xué)數(shù)學(xué)與計(jì)算機(jī)學(xué)院上機(jī)實(shí)驗(yàn)報(bào)告
西華大學(xué)數(shù)學(xué)與計(jì)算機(jī)學(xué)院上機(jī)實(shí)驗(yàn)報(bào)告
課程名稱: linux操作系統(tǒng)
指導(dǎo)教師:劉世林
上機(jī)實(shí)驗(yàn)名稱:vi編輯器
上機(jī)實(shí)驗(yàn)編號:
年級:級 姓名:學(xué)號: 組號: 上機(jī)實(shí)驗(yàn)成績:上機(jī)實(shí)驗(yàn)日期: 上機(jī)實(shí)驗(yàn)時(shí)間:12:30-13:30 提示:(教材p312)。一些實(shí)用的vi命令
yy復(fù)制當(dāng)前行;3yy復(fù)制當(dāng)前行開始的以下3行;4yy復(fù)制當(dāng)前行開始的以下4行;….p粘貼復(fù)制的內(nèi)容
dd刪除當(dāng)前行;3dd刪除當(dāng)前行開始的以下3行;4dd刪除當(dāng)前行開始的以下4行;…./模式查找;例,/count查找文本中的字符串”count”,/[0-9][0-9]
/模式替換;例,:1,9s/abc/xyz將1-9行的字符串a(chǎn)bc替換成xyz。若有每行只替換1個(gè)。例,:1,9s/abc/xyz/g將1-9行的字符串a(chǎn)bc替換成xyz。每行全替換。將第7章所講的程序均用vi編輯,在編輯中注意使用本實(shí)驗(yàn)所提到的命令
一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)使用vi編輯器建立,編輯,顯示及加工處理文本文件。
二、實(shí)驗(yàn)內(nèi)容
1.2.3.4.進(jìn)入和退出vi 利用文本插入方式建立一個(gè)文件 在信箋的文本文件上移動光標(biāo)位置 對該文件執(zhí)行刪除,復(fù)原,修改,替換等操作。
三、使用環(huán)境
1.硬件環(huán)境
微型計(jì)算機(jī)一臺(intel? core CPU)(內(nèi)存2G)
2.軟件環(huán)境
VMware Workstation、Ubuntu11
四、核心代碼及調(diào)試過程
五、總結(jié)
注:給出x,dd,u,c,r,等命令的功能,和你的體會
第二篇:實(shí)驗(yàn)2 vi編輯器和GCC編譯器
實(shí)驗(yàn)2 vi編輯器和GCC編譯器
學(xué)院: 工業(yè)自動化學(xué)院 專業(yè): 機(jī)器人工程一班 年級: 19 實(shí)驗(yàn)時(shí)間:
姓名: 李宇軒 學(xué)號: 190410105022 組別:_______ 指導(dǎo)教師:
一、實(shí)驗(yàn)?zāi)康?p>練習(xí)使用vi編輯器三種模式:了解編譯的四個(gè)階段,熟悉gcc編譯器的使用。
掌握gcc編譯器常用的選項(xiàng)參數(shù)。
二、實(shí)驗(yàn)環(huán)境與條件1.標(biāo)配PC機(jī)
2.VMware Workstation 10
3.Ubuntu 16.04
三、實(shí)驗(yàn)過程及說明1.根據(jù)實(shí)驗(yàn)指導(dǎo)書hello.c的程序,編寫程序輸出自己的姓名學(xué)號。分別截圖表示程序的內(nèi)容和輸出結(jié)果。
2.將test.c文件轉(zhuǎn)換為匯編語言、機(jī)器語言,分別使用cat指令查看,并附上截圖。
3.按照實(shí)驗(yàn)指導(dǎo)書要求編寫C語言源程序sum.c,截圖表示該程序的內(nèi)容,對sum.c預(yù)編譯后,截圖表示預(yù)編譯后的內(nèi)容。
4.在sum.c的基礎(chǔ)上修改程序(使程序的計(jì)算復(fù)雜),執(zhí)行優(yōu)化選項(xiàng)進(jìn)行編譯。對比不加優(yōu)化選項(xiàng),程序的執(zhí)行耗時(shí),截圖表示。
修改后:
1.簡述vi編輯器三種模式如何進(jìn)行切換。
按下vi進(jìn)入默認(rèn)輸入模式,可以輸入命令;在命令模式下輸入 i可以進(jìn)行文本輸入模式,若想回到命令模式下,按下esc即可;在命令行模式下,輸入:可進(jìn)入末行模式,可以對文本進(jìn)行保存和退出vi編輯器
2.將C語言源程序編譯成可執(zhí)行文件,依次經(jīng)過哪些階段?分別對文件做哪些處理?
預(yù)處理→編譯→匯編→鏈接/加載
預(yù)處理:將存儲在不同文件的源程序(.c文件)聚合在一起,將語言中的宏進(jìn)行替換,比如預(yù)處理指令#include,讓編譯器打開包含的文件,將其程序與其他程序呆在一起.生成.i文件。
編譯:預(yù)處理源程序(.i文件)變?yōu)閰R編程序(.s文件)
匯編:將匯編程序轉(zhuǎn)換為可重定位的機(jī)器代碼,這一步產(chǎn)生目標(biāo)文件(.obj或.o文件)。
鏈接/加載:鏈接就是把目標(biāo)文件和其他分別進(jìn)行編譯生成的程序模塊(如果有的話)及系統(tǒng)提供的標(biāo)準(zhǔn)庫函數(shù)連接在一起,生成可運(yùn)行的可執(zhí)行文件的過程,加載時(shí)將各代碼與數(shù)據(jù)定位到內(nèi)存合適的位置,這一步產(chǎn)生最終的可執(zhí)行文件
第三篇:實(shí)驗(yàn)報(bào)告8、RPM軟件管理&vi編輯器
課程:LINUX操作系統(tǒng)
實(shí)驗(yàn)課題:RPM軟件管理
指導(dǎo)教師:陳懋
實(shí)驗(yàn)報(bào)告
實(shí)驗(yàn)名稱:用戶管理
實(shí)驗(yàn)?zāi)康模赫莆誰inux操作系統(tǒng)的RPM軟件管理及vi編輯器的使用 實(shí)驗(yàn)原理:(空)
實(shí)驗(yàn)儀器:計(jì)算機(jī)、vmware虛擬機(jī)軟件
實(shí)驗(yàn)步驟:
第一步、第二步、。
。
。。
實(shí)驗(yàn)結(jié)果:
第四篇:VB課程設(shè)計(jì)-文本編輯器
學(xué)院名稱學(xué)生姓名專業(yè)名稱班
級VB課程設(shè)計(jì)報(bào)告
——文本編輯器
: : : :
一、課程設(shè)計(jì)題目
用Visual Basic程序設(shè)計(jì)語言編寫一個(gè)簡易的文本編輯器
要求:有最基本的文本編輯功能,包括復(fù)制、剪切、粘貼、字體設(shè)置、背景顏色設(shè)置、字體顏色設(shè)置;同時(shí)擁有文本管理功能,包括打開文件、保存文件;以及完整的系統(tǒng)運(yùn)行退出等功能,所有的操作可選擇設(shè)定的快捷鍵。
二、課程設(shè)計(jì)目的
雖然本學(xué)期的Visual Basic課程是自學(xué)的,相對于課堂學(xué)習(xí)有些不足,但通過平時(shí)的上機(jī)實(shí)驗(yàn),初步掌握了VB程序設(shè)計(jì)的各種方法,學(xué)會了編寫最基本的VB程序;對于完整的VB程序設(shè)計(jì)來講是很不足的,平時(shí)掌握的只是單獨(dú)的窗體(Form)程序編寫,以及各種簡單控件的使用,沒有做到很好連貫性,所以有必要做一次完整的VB程序設(shè)計(jì),結(jié)合所學(xué)的基本知識,使用多個(gè)窗體自成一套系統(tǒng),加上各種控件的綜合運(yùn)用,初步設(shè)計(jì)一個(gè)合格的VB應(yīng)用程序;這樣在鞏固VB所學(xué)的同時(shí),更好地學(xué)會程序設(shè)計(jì)的一些思想和方法,對于以后的編程學(xué)習(xí)或是工作有重要的實(shí)踐意義。
三、課程設(shè)計(jì)說明
題目為文本編輯器,即是最基本的文本編輯程序,首先必須做好文本編輯器本身的功能,然后對其完善,做成一個(gè)完整的小程序
功能設(shè)計(jì)說明:功能是這個(gè)文本編輯器的核心內(nèi)容,也就是程序的作用,它是用來做什么的;本程序就是用來編寫文本的,編寫過程中要利用到窗體(Form)一個(gè),控件包括:RichTextBox1(超文本框)、CommonDialog(通用對話框),以及InputBox(消息框)、菜單編輯器等。要做的工作就是編寫代碼把這些控件和窗體等結(jié)合為一體,使得程序能夠成為一體,順暢運(yùn)行。
本次設(shè)計(jì)在按照題目要求的前提下,為了完整地展示一個(gè)應(yīng)用程序,在最初就設(shè)計(jì)為最基本的文本的編輯器,所以取名為“易記本”,就是簡易記事本的簡稱,然后加入圖標(biāo),在程序完成之后還進(jìn)行了大包操作,得到應(yīng)用程序的安裝文件,最后安裝在電腦上運(yùn)行使用。四.源代碼
Private Sub Command1_Click()Dim i As Integer If Text2.Text <> “123456” Then i = MsgBox(“密碼錯(cuò)誤”, 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 ”帳號必須為數(shù)字“, , ”警告“ 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課設(shè)用.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
五、運(yùn)行結(jié)果
六. 心得體會
通過本次課程設(shè)計(jì),使我對VB的認(rèn)識更加深入了一層,VB主要由兩部分組成,一個(gè)是Visual可視化界面設(shè)計(jì),另一個(gè)是Basic程序設(shè)計(jì)。對于第一部分,我覺得還是比較容易的,因?yàn)樗容^直觀。就目前我所學(xué)的,對于第二部分還是比較困難。在做設(shè)計(jì)的過程中發(fā)現(xiàn)自己存在不少問題,由于word知識欠缺,我沒有辦法為我的課程設(shè)計(jì)創(chuàng)建目錄,這讓我覺得很遺憾,尤其是對VB編程語句的不熟悉而造成在運(yùn)行過程的很多次出錯(cuò)。具體說文本編輯器的設(shè)計(jì),首先是控件的使用要注意,例如不能使用平時(shí)一般的Text文本框,因?yàn)槠渲贿m用于一般的文本顯示,使用RichTextBox,可擁有文本的完整功能,不用再添加滾動條等控件,而是使用其自帶的滾動條;其實(shí)是菜單的設(shè)計(jì),應(yīng)注意菜單的名稱書寫,不能出現(xiàn)重復(fù)現(xiàn)象,否則要使用索引,不僅增加麻煩更不利于程序編寫,然后編寫代碼的時(shí)候應(yīng)注意必須與菜單中的名字一一對應(yīng),否則會出現(xiàn)錯(cuò)誤;最后要注意程序的完整性以及實(shí)用性、便捷性,能夠有友好的UI設(shè)計(jì),給用戶最好的體驗(yàn)。
第五篇:華中科技大學(xué)C++實(shí)驗(yàn)總結(jié)報(bào)告(圖形編輯器)
C++ 實(shí)驗(yàn)總結(jié)報(bào)告
研究課題:圖形編輯器 學(xué) 校:華中科技大學(xué) 院 系: 班 級: 姓 名: 指導(dǎo)老師:
一、實(shí)驗(yàn)?zāi)康?/p>
1.熟悉C++的一些重要性質(zhì),利用封裝、繼承、虛函數(shù)和多態(tài)性等特性,通過實(shí)驗(yàn)學(xué)習(xí)如何對各類圖元的屬性和方法進(jìn)行合理的封裝 2.學(xué)習(xí)Microsoft的Visual C++編程工具 3.掌握MFC的相關(guān)知識
4.掌握基本的文件保存、讀取以及操作封裝技術(shù)
二、實(shí)驗(yàn)?zāi)康?/p>
設(shè)計(jì)一個(gè)簡單的圖形編輯器
三、實(shí)驗(yàn)所用儀器、設(shè)備
計(jì)算機(jī):PentiumIII 800 以上
256M內(nèi)存 操作系統(tǒng):Windows 2000/XP 開發(fā)集成環(huán)境:Visual C++ 6.0
四、軟件功能簡介
(注:此軟件是從網(wǎng)上下載得來)
該軟件具有漢化的菜單界面(仿Windows自帶畫圖軟件),具有文件打開、編輯、保存等功能。編輯部分包括可以在編輯區(qū)域畫直線、圓、矩形、曲線等矢量圖形,可插入文字,可以修改線條的線型、顏色等基本屬性。
五、部分代碼分析
1.直線類代碼:
class CCreateLine : public CCommand { private: Position m_begin;// 直線的起點(diǎn)
Position m_end;// 直線的終點(diǎn)
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();};學(xué)習(xí)C++我們最需要理解的就是它面向?qū)ο蟮脑O(shè)計(jì)思想。這種思想可以在類和對象上得到充分的體現(xiàn)。
類是面向?qū)ο蟪绦蛟O(shè)計(jì)的核心,它實(shí)際上是由用戶定義的一種新的復(fù)雜數(shù)據(jù)類型。它是通過抽象數(shù)據(jù)類型ADT方法來實(shí)現(xiàn)的一種數(shù)據(jù)類型,將不同類型的數(shù)據(jù)和與這些數(shù)據(jù)相關(guān)的操作封裝在一起形成一個(gè)集合體。因此,它具有更高的抽象性,實(shí)現(xiàn)了信息的隱藏和封裝。
對象是某種類的一個(gè)實(shí)例,是類的具體體現(xiàn)。一個(gè)類可以有多個(gè)對象。
分析這一段代碼,編程者將直線的起始點(diǎn)和終止點(diǎn)設(shè)置為私有成員,這樣做就對整條直線實(shí)現(xiàn)了隱藏和保護(hù),是面向?qū)ο笾蟹庋b特性的一個(gè)具體體現(xiàn);另外,此函數(shù)中還包含了構(gòu)造函數(shù)與析構(gòu)函數(shù),構(gòu)造函數(shù)完成對新對象的初始化工作,析構(gòu)函數(shù)是構(gòu)造函數(shù)的配對物,它實(shí)現(xiàn)與構(gòu)造函數(shù)相反的功能。另外的幾個(gè)成員函數(shù)名稱形參返回值都與class Ccommand 中的幾個(gè)公有函數(shù)相同,而在class Ccommand中,這幾個(gè)函數(shù)都是虛函數(shù),這是函數(shù)重載,也是多態(tài)性的具體體現(xiàn)。
由這段代碼我們可以了解關(guān)于類和對象的一些知識,為我們進(jìn)一步了解面向?qū)ο蟪绦蛟O(shè)計(jì)的思想精髓奠定了基礎(chǔ)。
2.對構(gòu)造函數(shù)和解析函數(shù)的分析
構(gòu)造函數(shù)
CCreateLine::CCreateLine(): m_begin(0,0), m_end(0,0){
m_nStep = 0;// 初始化操作步為 0 }
此構(gòu)造函數(shù)用初始化列表的方式對直線類的私有成員進(jìn)行初始化,同時(shí)記下操作步m_nStep是直線類從指令類中繼承來的成員,它在指令類中屬于保護(hù)成員,在直線類中則成為私有成員。這是數(shù)據(jù)共享與數(shù)據(jù)保護(hù)兩者兼顧時(shí)的一種處理方法。
析構(gòu)函數(shù)
CCreateLine::~CCreateLine(){ }
此析構(gòu)函數(shù)中沒有任何操作語句,但它并非沒有任何操作。在任何一個(gè)對象消失時(shí)都要調(diào)用本類的析構(gòu)函數(shù)進(jìn)行掃尾工作。在構(gòu)造對象時(shí),構(gòu)造函數(shù)分配資源給程序,在對象作用結(jié)束后,這些資源的釋放就要靠析構(gòu)函數(shù)。當(dāng)然析構(gòu)函數(shù)中也是可以有語句的,當(dāng)需要在對象消失之前執(zhí)行某種操作時(shí),可以把語句寫在里邊。
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;}
在閱讀此函數(shù)的源代碼過程中,我感覺到對類創(chuàng)建的合理劃分對整個(gè)程序具有著十分重要的意義。正如上段代碼,它的前提是對類進(jìn)行了合理的劃分,只有在對類進(jìn)行了合理的劃分后,我們才能更加高效地處理對象。所以,我感覺到在學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)時(shí),應(yīng)當(dāng)尤為注意類的創(chuàng)建與劃分。
六、個(gè)人學(xué)習(xí)體會
在學(xué)習(xí)C++以前,我認(rèn)為C++只是在C語言的基礎(chǔ)上的一種延伸,認(rèn)為只要學(xué)過C語言,就可以用C語言的那種設(shè)計(jì)思想來學(xué)習(xí)C++、設(shè)計(jì)C++程序。正是由于抱了這種錯(cuò)誤的思想,使我在一開始學(xué)習(xí)C++的時(shí)候遇到了很大的困難,我沒有辦法體會面向?qū)ο蟮脑O(shè)計(jì)思想,我在學(xué)習(xí)這門課的時(shí)候老是想著實(shí)現(xiàn)這個(gè)函數(shù)功能的具體過程,而沒太注意對象分類的重要性。
隨著課程學(xué)習(xí)的深入,我感覺到了利用類和對象、繼承、封裝等一系列知識可以把我們程序中很多繁雜、重復(fù)的部分省略掉,還可以解決一些利用面向過程的設(shè)計(jì)思想無法解決的問題,我自己也試著編寫一些小的C++程序,當(dāng)然在這個(gè)過程中遇到了很多困難,其中調(diào)試帶來的困難讓我無法忘記,在調(diào)試程序的同時(shí),我也總結(jié)出來了一些調(diào)試的小技巧,讓我在C語言課程設(shè)計(jì)中也受用匪淺。
在學(xué)習(xí)這門課的過程中,我感受到了自己親自動手編程序、調(diào)程序的重要性,我們要熟悉C++的語法、體會調(diào)試的思想,最好的一個(gè)手段就是自己動手編程、調(diào)試,這會比我們一味的看書效果好得多。另外,我還感覺到一個(gè)好的程序編出來需要很多人的團(tuán)結(jié)合作。我在檢查自己編寫的程序是否有BUG未被找出的時(shí)候,我會讓我的同學(xué)作為一個(gè)程序使用者來找出未發(fā)現(xiàn)的BUG并提出改進(jìn)意見,這讓我們的工作更加高效。
很高興能夠了解到C++的神奇魅力和面向?qū)ο蟪绦蛟O(shè)計(jì)的獨(dú)特思想,它為我今后的程序設(shè)計(jì)奠定了基礎(chǔ)。感謝老師對我們的悉心教授!