C#课程设计报告通讯录管理系统.doc

上传人:文库蛋蛋多 文档编号:2384388 上传时间:2023-02-17 格式:DOC 页数:30 大小:607.50KB
返回 下载 相关 举报
C#课程设计报告通讯录管理系统.doc_第1页
第1页 / 共30页
C#课程设计报告通讯录管理系统.doc_第2页
第2页 / 共30页
C#课程设计报告通讯录管理系统.doc_第3页
第3页 / 共30页
C#课程设计报告通讯录管理系统.doc_第4页
第4页 / 共30页
C#课程设计报告通讯录管理系统.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《C#课程设计报告通讯录管理系统.doc》由会员分享,可在线阅读,更多相关《C#课程设计报告通讯录管理系统.doc(30页珍藏版)》请在三一办公上搜索。

1、郑州科技学院C#课程设计设计(论文)课题:通讯录管理系统 目录 摘要3一整体设计411设计构思412系统数据流图:513开发及运行环境:521 数据库需求分析622 E-R图723 数据表设计724 管理员信息表(db.Admin):725 用户信息表(db.User):826 资料信息表(db.Records):8三通讯录管理系统的实现931 类的编写932 系统用户功能模块设计:933 系统管理员功能模块设计:1134 系统设计运行过程中所遇到的问题:163.4.1 数据库的连接问题163.4.2 登录模块出现角色选择问题173.4.3 用户信息添加模块问题20四 C#课程设计总结26五主

2、要参考书及手册28六 致谢29摘要 日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式,特别是对于做经常出差的人来说更是难,所以通讯录能够便捷的给我们带来所需要的相关信息。而随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。这就需要有一个使用的通讯录管理系统,用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找

3、过程的时间。一整体设计11设计构思通讯录管理系统功能需求分析:通讯录管理系统主要功能分为三个模块:用户登录、系统维护以及数据的备份输出。用户登录:实现管理员用户与游客用户的不同权限,对系统的实用权的区别系统维护:包括对用户的添加,信息添加、删除、查找、排序、修改,修改密码,注销等操作数据的备份:主要是对相关信息的备份,输出,打印。以便日后查询,使用。12系统数据流图:备份资料添加资料删除资料查询资料修改资料管理员普通用户登录注册登录添加修改退出通讯录管理系统数据流图13开发及运行环境:本系统开发平台及运行环境如下:系统开发平台:Microsoft Visual Studio 2005系统开发语

4、言:C#数据库管理软件:SQL Server 2000运行平台:Windows XP (SP2) / Windows7(32位或64位)/ Windows Server 2003 (SP1)运行环境:Microsoft Visual Studio 2008二 数据库设计21 数据库需求分析1)针对通讯录管理系统,分别对用户登录、添加通讯录和查找、删除以及修改数据进行详细的调研和分析,总结出如下的需求信息:1. 每条原始记录要有姓名、生日、电话、邮箱、地址信息,其中姓名不能为空。2. 保证查询到的数据与姓名相一致3. 根据相应姓名删除对应的全部数据2)本数据用于登录用户实体以及通讯录信息实体22

5、 E-R图用户用户名密码信息操作N1姓名生日邮箱电话地址23 数据表设计数据库名称:DATABASEHOMEWORK,共有3个表:1、管理员信息表(db.Admin) 2、用户信息表(db.User) 3、资料信息表(db.Records)24 管理员信息表(db.Admin):字段名数据类型长度主键否描述AdminNamenchar30否用户名称 AdminPwdnchar20否用户密码25 用户信息表(db.User):字段名数据类型长度主键否描述UserNamenchar30是用户名称 UserPwdnchar30否用户密码26 资料信息表(db.Records):字段名数据类型长度主键

6、否描述用户名nchar30是记录用户的名称姓名nchar30否记录用户姓名性别nchar10否记录用户性别出生日期datetime否记录用户出生日期星座nchar10否记录用户星座生肖nchar10否记录用户生肖家庭住址nchar100否记录用户家庭住址电话nchar30否记录用户电话手机nchar20否记录用户手机号Emailnchar100否记录用户EmailQQnchar15否记录用户QQ图片image否记录用户的图片三通讯录管理系统的实现31 类的编写开发项目时,以类的形式来组织、封装一些常用的方法和事件,以便提高代码的重用率,大大方便了代码的管理。本系统中创建了四个类: AdminF

