您好,欢迎来到好兔宠物网。
搜索
您的当前位置:首页Web程序设计用大作业报告模板

Web程序设计用大作业报告模板

来源:好兔宠物网
精品文档

武 汉 工 业 学 院

Web高级程序设计 大 作 业 报 告

专业 信息系统与信息管理

学号 090502227

姓名 吴思敏

日期 20121019

1欢迎下载

精品文档

一、需求分析

1引言

随着网络与信息技术的发展,很多陌生人之间都有了或多或少的联系。如何更好地管理这些信息是没跟人必须面临的问题,特别是那些很久没有联系的朋友,再次见面无法马上想起关于这个人的记忆,造成一些不必要的尴尬。基于上述种种原因,开发一套通讯录管理系统很重要,我们结合这次课程设计开发以下的通讯录管理系统方案。 2编写目的

本系统主要是为了更好的管理每个人的通讯录,给每个人提供一个井然有序的管理平台,防止手工管理混乱,造成不必要的麻烦。 3功能需求

通过对自己及朋友的通讯录的询问以及了解,一个完整的通讯录管理系统应该包括:数据集模块,登录窗体模块,系统管理模块,主窗体模块,通讯录数据管理模块,信息管理模块,登录信息查询模块。本系统主要实现我们信息的管理,包括我们平时朋友信息的添加、修改、查询和删除,及一些辅助项目的管理,如登录系统用户管理和用户组管理。

二、系统框架

本系统将实现多用户对各自通讯录的管理功能,包括:添加联系人、修改联系人、删除联系人、查找联系人。为了体现多用户的特性,还必须包含一个用户管理子系统,作用是对用户的信息进行管理。具体功能模块如图所示

通讯录管理系统

删用用添修查 户除户加改找

管联登联联联

理 系录 系系系

人 人 人 人

登录的处理模块 处理流程图如图

等待用户输入

不合法 接受到用户输入 不匹配 验证数据合法

合法

验证身份

2欢迎下载

精品文档

匹配

主窗体处理流程图如图

等待用户输入

分组数量 加载当前分组 的联系人信息

等待用户命令

添加命令 修改命令 删除命令 查找命令 视图命令

修加加删加

改载载除载

视添修联查

图加改系找

模人 联联联

式 系系系

人人人

窗窗窗

体 体 体 加载联系人 分组信息 。

3欢迎下载

精品文档

新增联系人处理模块

新增联系人窗体流程图如图 获取配置信息

N 联系人数量Y

N 分组数量Y

加载分组信息

等待用户命令

添加命令

添加联系人

禁用添加联 系人功能 禁用添加分组功能 三、模块设计

登陆界面的实现

登录窗体如图

4欢迎下载

精品文档

主窗体的实现

主窗体设计如图

新增联系人实现

新增联系人设计如图

四、编码实现

存储过程代码

查找联系人模块使用储存过程来搜索数据,查找联系人的储存过程如下 ALTER PROCEDURE [查找联系人] (

@name varchar(50), @phone varchar(50), @user varchar(50) )

5欢迎下载

精品文档

AS

if len(@user)=0 return 1

if len(@name)=0 and len(@phone)=0 begin

select 姓名,组别,工作单位,联系电话,电子邮箱? from [联系人] return end

if len(@name)<>0 and len(@phone)=0 begin

set @name='%'+@name+'%'

select姓名,组别,工作单位,联系电话,电子邮箱? from [联系人] where 姓名 like @name return end

if len(@name)=0 and len(@phone)<>0 begin

select姓名,组别,工作单位,联系电话,电子邮箱? from [联系人] where 联系电话 like @phone return end

if len(@name)=0 and len(@phone)<>0 begin

select姓名,组别,工作单位,联系电话,电子邮箱? from [联系人] where 联系电话 like @phone and 姓名 like @name return end

登录窗体

实现代码如下

