C#课程设计通讯录软件设计Word文档下载推荐.docx

上传人:b****5 文档编号:16470478 上传时间:2022-11-23 格式:DOCX 页数:31 大小:1.99MB
下载 相关 举报
C#课程设计通讯录软件设计Word文档下载推荐.docx_第1页
第1页 / 共31页
C#课程设计通讯录软件设计Word文档下载推荐.docx_第2页
第2页 / 共31页
C#课程设计通讯录软件设计Word文档下载推荐.docx_第3页
第3页 / 共31页
C#课程设计通讯录软件设计Word文档下载推荐.docx_第4页
第4页 / 共31页
C#课程设计通讯录软件设计Word文档下载推荐.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

C#课程设计通讯录软件设计Word文档下载推荐.docx

《C#课程设计通讯录软件设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C#课程设计通讯录软件设计Word文档下载推荐.docx(31页珍藏版)》请在冰豆网上搜索。

C#课程设计通讯录软件设计Word文档下载推荐.docx

1.课程(三级项目—软件)目的

本次课程设计旨在加强学生对面向对象程序设计思想的理解,增强对C#程序语言的灵活运用及其其中的控件和属性的熟练的操作与使用。

并在此过程中要求学生能结合数据库知识和visualstudio中的windows窗体,实现基本的应用软件,激发学生对c#的兴趣,以此来激发学生对软件的热爱,加强学生的自我编程能力。

2.课程(三级项目—软件)分析及设计

2.1通讯录系统分析

根据技术要求和现有开发环境,分析通讯录系统,一个简单的通讯录可以实现用户登录,用户注册,联系人的添加,修改,删除,用户的密码修改,刷新,精确查找和模糊查找等功能;

可能的话,支持相片功能,随心更换图片。

在课程设计中,使用了采用windows窗体和C#语言来进行实际设计,涉及到了多用户登录等相关操作和SQLSERVER数据库连接使用。

2.2通讯录系统设计

2.2.1通讯录系统的功能模块

该通讯录系统大致可分为两大部分:

登录界面和主界面。

登录界面:

简洁,靓丽的登录界面会给使用者一种愉悦的心情;

该界面包括基本的用户登录,还可以注册,第一次使用时,可以先注册一个新用户,登录就去。

主界面:

通讯录的的基本功能都在主界面中,使用tabcontrol控件,来回切换,简单方便,主要包括联系人的添加,修改,删除查看,精确查找和模糊查找;

窗体上端有menuStrip1,可以实现用户的密码修改,刷新,退出功能。

2.2.2通讯录系统流程图

图1通讯录程序流程图

2.2.3通讯录系统功能图

·

2.2.4数据库系统设计

用户信息表(UserInfo)

列名

数据类型

长度

是否为主键

是否为空

注释

UserName

nverchar

20

用户名

UserPwd

密码

联系人信息表(FriInfo)

id

int

编号

头像

nvarchar(MAX)

MAX

本人

nvarchar

UserName(用户名)

姓名

性别

char

2

出生日期

datetime

电话

qq

籍贯

邮箱

3、课程设计步骤

3.1、设计登录界面

两个textbox控件组成一个简单的登录界面:

用户名输入框、密码输入框,建立数据库后,可以链接数据库验证用户名和密码是否存在或一致;

必不可少的两个触发按钮:

登录、重置;

另外加上注册按钮,新用户必须先注册,其也与数据库相链接。

图2.登录窗口

登录按钮的程序设计:

stringsql="

select*fromUserInfowhereUserName='

"

+txtUserName.Text.Trim().ToLower()+"

'

andUserPwd='

+txtPassword.Text.Trim()+"

;

if(OperateDB.ExecuteReader(sql))

{

username=txtUserName.Text.Trim().ToLower();

frmMain1frm=newfrmMain1();

frm.Show();

this.Hide();

}

else

MessageBox.Show("

用户名或密码错误!

"

来自软件消息"

MessageBoxButtons.OK,MessageBoxIcon.Error);

3.2、设计数据库

yx数据库包括UserInfo(用户信息)、FriInfo(联系人信息)两个表。

3.3、注册界面

简单的注册界面包括:

用户名、密码、在此输入密码,可以的话加上验证码;

