版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《C#語(yǔ)言程序設(shè)計(jì)》</p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 題 目 簡(jiǎn)單記事本的設(shè)計(jì) </p><p> 院、系(部) 計(jì)算機(jī)學(xué)院網(wǎng)絡(luò)工程系 </p><p> 專(zhuān)業(yè)及班級(jí)
2、 </p><p> 姓 名 </p><p> 學(xué) 號(hào) </p><p> 日 期 </p><p><b> 1 題
3、目要求</b></p><p> 使用C#語(yǔ)言設(shè)計(jì)一個(gè)Windows自帶記事本,實(shí)現(xiàn)記事本軟件的基本功能,具有文本文件的新建、打開(kāi)、保存功能,文字的全選、剪切、復(fù)制、粘貼、刪除、撤銷(xiāo)、查找、替換功能,字體類(lèi)型、格式的設(shè)置、顯示當(dāng)前日期與時(shí)間的功能,并在此記事本程序基礎(chǔ)上增加設(shè)置字體顏色,添加狀態(tài)欄功能。軟件界面美觀大方,操作簡(jiǎn)潔易用,功能完備可靠,必須上機(jī)調(diào)試通過(guò)。程序中應(yīng)有不少于100~300行的
4、自行編寫(xiě)的代碼,代碼需書(shū)寫(xiě)詳細(xì)注釋。</p><p><b> 2 功能需求</b></p><p> 1.文件操作:包括文件的新建、打開(kāi)、保存、另存為、打印及退出。</p><p> 通過(guò)主窗體文件菜單中的新建、打開(kāi)、保存及退出菜單項(xiàng)實(shí)現(xiàn)上述功能。執(zhí)行操作前,應(yīng)檢查當(dāng)前文本框中內(nèi)容是否已經(jīng)保存,若還沒(méi)有保存,彈出消息提示存盤(pán)。</
5、p><p> 2.編輯功能:包括剪切、復(fù)制、粘貼、刪除、全選、插入時(shí)間和日期、自動(dòng)換行。</p><p> 上述功能通過(guò)主窗體編輯菜單中的剪切、復(fù)制、粘貼、刪除、全選、插入時(shí)間和日期、工具欄、自動(dòng)換行等菜單項(xiàng)來(lái)實(shí)現(xiàn)。其中,剪切、復(fù)制、粘貼、刪除等操作是利用剪貼板對(duì)象來(lái)完成的,沒(méi)有選中文本時(shí),剪切和復(fù)制命令不可用;同樣若剪貼板中沒(méi)有內(nèi)容時(shí),粘貼命令也應(yīng)不可用。插入時(shí)間和日期菜單項(xiàng)是將系統(tǒng)的時(shí)
6、間和日期插入到光標(biāo)所在的位置。選中自動(dòng)換行菜單項(xiàng)將使文本框具有自動(dòng)換行功能。另外,可以點(diǎn)擊日期、時(shí)間,可以查看當(dāng)前日期、時(shí)間。當(dāng)文檔的一行輸滿以后,可以自動(dòng)換行。</p><p> 主窗體字體菜單中包含字體、字體顏色及字體大小菜單項(xiàng)。以方便字體、字號(hào)的選擇以及粗體、斜體、下劃線的設(shè)置,可以實(shí)現(xiàn)字體的編輯與設(shè)計(jì)。</p><p><b> 4.查找替換功能</b>&
7、lt;/p><p> 主窗體查找菜單中包含查找、替換菜單項(xiàng)。單擊該菜單項(xiàng)彈出查找/替換對(duì)話框完成查找替換功能。注意:查找時(shí),窗體中部分控件可以隱藏起來(lái),只顯示與查找有關(guān)的控件;而執(zhí)行替換操作時(shí),再讓它們顯示出來(lái)。</p><p><b> 3 總體設(shè)計(jì) </b></p><p><b> 4 詳細(xì)設(shè)計(jì)</b></p
8、><p> 文件(F)菜單用于完成新建(新建一個(gè)空白文檔)、打開(kāi)(打開(kāi)一個(gè)已經(jīng)存在的文檔)、保存(實(shí)現(xiàn)保存記事本的功能)、另存為(實(shí)現(xiàn)文件另存為的功能)、打?。ㄔ谖募枰蛴r(shí),可用此功能)、退出(退出記事本程序)。</p><p> 編輯(E)菜單用于完成撤銷(xiāo)(撤銷(xiāo)最近一次對(duì)文本框的編輯操作)、復(fù)制(復(fù)制選中的文本內(nèi)容)、剪切(剪切選中的文本內(nèi)容)、粘貼(粘貼剪貼板中的內(nèi)容)、全選(選中
9、多格式文本框中所有的內(nèi)容)、刪除(刪除選中的文本內(nèi)容),日期、時(shí)間(用于顯示當(dāng)前的系統(tǒng)日期、時(shí)間)。</p><p> 格式(O)菜單用于完成自動(dòng)換行(文檔一行輸滿后自動(dòng)換行)和字體的設(shè)計(jì)(設(shè)計(jì)字體的大小、顏色和類(lèi)型)。</p><p> 幫助(H)菜單用于查看文檔的信息(包括自己的班級(jí)、姓名、學(xué)號(hào))。</p><p> 具體功能實(shí)現(xiàn)如下所示:</p&g
10、t;<p> using System;</p><p> using System.Collections.Generic;</p><p> using System.ComponentModel;</p><p> using System.Data;</p><p> using System.Drawing;
11、</p><p> using System.Linq;</p><p> using System.Text;</p><p> using System.Windows.Forms;</p><p> using System.IO;</p><p> namespace 簡(jiǎn)單記事本</p>
12、<p><b> {</b></p><p> public partial class Form1 : Form</p><p><b> {</b></p><p> public Form1()</p><p><b> {</b></p>
13、;<p> InitializeComponent();</p><p><b> }</b></p><p> private void 查看ToolStripMenuItem_Click(object sender, EventArgs e)</p><p><b> { </b></p&g
14、t;<p><b> }</b></p><p> private void statusStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)</p><p><b> {</b></p><p><b> }&
15、lt;/b></p><p> private void 文件FToolStripMenuItem_Click(object sender, EventArgs e)</p><p><b> {</b></p><p><b> }</b></p><p> private void
16、 新建NToolStripMenuItem_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> if (this.richTextBox1.Modified == true) //判斷文檔是否已經(jīng)被修改</p><p><b> {</b>
17、;</p><p> DialogResult r = //如果已經(jīng)改變,詢(xún)問(wèn)用戶(hù)是否對(duì)已經(jīng)打開(kāi)的文檔進(jìn)行保存,是或者取消</p><p> MessageBox.Show("文件 “" + this.Text + "” 的內(nèi)容已經(jīng)修改。\n是否要保存?", "記事本", MessageBoxButtons.YesNo
18、Cancel, MessageBoxIcon.Exclamation);</p><p> if (r == DialogResult.Yes) //如果用戶(hù)要保存,則另存為文檔</p><p><b> {</b></p><p> 另存為L(zhǎng)ToolStripMenuItem_Click(sender, e);</p&g
19、t;<p> this.richTextBox1.Clear();</p><p> this.Text = "";</p><p><b> }</b></p><p> else if (r == DialogResult.No) //如果用戶(hù)不要求保存,則新建文檔</p><
20、p><b> {</b></p><p> this.richTextBox1.Clear();</p><p> this.Text = "";</p><p><b> }</b></p><p><b> else</b></p&
21、gt;<p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> this.richTextBox1.Clear
22、();</p><p><b> }</b></p><p><b> }</b></p><p> private void 打開(kāi)ToolStripMenuItem_Click(object sender, EventArgs e) //打開(kāi)文檔</p><p><b>
23、{</b></p><p> richTextBox1.Clear();</p><p> OpenFileDialog a = new OpenFileDialog(); </p><p> a.Title = "打開(kāi)";</p><p> a.Filter = "文本文件(*.
24、txt)|*.txt|所有文件|*.*"; </p><p> a.RestoreDirectory = true; </p><p> a.ShowDialog();</p><p> StreamReader sr = new StreamReader(a.FileName);</p><p> ric
25、hTextBox1.Text = sr.ReadToEnd();</p><p> sr.Close(); </p><p><b> }</b></p><p> private void 保存SToolStripMenuItem_Click(object sender, EventArgs e)</p><p&
26、gt;<b> {</b></p><p> SaveFileDialog a = new SaveFileDialog();</p><p> a.Title = "保存";</p><p> a.Filter = "文本文件(*.txt)|*.txt|所有文件|*.*";</p>
27、<p> a.ShowDialog();</p><p> StreamWriter sr = new StreamWriter(a.FileName, true);</p><p> sr.Write(richTextBox1.Text);</p><p> sr.Close(); </p><p><b>
28、 }</b></p><p> private void 另存為L(zhǎng)ToolStripMenuItem_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> SaveFileDialog a = new SaveFileDialog();</p>
29、<p> a.Title = "另存為";</p><p> a.Filter = "文本文件(*.txt)|*.txt|所有文件|*.*";</p><p> a.ShowDialog();</p><p> StreamWriter sr = new StreamWriter(a.FileName, t
30、rue);</p><p> sr.Write(richTextBox1.Text);</p><p> sr.Close(); </p><p><b> }</b></p><p> private void 打印PToolStripMenuItem_Click(object sender, EventArg
31、s e)</p><p><b> {</b></p><p> System.Drawing.Printing.PrintDocument printDocument = new System.Drawing.Printing.PrintDocument();</p><p> if (printDialog1.ShowDialog()
32、 != DialogResult.Cancel)</p><p><b> {</b></p><p><b> try</b></p><p><b> {</b></p><p> this.printDocument1.Print();</p>&l
33、t;p><b> }</b></p><p> catch (Exception ex)</p><p><b> {</b></p><p> MessageBox.Show(ex.Message);</p><p><b> }</b></p>
34、<p><b> }</b></p><p><b> }</b></p><p> private void 退出EToolStripMenuItem_Click(object sender, EventArgs e)</p><p><b> {</b></p>
35、<p> Application.Exit();</p><p><b> }</b></p><p> private void 編輯EToolStripMenuItem_Click(object sender, EventArgs e)</p><p><b> {</b></p>&l
36、t;p><b> }</b></p><p> private void 撤銷(xiāo)UToolStripMenuItem_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> if (richTextBox1.CanUndo == true)&l
37、t;/p><p><b> {</b></p><p> richTextBox1.Undo();</p><p><b> }</b></p><p><b> }</b></p><p> private void 剪切ToolStripMen
38、uItem_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> if (richTextBox1.SelectionLength > 0)</p><p><b> {</b></p><p> Clipboard
39、.SetDataObject(this.richTextBox1.SelectedText);</p><p> 粘貼PToolStripMenuItem.Enabled = true;</p><p> this.richTextBox1.SelectedText = "";</p><p><b> }</b>&l
40、t;/p><p><b> }</b></p><p> private void 復(fù)制CToolStripMenuItem_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> if (richTextBox1.Select
41、ionLength > 0)</p><p><b> {</b></p><p> Clipboard.SetDataObject(this.richTextBox1.SelectedText);</p><p> 粘貼PToolStripMenuItem.Enabled = true;</p><p>&
42、lt;b> }</b></p><p><b> }</b></p><p> private void 粘貼PToolStripMenuItem_Click(object sender, EventArgs e)</p><p><b> {</b></p><p>
43、IDataObject obj = Clipboard.GetDataObject();</p><p> this.richTextBox1.Text += (obj.GetData(DataFormats.Text)).ToString();</p><p><b> }</b></p><p> private void 刪除LTo
44、olStripMenuItem_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> if (richTextBox1.SelectionLength > 0) //判斷選中的行數(shù)是否大于0</p><p><b> {</b><
45、/p><p> Clipboard.SetDataObject(this.richTextBox1.SelectedText); //如果大于0就進(jìn)行刪除</p><p> richTextBox1.Cut();</p><p><b> }</b></p><p><b> }</b>&
46、lt;/p><p> private void 查找ToolStripMenuItem_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> 查找 f = new 查找();</p><p> f.rtb = this.richTextBox1;
47、 //傳值(從主窗口傳到FindForm)</p><p> f.Owner = this; //懸浮于當(dāng)前窗體</p><p><b> f.Show();</b></p><p><b> }</b></p><p> private void 替換Tool
48、StripMenuItem_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> 替換 f = new 替換();</p><p> f.rtb = this.richTextBox1; //傳值</p><p> f.Owne
49、r = this; //懸浮于當(dāng)前窗體</p><p><b> f.Show();</b></p><p><b> }</b></p><p> private void 全選AToolStripMenuItem_Click(object sender, EventArgs e)</
50、p><p><b> {</b></p><p> richTextBox1.SelectAll(); //全部選中文檔里面的文檔</p><p><b> }</b></p><p> private void 時(shí)間日期DToolStripMenuItem_Click(object
51、sender, EventArgs e)</p><p><b> {</b></p><p> DateTime s = DateTime.Now; //把當(dāng)前時(shí)間賦予S</p><p> string a = s.ToString(); //進(jìn)行類(lèi)型轉(zhuǎn)換</p><p> richTe
52、xtBox1.Text += a; //顯示當(dāng)前時(shí)間</p><p><b> }</b></p><p> private void 格式OToolStripMenuItem_Click(object sender, EventArgs e)</p><p><b> {</b></p>
53、<p><b> }</b></p><p> private void 自動(dòng)換行WToolStripMenuItem_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> if ( 自動(dòng)換行WToolStripMenuItem.Che
54、cked==true)//如果選中了自動(dòng)換行</p><p><b> {</b></p><p> richTextBox1 .WordWrap=true ;//文本就可以換行</p><p><b> }</b></p><p><b> else</b></
55、p><p> { richTextBox1.WordWrap=false ;//文本不可以換行</p><p><b> }</b></p><p><b> }</b></p><p> private void 字體FToolStripMenuItem_Click(object sende
56、r, EventArgs e)</p><p><b> {</b></p><p> FontDialog a = new FontDialog();</p><p> a.ShowColor = true;</p><p> a.ShowDialog();</p><p> rich
57、TextBox1.Font = a.Font; //選中文字的字體</p><p> richTextBox1.SelectionColor = a.Color; //選中文字的顏色</p><p><b> }</b></p><p> private void 狀態(tài)欄SToolStripMenuItem_Click(obj
58、ect sender, EventArgs e)</p><p><b> {</b></p><p><b> }</b></p><p> private void 幫助HToolStripMenuItem_Click(object sender, EventArgs e)</p><p>
59、;<b> {</b></p><p><b> }</b></p><p> private void 關(guān)于記事本GToolStripMenuItem_Click(object sender, EventArgs e)</p><p><b> {</b></p><p&
60、gt; MessageBox.Show(" 計(jì)網(wǎng)1002班 張婷 1008040210");</p><p><b> }</b></p><p> private void richTextBox1_KeyUp(object sender, KeyEventArgs e)</p><p><b>
61、{</b></p><p><b> }</b></p><p> private void richTextBox1_MouseUp(object sender, MouseEventArgs e)</p><p><b> {</b></p><p><b> }&
62、lt;/b></p><p> private void richTextBox1_TextChanged(object sender, EventArgs e)</p><p><b> {</b></p><p><b> }</b></p><p><b> }<
63、/b></p><p><b> }</b></p><p><b> 5 測(cè)試與實(shí)現(xiàn)</b></p><p> 經(jīng)過(guò)調(diào)試,發(fā)現(xiàn)自己所寫(xiě)的代碼有一些問(wèn)題,比如:查找和替換功能不好做,經(jīng)常會(huì)出現(xiàn)問(wèn)題,有些是不小心將代碼或者符號(hào)寫(xiě)錯(cuò),導(dǎo)致一些問(wèn)題。還有打印功能,之前寫(xiě)代碼的時(shí)候會(huì)出現(xiàn)問(wèn)題,最后增加了printDoc
64、ument和PrintDialog控件,最后終于調(diào)試成功了。</p><p> 文件菜單及其子菜單:</p><p> 編輯菜單欄及其子菜單:</p><p> 查看菜單以及子菜單:</p><p><b> 6 總結(jié)</b></p><p> 我們這次的課程設(shè)計(jì)有點(diǎn)短,記事本的設(shè)計(jì)、代
65、碼的編寫(xiě)和相關(guān)資料的收集,讓我學(xué)到了很多有用的知識(shí),也積累了不少的經(jīng)驗(yàn)。 在實(shí)訓(xùn)中碰到了一些問(wèn)題,如代碼的編寫(xiě),點(diǎn)擊事件的觸發(fā)條件分辨不出來(lái),還有編碼的時(shí)候遇到了一些問(wèn)題讓我的程序沒(méi)有更好的實(shí)現(xiàn),最后通過(guò)自己和同學(xué)討論、查找相關(guān)資料我終于知道錯(cuò)誤的地方,并且解決了問(wèn)題。 </p><p> 總之覺(jué)得自己所編寫(xiě)的代碼還不是很完善,就像查找和替換功能還不是很完善,達(dá)不到預(yù)期的效果,還有保存功能考慮的還不是很周全,保
66、存的時(shí)候要考慮所打開(kāi)的文檔是否已經(jīng)修改過(guò),如果修改過(guò)保存或者另存為,如果沒(méi)有修改過(guò)則不需要重復(fù)保存。在設(shè)計(jì)的時(shí)候,首先我們?cè)O(shè)計(jì)窗體,然后點(diǎn)擊事件,編寫(xiě)代碼實(shí)現(xiàn)記事本的功能。</p><p> 在本次的課程設(shè)計(jì)的過(guò)程中,我遇到了許多意想不到的問(wèn)題,之前,我對(duì)自己還是沒(méi)有信心,我不知道自己能不能做好,在自己動(dòng)手實(shí)踐的過(guò)程中,發(fā)現(xiàn)其實(shí)并不是自己想象的那樣難,只要肯思考,就能做好,所以在以后的學(xué)習(xí)、工作中,要注意實(shí)踐和
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c_語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)-- 記事本
- c_課程設(shè)計(jì)說(shuō)明書(shū)記事本
- java課程設(shè)計(jì)--簡(jiǎn)單記事本程序的設(shè)計(jì)
- java記事本程序課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)--日歷記事本
- java課程設(shè)計(jì)報(bào)告--實(shí)現(xiàn)記事本功能
- java課程設(shè)計(jì)日歷記事本
- java課程設(shè)計(jì)--日歷記事本
- 日歷記事本-java課程設(shè)計(jì)
- 日歷記事本java課程設(shè)計(jì)
- 記事本課程設(shè)計(jì)報(bào)告
- 日歷記事本java課程設(shè)計(jì)論文
- java課程設(shè)計(jì)--- 記事本程序設(shè)計(jì)
- 基于java的記事本程序課程設(shè)計(jì)
- vb課程設(shè)計(jì)--記事本程序的編寫(xiě)
- 基于java的記事本程序課程設(shè)計(jì)
- java記事本課程設(shè)計(jì)報(bào)告
- java記事本課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)---設(shè)計(jì)一個(gè)記事本
- java語(yǔ)言課程設(shè)計(jì)---記事本程序設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論