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

C#课程设计 通讯录管理系统

郑州科技学院C#课程设计设计(论文)课题:通讯录管理系统姓名:刘闯学号:201015056班级:10计科2班导师:王玉萍课程设计日期:2013年5月31日目录摘要 (3)一.整体设计 (4)1.1设计构思 (4)1.2系统数据流图: (5)1.3开发及运行环境: (5)2.1 数据库需求分析 (6)2.2 E-R图 (7)2.3 数据表设计 (7)2.4 管理员信息表(db.Admin): (7)2.5 用户信息表(er): (8)2.6 资料信息表(db.Records): (8)三.通讯录管理系统的实现 (9)3.1 类的编写 (9)3.2 系统用户功能模块设计: (9)3.3 系统管理员功能模块设计: (11)3.4 系统设计运行过程中所遇到的问题: (16)3.4.1 数据库的连接问题 (16)3.4.2 登录模块出现角色选择问题 (17)3.4.3 用户信息添加模块问题 (20)四. C#课程设计总结 (26)五.主要参考书及手册 (28)六.致谢 (29)摘要日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式,特别是对于做经常出差的人来说更是难,所以通讯录能够便捷的给我们带来所需要的相关信息。

而随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。

这就需要有一个使用的通讯录管理系统,用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。

通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。

一.整体设计1.1设计构思通讯录管理系统功能需求分析:通讯录管理系统主要功能分为三个模块:用户登录、系统维护以及数据的备份输出。

用户登录:实现管理员用户与游客用户的不同权限,对系统的实用权的区别系统维护:包括对用户的添加,信息添加、删除、、查找、排序、修改,修改密码,注销等操作数据的备份:主要是对相关信息的备份,输出,打印。

以便日后查询,使用。

1.2系统数据流图:1.3开发及运行环境:本系统开发平台及运行环境如下:系统开发平台:Microsoft Visual Studio 2005 系统开发语言:C#数据库管理软件:SQL Server 2000备份资料 添加资料 删除资料 查询资料修改资料管理员普通用户注册 登录 添加 修改 退出通讯录管理系统数据流图运行平台:Windows XP (SP2) / Windows7(32位或64位)/ Windows Server 2003 (SP1)运行环境:Microsoft Visual Studio 2008 二.数据库设计2.1 数据库需求分析1)针对通讯录管理系统,分别对用户登录、添加通讯录和查找、删除以及修改数据进行详细的调研和分析,总结出如下的需求信息:1.每条原始记录要有姓名、生日、电话、邮箱、地址信息,其中姓名不能为空。

2.保证查询到的数据与姓名相一致3.根据相应姓名删除对应的全部数据2)本数据用于登录用户实体以及通讯录信息实体2.2 E-R 图2.3 数据表设计数据库名称:DATABASEHOMEWORK ,共有3个表:1、管理员信息表(db.Admin) 2、用户信息表(er ) 3、资料信息表(db.Records )2.4 管理员信息表(db.Admin ):字段名 数据类型 长度 主键否 描述 AdminNamenchar30否用户名称用户用户名 密码 信息操作N1姓名生日邮箱电话地址AdminPwnchar 20 否用户密码d2.5 用户信息表(er):字数据类型长度主键否描述段名UserNamnchar 30 是用户名称eUserPwd nchar 30 否用户密码2.6 资料信息表(db.Records):字段名数据类型长度主键否描述用户名nchar 30 是记录用户的名称姓名nchar 30 否记录用户姓名性别nchar 10 否记录用户性别出生日期datetime 否记录用户出生日期星座nchar 10 否记录用户星座生肖nchar 10 否记录用户生肖家庭住址nchar 100 否记录用户家庭住址电话nchar 30 否记录用户电话手机nchar 20 否记录用户手机号Email nchar 100 否记录用户Email QQ nchar 15 否记录用户QQ图片image 否记录用户的图片三.通讯录管理系统的实现3.1 类的编写开发项目时,以类的形式来组织、封装一些常用的方法和事件,以便提高代码的重用率,大大方便了代码的管理。