每个新注册的用户在数据库中必有数据;

因为链接数据库,输入已有的用户名或者每天写某一项时,会报错。

图3.用户注册界面

程序设计(该窗体的全部功能的实现):

privatevoidForm3_Load(objectsender,EventArgse)//主窗体的代码区

CodeImage(CheckCode(refstr));

stringstr="

privatevoidbtnCompelet_Click(objectsender,EventArgse)

if(txtUsername.Text.Trim()!

="

if(txtZhuPwd.Text.Trim()==txtZhuPwdAgain.Text.Trim())

if(txtYanZheng.Text=="

请输入验证码!

MessageBoxButtons.OK,MessageBoxIcon.Information);

if(txtYanZheng.Text==str)

stringsql1="

select*fromUserInfowhereUserName='

+txtUsername.Text.Trim()+"

boolcount=(bool)OperateDB.ExecuteReader(sql1);

if(count==false)

stringsql="

insertintoUserInfo(UserName,UserPwd)values('

'

+txtZhuPwd.Text.Trim()+"

)"

if(OperateDB.ExecuteNonQuery(sql)==1)

用户注册成功!

MessageBoxButtons.OK);

用户注册失败!

用户名已存在!

验证码错误!

str="

两次输入的密码不一致!

用®

?

户¡

ì

名?

不?

能¨

¹

为a空?

!

来¤

¡

ä

自Á

软¨

¨

ª

件t消?

息¡

é

}//产生随机数的函数

privatestringCheckCode(refstrings)

intnumber;

charcode;

stringcheckCode=String.Empty;

//空字符串且为只读属性

Randomrandom=newRandom();

//新建一个随机数产生器

for(inti=0;

i<

4;

i++)

number=random.Next();

//随机产生一个整数

if(number%2==0)//如果随机数是偶数取余

code=(char)('

0'

+(char)(number%10));

else

A'

+(char)(number%26));

//如果随机数是奇数选择从[A-Z]

checkCode+="

"

+code.ToString();

//4个字符的组¦

s=s+code.ToString();

}

returncheckCode;

//返回字符串checkCode

privatevoidCodeImage(stringcheckCode)//建立一个随机图形

if(checkCode==null||checkCode.Trim()==String.Empty)

return;

//建立一个位图文件确立长宽¨

System.Drawing.Bitmapimage=newSystem.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length*8.5)),20);

Graphicsg=Graphics.FromImage(image);

try

//生成随机生¦

成器

g.Clear(Color.White);

//清空图片背景色

3;

i++)//画图片的背景噪音线

intx1=random.Next(image.Width);

intx2=random.Next(image.Width);

inty1=random.Next(image.Height);

inty2=random.Next(image.Height);

g.DrawLine(newPen(Color.Black),x1,y1,x2,y2);

}//把产生的随机数以字体的形式写入画面

Fontfont=newSystem.Drawing.Font("

Arial"

12,(System.Drawing.FontStyle.Bold));

g.DrawString(checkCode,font,newSolidBrush(Color.Red),2,2);

150;

i++)//画图片的前景噪音点

intx=random.Next(image.Width);

inty=random.Next(image.Height);

image.SetPixel(x,y,Color.FromArgb(random.Next()));

}//画图片的边框线?

g.DrawRectangle(newPen(Color.Silver),0,0,image.Width-1,image.Height-1);

this.pictureBox1.Width=image.Width;

this.pictureBox1.Height=image.Height;

this.pictureBox1.BackgroundImage=image;

catch

{}

privatevoidtimer1_Tick(objectsender,EventArgse)

this.Opacity+=0.05;

privatevoidpictureBox1_Click(objectsender,EventArgse)

privatevoidbtnReset_Click(objectsender,EventArgse)

txtUsername.Text="

txtZhuPwd.Text="

txtZhuPwdAgain.Text="

txtYanZheng.Text="

3.4、设计主界面

按照我的思路主页面有两个大体的控件:

menuStrip、tabControl。

1、menuStrip主要包括管理帐号、刷新、退出

2、tabControl:

在该控件上建立几个选项卡,分别命名:

显示主页、查看、添加、管理联系人、关于

其中大部分必须链接数据库:

stringsql=”select/update(from)表名where/set…….”;

