软件工程(名片管理系统).doc_第1页
软件工程(名片管理系统).doc_第2页
软件工程(名片管理系统).doc_第3页
软件工程(名片管理系统).doc_第4页
软件工程(名片管理系统).doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

名片管理系统设计摘 要名片管理系统是为了实现办公自动化管理而设计的,它完全取代了原来一直用人工处理的工作方式,并且避免了由于用户的工作疏忽以及管理质量问题所造成的各种错误,为及时,准确,高效的完成名片管理工作提供了强有力的工具和管理手段。名片管理系统是一个小型数据库管理系统,采用C#开发而成的,界面美观,操作简单,安全性高,基本满足了用户的要求。整个系统由系统设置,类别设置,查询管理,输入管理,打印管理等模块组成。一、系统可行性分析可行性分析的任务,并不是所有问题都有简单明显的解决办法,事实上,许多问题不可能在预定的系统规模之内解决。如果问题没有可行的解,那么花费这项开发工程上的任何时间,资源,人力和经费都是无谓的浪费。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决必须记住,可行性研究的目的不是解决问题,而是确定问题是否值得去解。怎样达到这个目的呢?当然不能靠主观猜想而只能靠客观分析。必须分析几种主要的可能解法的利弊,从而判断原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。所以从以上的分析原则来看,我所要设计的信息管理系统是一个规模不太大的系统,但是目标明确,清晰地描述了对目标系统的一切限制和约束。本系统几乎在所有的酒店使用,当然它需要进一步的完善和更新,在使用过程中,要看他能不能带来效益,毕竟在现今社会效率是第一位的。但是从本系统的物理系统出发,导出现有系统的逻辑模型,从现实看,这还是有一定的实用价值的。从另一个角度看,在现在的社会发展之飞速,尊重科技也是势在必行的,因此本系统正是基于这种情况才开发,21世纪是计算机的时代,它必然取代一部分人的工作,让高科技的监控系统进入社会生活的方方面面也是发展的趋势,进而走向智能化。开发工具与技术的研究 就现在开发OA的技术来说,主要集中分为三大类:基于B/S结构的应用程序开发,结合C/S结构和Web技术的复合应用程序,基于B/S结构的动态网页技术。以下将分析这三类技术的各自优缺点: B/S结构系统:是传统开发模式,一般以数据库和客户端的两层结构实现,也有加入中间件的三层或多层结构,在OA早期是标准的系统模式,但随着计算机技术的发展和网络的发展,它已经无法满足现在的远程网络办公和移动办公,逐渐在被取代人们普遍使用计算机来提高个人工作效率,但是在需要许多人一起协同工作的现代工作环境中,我们更需要提高我们的整体工作效率。利用网络通讯基础及先进的网络应用平台,建设一个安全、可靠、开放、高效的信息网络和办公自动化、信息管理电子化系统,为管理部门提供现代化的日常办公条件及丰富的综合信息服务,实现档案管理自动化和办公事务处理自动化,以提高办公效率和管理水平,实现企业各部门日常业务工作的规范化、电子化、标准化,增强档案部门文书档案、人事档案、科技档案、 财务档案等档案的可管理性,实现信息的在线查询、借阅。最终实现“无纸”办公。本设计从一下三个方面进行可行性研究:二、技术可行性本设计“名片管理系统”是为各类人员开发的信息管理系统。通过近几个月的学习和实践,对开发管理信息系统又有了新的认识。使自己在开发管理信息系统方面的技术更加成熟。由于本设计最重要体现的是实用性,所以,通过大量的社会调查和分析,结合自己现有的技术水平加上导师的指导,还是能按期完成本毕业设计。三、经济可行性 成本方面:由于本毕业设计属于计算机科学(本科)教学的最后一个环节,所以人力消耗免费,资源学校提供,指导老师义务指导。所以成本计算只需计算开发期间开发者的生活消费,学校资源的消耗(主要包括机器的折价和消耗的电钱),所以开发本软件的成本是非常低的。四、操作可行性 本软件的用户对象是信息管理的工作人员,由于本软件要设计成友好的界面,写出详细的使用说明,用户只需懂得简单的计算机操作知识,就能自由应用本软件。 所以从以上几个方面的分析来看,开发本软件是完全可行的。五、需求分析结合国内外管理软件的最新研究成果进行大量的调查和分析可以得出一下的需求分析。(1)系统功能需求分析系统开发的总体任务是各种信息的系统化、规范化和自动化。主要完成功能:系统基本信息设置。包括添加新项目,退出等。名片信息的删除,查询等。名片信息的输入。包括包括姓名,电话,手机,备注等。(2)数据库需求分析用户的需求具体体现在各种信息的提供、保存、更新、和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。仔细分析调查的基础上,得到如下图所示的本系统所处理的数据流程。基本信息输入类别选择管理模块打印信息管理退出打印名片管理系统数据流程图六、系统总体设计经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“怎样做”的时候了。总体设计的基本目的就是回答“概括的说,系统应该如何实现?”这个问题,因此,总体设计又称为概要设计或初步设计。总体设计的重要任务是设计软件的结构,也就是要确定系统中每个程序由哪些模块组成,以及这些模块相互间的关系。 通常程序中的一个模块完成一个适当的子功能。应该把模块组成良好的层次系统,顶层模块调用它的下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而完成程序的一个子功能,最下层的模块完成最具体的功能。软件结构(即由模块组成的层次系统)可以用层次图或结构图来描述。对需求分析得到各项功能进行集中、分块、按照结构化程序设计的要求,得到如下图所示的系统功能模块图。名片管理系统类别设置添加类别修改类别退出信息管理添加信息修改信息退出查询管理查询信息打印管理打印表查看信息菜单管理主菜单树退出系统功能模块图(1)概念结构设计由第三章的需求分析,就可以设计出能够满足用户需求的各种实体结构,以及他们之间的关系,为以后的逻辑结构设计打下基础。名片信息实体E-R图如下所示:名片管理实体信息管理菜单管理查询管理打印管理 客房信息实体E-R图(2)逻辑结构设计首先将名片管理信息系统的数据库概念结构转化为Access 2003数据库系统所支持的实际数据模型,即:数据库的逻辑结构。其表格如下: 七、系统实现1、用户登录窗体 public class LoginForm : Form private void btnOk_Click(object sender, EventArgs e) if (txtUserName.Text.Trim().Length 0 & txtPassword.Text.Trim().Length 0) string strConnect=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb;Persist Security Info=False;OleDbConnection thisConnection=new OleDbConnection(strConnect); Try string name = txtUserName.Text.Trim(); string pwd = txtPassword.Text.Trim(); thisConnection.Open(); OleDbCommand cmd = new OleDbCommand(select * from admin where username= + txtUserName.Text + and password= + pwd + , thisConnection); OleDbDataReader dr = cmd.ExecuteReader(); if (dr.Read() this.Hide(); MainForm MCC = new MainForm(); MCC.Show(); else MessageBox.Show(请输入用户名和密码 else MessageBox.Show(输入用户名或密码错误., 登录错误, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); DialogResult = DialogResult.None; private void btnCancel_Click(object sender, EventArgs e) this.Close();private void txtUserName_TextChanged(object sender, EventArgs e)txtUserName.SelectAll();private void txtPassword_TextChanged(object sender, EventArgs e)txtPassword.SelectAll();2、名片管理系统主窗体本模块的创建是整个管理系统的重要环节,这是管理系统的主界面,本管理系统共五个模块,分别是系统设置,信息管理,类别管理,打印管理,查询管理。其中系统设置模块功能是:添加新类别,退出。主窗体模块主要代码如下:private void LoadData()string strConnect=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb;Persist Security Info=False;conn=new OleDbConnection(strConnect);string query=SELECT id,name,parentid FROM codeitems ORDER BY parentid,id;DataSet ds = new DataSet() ;conn.Open() ; OleDbDataAdapter command = new OleDbDataAdapter(query,conn);command.Fill(ds,codeitems);DataTable dt=ds.Tablescodeitems;DataRowCollection rows=dt.Rows;Hashtable h=new Hashtable();arrCategoryID=new ArrayList();foreach (DataRow dr in rows)TreeNodeItem tni=new TreeNodeItem(int)dr0,(string)dr1,(int)dr2);int parentID=tni.ParentID;if (tni.IDmaxID)maxID=tni.ID;if (parentID=0)/is categoryarrCategoryID.Add(tni);ArrayList arr=(ArrayList)hparentID;if (arr=null)arr=new ArrayList();h.Add(parentID,arr);arr.Add(tni); rootNode=new TreeNode(名片管理);rootNode.Tag=new TreeNodeItem(0,名片管理,-1);treeViewCode.Nodes.Add(rootNode);if (maxID=-1)maxID=0;BuildBranch(h,0,rootNode);3、类别设置模块模块主要代码如下:private void ShowNewCategoryForm()CategoryForm f=new CategoryForm();if (f.ShowDialog()=DialogResult.OK)string strName=f.ItemName;string strNotes=f.Notes;if (CreateNewCategory(strName,strNotes)=null)MessageBox.Show(this,不能保存到数据库,数据库错误!,错误提示,MessageBoxButtons.OK,MessageBoxIcon.Error);4、名片输入模块:模块主要代码如下:private void ShowNewItemForm()ItemForm f=new ItemForm(arrCategoryID);if (f.ShowDialog()=DialogResult.OK)string strName=f.ItemName;string strCode=f.Code;TreeNodeItem tniCategory=(TreeNodeItem)f.Category;TreeNode newNode=new TreeNode(strName);maxID+;TreeNodeItem tni=new TreeNodeItem(maxID,strName,tniCategory.ID);newNode.Tag=tni;if (MessageBox.Show(您确定要保存在+strAuthor, 信息提示, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes)string query=INSERT INTO codeitems (id,name,code,notes,phone,email,msn,qq,address,author,parentid);if (i=-1MessageBox.Show(this,不能保存到数据库,数据库错误!,错误提示,MessageBoxButtons.OK,MessageBoxIcon.Error);elsefor (int j=0;jrootNode.Nodes.Count;j+)TreeNode nodeTemp=rootNode.Nodesj;TreeNodeItem temp=(TreeNodeItem)nodeTemp.Tag;if (temp.ID=tniCategory.ID)nodeTemp.Nodes.Add(newNode);catch(Exception)MessageBox.Show(this,不能保存到数据库,数据库错误!,错误提示,MessageBoxButtons.OK,MessageBoxIcon.Error);5、名片查询模块主要代码如下:private void btnOK_Click(object sender, System.EventArgs e)if (txtSearch.Text.Trim()=)MessageBox.Show(this,请输入你要查询的信息!,错误提示,MessageBoxButtons.OK,MessageBoxIcon.Information);txtSearch.Focus();elseif (chkCode.Checked=false & chkNotes.Checked=false)MessageBox.Show(this,请选择你要查询的范围!,错误提示,MessageBoxButtons.OK,MessageBoxIcon.Information);elsethis.DialogResult=DialogResult.OK;6、修改模块模块主要代码如下:private void EditCategoryItem() TreeNode curNode=(TreeNode)treeViewCode.SelectedNode;if (curNode=null)return;TreeNodeItem tni=(TreeNodeItem)curNode.Tag;if (tni.ParentID=-1)/rootreturn;if (tni.ParentID=0)/is categoryCategoryForm f=new CategoryForm(curNode.Text,txtNotes.Text);if (f.ShowDialog()=DialogResult.OK)string strName=f.ItemName;string strNotes=f.Notes;tni.Name=strName;trystring query=UPDATE codeitems SET name=;OleDbCommand command =new OleDbCommand(query,conn); int i=command.ExecuteNonQuery();if (i=-1) MessageBox.Show(this,不能保存到数据库,数据库出错!,错误提示,MessageBoxButtons.OK,MessageBoxIcon.Error);else curNode.Text=strName;txtNotes.Text=strNotes;catch(ExceptionMessageBox.Show(this,不能保存到数据库,数据库出错!,错误提示,MessageBoxButtons.OK,MessageBoxIcon.Error);ItemForm f=new ItemForm(arrCategoryID,tni,new CodeItem(txtCode.Text,txtNotes.Text,txtPhone.Text,txtEmail.Text,txtMsn.Text,txtQq.Text,txtAddress.Text),curNode.Parent.Text,curNode.Text);7、打印模块八、模块主要源代码:private void News_Load(object sender, System.EventArgs e)string strConnect=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb;Persist Security Info=False;OleDbConnection conn=new OleDbConnection(strConnect);string query=SELECT * FROM codeitems ORDER BY parentid,id;DataSet ds = new DataSet() ;conn.Open() ;OleDbDataAdapter command = new OleDbDataAdapter(query,conn);command.Fill(ds,codeitems);DataTable dt=ds.Tablescodeitems;DataRowCollection rows=dt.Rows;Hashtable h=new Hashtable();arrCategoryID=new ArrayList();dataGrid1.DataSource=ds.Tables0.DefaultView;private void menuItem1_Click(object sender, System.EventArgs e)private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)private void button1_Click(object sender, System.EventArgs e)/create printerclass objectPrintC = new PrinterClass(printDocument1,dataGrid1);printDocument1.Print();private void button2_Click(object sender, System.EventArgs e)/create printerclass objectPrintC = new PrinterClass(printDocument1,dataGrid1);if (printPreviewDialog1.ShowDialog() = DialogResult.Cancel)private void printDocument2_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)float CurrentX = (e.PageBounds.Width - e.MarginBounds.Left) / 2; /centerfloat CurrentY = e.MarginBounds.Top;string text = dataGrid1.CaptionText;Font font = dataGrid1.CaptionFont;e.Graphics.FillRectangle(new SolidBrush(dataGrid1.CaptionBackColor),rect);e.Graphics.DrawString(text,font,Brushes.Black,rect);CurrentY

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论