C#课程设计报告.docx
- 文档编号:30272600
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:23
- 大小:1.80MB
C#课程设计报告.docx
《C#课程设计报告.docx》由会员分享,可在线阅读,更多相关《C#课程设计报告.docx(23页珍藏版)》请在冰豆网上搜索。
C#课程设计报告
学号:
计算机科学与技术学院
C#课程考察报告
题目
电子邮件客户端课程设计
专业
计算机科学与技术
班级
计科131
姓名
教师
万良
2015年12月25日
一概述-------------------------------------------------2
1.课程设计的目的-----------------------------------------2
2.课程设计的要求----------------------------------------2
3.软件的选择--------------------------------------------2
4、软件的的功能和优点------------------------------------3
二总体方案设计---------------------------------------4
1、需求分析----------------------------------------------4
2、概念结构设计------------------------------------------5
3、逻辑结构设计------------------------------------------5
4、物理结构设计------------------------------------------7
三详细设计--------------------------------------------8
1、数据库的创建------------------------------------------8
2、数据表的创建------------------------------------------8
3、主要功能界面运行效果图--------------------------------9四课程设计总结---------------------------------------17
参考文献-----------------------------------------------18
C#课程设计成绩评定表-----------------------------19
一概述
1.课程设计的目的
本课程设计的目的是使学生能熟练掌握简单的简单Windows窗体应用程序的设计和ADO.net的应用,希望通过本次课程设计锻炼学生使用C#语言解决实际问题的能力。
《C#程序设计》是软件工程专业的必修专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
本课程的程序设计专题实际是软件技术专业学生学习完《C#程序设计》课程后,进行的一次全面的综合训练,C#程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
2.课程设计的要求
1)要求学生达到熟练掌握.NET基本结构以及C#语言的基本知识和技能;
2)基本掌握面向对象程序开发的基本思路和方法;
3)能够利用所学的基本知识和技能,进行简单应用程序设计;
4)要求利用C#的编程思想以及组件开发原理来完成系统的设计;
5)体现可视化编程基本东西,如系统带有菜单、工具栏、状态栏以及常用的高级控件;
3、软件的选择
VisualStudio2012
SQLServer2008
4、软件的的功能和优点
1、支持2010项目的升级,不兼容的部分会给出提示。
2、多层化结构视图,查看代码关系更方便。
3、文件预览功能,在资源视图中选中即可预览该文件。
4、Tab组功能。
可以自建多个Tab组,并可随意在组之间拖拽,代码浏览更方便
5、窗口切分功能。
当我们需要在两个窗口打开同一个文件时,可以使用该功能。
6、多显示器的支持,可以把任意可以浮动的窗口移动到其他显示器。
7、支持编译器整体颜色风格的变更,也支持里面具体字体和显示样式的定制。
8、支持对IDE中任意项目(比如菜单项)的搜索。
9、智能缩进换行和括号匹配。
二总体方案设计
1、需求分析
1)问题描述。
随着互联网的不断发展,越来越多的企业单位通过电子邮件来协同工作,打破时间与地域的限制,大大提高了工作效率。
电子邮件已地经成为人们生活中不可缺少的一部分。
但是,当前流行的各大邮件客户端软件除了最主要的收发信件之外,功能越来越复杂,但是人们平常真正用到的功能很少,很多功能尤其对于那些计算机知识相对缺乏的人来说,更加显得太过于华丽而不实用。
所以这次课程设计,我选择制作一个操作简单,又可以实现最基本的电子邮件的收发功能的工具。
2)系统功能描述,分析所需要存储的数据信息。
系统功能:
①基本发送和接受邮件的功能。
②实现通信功能。
③具有简单、实用、易操作的图形界面。
④在以上基础上尽量实现发送附件的功能。
⑤程序还应可以判断整个过程是否能正常运行,如果不正常运行,必须给出错误信息。
需要存储的数据信息:
系统用户信息联系人信息邮箱账户信息邮件信息
3)有何安全性与完整性方面的要求。
在设计中所有的关系模式必须满足实体完整性、参照完整性、用户定义完整性;安全性首先要求用户设置的登录密码是不少于六位的数字或字母或数字加字母,只有输入正确的账户和密码信息才能登录,进行发件,收件等操作。
2、概念结构设计
3、逻辑结构设计
1)模式设计:
按系统整体E-R模型,写出关系模式;并利用数据字典加以描述。
系统用户表
属性名
存储代码
类型
长度
备注
用户名
Username
varcher
50
Primarykey系统用户注册与登录时的用户名
登录密码
Password
varcher
20
系统用户注册与登录时的密码
联系人表
属性名
存储代码
类型
长度
备注
联系人编号
Lid
int
Primarykey
联系人姓名
Linkname
Varchar
50
非空
邮件地址
Emailaddress
Varchar
50
非空
用户名
Username
Varchar
Varchar
Foreignkey
邮箱账户表
属性名
存储代码
类型
长度
备注
账户名
Ename
Varchar
50
Primarykey
邮箱地址
Eaddress
Varchar
50
非空
邮箱密码
epassw
varchar
20
非空
用户名
Username
varchar
50
Foreignkey
邮件表
属性名
存储代码
类型
长度
备注
邮件编号
Mno
int
Primarykey
主题
Mzt
varchar
max
非空
内容
Mnr
varchar
max
可为空
发件时间
Mtime
date
非空
发件人地址
Mfrom
Varchar
50
非空
收件人地址
Mto
varchar
50
非空
附件
Mfj
varchar
max
可为空
账户名
Ename
varchar
50
Foreignkey
联系人编号
Lid
int
Foreignkey
用户联系人表
属性名
存储代码
类型
长度
备注
用户编号
Username
varchar
50
Primarykey
联系人编号
Lid
Int
Primarykey
联系人姓名
Linkname
Varchar
50
邮件地址
Emailaddress
Varchar
50
2)画出系统功能模块图,并对各功能模块进行简单介绍。
电子邮件发送程序主要由以下几个模块组成:
收件人信箱:
用于填写收件人的邮箱名
发件人信箱:
用于填写发件人的邮箱名
主题:
用于填写信件主题
正文:
用于写入信件正文
退出:
用于退出发件程序
发送:
用于发送邮件
附件:
可以手动添加附件并完成发送
电子邮件接收程序主要由以下几个模块组成:
帐号:
用于填写需要收取信件的邮箱帐号
密码:
用于填写需要收取信件的邮箱密码
正文:
当选中邮件列表中任一邮件时,显示该封信件的具体内容
退出:
用于退出接收邮件程序
收取:
用于收取信件
4、物理结构设计
为了提高在表中搜索元组的速度,在实际实现的时候应该基于某些属性建立索引。
给出所建立的索引。
(包括按哪些表中哪些属性按升序还是降序来创建索引及相应的T-SQL的创建语句)。
二详细设计
1、数据库的创建
T-SQL语句:
CREATEDATABASE[数据库课程设计]ONPRIMARY
(NAME=N'数据库课程设计',FILENAME=N'C:
\ProgramFiles\MicrosoftSQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\数据库课程设计.mdf',SIZE=3072KB,MAXSIZE=UNLIMITED,FILEGROWTH=1024KB)
2、数据表的创建
T-SQL语句:
CREATETABLE[dbo].[系统用户表](
[username][varchar](50)NOTNULL,
[pwd][varchar](50)NULL,
CONSTRAINT[PK_系统用户表_1]PRIMARYKEYCLUSTERED
(
[username]ASC
)
CREATETABLE[dbo].[联系人表](
[lid][int]IDENTITY(1,1)NOTNULL,
[linkname][varchar](50)NOTNULL,
[emailaddress][varchar](100)NOTNULL,
CONSTRAINT[PK_联系人表]PRIMARYKEYCLUSTERED
(
[lid]ASC
)
CREATETABLE[dbo].[用户联系人表](
[username][varchar](50)NOTNULL,
[lid][int]NOTNULL,
[linkname][varchar](50)NOTNULL,
[emailaddress][varchar](100)NOTNULL,
CONSTRAINT[PK_用户联系人表]PRIMARYKEYCLUSTERED
(
[username]ASC,
[lid]ASC
)
CREATETABLE[dbo].[邮件表](
[messageid][int]IDENTITY(1,1)NOTNULL,
[eto][varchar](100)NULL,
[efrom][varchar](100)NULL,
[esubject][varchar](max)NULL,
[esendtime][varchar](max)NULL,
[enr][varchar](max)NULL,
[mid][int]NULL,
[username][varchar](50)NULL,
CONSTRAINT[PK__邮件表__4807CDDB2F10007B]PRIMARYKEYCLUSTERED
(
[messageid]ASC
)
CREATETABLE[dbo].[邮箱账户表](
[mid][int]IDENTITY(1,1)NOTNULL,
[ename][varchar](50)NOTNULL,
[eaddress][varchar](max)NOTNULL,
[epwd][varchar](50)NOTNULL,
[username][varchar](50)NOTNULL,
CONSTRAINT[PK__邮箱账户表__DF5032EC29572725]PRIMARYKEYCLUSTERED
(
[mid]ASC
)
3、主要功能界面运行效果图
T-SQL语句与宿主语言嵌套使用代码段(粘贴);
privatevoid系统用户管理ToolStripMenuItem_Click(objectsender,EventArgse)
{
Form3xtyhgl=newForm3();
xtyhgl.ShowDialog();
}
privatevoid邮箱账户ToolStripMenuItem1_Click(objectsender,EventArgse)
{
Form6yxzh=newForm6();
yxzh.ShowDialog();
}
privatevoidInternet账户修改ToolStripMenuItem1_Click(objectsender,EventArgse)
{
Form8izhxg=newForm8();
izhxg.ShowDialog();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
Form9form=newForm9();
form.Show();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
Form10form=newForm10();
form.Show();
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
StringconnString="DataSource=admin1509092308;Database=数据库课程设计;integratedsecurity=True";
SqlConnectionconn=newSqlConnection(connString);
stringsql="select*from邮件表whereefrom='111'";
conn.Open();
SqlDataAdaptersda=newSqlDataAdapter(sql,conn);
DataSetds=newDataSet();
sda.Fill(ds);
conn.Close();
dataGridView1.DataSource=ds.Tables[0];
}
privatevoidbutton4_Click(objectsender,EventArgse)
{
StringconnString="DataSource=admin1509092308;Database=数据库课程设计;integratedsecurity=True";
SqlConnectionconn=newSqlConnection(connString);
tringsql="select*from邮件表whereeto!
='null'";
conn.Open();
SqlDataAdaptersda=newSqlDataAdapter(sql,conn);
DataSetds=newDataSet();
sda.Fill(ds);
conn.Close();
dataGridView1.DataSource=ds.Tables[0];
}
privatevoidbutton6_Click(objectsender,EventArgse)
{
Form9form=newForm9();
form.Show();
}
privatevoidbutton7_Click(objectsender,EventArgse)
{
foreach(DataGridViewRowrindataGridView1.SelectedRows)
{
dataGridView1.Rows.Remove(r);
}
}
privatevoid退出登录ToolStripMenuItem_Click_1(objectsender,EventArgse)
{
Form14form=newForm14();
form.Show();
this.Hide();
}
系统登录界面代码:
if(textBox1.Text=="")
{
MessageBox.Show("用户名不能为空!
");
}
else
{
if(textBox2.Text=="")
{
MessageBox.Show("密码不能为空!
");
}
else
{
if(textBox1.Text!
=""&&textBox2.Text!
="")
{
stringconnString="DataSource=admin1509092308;InitialCatalog=数据库课程设计;IntegratedSecurity=True";
SqlConnectionconn=newSqlConnection(connString);
stringsql=String.Format("selectcount(*)from系统用户表whereUsername='{0}'andPwd='{1}'",Username,Pwd);
conn.Open();//打开数据库连接
SqlCommandcomm=newSqlCommand(sql,conn);//创建command对象
SqlCommandcmd=newSqlCommand();
cmd.Connection=conn;
cmd.CommandText="selectusername,Pwdfrom系统用户表";
SqlDataReaderdr=cmd.ExecuteReader();/*执行SQL命令,结果存储到Reader中.*/
stringadmin=textBox1.Text;
stringpassword=textBox2.Text;
while(dr.Read())
{
if(admin==dr["username"].ToString()&&password==dr["Pwd"].ToString())
{
Form14form=newForm14();
form.Show();
this.Hide();
}
}
}
系统用户注册界面代码:
if(textBox1.Text=="")
{
MessageBox.Show("用户名不能为空!
");
}
else
{
if(textBox3.Text=="")
{
MessageBox.Show("密码不能为空!
");
}
else
{
if(textBox5.Text==""||textBox5.Text!
=textBox3.Text)
{
MessageBox.Show("您重复的密码为空或两次密码不一致!
请重新输入");
}
else
{
stringadmin=textBox1.Text.Trim();
stringpassword=textBox3.Text.Trim();
StringconnString="DataSource=admin1509092308;Database=数据库课程设计;integratedsecurity=True";
SqlConnectionconn=newSqlConnection(connString);
stringsql=String.Format("insertinto系统用户表(username,pwd)values('"+admin+"','"+password+"')",username,Pwd);
try
{
conn.Open();
SqlCommandcomm=newSqlCommand(sql,conn);
intcount=comm.ExecuteNonQuery();
if(count>0)
{
MessageBox.Show("注册成功!
","注册成功",MessageBoxButtons.OK,MessageBoxIcon.Information);
Form7form=newForm7();
form.Show();
this.Hide();
}
else
{
MessageBox.Show("注册失败!
","注册失败",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message,"操作数据库出错!
",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
finally
{
conn.Close();
}
}
添加联系人界面代码:
if(textBox1.Text=="")
{
MessageBox.Show("姓名不能为空!
");
}
Else
{
if(textBox2.Text=="")
{
MessageBox.Show("邮件地址不能为空!
");
}
else
{
if(textBox1.Text!
=""&&textBox2.Text!
="")
{
stringname=textBox1.Text.Trim();
stringeaddress=textBox2.Text.Trim();
StringconnString="DataSource=admin1509092308;Database=数据库课程设计;integratedsecurity=True";
SqlConnectionconn=newSqlConnection(connString);
stringsql=String.Format("insertin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 课程设计 报告