ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:1.99MB ,
资源ID:3565160      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3565160.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C#课程设计通讯录软件设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C#课程设计通讯录软件设计.docx

1、C#课程设计通讯录软件设计*学院课程设计说明书(2012/2013学年第一学期)课程名称 : 软件程序设计 题 目 : 通讯录软件设计 专业班级 : 学生姓名 : 放羊娃 学 号 : 指导教师 : 设计周数 : 2周 设计成绩 : 2013年1月18日1. 课程设计目的.32. 课程(三级项目软件)分析及设计 32.1 通讯录系统分析 32.2 通讯录系统设计 32.2.1 通讯录系统的功能模块 32.2.2 通讯录系统流程图 42.2.3 通讯录系统功能图 42.2.4 数据库系统设计 53、课程设计步骤 63.1、设计登录界面 63.2、设计数据库 63.3、注册界面 63.4、设计主界面

2、 103.5、整体设计 174、系统调试和相关问题 125 课程设计总结 186 参考文献 191. 课程(三级项目软件)目的本次课程设计旨在加强学生对面向对象程序设计思想的理解,增强对C#程序语言的灵活运用及其其中的控件和属性的熟练的操作与使用。并在此过程中要求学生能结合数据库知识和visual studio中的windows窗体 ,实现基本的应用软件,激发学生对c#的兴趣,以此来激发学生对软件的热爱,加强学生的自我编程能力。2. 课程(三级项目软件)分析及设计2.1 通讯录系统分析 根据技术要求和现有开发环境,分析通讯录系统,一个简单的通讯录可以实现用户登录,用户注册,联系人的添加,修改,

3、删除,用户的密码修改,刷新,精确查找和模糊查找等功能;可能的话,支持相片功能,随心更换图片。在课程设计中,使用了采用windows窗体和C#语言来进行实际设计,涉及到了多用户登录等相关操作和SQL SERVER数据库连接使用。2.2 通讯录系统设计2.2.1 通讯录系统的功能模块 该通讯录系统大致可分为两大部分:登录界面和主界面。 登录界面:简洁,靓丽的登录界面会给使用者一种愉悦的心情;该界面包括基本的用户登录,还可以注册,第一次使用时,可以先注册一个新用户,登录就去。 主界面:通讯录的的基本功能都在主界面中,使用tabcontrol控件,来回切换,简单方便,主要包括联系人的添加,修改,删除查

4、看,精确查找和模糊查找;窗体上端有menuStrip1,可以实现用户的密码修改,刷新,退出功能。2.2.2 通讯录系统流程图 图1通讯录程序流程图2.2.3 通讯录系统功能图2.2.4 数据库系统设计用户信息表(UserInfo)列名数据类型长度是否为主键是否为空注释UserNamenverchar20是否用户名UserPwdnverchar20否否密码联系人信息表(FriInfo)列名数据类型长度是否为主键是否为空注释id int是否编号头像nvarchar(MAX)MAX否是本人nvarchar20否否UserName(用户名)姓名nvarchar20否否性别char2否否出生日期date

5、time否否电话char20否否qqchar20否否籍贯nvarchar20否否邮箱char20否是3、课程设计步骤3.1、设计登录界面 两个textbox控件组成一个简单的登录界面:用户名输入框、密码输入框,建立数据库后,可以链接数据库验证 用户名和密码是否存在或一致;必不可少的两个触发按钮:登录、重置;另外加上注册按钮,新用户必须先注册,其也与数据库相链接。图2.登录窗口登录按钮的程序设计:string sql = select*from UserInfo where UserName= + txtUserName.Text.Trim().ToLower() + and UserPwd=

