当前位置:文档之家› C#通讯录管理系统

C#通讯录管理系统

C#通讯录管理系统一课程设计目的和容概述1.目的:加深对《C#语言》课程所学知识的理解,进一步巩固C#语言编程方法。

学会编制结构清晰、风格良好、数据结构适当的C#语言程序,从而具备解决综合性实际问题的能力,加强动手能力。

2.容:设计一个简易的手机通讯录管理系统。

该题目要求在熟练掌握C#语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。

进一步掌握各种函数的应用,包括时间函数、、绘图函数,以及文件的读写操作等。

其中结构体,函数的调用,算法的设计是尤为重要的。

二题目通讯录管理系统[问题描述]该系统模拟现实通讯录管理系统,实现对计算机中的通讯录进行管理[基本要求]要能提供以下几种功能:(1)查看功能:选择此功能时,列出下列三类选择:A:同学 B:家人(2)当选中某类时,显示出此类所有数据中的和(3)添加数据功能:能录入新数据,每个结点包括:,,分类,电子。

例如: 春同学类 chuny126.当录入重复的和时,则提示数据录入重复并取消录入;当通讯录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。

(4)修改功能:选中某个人的时,可对此人的相应数据进行修改。

(5)删除功能:选中某个人的时,可对此人的相应数据进行删除,并自动调整后续条目的编号。

三程序设计1.总体设计首先,因为每个个体有多种信息,所以要建立Main函数来储存和整合各个信息。

然后利用控件来分别实现程序的各个功能。

各个控件用c#函数来实现,进而实现所需功能。

最后将输入的信息存入数据苦,以便重复使用。

