课程设计计算机语言C#课程设计.doc
课程设计任务书 课程名称: 计算机语言C#课程设计 一、课程设计课题本实训要求学生运用C#.NET独立设计、编程开发一个完整的Windows应用程序,并完成实训报告。可以从以下题目中选择:绘图板二十一点游戏科学计算器弹珠游戏日记本屏幕保护程序挖地雷游戏调色板文本编辑器井字棋 也可自选课题(须征得指导教师同意)不建议选择贪吃蛇、华容道等难度比较高的题目,需要由本人完成大部分代码,不建议根据网上或书上的现成代码调试编写。二、课程设计要求1、设计选题:学生可以在“Windows应用程序设计实训选题”指定的题目中选取实训题目,具体题目以此文件为准。也可以自选,但自选的题目必须在实训开始前得到指导教师的认可。2、设计结果:学生需按所选题目的具体要求使用C#完成程序设计,同时还要完成课程设计说明书,以介绍实训的情况,说明书中应该至少包括以下几部分:l 题目说明l 总体设计:概述程序的基本结构和主要技术。l 详细说明:选择几个功能模块详细说明设计时的想法和所用的技术。l 遇到的问题和解决方法l 心得体会3、考核要求学生需提交完整的C#源程序(电子版)和课程设计说明书(打印稿),要求程序运行稳定可靠,能实现题目中所要求的功能。课程设计说明书符合要求,并能对程序的设计思路或具体代码做出正确的解释。三、课程设计工作量1、程序中应有不少于100300行的自行编写的代码。2、软件界面美观大方,操作简洁易用,功能完备可靠。3、说明书中摘用关键代码部分,应标注详细的代码说明。4、实训报告以A4纸打印,其中正文不少于6页,正文主要用于解释实现思路和关键代码,完整代码作附件。四、课程设计说明书内容(有指导书的可省略)课程设计说明书中至少应该包括以下几部分:1、 封面2、 摘要3、 目录4、 选题说明5、 总体设计:概述程序的基本结构和主要技术。6、 详细说明:关键技术模块的详细说明,列出主要方法的声明、功能、调用参数及使用场合和方法,对其作用和实现思路进行解释。7、 遇到的问题和解决方法8、 心得体会9、 参考文献10、 附件:源程序课程设计说明书正文不少于6页,源程序只算附页。 课程设计说明书名称 计算机语言C#课程设计 日记本软件的设计与实现 摘 要本次课程设计使用C#语言完成了日记本软件的设计与实现。系统实现了用户基本信息管理,用户的通讯录管理和用户日记本管理等功能。通过对上述系统的开发,我已经能够制作一个简单的电子日记本,虽说有很多地方不够完善,但是能够基本上完成了这次课程设计。在这次的课程设计中,我在做这个日记本软件的时候,主要考虑的是用户如何管理自己的信息和一些通讯录的管理。日记最后是以文本文档的格式存储的。目 录一、系统功能分析11.1. 主体功能分析11.2. 异常情况分析1二、保存日记内容功能的设计与实现12.1. 功能设计12.2. 代码实现12.3. 技术细节22.4. 实现效果2三、设置背景图片功能的设计与实现33.1. 功能设计3用户可以根据自己的需要,随意的更改自己日记本的背景图片。33.2. 代码实现33.3. 技术细节33.4. 实现效果4四、用户信息和通讯设置功能的设计与实现44.1. 功能设计44.2. 代码实现54.3. 技术细节64.4. 实现效果6点击6和6五、遇到的问题和解决方法7六、总结7附录:参考文献8一、系统功能分析1.1. 主体功能分析 在日记本软件中主要有三个Windows窗体,Form1是主窗体,首先就是要添加几个Panel,将页面的布局排好,在Form1中主要的是4个Button控件,Button1主要实现的是对日记的保存功能,是以文本文档的形式保存的。Button2是主要实现的是对写日记时,字体的修改。Button3是实现对写日记时日记字体颜色的修改。Button4主要的实现的功能就是,对日记进行删除,不过这是对日记内容的全部删除,无法实现部分删除。 在Form1的窗体中,添加个人信息(Form5)和通讯录(Form6)窗体,Form5窗体主要实现的就是对用户的信息管理,Form6主要实现的就是对通讯信息的管理。1.2. 异常情况分析在进行操作时,创建三个窗体,但是刚开始发现点击label1(用户信息管理)和label3(通讯设置管理),无法弹出Form5(个人信息)和Form6(通讯录),后来经过检查,才发现原来是没有在Form1窗体上新建窗体,并通过一下代码实现: private void label1_Click(object sender, EventArgs e) Form5 myForm5= new Form5(); myForm5.Show(); private void label3_Click(object sender, EventArgs e) Form6 myForm6 = new Form6(); myForm6.Show(); 在运行时,发现点击Button4(清除)控件时,发现删除的是全部日记内容,而并不是部分内容的删除,在一控件代码上,做的并不是很完善。二、保存日记内容功能的设计与实现2.1. 功能设计 在richTextBox1中输入内容,点击保存,就可以实现日记内容的保存,并是以 文本文档是形式保存。若保存成功,就会弹出“文件以保存!”的对话框,若保存失败,就会弹出“文件保存失败!”的对话框。2.2. 代码实现 private void button1_Click(object sender, EventArgs e) saveFileDialog1.ShowDialog(); string strFileName = saveFileDialog1.FileName + ".txt" System.IO.FileStream fileStm = null; try fileStm = System.IO.File.Open(strFileName, System.IO.FileMode.Create); catch MessageBox.Show(" 文件保存失败!"); return; System.IO.StreamWriter writer = new System.IO.StreamWriter(fileStm); writer.Write(richTextBox1.Text); writer.Close(); MessageBox.Show("文件已保存!"); richTextBox1.Text = " " 2.3. 技术细节 在制作Button1(保存)控件时,首先的声明一个saveFileDialog1,保存文件主要是靠文件流的方式保存,并实现以文本文档的形式保存。为实现保存的效果,主要是在try 语句中实现效果。用户在使用中,只要点击保存就可以将日记内容以文本文档将日记保存在自己想要的地方。2.4. 实现效果 用户点击 就会出现一下窗口 保存成功就会弹出 三、设置背景图片功能的设计与实现3.1. 功能设计 用户可以根据自己的需要,随意的更改自己日记本的背景图片。3.2. 代码实现private void label2_Click(object sender, EventArgs e) try System.Windows.Forms.OpenFileDialog openFileDlg = new System.Windows.Forms.OpenFileDialog(); openFileDlg.ShowDialog(); this.BackgroundImage = Image.FromFile(openFileDlg.FileName); BackImage = openFileDlg.FileName; catch (Exception ep) MessageBox.Show(ep.Message); 3.3. 技术细节 为了能够更改背景图片,用户首先要声明OpenFileDialog,为了使用户能够随意的更改背景图片,我们要做的就是为用户打开一个新的窗体,为了更好的实现,在try catch语句中实现。在try语句块中,主要的实现是,为用户创建新的窗体,使用户点击的图片是背景图片,而catch语句块中,是提示用户,选取图片路径出错。3.4. 实现效果 用户可点击 就会弹出一下对话框 若选择路径不合法就会弹出 四、用户信息和通讯设置功能的设计与实现4.1. 功能设计主要的是为了实现用户更改自己的信息和用户的通讯设置。在用户的个人信息中,包用户的姓名,生日和学校;在通讯设置中,主要包括了姓名,手机号码和家庭住址,并是以listView来实现添加多个人,或者删除几个人。4.2. 代码实现在主窗体中的代码实现 (1) private void label1_Click(object sender, EventArgs e) Form5 myForm5= new Form5(); myForm5.Show(); private void label3_Click(object sender, EventArgs e) Form6 myForm6 = new Form6(); myForm6.Show(); (2)private void label1_MouseEnter(object sender, EventArgs e) label1.Cursor = Cursors.Hand; private void label2_MouseEnter(object sender, EventArgs e) label2.Cursor = Cursors.Hand; 在Form6(通讯设置管理)窗体中 namespace WindowsApplication2 public partial class Form6 : Form public Form6() InitializeComponent(); private void button1_Click(object sender, EventArgs e) ListViewItem currentItem = listView1.Items.Add(textBox1.Text); currentItem.SubItems.Add(textBox2.Text); currentItem.SubItems.Add(textBox3.Text); private void button2_Click(object sender, EventArgs e) listView1.Items.Clear(); 4.3. 技术细节 在WindowsApplication2中添加Windows窗体Form5(个人信息)和Form6(通讯录),并设置label1(用户信息管理)的click事件,使实现点击label1时,自动弹出Form5窗口,label3(通讯设置管理)同样如此。 在Form6窗体中,为实现添加或删除一个或多个用户。首先要添加一个listView,并设置listView的FullRowSelect的值为True,Gridlines的值也为True。还有就是View值为Details,然后再在Columns中添加所需的columnHeader,再修改其的Text值。4.4. 实现效果 点击 和 就会出现下面的窗体 五、遇到的问题和解决方法 问题:在进行日记内容的删除时,删除的是整个内容,并不是部分内容。 解决方法:并未找到相应的解决方法。 问题:在listView1中,刚刚开始没有出现一行一行。 解决方法:并未设置listView1的View值,并设置为Details。六、总结 在为期两个星期的C#实训中,我主要的制作是日记本,在制作界面时,不仅要考虑界面美工,还要技术上的要求,虽说在这个软件上有很多不足,而且制作过程也很简单,但是还是遇到了很多困难,通过上网查找,询问老师,找资料,基本都解决了这些问题。 通过这次实训,才发现仅仅是掌握了书上的知识是远远不够的,灵活的掌握才能将知识应用的灵活贯通。在制作这个软件的过程中,要能熟悉每个控件的功能,代码的编写,发现异常现象时,如何解决。 通过这次的实训,才会发现,原来要自己完成一个软件制作并不是一件很容易的事,从头到尾,都要自己个人策划,制作。不仅要将就整个界面的外表,实质的东西也要全部能运行。所以在这次实训中,我学到了平时没有学到的东西。附录:参考文献1. Visual C#程序设计 实用教程 2.Visual C# .net 程序设计教程