计算机系C#NET课程设计报告Word格式.docx
- 文档编号:4210453
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:23
- 大小:260.02KB
计算机系C#NET课程设计报告Word格式.docx
《计算机系C#NET课程设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《计算机系C#NET课程设计报告Word格式.docx(23页珍藏版)》请在冰点文库上搜索。
第12章参考文献15
第1章项目简介
1.1项目名称
1.2开发人员
09计科3班张志扬
1.3指导教师
第2章项目研究问题
2.1题目内容
利用C#.NET和网络编程实现局域网聊天功能
2.2基本要求
数据库连接、局域网内实现群发功能。
2.3测试数据
对于用户名为关键字的记录集合,可以人工录入数据,也可以注册生成。
第3章需求分析
3.1本程序利用C#.NET和网络应用编程思想实现同一局域网内多个用户群发聊天功能和一对一私聊功能。
3.2运行本程序,输入用户名和密码后,进入聊天主窗体,选择群聊或者私聊进行信息发送、支持注册新账号。
第4章课程设计项目进度表
日期
完成的工作
2012-1-2
项目可行性研究
2012-1-3
确定窗体关系,数据库数据类型,运行环境
2012-1-4
程序设计、调试和美化
2012-1-5
系统联合调试,撰写课程设计总结报告
交课程设计纸质和电子版材料
第5章课程设计任务分配表
成员
座号
项目内容
序号
15号
程序规划、程序可行性分析
01
数据库建立、程序编写
02
窗体、按钮美化
03
总体调试、测试
04
测试、编写电子文档
05
第6章概要设计
6.1.主窗体设计、各个窗体设计、窗体切换设计。
6.2.本程序包含5个模块。
(1)主窗体模块;
主控制面板。
(2)注册账号模块;
注册新账号。
(3)登录模块;
登录主窗体
(4)私聊模块;
进入私聊窗体。
(5)群聊模块。
进入群聊窗体
各模块之间的调用关系如下图所示。
注册模块
↓
注册新账号
登录模块
↓
主窗体模块
↓↓
群聊模块私聊模块
第7章详细设计
7.1注册账号关键代码:
if(textBox1.Text=="
"
)
{
MessageBox.Show("
请输入用户名!
);
}
elseif(textBox2.Text=="
||textBox3.Text=="
请输入密码!
elseif(textBox2.Text!
=textBox3.Text)
两次输入的密码不一致,请重新输入!
else
stringusername=textBox1.Text.Trim();
stringpassword=textBox2.Text.Trim();
stringpassword2=textBox3.Text.Trim();
stringsex=radioButton1.Checked?
"
true"
:
false"
;
stringprovince=comboBox1.Text.ToString();
try
DBClass.scon.Open();
SqlCommandscmd=newSqlCommand();
scmd.Connection=DBClass.scon;
scmd.CommandText="
insertintoTable_userinfo(username,password,sex,province)values('
+username+"
'
'
+password+"
+sex+"
+province+"
)"
intdr;
dr=scmd.ExecuteNonQuery();
if(dr>
0)
注册成功!
this.Close();
DBClass.scon.Close();
catch
账号已存在,注册失败!
finally
7.2登录验证关键代码:
stringusername=textBox1.Text;
stringpassword=textBox2.Text;
UserInfo.UserName=username;
if(username=="
elseif(password=="
select*fromTable_userinfowhereusername='
andpassword='
SqlDataReadersdr;
sdr=scmd.ExecuteReader();
if(sdr.HasRows)
登录成功,欢迎您:
+username);
this.Hide();
Panelpl=newPanel();
pl.Show();
用户名或密码错误,请重新登录!
服务器连接失败,登录失败!
7.3群聊功能关键代码:
加入群聊:
Cursor.Current=Cursors.WaitCursor;
ThreadmyThread=newThread(ReceiveMessage);
myThread.Start();
Thread.Sleep(1000);
SendMessage(broderCastIp,"
Login"
label4.Enabled=false;
label5.Enabled=true;
Cursor.Current=Cursors.Default;
退出群聊:
Logout"
udpclient.DropMulticastGroup(this.broderCastIp);
//udpclient.Close();
label4.Enabled=true;
label5.Enabled=false;
群聊接收信息:
udpclient=newUdpClient(port);
udpclient.JoinMulticastGroup(broderCastIp);
udpclient.Ttl=50;
IPEndPointremote=null;
while(true)
byte[]bytes=udpclient.Receive(refremote);
stringstr=Encoding.UTF8.GetString(bytes,0,bytes.Length);
string[]splitString=str.Split('
ints=splitString[0].Length;
switch(splitString[0])
case"
:
SetListBoxItem(listBoxMessage,string.Format("
[{0}]进入"
remote.Address),ListBoxOperation.AddItem);
SetListBoxItem(listBoxAddress,remote.Address.ToString(),ListBoxOperation.AddItem);
stringuserListString="
List,"
+remote.Address.ToString();
for(inti=0;
i<
listBoxAddress.Items.Count;
i++)
userListString+="
"
+listBoxAddress.Items[i].ToString();
SendMessage(remote.Address,userListString);
break;
List"
for(inti=1;
splitString.Length;
SetListBoxItem(listBoxAddress,splitString[i],ListBoxOperation.AddItem);
Message"
[{0}]说:
{1}"
remote.Address,str.Substring(8)),ListBoxOperation.AddItem);
[{0}]退出."
SetListBoxItem(listBoxMessage,remote.Address.ToString(),ListBoxOperation.RemoveItem);
catch(Exceptionex)
MessageBox.Show(ex.Message.ToString()+"
接收失败!
7.4私聊关键代码:
加入私聊:
pictureBox1.Enabled=false;
client=newTcpClient(UserInfo.serverip,51888);
AddTalkMessage("
连接成功!
!
连接失败!
pictureBox1.Enabled=true;
return;
NetworkStreamnetworkStream=client.GetStream();
br=newBinaryReader(networkStream);
bw=newBinaryWriter(networkStream);
SendMessage("
Login,"
+textBox1.Text);
ThreadthreadReceive=newThread(newThreadStart(ReceiveData));
threadReceive.IsBackground=true;
threadReceive.Start();
发送信息:
if(listBoxOnline.SelectedIndex!
=-1)
Talk,"
+listBoxOnline.SelectedItem+"
+textBox2.Text+"
\r\n"
textBox2.Clear();
请选择一个要聊天的好友!
私聊接收信息:
stringreceiveString=null;
while(isExit==false)
receiveString=br.ReadString();
if(isExit==false)
Lostconnectionwithserver!
string[]splitString=receiveString.Split('
stringcommand=splitString[0].ToLower();
switch(command)
login"
AddOnline(splitString[1]);
logout"
RemoveUserName(splitString[1]);
talk"
AddTalkMessage(splitString[1]+"
\r\n"
AddTalkMessage(receiveString.Substring(splitString[0].Length+splitString[1].Length+2));
default:
What'
sthemeaning:
+receiveString);
7.5修改个人资料:
if(textBox1.Text=="
textBox1.Text=UserInfo.UserName;
elseif(textBox6.Text=="
||textBox9.Text=="
elseif(textBox6.Text!
=textBox9.Text)
updateTable_userinfosetusername='
+textBox1.Text.Trim()+"
password='
+textBox6.Text.Trim()+"
sex='
province='
whereusername='
+label7.Text+"
scmd.ExecuteNonQuery();
修改成功!
catch(Exceptionex)
MessageBox.Show(ex.Message.ToString()+"
修改失败!
打印与打印预览个人资料:
privatevoidlabel19_Click(objectsender,EventArgse)
PrintDialogpd=newPrintDialog();
pd.ShowDialog();
PrintDocumentpd2=newPrintDocument();
pd2.Print();
privatevoidlabel18_Click(objectsender,EventArgse)
PrintPreviewDialogppd=newPrintPreviewDialog();
ppd.ShowDialog();
7.6数据库连接关键代码:
数据库连接:
publicstaticstringstrsql="
DataSource='
+UserInfo.serverip+"
InitialCatalog=TalkDataBase;
uid=sa;
pwd=521125"
publicstaticSqlConnectionscon=newSqlConnection(strsql);
7.7用户信息保存:
用户信息:
publicstaticstringUserName;
publicstaticstringserverip;
publicstaticstringqqnumber;
第8章调试分析
8.1调试数据库连接。
8.2调试注册信息数据类型和验证。
8.3调试登录信息验证和保存。
8.4在局域网内多台电脑调试群聊功能和私聊功能。
8.5美化窗体和按钮等。
第9章使用说明
本程序采用分步提示的方法输入,用户只需根据屏幕提示注册账号,然后登录即可。
第10章测试结果
(1)注册账号:
(2)登录窗口:
(3)主界面:
(4)群聊功能:
(5)私聊功能:
(6)修改个人资料:
(7)右键菜单:
(8)服务器监听:
·
第11章设计心得
通过课程设计加强了我对C#.NET这一学科的进一步认识,在设计过程中我综合运用了所学的C#基础理论,基础知识,基本技能,进行程序分析和程序开发,提高在实际开发中解决问题的能力,达到了能够利用C#.NET进行应用程序的规划,分析、设计和实施,更能进一步使用我对C#这门语言有更深刻的理解和更好地运用我们所学的知识。
在设计过程中,我面临着如何设计、如何解决在设计中所遇到的问题、如何才能让程序实现我们要让它完成的任务……首先,我选取了“迷你聊天软件”这一项目,在明确了要解决的问题的基础上进行算法设计、数据库设计和程序设计,将这一处理需求转化为计算机的解题步骤,逐步细化概要设计所生成的各个模块,详细描述程序模块的内部细节,形成可编程的程序模块;
接下来进行程序编码,根据该项目的设计规格说明,将软件的设计尽可能做到详细、正确和完整;
最后一步为测试和调试,发现和纠正程序中的错误,验证程序与详细设计文档的一致性,从而确保程序实现了需求规格说明规定功能。
在调试过程中遇到各种各样的问题,我主要通过查找书本的有关知识、课外的一些参考书籍、上网查找相关资料、向其他同学求助以及向老师请教等多方渠道,最终取得圆满成功。
这次课程设计让我清楚的体会到要想真正的学会运用自己所学知识就必须掌握书上的基础,只有如此才能运用自如地让自己所学到的知识更好的在我们的生活中得以运用。
第12章参考文献
【1】C#.NET程序设计实用教程北京:
清华大学出版社
【2】C#网络应用编程(第二版)北京:
清华大学出版社
【3】数据库原理与SQLServer北京:
高等教育出版社
【4】窗体美化网络引擎(XX、Google)
学校地址:
福建省武夷山市武夷大道16号
设计单位:
版本号:
WyuKcsjVer2007
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系 NET 课程设计 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)