7、orm.cs、registerForm.cs、 Login.cs、和UserInformation.cs其中AdminForm.cs主要用来管理用户权限,用户信息,实现对用户的信息的查询,添加,删除以及备份用户登录信息和用户信息。registerForm.cs是用来实现用户登录的用户名和密码的注册。Login.cs是用来实现用户登录,登录时可以选择角色登录,用户或者是管理员。UserInformation.cs是用来实现用户对自己信息的详细添加。32 系统用户功能模块设计:3.2.1 系统登录模块运行结果如图所示:3.2.2 系统注册模块运行结果如图所示: 3.2.3 用户信息添加模块运行结果

8、如图所示:33 系统管理员功能模块设计:3.3.1 系统管理员登录模块运行结果如图所示:3.3.2 管理员用户信息表的添加、删除、更改:3.3.3 管理员登录信息的添加、删除、更改:3.3.4 管理员对用户信息数据的添加、删除、更改:3.3.5 管理员对用户信息的搜索查询功能的使用:34 系统设计运行过程中所遇到的问题:3.4.1 数据库的连接问题连接数据库的字符串add key=ConnectString value=Data Source=ZPRJAS6WZMXY36B;InitialCatalog=DatabaseHomeWork;Integrated Security=True以及sq

9、l的测试连接:3.4.2 登录模块出现角色选择问题private void InitializeComponent() System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Login); this.radioButton1 = new System.Windows.Forms.RadioButton();this.radioButton2 = new System.Windows.Forms.RadioButton

10、();this.label1 = new System.Windows.Forms.Label();this.label2 = new System.Windows.Forms.Label();this.label3 = new System.Windows.Forms.Label();this.textBox1 = new System.Windows.Forms.TextBox();this.textBox2 = new System.Windows.Forms.TextBox();this.button1 = new System.Windows.Forms.Button();this.

11、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=newSys

12、tem.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 =

13、 new System.Drawing.Point(69, 51);this.radioButton1.Name = radioButton1;this.radioButton1.Size = new System.Drawing.Size(59, 16);this.radioButton1.TabIndex = 1;this.radioButton1.TabStop = true;this.radioButton1.Text = 管理员;this.radioButton1.UseVisualStyleBackColor = true;this.radioButton1.CheckedChan

14、ged+=newSystem.EventHandler(this.radioButton1_CheckedChanged); this.radioButton2.AutoSize = true;this.radioButton2.Location = new System.Drawing.Point(197, 51);this.radioButton2.Name = radioButton2;this.radioButton2.Size = new System.Drawing.Size(47, 16);this.radioButton2.TabIndex = 0;this.radioButt

15、on2.TabStop = true;this.radioButton2.Text = 用户;this.radioButton2.UseVisualStyleBackColor = true; this.label1.AutoSize = true;this.label1.Location = new System.Drawing.Point(120, 9);this.label1.Name = label1;this.label1.Size = new System.Drawing.Size(77, 12);this.label1.TabIndex = 2;this.label1.Text

16、= 选择登陆角色; this.label2.AutoSize = true;this.label2.Location = new System.Drawing.Point(26, 128);this.label2.Name = label2;this.label2.Size = new System.Drawing.Size(41, 12);this.label2.TabIndex = 3;this.label2.Text = 用户名; this.label3.AutoSize = true;this.label3.Location = new System.Drawing.Point(26,

17、 170);this.label3.Name = label3;this.label3.Size = new System.Drawing.Size(29, 12);this.label3.TabIndex = 4;this.label3.Text = 密码; this.textBox1.Location = new System.Drawing.Point(87, 128);this.textBox1.Name = textBox1;this.textBox1.Size = new System.Drawing.Size(100, 21);this.textBox1.TabIndex = 2

