C#课程设计电话薄管理系统.docx
《C#课程设计电话薄管理系统.docx》由会员分享,可在线阅读,更多相关《C#课程设计电话薄管理系统.docx(23页珍藏版)》请在冰豆网上搜索。
C#课程设计电话薄管理系统
C#课程设计论文
院系信息工程学院
专业计算机科学与技术
班级10级二班
题目电话薄管理系统
学号201015059
姓名任开宇
时间2013.05.20至2013.05.31
一、设计目的1
二、需求分析2
2.1设计题目2
2.2设计构思2
2.3运行界面需求3
2.4开发及运行环境3
2.5程序文件清单3
2.5.1数据库模块3
三、模块分析及设计4
3.1系统功能结构图4
3.2系统数据流程图5
四、数据库设计6
4.1数据库需求分析6
4.2E-R图6
4.3数据表设计7
4.3.1电话薄信息表(电话薄)7
五、制作过程及要点8
5.1Access类8
5.2用户模块详细设计9
5.3电话薄“显示全部”模块11
5.4电话薄“添加”模块14
5.5电话薄“删除”模块16
5.6通讯录“查找”模块18
5.7电话薄“修改”模块22
六、设计总结24
七、主要参考书及手册25
一、设计目的
日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式,特别是对于做经常出差的人来说更是难,所以电话薄能够便捷的给我们带来所需要的相关信息。
而随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。
这就需要有一个使用的电话薄管理系统,用户可以方便的通过自己电脑的电话薄管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。
电话薄管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。
二、需求分析
2.1设计题目
电话薄管理系统
2.2设计构思
电话薄管理系统功能需求分析:
电话薄管理系统主要功能分为四个模块:
用户查询、添加记录、修改记录、删除记录。
显示全部:
实现用户对所有存在于数据库中的数据的显示,方便用户了解数据存储的情况。
查找记录:
实现用户在本软件数据库中查找自己需要的数据功能。
添加记录:
实现用户添加一条完整的记录,包括姓名、电话、地址、备注、分组。
修改记录:
用户对数据库中已存在的记录进行修改,然后保存已经修改过的数据
删除记录:
用户对数据库中已经存在的记录进行行删除操作,然后保存修改过的数据
2.3运行界面需求
界面应简洁,使用者易操作
2.4开发及运行环境
本系统开发平台及运行环境如下:
系统开发平台:
MicrosoftVisualStudio2008
系统开发语言:
C#
数据库管理软件:
Access2003
运行平台:
WindowsXP(SP2)/Windows2000(SP4)/WindowsServer2003(SP1)
2.5程序文件清单
2.5.1数据库模块
数据库名
运行平台
编程语言
简要描述
电话薄
VS2008
C#
电话薄表
三、模块分析及设计
3.1系统功能结构图
3.2系统数据流程图
四、数据库设计
4.1数据库需求分析
1)针对电话薄管理系统,分别对添加电话薄和查找、删除以及修改数据进行详细的调研和分析,总结出如下的需求信息:
1.每条原始记录要有姓名、号码、地址、备注、分组,其中姓名不能为空。
2.保证查询到的数据与姓名相一致
3.根据相应姓名删除对应的全部数据
2)本数据用于管理用户实体以及电话薄信息实体
4.2E-R图
4.3数据表设计
·数据库名称:
电话薄,共有1个表:
电话薄
4.3.1电话薄信息表(电话薄)
字段名
数据类型
长度
主键否
允许空
描述
姓名
char
10
是
否
记录用户姓名
号码
char
8
否
是
记录用户号码
地址
char
11
否
是
记录用户地址
备注
char
20
否
是
记录用户备注
分组
char
50
否
是
记录用户分组
五、制作过程及要点
5.1Access类
开发项目时,以类的形式来组织、封装一些常用的方法和事件,以便提高代码的重用率,大大方便了代码的管理。
本系统中创建了一个公共类:
Access.cs,方便调用。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data.OleDb;
usingSystem.IO;
usingSystem.Data;
namespace电话薄
{classAccess
{
publicstaticstringconstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=|DataDirectory|\\电话薄.mdb";
publicstaticOleDbConnectionconn=newOleDbConnection(constr);
publicstaticDataSetgettable(stringsqlstr)
{
DataSetds=newDataSet();
OleDbDataAdapteradp=newOleDbDataAdapter(sqlstr,conn);
ds.Clear();
adp.Fill(ds);
returnds;
}
publicstaticintxiugai(stringsqlstr)
{
OleDbCommandcmd=newOleDbCommand(sqlstr,conn);
conn.Open();
intn=cmd.ExecuteNonQuery();
conn.Close();
returnn;
}
}
}}
5.2用户模块详细设计
初始界面
以下为初始界面:
主要代码实现如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.IO;
namespace电话薄
{
publicpartialclassshouye:
Form
{
publicshouye()
{
InitializeComponent();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
dianhuabof=newdianhuabo();
f.Show();
this.Visible=false;
}
privatevoidForm1_Load(objectsender,EventArgse)
{
stringfilepath=Directory.GetCurrentDirectory()+"\\image";
pictureBox1.Image=Image.FromFile(filepath+"\\1.jpg");
}
privatevoidForm1_FormClosing(objectsender,FormClosingEventArgse)
{
Application.Exit();
}
}
}
5.3电话薄“显示全部”模块
用户进入主界面之后,点击显示全部按钮,则系统将数据库中数存储的所有联系人的记录显示到dataGridView1界面中,按照一定的规格排列。
其中各项中的数据则严格按照数据库中的要求排列显示。
显示全部功能截图如下:
主界面运行截图如下:
主要代码实现如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.OleDb;
usingSystem.IO;
namespace电话薄
{
publicpartialclassdianhuabo:
Form
{
publicdianhuabo()
{
InitializeComponent();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
Form3f=newForm3();
f.Show();
f.addnew+=newForm3.add(f_addnew);
f.deletenew+=newForm3.delete(f_deletenew);
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
xianshif=newxianshi();
f.Show();
}
privatevoidForm2_Load(objectsender,EventArgse)
{
stringfilepath=Directory.GetCurrentDirectory()+"\\image";
pictureBox1.Image=Image.FromFile(filepath+"\\3.jpg");
try
{
stringsqlstr="Select*from电话薄";
DataSetds=newDataSet();
ds=Access.gettable(sqlstr);
dataGridView1.DataSource=ds.Tables[0].DefaultView;
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
}
privatevoidForm2_FormClosing(objectsender,FormClosingEventArgse)
{
shouyefm=newshouye();
fm.Show();
}
publicvoidf_addnew(useru)
{
stringsqlstr="insertinto电话薄(姓名,号码,地址,备注,分组)values('"+u.username+"','"+u.usernum+"','"+u.useradd+"','"+u.userbeizhu+"','"+u.userteam+"')";
intn=Access.xiugai(sqlstr);
if(n>0)
{
MessageBox.Show("添加成功");
}
//Form2_Load(null,null);
stringstr="Select*from电话薄";
DataSetds=newDataSet();
ds=Access.gettable(str);
dataGridView1.DataSource=ds.Tables[0].DefaultView;
}
publicvoidf_deletenew(useru)
{
stringsqlstr="delete*from电话薄where姓名='"+u.username+"'";
intn=Access.xiugai(sqlstr);
if(n>0)
{
MessageBox.Show("删除成功");
}
else
{
MessageBox.Show("没有此人");
}
stringstr="Select*from电话薄";
DataSetds=newDataSet();
ds=Access.gettable(str);
dataGridView1.DataSource=ds.Tables[0].DefaultView;
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
this.Close();
}
}
}
5.4电话薄“添加”模块
用户进入电话薄系统主界面,点击添加,进行电话薄的添加操作,填写相应的内容,系统会自动判定是否符合规定要求,例如 姓名、号码、地址、备注、分组不能为空,相应属性的字段长度不能超出范围。
主要代码实现如下:
publicvoidf_addnew(useru)
{
stringsqlstr="insertinto电话薄(姓名,号码,地址,备注,分组)values('"+u.username+"','"+u.usernum+"','"+u.useradd+"','"+u.userbeizhu+"','"+u.userteam+"')";
intn=Access.xiugai(sqlstr);
if(n>0)
{
MessageBox.Show("添加成功");
}
//Form2_Load(null,null);
stringstr="Select*from电话薄";
DataSetds=newDataSet();
ds=Access.gettable(str);
dataGridView1.DataSource=ds.Tables[0].DefaultView;
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
useru=newuser();
u.username=textBox1.Text;
u.usernum=textBox2.Text;
u.useradd=textBox3.Text;
u.userbeizhu=textBox4.Text;
u.userteam=comboBox1.Text;
if(textBox1.Text!
="")
{
if(addnew!
=null)
{
addnew(u);
}
}
else
{
MessageBox.Show("姓名不能为空");
}
this.textBox1.Clear();
this.textBox2.Clear();
this.textBox3.Clear();
this.textBox4.Clear();
}
5.5电话薄“删除”模块
在TextBox1中输入要删除的记录的姓名,确认删除后连接数据库进行删除记录。
若该记录不存在则返回提示信息,若操作成功,则返回“删除成功”的信息框提示。
然后清空该页面,在进行其他的操作,不会影响的内容。
相关截图如下:
主要代码实现如下:
publicvoidf_deletenew(useru)
{
stringsqlstr="delete*from电话薄where姓名='"+u.username+"'";
intn=Access.xiugai(sqlstr);
if(n>0)
{
MessageBox.Show("删除成功");
}
else
{
MessageBox.Show("没有此人");
}
stringstr="Select*from电话薄";
DataSetds=newDataSet();
ds=Access.gettable(str);
dataGridView1.DataSource=ds.Tables[0].DefaultView;
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
useru=newuser();
u.username=textBox1.Text;
if(textBox1.Text!
="")
{
if(deletenew!
=null)
{
deletenew(u);
}
}
else
{
MessageBox.Show("姓名不能为空");
}
this.textBox1.Clear();
}
5.6通讯录“查找”模块
在TextBox1中输入要查找的记录的姓名,确认查找后连接数据库进行查找记录。
若该记录不存在则返回提示信息,若操作成功,则返回“已查找”的信息框提示。
然后在进行其他的操作,保证系统的正常运行。
相关截图如下:
主要代码实现如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.IO;
namespace电话薄
{
publicpartialclassxianshi:
Form
{
publicxianshi()
{
InitializeComponent();
}
privatevoidForm4_Load(objectsender,EventArgse)
{
stringfilepath=Directory.GetCurrentDirectory()+"\\image";
pictureBox1.Image=Image.FromFile(filepath+"\\4.jpg");
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
try
{
if(textBox1.Text!
="")
{
stringsqlstr="Select*from电话薄where姓名='"+textBox1.Text+"'";
DataSetds=newDataSet();
ds=Access.gettable(sqlstr);
dataGridView1.DataSource=ds.Tables[0].DefaultView;
intn=ds.Tables[0].Rows.Count;
if(n>0)
{
MessageBox.Show("已查询");
}
else
{
MessageBox.Show("没有此人");
}
}
else
{
MessageBox.Show("条件不能为空");
}
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
this.textBox1.Clear();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
Updata.name=dataGridView1.CurrentRow.Cells[0].Value.ToString();
Updata.num=dataGridView1.CurrentRow.Cells[1].Value.ToString();
Updata.add=dataGridView1.CurrentRow.Cells[2].Value.ToString();
Updata.beizhu=dataGridView1.CurrentRow.Cells[3].Value.ToString();
Updata.team=dataGridView1.CurrentRow.Cells[4].Value.ToString();
xiangxif=newxiangxi();
f.Show();
}
}
}
5.7电话薄“修改”模块
在已查找到得信息中直接进行信息修改,将要修改的信息输入页面中,确认修改后连接数据库进行修改记录。
若该记录不存在则返回提示信息,若操作成功则返回“修改成功”的信息提示框。
然后在进行其他的操作。
相关截图如下:
主要代码实现如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespace电话薄
{
publicstaticclassUpdata
{
publicstaticstringname;
publicstaticstringteam;
publicstaticstringadd;
publicstaticstringnum;
publicstaticstringbeizhu;
}
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
Updata.name=dataGridView1.CurrentRow.Cells[0].Value.ToString();
Updata.num=dataGridView1.CurrentRow.Cells[1].Value.ToString();
Updata.add=dataGridView1.CurrentRow.Cells[2].Value.ToString();
Updata.beizhu=dataGridView1