C#制作一个简单的通讯录

Posted GeomaticsCenter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#制作一个简单的通讯录相关的知识,希望对你有一定的参考价值。

2019年1月20日星期日

C#制作一个简单的通讯录

1  实验背景


       编程的困难在于初期对编写代码的恐惧,以及对新事物的迷茫。所以,我希望通过制作一个简单的通讯录,勾起大家对编程的兴趣,带大家走进编程的大门。

       编程的世界很美丽,需要你自己去发现:

图1-1 C#的编程世界

2  准备工作


(1)打开【Visual Studio 2010】;

C#制作一个简单的通讯录

图2-1 打开Visual Studio 2010

(2)开发环境选择【VisualC#】;

(3)选择【新建项目】→【Windows窗体应用程序】,修改名称并将其保存在容易找到的地方;

C#制作一个简单的通讯录

图2-2 建立一个新项目

(4)调整窗体大小并布置控件,结果如图2-3(控件的具体插入布置将在下文中讲解)。

C#制作一个简单的通讯录

图2-3 主窗体

3  基本要求


(1)实现通讯录中的每一个数据元素的显示,包括编号、学号、姓名、性别、手机号、QQ、所在城市、备注八个数据项;

(2)实现通讯录输出操作;

(3)实现指定编号或学号或姓名通讯者的删除及查询操作;

(4)实现对通讯录按编号进行排序的操作;

(5)在有序的通讯录基础上,实现插入特定编号的通讯者,插入后的通讯录仍然有序。

4  问题分析


(1)创建:在系统中创建通讯录成员,并进行保存;

(2)添加:在系统中添加新成员,并保存;

(3)查找:输入要查找成员的条件,按条件查找成功后将显示在屏幕上;

(4)删除:输入要删除成员的编号或学号或姓名,进行删除;

(5)显示:读入保存在系统中的所有成员,并显示在屏幕上;

(6)退出:结束在系统中的所有操作,保存数据并退出系统。

5  算法设计


5.1 设计分析

       为了实现通讯录管理系统的几种操作功能,首先做出如下总体设计框架

C#制作一个简单的通讯录

图5-1 设计框架图

5.2 算法实现

        由设计分析中的总体框架分模块来讨论算法实现

布置功能按钮和显示界面

        首先需要放置一个主控菜单驱动控件MenuStrip以进入相应的功能操作,在Men

uStrip中分别键入添加、删除、修改、查找用户选项;

       其次需要一个ListView用来显示通讯录成员信息,以及一个Button进行保存数据并退出系统的操作;

       最后需要用一个ToolStrip用来美化运行界面和进行容差处理,减少错误,同时也可以添加扩展控件SkinEngine进行界面的皮肤渲染。

✦主窗体界面如下:

C#制作一个简单的通讯录

图5-2 主窗体及其控件布置

初始通讯录的建立

    在程序文件夹的binDebug中新建一个文本文档“通讯录.txt”用来存储并显示通讯录信息,然后在主窗体Form_Main的主事件中进行调用来显示信息;

✦代码如下:

C#制作一个简单的通讯录
C#制作一个简单的通讯录

       创建通讯录通过添加第一个成员信息来完成通讯录的初始化。

通讯者信息的添加、修改

       为了将一个通讯者数据结点按其编号的次序插入有序通讯录表中的相应位置,以确保通讯录链表的有序性,因此将List

View控件的Sorting属性改为Ascending

(升序排序)即可完成;

       新建窗体tianjia以进行添加操作,在窗体的界面上添加8个Label、7个Text和2个RadioButton提示并输入成员信息;

       新建窗体xiugai,在窗体中输入被修改者的编号或学号或姓名其中之一,查找匹配项并调用tianjia窗体进行修改成员信息;

✦tianjia窗体如下:

C#制作一个简单的通讯录

图5-3 添加、修改窗体及其控件布置

通讯者的删除、查找

       要删除制定通讯者,首先必须输入被删除者的编号或学号或姓名,查找匹配项并删除这一项所在的该行,注意要使用

listView.Items[i].Remove();”方法,

不是“listView1.Items[i]. SubItems[j].

Clear();”,因为前者会删除该行并将后面的所有行自动缩进一行,避免列表出现空行;

       查找跟删除类似,查找到匹配项然后显示出来,使用“MessageBox.Show()”

方法显示被查询者的详细信息。

      注:(1)进行删除、修改、查找操作时都需要进行匹配项的查询,因此在操作时都需要调用“chazhao();”方法判断输入的信息是否存在;

C#制作一个简单的通讯录

           (2)删除、修改、查找的初始窗口都一样,可以建立一个窗体设置三个调用方法或者建立三个窗体分别调用,这里为了往后的二次开发,特意建了三个窗体。