6、+ txtPassword.Text.Trim() + ; if (OperateDB.ExecuteReader(sql) username = txtUserName.Text.Trim().ToLower(); frmMain1 frm = new frmMain1(); frm.Show(); this.Hide(); else MessageBox.Show(用户名或密码错误!, 来自软件消息, MessageBoxButtons.OK, MessageBoxIcon.Error); 3.2、设计数据库 yx数据库包括UserInfo(用户信息)、FriInfo(联系人信息)两个表。

7、3.3、注册界面 简单的注册界面包括:用户名、密码、在此输入密码,可以的话加上验证码;每个新注册的用户在数据库中必有数据;因为链接数据库,输入已有的用户名或者每天写某一项时,会报错。 图3.用户注册界面 程序设计(该窗体的全部功能的实现): private void Form3_Load(object sender, EventArgs e)/主窗体的代码区 CodeImage(CheckCode(ref str); string str = ; private void btnCompelet_Click(object sender, EventArgs e) if (txtUsername

8、.Text.Trim() != ) if (txtZhuPwd.Text.Trim() = txtZhuPwdAgain.Text.Trim() if (txtYanZheng.Text = ) MessageBox.Show(请输入验证码!, 来自软件消息, MessageBoxButtons.OK, MessageBoxIcon.Information); else if (txtYanZheng.Text = str) string sql1 = select * from UserInfo where UserName= + txtUsername.Text.Trim() + ; bo

9、ol count = (bool)OperateDB.ExecuteReader(sql1); if (count = false) string sql = insert into UserInfo(UserName,UserPwd)values( + txtUsername.Text.Trim() + , + txtZhuPwd.Text.Trim() + ); if (OperateDB.ExecuteNonQuery(sql) = 1) MessageBox.Show(用户注册成功!, 来自软件消息, MessageBoxButtons.OK); else MessageBox.Sho

10、w(用户注册失败!, 来自软件消息, MessageBoxButtons.OK); else MessageBox.Show(用户名已存在!, 来自软件消息, MessageBoxButtons.OK); else MessageBox.Show(验证码错误!, 来自软件消息, MessageBoxButtons.OK, MessageBoxIcon.Information); str = ; CodeImage(CheckCode(ref str); else MessageBox.Show(两次输入的密码不一致!, 来自软件消息, MessageBoxButtons.OK); else M

11、essageBox.Show(用?户名?不?能为a空?!, 来自?软件t消?息, MessageBoxButtons.OK); /产生随机数的函数 private string CheckCode(ref string s) int number; char code; string checkCode = String.Empty; /空字符串且为只读属性 Random random = new Random();/新建一个随机数产生器 for (int i = 0; i 4; i+) number = random.Next();/随机产生一个整数 if (number % 2 = 0)

12、/如果随机数是偶数取余 code = (char)(0 + (char)(number % 10); else code = (char)(A + (char)(number % 26); /如果随机数是奇数选择从A-Z checkCode += + code.ToString();/4个字符的组合 s = s + code.ToString(); return checkCode; /返回字符串checkCode private void CodeImage(string checkCode) /建立一个随机图形 if (checkCode = null | checkCode.Trim()

13、 = String.Empty) return; /建立一个位图文件 确立长宽 System.Drawing.Bitmap image = new System.Drawing.Bitmap(int)Math.Ceiling(checkCode.Length * 8.5), 20); Graphics g = Graphics.FromImage(image); try Random random = new Random();/生成随机生成器 g.Clear(Color.White); /清空图片背景色 for (int i = 0; i 3; i+) /画图片的背景噪音线 int x1 =

14、 random.Next(image.Width); int x2 = random.Next(image.Width); int y1 = random.Next(image.Height); int y2 = random.Next(image.Height); g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2); /把产生的随机数以字体的形式写入画面 Font font = new System.Drawing.Font(Arial, 12, (System.Drawing.FontStyle.Bold); g.DrawString(chec

15、kCode, font, new SolidBrush(Color.Red), 2, 2); for (int i = 0; i 150; i+) /画图片的前景噪音点 int x = random.Next(image.Width); int y = random.Next(image.Height); image.SetPixel(x, y, Color.FromArgb(random.Next(); /画图片的边框线? g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1); this

16、.pictureBox1.Width = image.Width; this.pictureBox1.Height = image.Height; this.pictureBox1.BackgroundImage = image; catch private void timer1_Tick(object sender, EventArgs e) this.Opacity += 0.05; private void pictureBox1_Click(object sender, EventArgs e) str = ; CodeImage(CheckCode(ref str); privat

17、e void btnReset_Click(object sender, EventArgs e) txtUsername.Text = ; txtZhuPwd.Text = ; txtZhuPwdAgain.Text = ; txtYanZheng.Text = ; 3.4、设计主界面 按照我的思路主页面有两个大体的控件:menuStrip、tabControl。1、 menuStrip主要包括管理帐号、刷新、退出2、 tabControl:在该控件上建立几个选项卡,分别命名:显示主页、查看、添加、管理联系人、关于其中大部分必须链接数据库:string sql=” select/update

18、 (from) 表名 where/set .”; 其次加上”欢迎观临:用户名”,当前时间,背景音乐(独曲) 显示时间的程序设计:DateTime dt = DateTime.Now; /当前时间的实例 label10.Text = dt.ToString();图4.修改密码管理帐号(即修改密码)程序设计: if (txtNewPwd.Text.Trim() = txtNewPwdAgain.Text.Trim() /使用类封装 string sqlCheckPwd = select * from UserInfo where UserName= + frmLogin.username + an

19、d UserPwd= + txtOldPwd.Text.Trim() + ; if (OperateDB.ExecuteReader(sqlCheckPwd) string sql = update UserInfo set UserPwd= + txtNewPwd.Text.Trim() + where UserName= + frmLogin.username + ; if (OperateDB.ExecuteNonQuery(sql) = 1) MessageBox.Show(密码修改成功!); this.Hide(); else MessageBox.Show(密码修改失败!); el

20、se MessageBox.Show(旧密码不正确!); else MessageBox.Show(两次修改的密码不一!); 图5 添加联系人 添加头像的程序设计如4.系统调试和问题解决 添加联系人的程序设计: if (txtName.Text.Trim()!= ) if (mtxtPhone.Text.Trim()!=) if (mtxtPhone.Text.Trim().Length = 11) if (pictureBox1.Image != null) string FriSex = ; if (optMale.Checked) FriSex = 男; if (optFemale.Ch

21、ecked) FriSex = 女; string sql = insert into FriInfo(本人,姓名,性别,出生日期,电话,QQ,籍贯,邮箱,头像) Values( + frmLogin.username + , + txtName.Text.Trim().ToLower() + , + FriSex + , + dateTimePicker1.Value + , + mtxtPhone.Text + , + txtQq.Text + , + comboBox1.SelectedItem + , + txtYxiang.Text + , + newName + ); try if

22、 (OperateDB.ExecuteNonQuery(sql) = 1) MessageBox.Show(添加联系人成功!); else MessageBox.Show(添加联系人失败!); catch MessageBox.Show(添加失败,不能重复记录!); else MessageBox.Show(头像不能为空!); else MessageBox.Show(请输入11位有效电话号码.,来自软件消息,MessageBoxButtons.OK); else MessageBox.Show(电话不能为空!); else MessageBox.Show(姓名不能为空!); 图6 管理联系人

23、修改头像按钮的程序设计: string cc = String.Empty;/定义字符类型 string dbName = String.Empty; OpenFileDialog open = new OpenFileDialog();/打开文件 open.Filter = 图片文件(*.jpg;*.gif;*.png;*.bmp)|*.jpg;*.gif;*.png;*.bmp|所有文(*.*)|*.*; if (open.ShowDialog() = DialogResult.OK) cc = open.FileName;/ Image image = System.Drawing.Im

24、age.FromFile(cc);/索要打开的图像 pictureBox2.Image = image; string splitName = cc.Split(.); /分割字符串,为获得扩展名做准备 string ext = splitNamesplitName.Length - 1; /获取文件的扩展名 if (ext = jpg | ext = jpeg | ext = bmp | ext = gif | ext = ico | ext = png) dbName = DateTime.Now.ToString(yyyymmddhhmmss) + . + ext; /给上传的图片起名字

25、,以时间为名字 newName = AppDomain.CurrentDomain.BaseDirectory + images + dbName; /新路径即当前的相对路径imagesdbName; File.Copy(cc, newName, true); Image dd = System.Drawing.Image.FromFile(newName);/复制文件到新目录 string sql = update FriInfo set 头像= + newName + where ID= + b + ; SqlConnection conn = new SqlConnection(Oper

26、ateDB.ConnString); conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); int i = cmd.ExecuteNonQuery(); conn.Close(); BindData();修改联系人修改按钮的程序设计: int j = dataGridView1.SelectedRows.Count; int l = new intj; int c; for (c = 0; c j; c+) lc = dataGridView1.SelectedRowsc.Index; int k = 0; while (k j) a

27、 = ds.Tables0.Rowslk1.ToString(); b = ds.Tables0.Rowslk0.ToString(); Image image = new Bitmap(a); pictureBox2.Image = image; k+; string sql = update FriInfo set 头像= + newName + where ID= + b + ; SqlConnection conn = new SqlConnection(OperateDB.ConnString); conn.Open(); SqlCommand cmd = new SqlComman

28、d(sql, conn); int x = cmd.ExecuteNonQuery(); conn.Close(); BindData(); 删除联系人的程序设计: DialogResult dlResult= MessageBox.Show(this,确定删除所选信息吗?,来自软件消息,MessageBoxButtons.YesNo,MessageBoxIcon.Question); if (dlResult = DialogResult.Yes) int j = dataGridView1.SelectedRows.Count; int m=new intj; int i; for(i=0;ij;i+)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1