四程序源代码frmLogin.cs:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace PhoneBook{public partial class frmLogin : Form{public frmLogin(){InitializeComponent();}private void btnCancel_Click(object sender, EventArgs e){Application.Exit();}private void btnOK_Click(object sender, EventArgs e){try{//检测文本框容if (txtUserName.Text.Trim() == "" || txtPassword.Text.Trim() == ""){MessageBox.Show("用户名和密码不能为空!","登录失败",MessageBoxButtons.OK,MessageBoxIcon.Error);return;}//验证用户SqlConnection conn = new SqlConnection();conn.ConnectionString="server=.;database=PhoneBook;uid=sa;pwd=;";conn.Open();string sql = "select count(*) from 用户where 用户名='"+txtUserName.Text.Trim()+"' and 密码='"+txtPassword.Text.Trim()+"'";SqlCommand cmd = new SqlCommand();cmd.Connection=conn;mandText=sql;int result = Convert.ToInt32(cmd.ExecuteScalar());conn.Close();if (result == 1){//登录成功frmMain f = new frmMain();f.tsslUserName.Text = txtUserName.Text.Trim();f.Show();this.Hide();}else{MessageBox.Show("用户名和密码错误!", "登录失败", MessageBoxButtons.OK, MessageBoxIcon.Error);return;}}catch (Exception ee){MessageBox.Show("发生错误/r/n"+ee.Message, "登录失败", MessageBoxButtons.OK, MessageBoxIcon.Error);return;}}}}frmMain:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;using System.Configuration;namespace PhoneBook{public partial class frmMain : Form{public frmMain(){InitializeComponent();}private string strConn = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];private void frmMain_Load(object sender, EventArgs e){LoadGroup();if (trvGroup.Nodes.Count > 0){trvGroup.SelectedNode = trvGroup.Nodes[0];LoadList();}else{lvContact.Clear();}}private void LoadGroup(){try{trvGroup.Nodes.Clear();SqlConnection conn = new SqlConnection(strConn);SqlCommand cmd = new SqlCommand();cmd.Connection = conn;mandText = "select distinct 组别from 联系人where 用户名='"+tsslUserName.Text+"'";conn.Open();SqlDataReader sdr = cmd.ExecuteReader();while (sdr.Read()){trvGroup.Nodes.Add(sdr[0].ToString());}sdr.Close();conn.Close();}catch{ }}private void LoadList(){if (trvGroup.Nodes.Count == 0){lvContact.Clear();return;}if (trvGroup.SelectedNode.Index >= 0){string strGroup = trvGroup.SelectedNode.Text;try{lvContact.Clear();lvContact.Columns.Add("",100);lvContact.Columns.Add("工作单位", 150);lvContact.Columns.Add("联系", 100);lvContact.Columns.Add("电子", 150);SqlConnection conn = new SqlConnection(strConn);SqlCommand cmd = new SqlCommand();cmd.Connection = conn;mandText = "select 编号,,工作单位,联系,电子from 联系人where 组别='" + strGroup + "' and 用户名='" + tsslUserName.Text + "'";conn.Open();SqlDataReader sdr = cmd.ExecuteReader();int count = 0;while (sdr.Read()){ListViewItem lvi = new ListViewItem();lvi.Text = sdr[""].ToString();lvi.SubItems.Add(sdr["工作单位"].ToString());lvi.SubItems.Add(sdr["联系"].ToString());lvi.SubItems.Add(sdr["电子"].ToString());lvi.Tag = sdr["编号"];lvi.ImageIndex = 0;lvContact.Items.Add(lvi);count++;}tsslCount.Text = "共计"+count.ToString()+"个联系人";sdr.Close();conn.Close();}catch{ }}}private void frmMain_FormClosed(object sender, FormClosedEventArgs e){Application.Exit();}private void trvGroup_AfterSelect(object sender, TreeViewEventArgs e){LoadList();}private void 详细信息ToolStripMenuItem_Click(object sender, EventArgs e){lvContact.View = View.Details;}private void 详细信息ToolStripMenuItem1_Click(object sender, EventArgs e){lvContact.View = View.Details;}private void 图标ToolStripMenuItem_Click(object sender, EventArgs e){lvContact.View = rgeIcon;}private void 图标ToolStripMenuItem1_Click(object sender, EventArgs e){lvContact.View = rgeIcon;}private void Add(){frmAdd f = new frmAdd();if (f.ShowDialog(this) == DialogResult.OK){LoadGroup();if (trvGroup.Nodes.Count > 0){trvGroup.SelectedNode = trvGroup.Nodes[0];LoadList();}else{lvContact.Clear();}}}private void Edit(){if (lvContact.SelectedItems.Count == 1){int id = Convert.ToInt32(lvContact.SelectedItems[0].Tag);frmEdit f = new frmEdit(id);if (f.ShowDialog(this) == DialogResult.OK){LoadGroup();if (trvGroup.Nodes.Count > 0){trvGroup.SelectedNode = trvGroup.Nodes[0];LoadList();}else{lvContact.Clear();}}}}private void Delete(){if (lvContact.SelectedItems.Count < 1){return;}if (MessageBox.Show("是否要删除选中的联系人?", "删除确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) {string strWhere = " where 编号in (";foreach (ListViewItem lvi in lvContact.SelectedItems){strWhere += lvi.Tag.ToString() + ",";}strWhere = strWhere.Substring(0, strWhere.Length - 1);strWhere += ")";try{SqlConnection conn = new SqlConnection(strConn);SqlCommand cmd = new SqlCommand();cmd.Connection = conn;mandText = "delete from 联系人" + strWhere;conn.Open();cmd.ExecuteNonQuery();conn.Close();LoadGroup();if (trvGroup.Nodes.Count > 0){trvGroup.SelectedNode = trvGroup.Nodes[0];LoadList();}else{lvContact.Clear();}}catch { }}}private void Search(){frmSearch f = new frmSearch(tsslUserName.Text);f.ShowDialog();}private void tsbtnAdd_Click(object sender, EventArgs e){Add();}private void 增加ToolStripMenuItem_Click(object sender, EventArgs e){Add();}private void 修改MToolStripMenuItem_Click(object sender, EventArgs e){Edit();}private void tsbtnEdit_Click(object sender, EventArgs e){Edit();}private void 删除ToolStripMenuItem_Click(object sender, EventArgs e){Delete();}private void tsbtnDelete_Click(object sender, EventArgs e){Delete();}private void lvContact_MouseDoubleClick(object sender, MouseEventArgs e){Edit();}private void lvContact_KeyDown(object sender, KeyEventArgs e){if (e.KeyCode == Keys.Delete){Delete();}}private void tsbtnSearch_Click(object sender, EventArgs e){Search();}private void 搜索SToolStripMenuItem_Click(object sender, EventArgs e){Search();}}}frmAdd.cs:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;using System.Configuration;using System.IO;namespace PhoneBook{public partial class frmAdd : Form{public frmAdd(){InitializeComponent();}private string strUserName = "";private int groupCount = 0;private int contentCount = 0;private string txtFilePath = "";private string strConn = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];private void pic_Click(object sender, EventArgs e){if (dlg.ShowDialog() == DialogResult.OK){pic.Image = Image.FromFile(dlg.FileName);txtFilePath = dlg.FileName;}}private void 加载图片LToolStripMenuItem_Click(object sender, EventArgs e){if (dlg.ShowDialog() == DialogResult.OK){pic.Image = Image.FromFile(dlg.FileName);txtFilePath = dlg.FileName;}}protected void btnOK_Click(object sender, EventArgs e){#region 获取信息//用户名strUserName = ((frmMain)(this.Owner)).tsslUserName.Text;//string name;if (txtName.Text == ""){MessageBox.Show("联系人不能为空!", "添加失败", MessageBoxButtons.OK, MessageBoxIcon.Error);return;}else{name = txtName.Text;}//组别string group;if (cmbGroup.Text.Trim() == ""){group = "未分组";}else{group = cmbGroup.Text.Trim();}//string phone = txtPhone.Text.Trim();//工作单位string company = txtCompany.Text.Trim();//emailstring email = txtEmail.Text.Trim();//照片byte[] b=null;if (txtFilePath != ""){try{FileStream fs = new FileStream(txtFilePath, FileMode.Open, FileAccess.Read);int len = Convert.ToInt32(fs.Length);b = new byte[len];fs.Read(b, 0, len);fs.Close();}catch{b = null;}}#endregion 获取信息#region 添加数据try{SqlConnection conn = new SqlConnection(strConn);SqlCommand cmd_maxid = new SqlCommand();cmd_maxid.Connection = conn;//获取最大编号cmd_mandText = "select isnull(max(编号),0)+1 from 联系人";conn.Open();int maxid ;try{maxid = Convert.ToInt32(cmd_maxid.ExecuteScalar());}catch{maxid = 1;}//insertSqlCommand cmd_insert = new SqlCommand();cmd_insert.Connection = conn;cmd_mandText = "insert into 联系人(编号,用户名,组别,,工作单位,联系,电子,照片) ";cmd_mandText += " values(编号,用户名,组别,,工作单位,联系,电子,照片)";cmd_insert.Parameters.Add("编号",SqlDbType.Int);cmd_insert.Parameters.Add("用户名", SqlDbType.VarChar,50);cmd_insert.Parameters.Add("组别", SqlDbType.VarChar,50);cmd_insert.Parameters.Add("", SqlDbType.VarChar, 50);cmd_insert.Parameters.Add("工作单位", SqlDbType.VarChar, 500);cmd_insert.Parameters.Add("联系", SqlDbType.VarChar, 200);cmd_insert.Parameters.Add("电子", SqlDbType.VarChar, 200);cmd_insert.Parameters.Add("照片", SqlDbType.Image);cmd_insert.Parameters["编号"].Value = maxid;cmd_insert.Parameters["用户名"].Value = strUserName;cmd_insert.Parameters["组别"].Value = group;cmd_insert.Parameters[""].Value =name;cmd_insert.Parameters["工作单位"].Value =company;cmd_insert.Parameters["联系"].Value =phone;cmd_insert.Parameters["电子"].Value =email;if (txtFilePath == ""){cmd_insert.Parameters["照片"].Value = DBNull.Value;}else{cmd_insert.Parameters["照片"].Value = b;}cmd_insert.ExecuteNonQuery();conn.Close();DialogResult = DialogResult.OK;}catch(Exception ee){MessageBox.Show(ee.Message, "添加失败", MessageBoxButtons.OK, MessageBoxIcon.Error);return;}#endregion 添加数据}protected void LoadGroup(){try{cmbGroup.Items.Clear();SqlConnection conn = new SqlConnection(strConn);SqlCommand cmd = new SqlCommand();cmd.Connection = conn;mandText = "select distinct 组别from 联系人where 用户名='"+strUserName+"'";conn.Open();SqlDataReader sdr = cmd.ExecuteReader();while (sdr.Read()){cmbGroup.Items.Add(sdr[0].ToString());}sdr.Close();conn.Close();if (groupCount > 0 && cmbGroup.Items.Count == groupCount){cmbGroup.DropDownStyle = ComboBoxStyle.DropDownList;}else{cmbGroup.DropDownStyle = ComboBoxStyle.DropDown;}}catch{ }}private void frmAdd_Load(object sender, EventArgs e){//获取用户名strUserName = ((frmMain)(this.Owner)).tsslUserName.Text;try{SqlConnection conn = new SqlConnection(strConn);SqlCommand cmd = new SqlCommand();cmd.Connection = conn;//获取配置信息mandText = "select * from 用户where 用户名='"+strUserName+"'";conn.Open();SqlDataReader sdr = cmd.ExecuteReader();if (sdr.Read()){groupCount = Convert.ToInt32(sdr["组别数量最大值"]);contentCount = Convert.ToInt32(sdr["联系人数量最大值"]);}sdr.Close();//获取联系人数mandText = "select count(*) from 联系人where 用户名='" + strUserName + "'";int count = Convert.ToInt32(cmd.ExecuteScalar());//if (count >= contentCount)//{// MessageBox.Show("联系人的个数已经达到上限!\r\n如需继续添加联系人,请联系管理员。

相关主题