✦其中shanchu窗体如下:

C#制作一个简单的通讯录

图5-4 删除、查找窗体及其控件布置

通讯录的输出保存

      本功能也比较容易实现,只要定义一个FileStream变量和一个StreamWriter

量把ListView中的数据写入“通讯录.txt”

即可输出并保存,在Button“保存数据并退出系统”中调用此方法,则在点击此按钮时实现保存。

✦代码如下:

C#制作一个简单的通讯录

6  测试结果


(1) 登陆系统(此时数据已添加)

C#制作一个简单的通讯录

图6-1 进入系统(信息已添加状态)

(2)选择要进行的操作,这里首先进行删除操作

C#制作一个简单的通讯录

图6-2 按编号删除成员信息

(3)点击“确认删除”按钮,此时列表中无编号034的成员

C#制作一个简单的通讯录

图6-3 删除完成

(4)然后进行系统中成员的添加,将刚才删除的成员添加进来

C#制作一个简单的通讯录

图6-4 添加成员信息

(5)此时编号为034的成员被加入进来

C#制作一个简单的通讯录

图6-5 信息已添加

(6)进行下一步,修改用户

C#制作一个简单的通讯录

图6-6 按学号修改成员信息

(7)点击“确认修改”按钮,此时弹出新定义的tianjia窗体,并在各Text中出现他的详细信息

C#制作一个简单的通讯录

图6-7 修改窗体显示成员信息

C#制作一个简单的通讯录

图6-8 修改信息完成

(9)再进行查找用户的操作

C#制作一个简单的通讯录

图6-9 按姓名查找成员信息

(10)弹出信息窗口,显示该成员的详细资料

C#制作一个简单的通讯录

图6-10 查找成功并显示信息

(11)点击“保存数据并退出系统”按钮,结束整个程序的运行,查看“通讯录.txt”

C#制作一个简单的通讯录

图6-11 通讯录文本文档

7  问题及答案


7.1 问题

(1)什么是Windows窗体应用程序以及它可以用来干什么?

(2)学习编程能够给你带来什么(仔细思考)?

(3)建立一个通讯录一般需要哪些信息,你对“信息”有何看法?

7.2 答案

(1)Windows 窗体应用程序是在用户计算机上运行的客户端应用程序,可显示信息、请求用户输入以及通过网络与远程计算机进行通信。在开发大型应用程序时,可能需要研究 .NET Framewo

rk 和它所提供的类;从这句话中我们可以知道我们可以用它编出一个客户端程序,比如QQ、WeChat这样的交流软件,又比如学生信息管理系统这样的后台程序。

(2)学习编程能够锻炼你的逻辑思维,能够拓宽你的发展道路,现在各行各业都充满了计算机的身影,会变成的你可以去做信息安全服务(如360)、画图软件编程(如PS)等,这些都是你应该去学习编程的理由。

8  结语


(1)编程就像是编写自己的人生一样,需要你自己亲自动手实践,这样才会知道什么是编程,怎么编程,通过自己动手,你会发现编程的魅力并且喜欢上它,希望大家都能感受到编程的乐趣;

(2)同时,出于保护隐私的考虑,同学们拿到的数据将只包含我个人的信息,并且本文中出现的人物信息皆通过了他们本人的同意;

(3)因为此通讯录代码皆由我自己编写,所以必然存在一些bug,欢迎大家指出错误,联系QQ:3196179115;

(4)系统登陆初始账号和密码皆为201708936,登陆之后可添加自己的信息,保存后便可使用自己的学号登陆 。

9  主要参考资料


(1)CSDN博客https://blog.csdn.net/

LSGO_MYP/article/details/53573939

(2)CSDN博客https://blog.csdn.net/

LinLingPeng_/article/details/7984180

(3)CSDN博客 https://blog.csdn.net/

wenzhi20102321/article/details/

65937173

实验数据

链接:https://pan.baidu.com/s/

1fejtQ28NWmkmtNrI__9GNQ

提取码:fhsr

  投稿、编辑:地信17徐建华

            校对:谢妙竹

            审核:郭锐涛

            指导:刘涛教授



以上是关于C#制作一个简单的通讯录的主要内容,如果未能解决你的问题,请参考以下文章

C#上位机开发一:串口通讯之如何制作一个串口调试助手

用 c# 制作新的简单 websocket 服务器

这是在 C# 中制作简单“调度程序”的可接受方式吗?

unity C#实现简单socket通讯框架

C# 我正在尝试制作简单的加密器 [重复]

C# 应用程序 - 阅读 Google 通讯录