private void btnOK_Click(object sender, EventArgs e) {

try {

if (txtUserName.Text.Trim() == \"\" || txtPassword.Text.Trim() == \"\") {

MessageBox.Show(\"用户名不能为空,登录失败\MessageBoxButtons.OK, MessageBoxIcon.Error); return; }

//验证用户

SqlConnection conn = new

SqlConnection(\"server=.;database=通讯录管理系统;uid=sa;pwd=521125;\"); StringBuilder sql = new StringBuilder();

6欢迎下载

精品文档

sql.AppendFormat(\"select count(*) from 用户where 用户名=杨雪 and 密码='01'xtPassword.Text.Trim());

SqlCommand cmd = new SqlCommand(sql.ToString(), conn); conn.Open();

int result = Convert.ToInt32(cmd.ExecuteScalar()); conn.Close();

if (result == 1) {

//登陆成功

frmMain f = new frmMain();

f.tsslUserName.Text = txtUserName.Text.Trim(); f.Show(); this.Hide(); } else {

MessageBox.Show(\"用户名错误!\登录失败\MessageBoxButtons.OK, MessageBoxIcon.Error); return; } }

catch (Exception ee) {

MessageBox.Show(\"发生错误!\" + ee.Message, \"登录失败\MessageBoxButtons.OK, MessageBoxIcon.Error); return; } }

主窗体 实现代码如下

public partial class frmMain : Form {

private string strConn = \"server=.;database=通讯录管理系统;uid=sa;pwd=521125;\"; public frmMain() {

InitializeComponent(); }

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) {

LoadList();

7欢迎下载

精品文档

}

//主窗体加载事件

private void frmMain_Load(object sender, EventArgs e) {

LoadGroup();

if (trvGroup.Nodes.Count > 0) {

trvGroup.SelectedNode = trvGroup.Nodes[0]; LoadList(); } else {

lvContact.Clear(); } }

/加载分组信息到TreeView private void LoadGroup() {

try {

trvGroup.Nodes.Clear();

SqlConnection conn = new SqlConnection(strConn); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn;

cmd.CommandText = \"select 组别 from 联系人 where 用户名='\" + tsslUserName.Text + \"'\"; conn.Open();

SqlDataReader sdr = cmd.ExecuteReader(); while (sdr.Read()) {

trvGroup.Nodes.Add(sdr[0].ToString()); }

sdr.Close(); conn.Close(); }

catch { } }

//加载当前分类的联系人信息 private void LoadList() {

if (trvGroup.Nodes.Count == 0) {

lvContact.Clear();

8欢迎下载

精品文档

return; }

if (trvGroup.SelectedNode.Index >= 0) {

string strGroup = trvGroup.SelectedNode.Text; try {

lvContact.Clear();

lvContact.Columns.Add(\"姓名\

lvContact.Columns.Add(\"工作单位\ lvContact.Columns.Add(\"联系电话\ lvContact.Columns.Add(\"电子邮箱\

SqlConnection conn = new SqlConnection(strConn); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = \"select 编号,姓名,工作单位 ,联系电话,电子邮箱 from 联系人 where 组别='\" + strGroup + \"'and 用户名='\" + tsslUserName.Text + \"'\";

conn.Open();

SqlDataReader sdr = cmd.ExecuteReader(); int count = 0;

while (sdr.Read()) {

ListViewItem lvi = new ListViewItem(); lvi.Text = sdr[\"姓名\"].ToString();

lvi.SubItems.Add(sdr[\"工作单位\"].ToString()); lvi.SubItems.Add(sdr[\"联系电话\"].ToString()); lvi.SubItems.Add(sdr[\"电子邮箱?\"].ToString());

lvi.Tag = sdr[\"编号\"]; lvi.ImageIndex = 0;

lvContact.Items.Add(lvi); count++; }

tsslCount.Text=\"共计\"+count.ToString()+\"个联系人\";

sdr.Close(); conn.Close(); } catch { } } }

9欢迎下载

精品文档

//详细信息在工具栏上的事件

private void 详细信息ToolStripMenuItem_Click(object sender, EventArgs e) {

lvContact.View=View.Details; }

//详细信息在菜单栏上的事件

private void 详细信息ToolStripMenuItem1_Click(object sender, EventArgs e) {

lvContact.View=View.Details; }

//添加方法在主窗体中的实现 private void Add() {

frmAdd f=new frmAdd();

if(f.ShowDialog(this)==DialogResult.OK) {

LoadGroup();

if(trvGroup.Nodes.Count>0) {

trvGroup.SelectedNode=trvGroup.Nodes[0]; LoadList(); } else {

lvContact.Clear(); } } }

//编辑方法在主窗体的实现 private void Edit() {

if(lvContact.SelectedItems.Count==1) {

string id=lvContact.SelectedItems[0].Text.ToString(); frmEdit f=new frmEdit(id);

if(f.ShowDialog(this)==DialogResult.OK) {

LoadGroup();

if(trvGroup.Nodes.Count>0) {

trvGroup.SelectedNode=trvGroup.Nodes[0]; LoadList();

10欢迎下载

精品文档

} else {

lvContact.Clear(); } } } }

//删除方法在住窗体中的实现 private void Delete() {

if(lvContact.SelectedItems.Count<1) {

return; }

if(MessageBox.Show(\"是否要删除选中的联系人\删除确认

\ {

string strWhere=\"\";

foreach (ListViewItem lvi in lvContact.SelectedItems) {

strWhere+=lvi.Text.ToString(); } try {

SqlConnection conn=new SqlConnection(strConn); SqlCommand cmd=new SqlCommand(); cmd.Connection=conn;

cmd.CommandText = \"delete from 联系人where 姓名='\" + strWhere + \"'\";

conn.Open();

cmd.ExecuteNonQuery(); conn.Close(); LoadGroup();

if(trvGroup.Nodes.Count>0) {

trvGroup.SelectedNode=trvGroup.Nodes[0]; LoadList(); } else {

lvContact.Clear(); } }

11欢迎下载

精品文档

catch { } } }

//搜索方法在主窗体中的实现 private void Search() {

frmSearch f = new frmSearch();

if (f.ShowDialog() == DialogResult.OK) {

LoadGroup();

if (trvGroup.Nodes.Count > 0) {

trvGroup.SelectedNode = trvGroup.Nodes[0]; LoadList(); } else {

lvContact.Clear(); } } }

}

新增联系人 实现代码如下

public partial class frmAdd : Form

{

private string strconn = \"server=.;database=通讯录管理系统;pwd=521125\";

private string strUserName= \"\"; private int groupCount = 0; private int contentCount = 0; private string txtFilePath = \"\"; public frmAdd() {

InitializeComponent(); }

private void textBox2_TextChanged(object sender, EventArgs e) {

}

12欢迎下载

精品文档

private void frmAdd_Load(object sender, EventArgs e) {

//获取用户名

strUserName = ((frmMain)(this.Owner)).tsslUserName.Text; try {

SqlConnection conn = new SqlConnection(strconn); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; //获取配置信息

cmd.CommandText = \"selete * from 用户名where 用户名='\" + strUserName + \"'\";

conn.Open();

SqlDataReader sdr = cmd.ExecuteReader(); if (sdr.Read()) {

groupCount = Convert.ToInt32(sdr[\"组别数量最大值\"]);

contentCount = Convert.ToInt32(sdr[\" 联系人数量最大值\"]); }

sdr.Close(); //获取联系人数

cmd.CommandText = \"select count(*) from联系人 where 用户名='\" + strUserName + \"'\";

int count = Convert.ToInt32(cmd.ExecuteScalar()); if (count >= contentCount) {

MessageBox.Show(\"联系人的个数已经达到上限如需继续添加联系人,请联系管理员.\提示\MessageBoxIcon.Warning);

btnOK.Enabled = false; }

conn.Close(); }

catch { }

pic.Image =通讯录管理系统.Properties.Resources.main1; //加载组别 LoadGroup(); }

protected void LoadGroup() {

try {

13欢迎下载

精品文档

cmbGroup.Items.Clear();

SqlConnection conn = new SqlConnection(strconn); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn;

cmd.CommandText = \"selete disinct 组别 from 联系人\"; conn.Open();

SqlDataReader sdr = cmd.ExecuteReader(); while (sdr.Read()) {

cmbGroup.Items.Add(sdr[0].ToString()); }

sdr.Close(); conn.Close();

if (groupCount > 0 && cmbGroup.Items.Count == groupCount)

{

cmbGroup.DropDownStyle = ComboBoxStyle.DropDownList; } else {

cmbGroup.DropDownStyle = ComboBoxStyle.DropDown; } }

catch { } }

private void pic_Click(object sender, EventArgs e) {

if (dlg.ShowDialog() == DialogResult.OK) {

pic.Image = Image.FromFile(dlg.FileName); txtFilePath = dlg.FileName; } }

private void btnOK_Click(object sender, EventArgs e) {

#region 获取信息 //用户名

strUserName = ((frmMain)(this.Owner)).tsslUserName.Text; //姓名

string name;

if (txtName.Text == \"\")

14欢迎下载

精品文档

{

MessageBox.Show(\"联系人姓名不能为空\添加失败\MessageBoxButtons.OK, MessageBoxIcon.Error); return; } else {

name = txtName.Text; }

string group;

if (cmbGroup.Text.Trim() == \"\") {

group = \"未分组\"; } else {

group = cmbGroup.Text.Trim(); }

//电话

string phone = txtPhone.Text.Trim(); //工作单位

string company = txtCompany.Text.Trim(); //email

string email = txtEmail.Text.Trim(); //照片

byte[] b = null;

if (txtFilePath != \"\") {

try {

FileStream fs = new FileStream(txtFilePath, FileMode.Open, FileAccess.Read);

int len = Convert.ToInt32(fs.Length); b = new byte[len]; fs.Read(b, 0, len); fs.Close(); } catch {

b = null; } }

#endregion 获取信息 #region 添加数据

15欢迎下载

精品文档

try {

SqlConnection conn = new SqlConnection(strconn); SqlCommand cmd_maxid = new SqlCommand(); cmd_maxid.Connection = conn; //获取最大编号

cmd_maxid.CommandText = \"selete isnull(max(编号),0)+1 from 联系人\";

conn.Open(); int maxid; try {

maxid =

Convert.ToInt32(cmd_maxid.ExecuteScalar()); } catch {

maxid = 1; }

//insert

SqlCommand cmd_insert = new SqlCommand(); cmd_insert.Connection = conn;

cmd_insert.CommandText = \"insert into联系人(编号,用户名,组别,姓名,工作单位,联系电话,电子邮箱,照片)values(@编号,@用户名,@组别,@姓名,@工作单位,@联系电话,@电子邮箱,@照片)\";

cmd_insert.Parameters.Add(\"@编号\ cmd_insert.Parameters.Add(\"@用户名\SqlDbType.VarChar, 50);

cmd_insert.Parameters.Add(\"@组别\50);

cmd_insert.Parameters.Add(\"@姓名\50);

cmd_insert.Parameters.Add(\"@工作单位\SqlDbType.VarChar, 500);

cmd_insert.Parameters.Add(\"@联系电话\SqlDbType.VarChar, 200);

cmd_insert.Parameters.Add(\"@电子邮箱\SqlDbType.VarChar, 200);

cmd_insert.Parameters.Add(\"@照片\

cmd_insert.Parameters[\"@编号\"].Value = maxid;

cmd_insert.Parameters[\"@用户名\"].Value = strUserName; cmd_insert.Parameters[\"@组别\"].Value = group; cmd_insert.Parameters[\"@姓名\"].Value = name;

16欢迎下载

精品文档

cmd_insert.Parameters[\"@工作单位\"].Value = company; cmd_insert.Parameters[\"@联系电话\"].Value = phone; cmd_insert.Parameters[\"@电子邮箱\"].Value = email; if (txtFilePath == \"\") {

cmd_insert.Parameters[\"@照片\"].Value = DBNull.Value;

} else {

cmd_insert.Parameters[\"@照片\"].Value = b; }

cmd_insert.ExecuteNonQuery(); conn.Close();

DialogResult = DialogResult.OK; }

catch (Exception ee) {

MessageBox.Show(ee.Message); return; }

#endregion 添加数据 }

private void btnCancel_Click(object sender, EventArgs e) {

DialogResult = DialogResult.Cancel; }

}

五、系统测试和发布

软件支持:本软件开发是使用c#编写 设备支持:推荐配置:WindowsXP 数据库:Microsoft SQL Server 2005

五、实验总结

课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.回顾起此次课程设计,至今我们仍感慨颇多,的确,从理论到实践,学到很多很多的东西。

通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知

17欢迎下载

精品文档

识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,我们把前面所学过的知识又重新温故了一遍。

通讯录管理系统,虽然是很简单的一个小的程序,但对我来说却是一个很大的困难。而且编程是一件高精度、模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的无法运行。所以认真仔细就是非常重要的了。当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。尽管程序不是很完善,不过还是很高兴的。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习windows的一次实践作业。 在此程序中有用到.NET中的许多知识,最基本的是增、删、改、查几个过程,此程序方便、快捷,但是还有一些不足之处,希望我自己以后慢慢研究,将此程序完善。

18欢迎下载

精品文档

欢迎您的下载, 资料仅供参考!

致力为企业和个人提供合同协议,策划案计划书,学习资料等等

打造全网一站式需求

19欢迎下载

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- howto1234.com 版权所有 湘ICP备2023017662号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务