18、; this.textBox2.Location = new System.Drawing.Point(87, 167);this.textBox2.Name = 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);this.button1.Name = button1;this.butt

19、on1.Size = new System.Drawing.Size(75, 23);this.button1.TabIndex = 7;this.button1.Text = 登陆;this.button1.UseVisualStyleBackColor = true;this.button1.Click+=newSystem.EventHandler(this.button1_Click);this.button2.Location = new System.Drawing.Point(28, 226);this.button2.Name = button2;this.button2.Si

20、ze = new System.Drawing.Size(75, 23);this.button2.TabIndex = 8;this.button2.Text = 用户注册;this.button2.UseVisualStyleBackColor = true;this.button2.Click+=newSystem.EventHandler(this.button2_Click);this.button3.Location = new System.Drawing.Point(238, 227);this.button3.Name = button3;this.button3.Size

21、= new System.Drawing.Size(75, 23);this.button3.TabIndex = 9;this.button3.Text = 退出;this.button3.UseVisualStyleBackColor = true;this.button3.Click+=newSystem.EventHandler(this.button3_Click);this.sqlConnection1.FireInfoMessageEventOnUserErrors=false;this.sqlDataAdapter1.DeleteCommand = this.sqlDelete

22、Command1;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.For

23、ms.AutoScaleMode.Font;this.BackgroundImage=(System.Drawing.Image)(resources.GetObject($this.BackgroundImage);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.

24、Controls.Add(this.textBox1); this.Controls.Add(this.label3); this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.Controls.Add(this.radioButton2); this.Controls.Add(this.radioButton1); this.MaximizeBox = false; this.Name = Login;this.StartPosition=System.Windows.Forms.FormStartPositi

25、on.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 byte0; myData = (byte)myDataReader.GetValue(11); int jpgSize = myData

26、.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_

27、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 Productionstepstep; if (openDialog.ShowDialog() = D

28、ialogResult.OK) path = openDialog.FileName; image = new Bitmap(path); /改变图像大小-符合相框大小 bitmap = new Bitmap(image, pictureBox1.Width, pictureBox1.Height); pictureBox1.Image = bitmap; 管理员管理用户信息添加模块出现错误用户表和用户信息表设置了关联,用户信息只能添加用户表中已经注册过的用户名。管理员对用户信息备份失败/备份 private void 备份ToolStripMenuItem_Click(object send

29、er, EventArgs e) try if (用户信息ToolStripMenuItem.Checked = true) /创建数据库/string strToCopy = Data Source=.sqlexpress;Initial Catalog= + textBox2.Text + ;Integrated Security=True; string strToCopy = Data Source=.sqlexpress;Initial Catalog=DATABASEHOMEWORK;Integrated Security=True;SqlConnection myConnect3

30、 = new SqlConnection(strConnect); myConnect3.Open();SqlCommand myCommand3 = new SqlCommand(); myCommand3.Connection = myConnect3; myCommand3.CommandText = create database + textBox2.Text.Trim(); myCommand3.ExecuteNonQuery(); myCommand3.CommandText = use + textBox2.Text.Trim() + create table + textBo

31、x3.Text.Trim() + (用户名 nchar(20) primary key not null,姓名 nchar(30),性别 nchar(10),出生日期 datetime,星座 nchar(10),生肖 nchar(10),家庭住址 nchar(100),电话 nchar(30),手机 nchar(20),Email nchar(100),QQ nchar(15),图片 image); myCommand3.ExecuteNonQuery(); myConnect3.Close();SqlConnectionmyConnect1=newSqlConnection(strConne

32、ct);SqlConnection myConnect2 = new SqlConnection(strToCopy); SqlDataReader myDataRead; myConnect1.Open(); myConnect2.Open();SqlCommand myCommand1 = new SqlCommand();SqlCommand myCommand2 = new SqlCommand();myCommand1.Connection = myConnect1;myCommand1.CommandText = select * from Records;myDataRead =

33、 myCommand1.ExecuteReader();myCommand2.Connection = myConnect2;myCommand2.CommandText = insert into + textBox3.Text.Trim() + values(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12);myCommand2.Parameters.Add(s1, SqlDbType.NChar);myCommand2.Parameters.Add(s2, SqlDbType.NChar);myCommand2.Parameters.Add(s3, SqlD

34、bType.NChar);myCommand2.Parameters.Add(s4, SqlDbType.DateTime);myCommand2.Parameters.Add(s5, SqlDbType.NChar);myCommand2.Parameters.Add(s6, SqlDbType.NChar);myCommand2.Parameters.Add(s7, SqlDbType.NChar);myCommand2.Parameters.Add(s8, SqlDbType.NChar);myCommand2.Parameters.Add(s9, SqlDbType.NChar);my

35、Command2.Parameters.Add(s10, SqlDbType.NChar);myCommand2.Parameters.Add(s11, SqlDbType.NChar);myCommand2.Parameters.Add(s12, SqlDbType.Image);while (myDataRead.Read() myCommand2.Parameters0.Value = myDataRead.GetValue(0);myCommand2.Parameters1.Value = myDataRead.GetValue(1);myCommand2.Parameters2.Va

36、lue = myDataRead.GetValue(2);myCommand2.Parameters3.Value = myDataRead.GetValue(3);myCommand2.Parameters4.Value = myDataRead.GetValue(4);myCommand2.Parameters5.Value = myDataRead.GetValue(5);myCommand2.Parameters6.Value = myDataRead.GetValue(6);myCommand2.Parameters7.Value = myDataRead.GetValue(7);m

37、yCommand2.Parameters8.Value = myDataRead.GetValue(8);myCommand2.Parameters9.Value = myDataRead.GetValue(9);myCommand2.Parameters10.Value = myDataRead.GetValue(10);myCommand2.Parameters11.Value = myDataRead.GetValue(11); myCommand2.ExecuteNonQuery(); MessageBox.Show(数据备份成功!); elseMessageBox.Show(此功能暂

38、只对用户信息表提供); catch (Exception ex) MessageBox.Show(ex.Message); 把用户信息表内的内容备份到新的数据库表中,需要新建立一个数据库,但总出现远程连接问题,能执行数据库语句,建立新的数据库表,但用户信息却备份不到新的表中,运行时出现的错误如图:四 C#课程设计总结课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异, 回顾起此次课程设计,至今我们仍感慨颇多,的确,从理论到实践,学到很多很多的东西。通过这次课程设计使我们懂得了理论与

39、实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,我们把前面所学过的知识又重新温故了一遍。 我做的是通讯录管理系统,虽然是很简单的一个小的程序,但对我来说却是一个很大的困难。而且编程是一件高精度、模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的无法运行。所以认真仔细就是非常重要的了。当一个程序运行成功的时候那种喜悦

40、是无法言语的,那种成就感是无法比拟的。尽管程序不是很完善,不过还是很高兴的。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习windows的一次实践作业。 在此程序中有用到.NET中的许多知识,最基本的是增、删、改、查几个过程,此程序方便、快捷,但是还有一些不足之处,希望我自己以后慢慢研究,将此程序完善。通过毕业设计,使我们学到了以前没有学过的很多知识,使我们对.NET程序设计有了更深层次的认识和理解,懂得了灵活运用VC2008和SQL Server 2005等工具。在计算机飞速发展的今天,懂得一门计算机语言技术是非常必要的。同时,我们也清醒的认识到,只有自己肯努力,愿意去付出劳动,就能够得到属于我们自己所期望的东西。五主要参考书及手册1 李海涛,Visual Studio.NET 2008开发一册通。化学工业出版社,2010年2 江维华,江维清 ,C#.NET程序设计使用教程,人民邮电出版社,2007年3 明日科技,Visual C#开发技术大全,人民邮电出版社,2007年4 (美)James Foxall ,Visual C# 2008入门经典,人民邮电出版社,2009年六 致谢在此由衷的向我的指导老师王玉萍老师表示衷心的感谢,是她的悉心指导和严格要求,才使我的毕业设计有了较为完善的一面,才有了我能力的提高,得到了充分的锻炼。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号