1、1可视化课程设计报告简易通讯录指导老师: 本组成员: 2目 录一:设计目的 第 3 页二:总体设计 第 3 页三:详细设计 第 4 页四:调试与测试第 7 页五:源程序 第 8 页六:个人代码 第 8 页七: 心得体会第 10 页3一:设计目的:课程设计是工科各专业的主要实践性教学环节之一,是围绕一门主要基础课或专业课,运用所学课程的知识,结合实际应用设计而进行的一次综合分析设计能力的训练。课程设计旨在培养学生在本课程范围内,初步掌握解决实际应用问题时所应具备的查阅资料、综合运用所学知识的能力,为毕业设计及今后从事专业工作打下基础。通过本课程设计,培养上机动手能力,使学生巩固可视化编程课程学习
2、的内容,掌握工程软件设计的基本方法,强化上机动手能力,闯过编程关;希望同学们通过该设计加深对所学课程的理解,为后续各门计算机课程的学习打下坚实基础。二:总体设计 :本次课程设计题目为基于文件流的简易通讯录,主要功能是能够实现好友资料的输入,查询,删除,全部显示操作。其中主要用到三个窗体,一个主窗体用于输入操作和全部显示操作,点击“查询模块”开始进行查询,点击“删除模块”进行删除操作。具体流程图如下:用户录入yes no yes no与已存文件比较输入 查询 全部显示 删除 退出进入主窗体存入文件提示用户输入需查询人的姓名判断是否存在显示结果 提示出错显示所有记录提示用户输入需删除人的姓名判断是
3、否存在删除信息 提示出错退出主窗体4三:详细设计 :输入部分:输入功能可以由状态栏和菜单栏上的”输入按钮”实现,用户需根据提示输入好友的姓名,电话和住址,好友信息被保存在指定目录文件夹下。其中具体写入过程是通过二进制流的形式实现的private void button1_Click(object sender, System.EventArgs e)string p=“e:tongxun“;System.IO.Directory.CreateDirectory(p);FileStream s=new FileStream(“e:tongxunmessage.txt“,FileMode.Appe
4、nd,FileAccess.Write);BinaryWriter w=new BinaryWriter(s);w.Write(textBox1.Text);w.Write(textBox2.Text);w.Write(textBox3.Text);s.Close();w.Close();textBox1.Text=“;textBox2.Text=“;textBox3.Text=“;全部显示:全部显示功能可以实现用户所输入信息在主窗体中的整体输出,以便用户更清楚地浏览,这部分功能也可以由状态栏和菜单栏上的”全部显示”按钮实现.其中从文件中读取数据也是以二进制流的形式实现的。private vo
5、id button4_Click(object sender, System.EventArgs e)FileStream s=new FileStream(“e:tongxunmessage.txt“,FileMode.Open,FileAccess.Read);BinaryReader r=new BinaryReader(s);string name;string telephone;string address;string str=“;s.Position=0;while(s.Position!=s.Length)5name=r.ReadString();telephone=r.Re
6、adString();address=r.ReadString();str+=String.Format(“0 1 2“,name,telephone,address)+“rn“;r.Close();s.Close();textBox4.Text=str;查询部分:电击主窗体上的查询模块可以进入查询部分,然后用户根据提示输入所要查询的好友姓名,点击确定会在窗体上显示出查询结果.具体查询过程是通过二进制流的形式逐个读取出来,然后将此信息中姓名部分与用户所输入的姓名比较,直到两者对照相同时,将从文件中读取的信息输出。private void button1_Click(object sender,
7、 System.EventArgs e)FileStream s=new FileStream(“e:tongxunmessage.txt“,FileMode.Open,FileAccess.Read);BinaryReader r=new BinaryReader(s);string name;string telephone;string address;string str=“;s.Position=0;while(s.Position!=s.Length)name=r.ReadString();telephone=r.ReadString();address=r.ReadString(
8、);if(name=textBox1.Textlabel2.Text=“你要查询的账户的信息为:“;label3.Text=str;break;else label3.Text=“;label2.Text=“不好意思,没有你所查找的内容!“;6删除操作:主窗体上的删除模块可以实现通讯录中无用资料的删除,用户只需输入要删除好友的姓名,电击确定后就会实现删除操作。具体删除过程是通过二进制流的形式逐个读取出来,然后将此信息中姓名部分与用户所输入的姓名比较,直到两者对照相同时,将从文件中读取的此项信息删除。private void button1_Click(object sender, System
9、.EventArgs e)FileStream s=new FileStream(“e:tongxunmessage.txt“,FileMode.Open,FileAccess.Read);BinaryReader r=new BinaryReader(s);string name;string telephone;string address;string str=“;s.Position=0;string namearray=new string50;string telephonearray=new string50;string addressarray=new string50;in
10、t i=0;int flag=0;while(s.Position!=s.Length)name=r.ReadString();telephone=r.ReadString();address=r.ReadString();if(name=textBox1.Text)flag=1;else namearrayi=name;telephonearrayi=telephone;addressarrayi=address;i+;if(flag=0) label2.Text=“你要删除的信息不存在!“;label2.Text=“删除成功“;r.Close();s.Close();7System.IO.
11、Directory.Delete(“e:tongxun“,true);string p=“e:tongxun“;System.IO.Directory.CreateDirectory(p);FileStream sss=new FileStream(“e:tongxunmessage.txt“,FileMode.Create,FileAccess.Write);BinaryWriter t=new BinaryWriter(sss);int j=0;while(ji)t.Write(namearrayj);t.Write(telephonearrayj);t.Write(addressarra
12、yj);j+;t.Close();sss.Close();四:调试与测试在运行中进入通讯录的主窗体,在该窗体中将看到”输入”,”查询”,” 删除”,以及”全部显示”等按键.1、输入模块待用户输入完需要保存的用户信息后点击“输入”,然后会在E盘中建立一个名为tongxun的文件夹,并在其中建立了一个名为”message”的文本文档,接着将用户输入的信息保存在这个文档中,包括联系人的姓名,电话以及住址。2、全部显示在输入结束后可以点击”全部显示”按键,这样便可以看到刚才所输入的全部信息。3、查询模块点击查询按键时将进入另一个界面,在此界面中只需输入联系人的姓名,若输入正确,会显示用户所要查询的信息
13、,否则提示用户输入有误。4、删除模块当用户需要把联系人删除时,点击“删除模块“进入删除界面,再次用户只需要输入所不要的好友的姓名,点击确定后系统会根据用户输入进行相应的操作,点击“返回”退出删除界面,再次点击” 全部显示”便会发现该该联系人的信息已经被删除。8五:原程序清单与执行结果在文本框中分别输入: 张三 484403562 新湖区和东路36号;李四 484569887 南县区人如路456号王五 156164651 和东区光明路48号 在每项输入后都点击“输入“,此时以上信息都已经保存到指定目录的文件中。 点击全部显示按钮,将会在下面的文本框中显示出这三个人的相关信息. 点击查询模块按钮会
14、弹出一个新的窗体,上面提示用户输入所要查询的人的姓名,如:张三,然后点击确定按钮确认,此时就会显示出你要查询的帐户的信息为: 张三 484403562 新湖区和东路36号.如果没有你所查询的人,它会提示:不好意思,没有所查找的内容. 点击删除模块按钮,进入删除状态,此时会有如下提示信息“请输入你要删除的帐户的姓名“,如键入” 张三“,然后按下确定按钮,并出现提示:删除成功,此时再点击”返回“,在主对话框下再点击”全部显示“,这时就只显示剩下的帐户的信息,如果没有你要删除的帐户将会提示: 你要删除的信息不存在.另菜单栏中的帮助信息显示了本系统的相关操作方法,可供用户参考。六:个人设计代码及分析:
15、private void button1_Click(object sender, System.EventArgs e)statusBar1.Text=“删除操作“;FileStream s=new FileStream(“e:tongxunmessage.txt“,FileMode.Open,FileAccess.Read);/新建一个可读流的实例BinaryReader r=new BinaryReader(s); /新建一个BinaryReader类的实例string name;string telephone;string address;s.Position=0; /设置此流的当前
16、位置为 文件的开始部分string namearray=new string50; /新建数组,用于转存string telephonearray=new string50;string addressarray=new string50;int i=0;int flag=0; /设置标志为0,用于判断所删除的信息是否存在while(s.Position!=s.Length)name=r.ReadString(); /从当前流读取一个字符串并返回telephone=r.ReadString();address=r.ReadString();if(name=textBox1.Text)9flag
17、=1; /若存在要删除的信息,置标志为1else namearrayi=name;telephonearrayi=telephone;addressarrayi=address;i+;if(flag=0) label2.Text=“你要删除的信息不存在!“;label2.Text=“删除成功“;r.Close(); /关闭文件并释放与当前文件关联的所有资源s.Close();System.IO.Directory.Delete(“e:tongxun“,true); /待不需要删除的文件已转储后,将原文件夹删除string p=“e:tongxun“; /以原路径再新建一个同名字的文件夹Syst
18、em.IO.Directory.CreateDirectory(p);FileStream sss=new FileStream(“e:tongxunmessage.txt“,FileMode.Create,FileAccess.Write);/新建一个可写流的实例BinaryWriter t=new BinaryWriter(sss); /新建一个BinaryWriter类的实例int j=0;while(ji)t.Write(namearrayj); /将数组中存的信息逐个写入t.Write(telephonearrayj);t.Write(addressarrayj);j+;t.Clos
19、e(); /关闭文件并释放与当前文件关联的所有资源sss.Close();此项功能主要实现的是将用户不需要的信息删除,其中主要包括信息查找和删除两大块。查找项的具体步骤是将用户输入的所要删除的好友的名字与文件中已存的信息进行对照,若找到对应的信息就接着执行删除操作,否则提示用户输入有误;删除操作的具体步骤是首先进行筛选,将已存文件中与所输入要删除的信息全部转存至一个数组中,然后将10原文件所在的文件夹删除,接着在与原文件相同的路径中新建一个同名的文件夹和文件,最后将数组中的信息全部存到新建的文件中以实现对不需要信息的删除工作。七:心得体会 :课程设计是培养学生综合运用所学知识,发现,提出,分析
20、和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。回顾起此次操作系统课程设计,从理论到实践,在整个设计过程中,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。通过这一周的学习,我们感觉有很大的收获:首先,通过学习使自己对课本上的知识可以应用于实际,使理论与实际相结合,能更好的加深对课本知识的理解和掌握,同时设计也锻炼了个人的动手能力,再者通过自己动手查阅相关资料,增加了许多课本以外的知识。对我们学生来说,理论与实际同样重要,这是我们以后在工作中说明自己能力的一个重要标准。