本系统中创建了四个类: AdminForm.cs、registerForm.cs、 Login.cs、和UserInformation.cs 其中AdminForm.cs主要用来管理用户权限,用户信息,实现对用户的信息的查询,添加,删除以及备份用户登录信息和用户信息。

registerForm.cs是用来实现用户登录的用户名和密码的注册。

Login.cs是用来实现用户登录,登录时可以选择角色登录,用户或者是管理员。

UserInformation.cs是用来实现用户对自己信息的详细添加。

3.2 系统用户功能模块设计:3.2.1 系统登录模块运行结果如图所示:3.2.2 系统注册模块运行结果如图所示:3.2.3 用户信息添加模块运行结果如图所示:3.3 系统管理员功能模块设计:3.3.1 系统管理员登录模块运行结果如图所示:3.3.2 管理员用户信息表的添加、删除、更改:3.3.3 管理员登录信息的添加、删除、更改:3.3.4 管理员对用户信息数据的添加、删除、更改:3.3.5 管理员对用户信息的搜索查询功能的使用:3.4 系统设计运行过程中所遇到的问题:3.4.1 数据库的连接问题连接数据库的字符串add key="ConnectString" value="Data Source=ZPRJAS6WZMXY36B;InitialCatalog=DatabaseHomeWork;Integrated Security=True"以及sql的测试连接:3.4.2 登录模块出现角色选择问题private void InitializeComponent() {ponentResourceManager resources = new ponentResourceManager(typeof(Login)); this.radioButton1 = new System.Windows.Forms.RadioButton();this.radioButton2 = new System.Windows.Forms.RadioButton();bel1 = new bel();bel2 = new bel();bel3 = new bel();this.textBox1 = new System.Windows.Forms.TextBox();this.textBox2 = new System.Windows.Forms.TextBox();this.button1 = new System.Windows.Forms.Button();this.button2 = new System.Windows.Forms.Button();this.button3 = new System.Windows.Forms.Button();this.sqlCommand1 = new System.Data.SqlClient.SqlCommand();this.sqlConnection1=newSystem.Data.SqlClient.SqlConnection();this.sqlSelectCommandnewSystem.Data.SqlClient.SqlCommand();this.sqlInsertCommand1=newSystem.Data.SqlClient.SqlCommand();this.sqlUpdateCommand1=newSystem.Data.SqlClient.SqlCommand(); this.sqlDeleteCommand1=newSystem.Data.SqlClient.SqlCommand();this.sqlDataAdapter1=newSystem.Data.SqlClient.SqlDataAdapter();this.SuspendLayout();this.radioButton1.AutoSize = true;this.radioButton1.Location = new System.Drawing.Point(69, 51); = "radioButton1";this.radioButton1.Size = new System.Drawing.Size(59, 16);this.radioButton1.TabIndex = 1;this.radioButton1.TabStop = true;this.radioButton1.Text = "管理员";eVisualStyleBackColor = true;this.radioButton1.CheckedChanged+=newSystem.EventHandler(this.radioButt on1_CheckedChanged);this.radioButton2.AutoSize = true;this.radioButton2.Location = new System.Drawing.Point(197, 51); = "radioButton2";this.radioButton2.Size = new System.Drawing.Size(47, 16);this.radioButton2.TabIndex = 0;this.radioButton2.TabStop = true;this.radioButton2.Text = "用户";eVisualStyleBackColor = true;bel1.AutoSize = true;bel1.Location = new System.Drawing.Point(120, 9); = "label1";bel1.Size = new System.Drawing.Size(77, 12);bel1.TabIndex = 2;bel1.Text = "选择登陆角色";bel2.AutoSize = true;bel2.Location = new System.Drawing.Point(26, 128); = "label2";bel2.Size = new System.Drawing.Size(41, 12);bel2.TabIndex = 3;bel2.Text = "用户名";bel3.AutoSize = true;bel3.Location = new System.Drawing.Point(26, 170); = "label3";bel3.Size = new System.Drawing.Size(29, 12);bel3.TabIndex = 4;bel3.Text = "密码";this.textBox1.Location = new System.Drawing.Point(87, 128); = "textBox1";this.textBox1.Size = new System.Drawing.Size(100, 21);this.textBox1.TabIndex = 2;this.textBox2.Location = new System.Drawing.Point(87, 167); = "textBox2";this.textBox2.PasswordChar = '*';this.textBox2.Size = new System.Drawing.Size(100, 21);this.textBox2.TabIndex = 3;this.button1.Location = new System.Drawing.Point(135, 227); = "button1";this.button1.Size = new System.Drawing.Size(75, 23);this.button1.TabIndex = 7;this.button1.Text = "登陆";eVisualStyleBackColor = true;this.button1.Click+=newSystem.EventHandler(this.button1_Click); this.button2.Location = new System.Drawing.Point(28, 226); = "button2";this.button2.Size = new System.Drawing.Size(75, 23);this.button2.TabIndex = 8;this.button2.Text = "用户注册";eVisualStyleBackColor = true;this.button2.Click+=newSystem.EventHandler(this.button2_Click); this.button3.Location = new System.Drawing.Point(238, 227); = "button3";this.button3.Size = new System.Drawing.Size(75, 23);this.button3.TabIndex = 9;this.button3.Text = "退出";eVisualStyleBackColor = true;this.button3.Click+=newSystem.EventHandler(this.button3_Click); this.sqlConnection1.FireInfoMessageEventOnUserErrors=false; this.sqlDataAdapter1.DeleteCommand = this.sqlDeleteCommand1; this.sqlDataAdapter1.InsertCommand = this.sqlInsertCommand1; this.sqlDataAdapter1.SelectCommand = this.sqlSelectCommand1;this.sqlDataAdapter1.UpdateCommand = this.sqlUpdateCommand1;//// Login//this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);this.AutoScaleMode=System.Windows.Forms.AutoScaleMode.Font;this.Backg roundImage=((System.Drawing.Image)(resources.GetObject("$this.Backgroun dImage")));this.ClientSize = new System.Drawing.Size(338, 293);this.Controls.Add(this.button3);this.Controls.Add(this.button2);this.Controls.Add(this.button1);this.Controls.Add(this.textBox2);this.Controls.Add(this.textBox1);this.Controls.Add(bel3);this.Controls.Add(bel2);this.Controls.Add(bel1);this.Controls.Add(this.radioButton2);this.Controls.Add(this.radioButton1);this.MaximizeBox = false; = "Login";this.StartPosition=System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Form1";this.Load += new System.EventHandler(this.Login_Load);this.ResumeLayout(false);this.PerformLayout();}3.4.3 用户信息添加模块问题建立一个内存流把图片内存写入该内存流if (!myDataReader.IsDBNull(11)){ //以字节为单位传入数据byte[] myData = new byte[0];myData = (byte[])myDataReader.GetValue(11);int jpgSize = myData.Length;//建立一个内存流MemoryStream ms = new MemoryStream();//把图片内存写入该内存流//写入的二进制数组,偏移量,最多的字节数ms.Write(myData, 0, jpgSize);Bitmap bitmap = new Bitmap(ms);pictureBox1.Image = bitmap; }// myDataReader.Close()} } }//退出private void button3_Click(object sender, EventArgs e){this.Close();}//浏览private void button1_Click_1(object sender, EventArgs e){Image image;Bitmap bitmap;string path;OpenFileDialog openDialog = new OpenFileDialog();openDialog.Filter = "可用文件(*.jpg)|*.jpg|所有文件(*.*)|*.*";openDialog.Multiselect = false;openDialog.InitialDirectory = @"D:\微软\My Production\step\step\";if (openDialog.ShowDialog() == DialogResult.OK){path = openDialog.FileName;image = new Bitmap(path);//改变图像大小--符合相框大小bitmap = new Bitmap(image, pictureBox1.Width, pictureBox1.Height);pictureBox1.Image = bitmap;}}管理员管理用户信息添加模块出现错误用户表和用户信息表设置了关联,用户信息只能添加用户表中已经注册过的用户名。

相关主题