其次加上”欢迎观临:

用户名”,当前时间,背景音乐(独曲)

显示时间的程序设计:

DateTimedt=DateTime.Now;

//当前时间的实例

label10.Text=dt.ToString();

图4.修改密码

管理帐号(即修改密码)程序设计:

if(txtNewPwd.Text.Trim()==txtNewPwdAgain.Text.Trim())

{//使用类封装

stringsqlCheckPwd="

+frmLogin.username+"

+txtOldPwd.Text.Trim()+"

if(OperateDB.ExecuteReader(sqlCheckPwd))

updateUserInfosetUserPwd='

+txtNewPwd.Text.Trim()+"

whereUserName='

密码修改成功!

);

密码修改失败!

旧密码不正确!

两次修改的密码不一!

图5添加联系人

添加头像的程序设计如4.系统调试和问题解决

添加联系人的程序设计:

if(txtName.Text.Trim()!

if(mtxtPhone.Text.Trim()!

="

if(mtxtPhone.Text.Trim().Length==11)

if(pictureBox1.Image!

=null)

stringFriSex="

if(optMale.Checked)

FriSex="

男"

if(optFemale.Checked)

女"

insertintoFriInfo(本人,姓名,性别,出生日期,电话,QQ,籍贯,邮箱,头像)Values('

+txtName.Text.Trim().ToLower()+"

'

+FriSex+"

+dateTimePicker1.Value+"

+mtxtPhone.Text+"

+txtQq.Text+"

+comboBox1.SelectedItem+"

+txtYxiang.Text+"

+newName+"

添加联系人成功!

添加联系人失败!

添加失败,不能重复记录!

头像不能为空!

请输入11位有效电话号码..."

"

MessageBoxButtons.OK);

电话不能为空!

姓名不能为空!

图6管理联系人

修改头像按钮的程序设计:

stringcc=String.Empty;

//定义字符类型

stringdbName=String.Empty;

OpenFileDialogopen=newOpenFileDialog();

//打开文件

open.Filter="

图片文件(*.jpg;

*.gif;

*.png;

*.bmp)|*.jpg;

*.bmp|所有文(*.*)|*.*"

if(open.ShowDialog()==DialogResult.OK)

cc=open.FileName;

//

Imageimage=System.Drawing.Image.FromFile(cc);

//索要打开的图像

pictureBox2.Image=image;

string[]splitName=cc.Split('

.'

//分割字符串,为获得扩展名做准备

stringext=splitName[splitName.Length-1];

//获取文件的扩展名

if(ext=="

jpg"

||ext=="

jpeg"

bmp"

gif"

ico"

png"

dbName=DateTime.Now.ToString("

yyyymmddhhmmss"

)+"

."

+ext;

//给上传的图片起名字,以时间为名字

newName=AppDomain.CurrentDomain.BaseDirectory+"

images\\"

+dbName;

//新路径即当前的相对路径\images\dbName;

File.Copy(cc,newName,true);

Imagedd=System.Drawing.Image.FromFile(newName);

//复制文件到新目录

updateFriInfoset头像='

whereID='

+b+"

SqlConnectionconn=newSqlConnection(OperateDB.ConnString);

conn.Open();

SqlCommandcmd=newSqlCommand(sql,conn);

inti=cmd.ExecuteNonQuery();

conn.Close();

BindData();

修改联系人修改按钮的程序设计:

intj=dataGridView1.SelectedRows.Count;

int[]l=newint[j];

intc;

for(c=0;

c<

j;

c++)

l[c]=dataGridView1.SelectedRows[c].Index;

intk=0;

while(k<

j)

a=ds.Tables[0].Rows[l[k]][1].ToString();

b=ds.Tables[0].Rows[l[k]][0].ToString();

Imageimage=newBitmap(a);

k++;

intx=cmd.ExecuteNonQuery();

删除联系人的程序设计:

DialogResultdlResult=MessageBox.Show(this,"

确定删除所选信息吗?

MessageBoxButtons.YesNo,MessageBoxIcon.Question);

if(dlResult==DialogResult.Yes)

{

int[]m=newint[j];

inti;

for(i=0;

i<

j;

i++)

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

当前位置:首页 > 小学教育 > 小升初

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

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