DoNet课程考核报告书课程设计

上传人:jin****ng 文档编号:164982094 上传时间:2022-10-26 格式:DOCX 页数:25 大小:480KB
返回 下载 相关 举报
DoNet课程考核报告书课程设计_第1页
第1页 / 共25页
DoNet课程考核报告书课程设计_第2页
第2页 / 共25页
DoNet课程考核报告书课程设计_第3页
第3页 / 共25页
点击查看更多>>
资源描述
武汉理工大学华夏学院课程考查报告书课程名称:.NET 程序设计题 目个人通信薄系统的设计与开发系 名:信息工程系专业班级:软件2101姓 名:杨妮学 号:10225610136授课教师:陈剑锋2012 年 6 月 24 日课程报告撰写格式要求: 一、课程报告说明书(或报告书)正文内容 【设计题目】例如:个人通信薄系统的设计与开发【开发环境】硬件环境:微机系列,内存在1G以上,软件环境:Microsoft Windows XP【开发工具】 Visual studio 2005,SQL Server 2005【完成时间】 2012.6 .182012.6.24【需求分析】分析阐述用户的功能、性能需求以及对应到要实现的系统应具有什么样的功能 【系统总体设计】在明确了所要解决的问题后,很自然地就要提出自己解决问题的思路和方案。让读者了解方 案的总体设计和关键技术。要阐述自己的设计方案,说明为什么要选择或设计这样的方案。 具体包括:系统总的设计思路,体系结构, 总体架构, 功能模块图; 各功能模块所要达到的设计目标的简单介绍; 设计的数据字典(数据库、表的结构); 使用的设计软硬件环境和开发技术和平台等。【系统详细设计】 在这部分中,要将整个开发工作的内容进行详细的介绍。 一般按照功能模块分成几部分来介绍。每部分应包括文字叙述、界面图片、关键实现技术(操 作或代码)等几个方面综合说明问题。【系统调试和测试】 调试:比较详细介绍设计过程中遇到的问题和解决方法。 测试:比较详细介绍如何测试系统,测试中发现的问题和解决方案。【结束语】 这部分篇幅不大,对整个设计中做的工作、获得的成果、心得体会等做一个简单小结。【参考文献】罗列在设计过程中查阅的文献名称 注意:参考文献罗列的格式为资料编号作者姓名文献或期刊名称出版社名称,文献的出版时间或期刊的期号 例如:文献1 蒋加伏.计算机文化基础.北京:北京邮电大学出版社, 2004 年 5 月期刊 2于振海.office XP网上数据存取.计算机应用文摘,2003, 24; 69(页)二、课程设计说明书(或报告书)正文的书写格式简介一、 正文标题层次 正文题序层次是文章结构的框架,一般采用社会通用的论文书写形式 即章条序码统一用阿拉伯数字表示,题序层次可以分为若干级,各级号码之间加小圆 点,末尾一级的后面不加小圆点,层次分级一般不超过四级为宜,示例如下:第一级(章)123第二级(条)1.12.13.11.2.2.2 .3.2 .第三级(条)1.1.12.1.13.1.11.1.2 .2.1.2 .3.1.2 .1.2.12.2.13.2.11.2.2.2.2.2.3.2.2.、表格 每个表格应有自己的表序与表题,表序与表题间空一格。例如:表 1.1 XXXX ,且表题与表序应写在表格的上方正中处。三、插图 插图图面要整齐、美观,插图应与正文呼应,不能脱节。每幅插图应有图序与 图题,图序编号要连续,图序与图题间空一格且要放在插图下方居中处。四、公式 公式应另起一行写在稿纸的中央。时间安排:2012.6 .182012.6.24个人通信薄系统1、开发环境硬件环境:微机系列,内存在1G以上,软件环境:Microsoft Windows XP2、开发工具、技术和平台Visual studio 2005,SQL Server 2005 SQL Server数据库应用技术,C#语言设计3、完成时间2012.6 .182012.6.244、需求分析4.1 概述 个人通信薄系统的设计与开发是在面向对象和数据库开发两方面的基础上开发出来的, 它是为了让大家妥善处理自己的联系人的信息,具有一定的保密功能,有利于自己联系人信 息的安全性。本个人通讯录工具主要实现五大功能:联系人的查询;通过姓名查询;添加联 系人以删除联系人信息及修改联系人信息。含有对通讯薄信息进行添加,查询,删除的功能。 还有对用户对象信息的添加和修改功能。对通迅录可以按不同的条件查询。4.2 基本功能 本个人通讯录工具主要实现五大功能:联系人的查询;通过姓名查询;添加联系人以 删除联系人信息及修改联系人信息。4.3具体需求分析4.3.1 用户登录 用户进入系统登陆界面后在界面上对应的密码和用户名输入框中输入相应 信息后点击登录按钮,系统自动根据数据库中的用户信息来进行用户登录验证, 如果用户名和密码正确则进入功能界面;否则提示密码或者用户名输入错误,请 重新输入。数据名称使用人员组成名称格式范围精度说明密码字符16-登录时输入的密码姓名字符16-使用人员的姓名备注姓名、密码在登录的时候,大小写敏感4.3.2 查看所有联系人信息用例用户可以在功能界面上点击查看所以联系人按钮进行查看数据库中所有的 联系人及其相应的信息。4.3.3 查询联系人用例用户打开功能界面,功能界面为查询用例提供入口;用户选择“查询联系人”功能项, 页面直接跳转到查询联系人界面,在界面上面可以看到输入框,可以输入联系人姓名,然后 在点击查找按钮,系统则根据输入的姓名在数据库中查找联系人,并将联系人信息显示在对应的显示框中。4.3.4 添加、删除、更改联系人信息用例 点击功能界面上的添加按钮,进入增加联系人界面。输入联系人的基本信息,单击添加 联系人按钮,则在数据中添加的此次输入的联系人信息,并且会在显示添加效果;删除和更 改联系人方式都是类是与添加联系人信息。5、系统总体设计5.1 总体设计思路完成用户需求只需将所有功能实现即可,首先在 SQL Server 2000 中将相应的数据表, 存储过程建好;然后通过 Visual Studio 2005 中将所以的功能界面设计完善,再就是编程代 码设计,最后进行程序测试和更能测试。在代码设计过程中各个击破一个一个模块的功能实 现。5.2 体系结构使用 ADO.NET 技术与后台数据库进行连接, 并能调试运行。该系统将能够实现用户登录 功能,通过选择对应菜单项对联系人信息进行增加、删除、修改和查询等功能。 总体架构如图:个人通讯薄系统登录查看所有联系人新增联系人修改联系方式检索联系人删除联系人系统用例图:用户53概念设计(ER图)(此部分可以省略)5.4 逻辑设计用户信息表(用户名,用户密码,用户类型)联系人信息表(用户名,联系人编号,姓名,性别,生日 手机号码,固定电话,E-mail, 家庭住址)联系人类别表(类别,类别编号,备注) 用户信息表联系人信息表(用户名,用户名)联系人类别表联系人信息表(类别,类别名)5.5 表的设计,包括表的结构、约束等图 联系人信息表字段名字段类型长度设置键字段约束设置的约束及其说明用户名nchar10外键Not nullFOREIGN KEY 约束此用户名必须与用户信息表的用户名一样密码nchar5主键Not nullPRIMARY KEY 约束具有唯一性,它的值不能为空姓名char30Not null性别char10Not nullCHECK约束性别只能是男或者女生日datetimenull手机号码char30Not null固定电话char10nullE-mailNchar20Not null家庭住址Nchar20null图 用户信息表字段名字段类型长度设置键字段约束设置的约束及其说明用户名char10主键Not nullPRIMARY KEY约束具有唯一性,它的值不能为空用户密码char30Not null用户类型char20Not null图 联系人类别表字段名字段类型长度设置键字段约束设置的约束及其说明类别编号char10Not nullPRIMARY KEY 约束具有唯一性,它的值不能为空类别char30主键Not null备注char100null5.4 运行环境客户程序硬件要求:具有 Pentium III 处理器且满足以下要求的计算机:最低 64 MB 内存最小 2.1 GB 硬盘鼠标 键盘服务器硬件需求:具有 Pentium III 处理器且满足以下要求的计算机:最低 256MB 内存最小 8 GB 硬盘鼠标 键盘客户程序多需软件:Windows 7 或更高版本数据库服务器软件:Windows7 或更高版本SQL Server 20086、系统详细设计在Visual Studio 2005中建立名为个人通讯簿的Windows应用程序,在SQL Server 2000中 建立名为 MyDatabase1 的数据库。6.1 存储过程设计(包括功能算法描述和存储过程代码)6.1.1性别存储过程如果性别为女,则显示女的联系人的信息,如果是男,则显示男的联系人的信息。代码如下:set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo- Author:Name- Create date:- Description:ALTER PROCEDURE dbo.xb- Add the parameters for the stored procedure here sex char(10)ASBEGIN- SET NOCOUNT ON added to prevent extra result sets from- interfering with SELECT statements.SET NOCOUNT ON;- Insert statements for procedure hereSELECT * from ContactsInfo where Sex=sexEND6.1.2 统计的存储过程根据性别的录入,显示此性别的联系人的数量。代码如下:set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo- Author:Name- Create date:- Description:ALTER PROCEDURE dbo.liugan- Add the parameters for the stored procedure heresex char (10),count int = 0ASBEGIN- SET NOCOUNT ON added to prevent extra result sets from- interfering with SELECT statements.SET NOCOUNT ON;- Insert statements for procedure hereSELECT count=count(Sex) from ContactsInfowhere Sex=sexreturn countEND6.2 系统功能模块实现6.2.1 存储过程设计:6.2.1.1 登录连接用的存储过程代码:set ANSI_NULLS ONset QUOTED_IDENTIFIER ON goALTER PROCEDURE dbo.mimausename nchar(15),password nchar(18)ASselect 用户名from 用户where 用户名二usename and 密码二passwordRETURN6.2.1.2 添加联系人的存储过程代码:set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER procedure dbo.insertRecordDename nchar(15),sex char(2),birth char(15), shouji char(11),guding char(11),Email nchar(20),jiating nchar(20)As insertinto 联系人 values(name , sex ,birth, shouji,guding,Email,jiating )6.2.1.3 查找联系人的存储过程代码:set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER procedure dbo.QueryT1name nchar(15)asselect 姓名 from 联系人where 姓名二nameRETURN6.2.1.4 删除联系人的存储过程代码:set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER procedure dbo.shanchuname nchar(15)asdeletefrom 联系人 where 姓名二name6.2.2 登录模块登录模块分为两种身份,一种是普通用户,一种是管理员。通过这个模块进入相同的 主界面。首先调用数据库连接的,然后读取数据库,将登陆的内容判断是否为空,为空则输入内容,并且其内容要与数据库的内容相同,否则登陆失败,同时登陆时显示登陆的时间有利于用户了解时间。界面设计如图所示using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace WindowsApplication2public partial class Form3 : Form public Form3()InitializeComponent();private void button1_Click(object sender, EventArgs e)SqlConnection conn = new SqlConnection(Properties.Settings.Default.maoConnectionString);SqlCommand cmd = new SqlCommand(StoredProcedure2, conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(usename, SqlDbType.NChar).Value = textBox1.Text;cmd.Parameters.Add(password, SqlDbType.NChar).Value textBox2.Text;tryconn.Open();if (cmd.ExecuteScalar() != null)Form1 fr1 = new Form1();fr1.Show();this.Hide();elseMessageBox.Show(用户名和密码不匹配!);catch (Exception c)MessageBox.Show(c.Message);private void Form3_Load(object sender, EventArgs e)textBox1.MaxLength = 10; toolTip1.InitialDelay = 0; toolTip1.ReshowDelay = 0;toolTipl.SetToolTip(textBoxl,用户名不能超过10个字符,而且只能 是汉字,字母和数字);toolTip1.SetToolTip(textBox2,密码不能少于6个字符,而且只能是 字母和数字);errorProvider1.BlinkStyle = ErrorBlinkStyle.AlwaysBlink; private bool ValidatingTextTextBox textbox, string errorMessage)string s = textbox.Text; bool isValid =true; for (int i = 0; i s.Length; i+) if (char.IsLetterOrDigit(si) = false) errorProvider1.SetError(textbox, errorMessage); isValid = false;break;if (isValid) errorProvider1.SetError(textbox, string.Empty); return isValid;private void button2_Click(object sender, EventArgs e) this.Close();private void textBox1_Validating(object sender, CancelEventArgs e) ValidatingText(textBoxl,用户名中包含了非汉字,字母和数字的字 符);private void textBox2_Validating(object sender, CancelEventArgs e) bool isValid = ValidatingText(textBox2,密码中包含了非汉字,字母 和字母的字符);if (isValid) if (textBox2.Text.Length = 0;i-)dataGridView1.Rows.Remove(dataGridView1.SelectedRowsi);private void button5_Click(object sender, EventArgs e)tryif (textBox1.Text.Length = 0)MessageBox.Show(请输入姓名); elseSqlConnectionconn=newSqlConnection(connectionString);SqlDataAdapter adapter = new SqlDataAdapter(select * from friend where name= +textBox1.Text+, conn);dt = new DataTable();adapter.Fill(dt); dataGridView1.DataSource = dt;catch (Exception ex)MessageBox.Show(ex.Message);private void button4_Click(object sender, EventArgs e) /dataGridView1.EndEdit(); try /table = (DataTable)dataGridView1.DataSource;/ adapter.Update(maoDataSet1.);/*this.Validate();bindingSource1.EndEdit();adapter.Update(maoDataSet1.Tablesmao);*/MessageBox.Show(”保存成功! ”);catch (Exception exc) MessageBox.Show(exc.Message, 保存失败);private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)6.2.3.2新增联系人功能界面设计及代码部分代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace WindowsApplication2 public partial class Form2 : FormSqlDataAdapter adapter;public Form2()InitializeComponent();private void button1_Click(object sender, EventArgs e)SqlConnection conn = new SqlConnection(Properties.Settings.Default.maoConnectionString);SqlCommand cmd = new SqlCommand(StoredProcedure1, conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(name, SqlDbType.VarChar).Value = textBox1.Text;cmd.Parameters.Add(gender, SqlDbType.VarChar).Value = textBox5.Text;cmd.Parameters.Add(birthday, SqlDbType.VarChar).Value = textBox6.Text;cmd.Parameters.Add(tel, SqlDbType.VarChar).Value = textBox7.Text;cmd.Parameters.Add(Fixed tel, SqlDbType.VarChar).Value = textBox2.Text;cmd.Parameters.Add(E_mail, SqlDbType.VarChar).Value = textBox3.Text;cmd.Parameters.Add(addr, SqlDbType.VarChar).Value = textBox4.Text;try conn.Open(); cmd.ExecuteNonQuery(); this.Close();catch (Exception t)MessageBox.Show(t.Message);private void label2_Click(object sender, EventArgs e) private void Form2_Load(object sender, EventArgs e) 6.2.3.3 修改联系人方式界面设计及代码部分代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace WindowsApplication2public partial class Form5 : Form SqlDataAdapter adapter;DataTable table;public Form5() InitializeComponent();toolTip1.ReshowDelay = 0;toolTip1.SetToolTip(textBox1, 姓名不能超过15个字符!);toolTip1.SetToolTip(textBox2, 性别不能超过两个字符!);toolTip1.SetToolTip(textBox3, 生日不能超过15个字符!); toolTip1.SetToolTip(textBox4, 手机号码不能超过11个字符,而且必须 填写!);toolTip1.SetToolTip(textBox5, 固定电话不能超过11个字符!);toolTipl.SetToolTip(textBox6, E-mail 1 不能超过20个字符,且必须填 写!);toolTipl.SetToolTip(textBox7, 家庭地址不能超过20个字符!); private void buttonl_Click(object sender, EventArgs e) string connectionString = Properties.Settings.Default.MyDatabaselConnectionStringl;SqlConnection conn = new SqlConnection(connectionString);adapter = new SqlDataAdapter(select * from 联系人 where 姓 名= + textBoxl.Text + , conn);table = new DataTable();adapter.Fill(table); dataGridViewl.DataSource = table; private void button2_Click(object sender, EventArgs e) string connectionString = Properties.Settings.Default.MyDatabaselConnectionStringl;SqlConnection conn = new SqlConnection(connectionString);if (textBox2.Text != null) adapter = new SqlDataAdapter( Update 联系人 set 性别= + textBox2.Text + where 姓名= + textBoxl.Text + , conn);if (textBox3.Text != null) adapter = new SqlDataAdapter( Update 联系人 set 生日= + textBox3.Text + where 姓名= + textBoxl.Text + , conn);if (textBox4.Text != null)adapter = new SqlDataAdapter( Update 联系人 set 手机号码= + textBox4.Text + where 姓名= + textBox1.Text + , conn);if (textBox5.Text != null)adapter =new SqlDataAdapter( Update 联系人 set 固定电话= + textBox5.Text + where 姓名= + textBox1.Text + , conn);if (textBox6.Text != null)adapter =new SqlDataAdapter( Update 联系人 set E-mail= + textBox6.Text + where 姓名= + textBox1.Text + , conn);if (textBox7.Text != null)adapter = new SqlDataAdapter( Update 联系人 set 家庭住址= + textBox7.Text + where 姓名= + textBox1.Text + , conn);table = new DataTable();adapter.Fill(table);dataGridView1.DataSource = table;private void button3_Click(object sender, EventArgs e) Form2 form2 = new Form2(); form2.Show();this.Hide(); 6.2.3.4 修改密码设计及代码using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace WindowsFormsApplication public partial class xiugaimima : Form String connectionstring;public xiugaimima()InitializeComponent(); connectionstring =WindowsFormsApplication.Properties.Settings.Default.lianxiConnectionString;/这 就是连接数据 库private void button1_Click(object sender, EventArgs e)string t1 = (textBox1.Text).Trim();string t2 = (textBox2.Text).Trim(); sign login=new sign();string username=login.fanhui();if (t1.Equals(t2)SqlConnection conn = new SqlConnection(connectionstring);/然后这个 也是conn.Open();这个是把连接打开,格式都一样可以复制然后我们下面要做的仅仅只是有一点点不同,局势执行SQL语句不同 string sql = update yonghu set mima=+t1+ where username=+username+ ;SqlCommand cmd = new SqlCommand(sql, conn); cmd.ExecuteNonQuery(); /执行这句表示要开始执行我们写的 SQLYUJU到数据库里面了,不过执行不会有返回值MessageBox.Show(修改成功”);上面的语句能成功执行就表示插入成7、系统调试和测试该系统是由登陆界面决定后面的很多内容,如:用户名:杨妮,密码:123,进入主界 面,再跳入查看界面时,查看界面中的用户名不用录入,它就是就是登陆的用户名。如果从 主界面跳入修改密码界面,修改密码界面的用户名和密码就是登陆的用户名和密码,而且它 的文本框是只可读的,不能录入。只有登陆成功了,才能进行查看,添加,修改,删除,查 询等一切的操作。登陆界面可以直接跳入注册界面,注册就是添加用户信息表。登陆成功进 入主界面,主界面中有个人管理中心(修改密码,退出,返回登陆),查询,查看等。查询 可以按不同条件进行查询。查看中可以添加个人的联系人,删除联系人,修改联系人信息, 可以在文本框中查看联系人的具体信息。7.1输入数据类型错误取数据库数据时数据类型转换时发生异常错误解决方法:将数据进行强制转换保存在局部变量中,然后再发送到控件的value上;7.2 测试登陆测试:输入错误的密码,系统是否有信息弹出并提示;主界面模块测试:在任务添加中输入相同的任务ID,或任务间隔中加入7.2.1测试过程中密码验证功能不能实现解决方法:通过调用存储过程进行密码验证,将用户输入的用户名和密码传递给存 储过程然后有存储过程进行验证并且返回验证的值存在对应的用户则进 入系统否则提示密码或者用户名错误,重新输入。7.2.2删除功能不能实现 开始只能实现表面的删除,而不能真正的在数据库中进行删除 解决方法:将删除方法改为调用存储过程,通过输入的姓名进行删除。8、结束语通过一周的C#课程设计,基本完成了个人通信薄的设计与实现。在这个系统 中,可实现由计算机代替人工执行一系列诸如联系人添加、联系人删除等操作, 使我又从中收获了不少知识,界面漂亮,调用了视图和存储过程,还调用了几个函数。但是 系统比较简单,对于某些小细节考虑得不够全面,技术量不高,需多加练习。我充分体会到 面向对象的思想以及在代码设计时能充分运用自己所学的知识设计出目标要求的系统,我感 到十分高兴。虽然任务过程中困难有很多,但是能够和同学一起讨论并完成任务感觉很有收 获和成就感。总之,本次项目实践是对自己以前所学的知识进行系统的综合升华,使自己 收获匪浅。在本次毕业设计过程中,在老师的耐心指导及同学们帮助下,基本上完成了预定目标。9、参考文献1 黄梯云.管理信息系统M.北京:经济科学出版社,1999年8月.2 张海藩.软件工程导论M.北京:人民邮电出版社,2002年3月.3 萨师煊.数据库系统概论M.北京:高等教育出版社,2002年5月.4 马俊主.C#程序设计及应用教程(第二版)北京:人民邮电出版社,2009 年5月.5 夏敏捷.Visual C#.NET开发技术原理与实践教程北京:电子工业出版 社 , 2008 年.6 夏冰冰数据库原理及应用-SQL Server2000.北京:国防工业出版社,2009 年12月.7 杨晓光.面向对象设计程序(C#实现)北京:清华大学出版社,2011 年1月.
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!