设备管理系统程序设计_第1页
设备管理系统程序设计_第2页
设备管理系统程序设计_第3页
设备管理系统程序设计_第4页
设备管理系统程序设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

资料范本本资料为word版本,可以直接编辑和打印,感谢您的下载设备管理系统程序设计地点:时间:说明:本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时请详细阅读内容《《C#程序设计》大作业设备管理系统计算机科学与技术s121096143朱晓敏2012/11/61前言PAGEREFTOC\o"1-5"\h\z题目:专业:学号:姓名:完成日期:目录TOC\o"1-2"\h\z\uHYPERLINK\l"_Toc340320264"Toc340320264\h2HYPERLINK\l"_Toc340320265"Toc340320265\h2HYPERLINK\l"_Toc340320266"Toc340320266\h2HYPERLINK\l"_Toc340320267"Toc340320267\h2HYPERLINK\l"_Toc340320268"Toc340320268\h2HYPERLINK\l"_Toc340320269"Toc340320269\h2HYPERLINK\l"_Toc340320270"Toc340320270\h3HYPERLINK\l"_Toc340320271"Toc340320271\h3HYPERLINK\l"_Toc340320272"Toc340320272\h42需求分析PAGEREF要求PAGEREF任务PAGEREF2.3运行环境PAGEREF2.4开发工具PAGEREF3概要设计与详细设计PAGEREF3.1系统流程图PAGEREF3.2数据库设计PAGEREFHYPERLINK\l"_Toc340320273"Toc340320273\h4HYPERLINK\l〃_Toc340320274〃Toc340320274\h4HYPERLINK\l"_Toc340320275"Toc340320275\h5HYPERLINK\l"_Toc340320276"Toc340320276\h5HYPERLINK\l"_Toc340320277"Toc340320277\h7HYPERLINK\l"_Toc340320278"Toc340320278\h16HYPERLINK\l"_Toc340320279"Toc340320279\h24HYPERLINK\l"_Toc340320280"Toc340320280\h25HYPERLINK\l"_Toc340320281"Toc340320281\h03.2.1建立数据字典PAGEREF3.2.2数据库详细设计PAGEREF4编码与实现PAGEREF4.1分析PAGEREF4.2具体代码实现PAGEREF4.3界面实现PAGEREF5课程设计总结PAGEREF参考文献PAGEREF评语及成绩PAGEREF1刖言设计一个设备管理系统,该系统主要针对设备管理员。系统首先要求用户登录,用户必须输入正确的用户名和密码;系统主界面包括设备查询功能及数据维护功能,设备查询功能是按一定的条件查询所需要的设备信息,数据维护主要是通过增加或删除来修改数据。2需求分析2.1要求用Csharp语言实现程序设计;(2)采用.NET开发工具来设计主窗体和子窗体等;(3)画出系统模块的流程图;(4)完成数据库的设计;(5)界面友好(良好的人机互交),程序要有注释。2.2任务(1)设计一个登陆窗体和主窗体,7个子窗体来显示相关信息;(2)管理员必须输入正确的用户名和密码,才能进入主窗体进行相关操作;(3)画出所有模块的流程图;(4)完成数据库的设计;(5)编写代码;(6)程序分析与调试。2.3运行环境(1)WINDOWS2000/XP系统(2)VisualStudio2005编译环境2.4开发工具C#:C#(CSharp)是微软为NETFramework量身订做的程序语言,C#拥有C/C++的强大功能以及VisualBasic简易使用的特性,是第一个组件导向(Component-oriented)的程序语言,和C++与Java一样亦为对象导向(object-oriented)程序语言。3概要设计与详细设计3.1系统流程图首先要有一个登录模块对登录用户进行验证,如果验证成功则进入系统的主窗体,登录主窗体之后管理员以操作所有的功能:查询、修改、增加设备信息、辅助工具、退出。开始用户名及密码选择操作类型查询设备信息修改设备信息添加设备信息删除设备信息设备信息表退出NY图3.1系统流程图3.2数据库设计3.2.1建立数据字典在开发设备管理系统之前,分析了改系统的数据量。选择MicrosoftSQLServer2005数据库存储这些信息,数据库命名为MyDevice,在数据库中创建了2个数据表用于不同的信息。设备管理员数据字典名字:设备管理员表(User)描述:记录管理员的具体详细信息定义:设备管理员表二用户编号+用户名+密码位置:设备管理数据库设备数据字典名字:设备信息表(equipment)描述:记录设备的具体详细信息定义:设备信息表二设备编号+设备名称+设备数量+设备价格位置:设备管理数据库3.2.2数据库详细设计表1User表结构表2equipment表结构4编码与实现4.1分析(1)登陆界面的设计——打开VisualStudio2005,新建一个名为DeviceSystem项目,然后打开一个窗体并命名为userlogin.cs。在此窗体中添加2个标签(用户名和密码)、2个按钮(确定和取消)和2个textBox等,如图所示图4.1登陆窗体(2)系统主窗体的设计一一添加窗体并命名为frmMain.cs,在此窗体添加一个MenuStrip控件,一个ToolStrip控件及3个按钮,一个Time控件,toolStripStatus控件并分别设置各属性,如图所示图4.2系统主窗体(3)子窗体的设计添加4个窗体并依此命名为frmselecName.cs、frmselecPrice.cs、frmDataMaint.cs、frmDeletedevice.cs并分别添口工具控件及设置各属性,如图所示图4.3按名称查询窗图4.4按价格查询窗体图4.5数据维护窗体4.2具体代码实现登录窗体一frmlogin.csusingSystem;usingSystem.Configuration;namespaceDeviceSystem{privatevoidbtnYes_Click(objectsender,EventArgse)(stringuserName=txtName.Text;stringpassword=txtPwd.Text;stringcons=ConfigurationManager.ConnectionStrings["DeviceSystem.Properties.Settings.MyDeviceConnectionString"].ConnectionString;SqlConnectionconnection=newSqlConnection(cons);〃获取用户名和密码匹配的行的数量的SQL语句stringsql二String.Format("selectcount(*)from[User]whereusername='{0}'andpassword='{1}'",userName,password);try(connection.Open();〃打开数据库连接SqlCommandcommand=newSqlCommand(sql,connection);〃创建Command对象intnum=(int)command.ExecuteScalar();//执行查询语句,返回匹配的行数if(num>0)(〃如果有匹配的行,则表明用户名和密码正确MessageBox.Show("欢迎进入设备管理系统!",〃登录成功〃,MessageBoxButtons.OK,MessageBoxIcon.Information);frmMainmainForm=newfrmMain();〃创建主窗体对象mainForm.Show();〃显示窗体this.Visible=false;//登陆窗体隐藏}else(MessageBox.Show("您输入的用户名或密码错误!",〃登录失败〃,MessageBoxButtons.AbortRetryIgnore,MessageBoxIcon.Exclamation);}//MessageBoxIcon.Exclamation是由三角符号组成的警惕图}catch(Exceptionex)(MessageBox.Show(ex.Message,"操作数据库出错啦!〃,MessageBoxButtons.OK,MessageBoxIcon.Exclamation);}finally(connection.Close();〃关闭数据库连接}}privatevoidbtnCancel_Click(objectsender,EventArgse)(txtName.Text="";txtPwd.Text="";txtName.Focus();//将光标指定在txtName上}}}主窗体frmMain.csusingSystem;usingSystem.Windows.Forms;namespaceDeviceSystem{privatevoidtimer1_Tick(objectsender,EventArgse)(DateTimedt=DateTime.Now;//获取当前时间tssData.Text=dt.ToLongDateString();}privatevoidtsmExit_Click(objectsender,EventArgse)(Application.Exit();}privatevoidtsmSelecName_Click(objectsender,EventArgse)(frmselecNameselectname=newfrmselecName();//创建子窗体对象selectname.MdiParent=this;//指定当前窗体为MDI父窗体selectname.Show();〃打开子窗体tssStatus.Text=〃按名称查询〃;//在状态栏中显示操作内容}privatevoidtsmSelecPrice_Click(objectsender,EventArgse)(frmselecPriceselectprice=newfrmselecPrice();//创建子窗体对象selectprice.MdiParent=this;//指定当前窗体为MDI父窗体selectprice.Show();//打开子窗体tssStatus.Text=〃按单价查询〃;//在状态栏中显示操作内容}privatevoidtsmUpdate_Click(objectsender,EventArgse)(frmDataMaintdatamaint=newfrmDataMaint();//创建子窗体对象datamaint.MdiParent=this;//指定当前窗体为MDI父窗体datamaint.Show();〃打开子窗体tssStatus.Text=〃修改数据〃;//在状态栏中显示操作内容}privatevoidtsmabout_Click(objectsender,EventArgse)(frmAboutabout=newfrmAbout();//创建子窗体对象about.MdiParent=this;//指定当前窗体为MDI父窗体about.Show();//打开子窗体tssStatus.Text=〃关于我们〃;//在状态栏中显示操作内容}privatevoidtsmjsq_Click(objectsender,EventArgse)(frmjsqjsq=newfrmjsq();//创建子窗体对象jsq.MdiParent=this;//指定当前窗体为MDI父窗体jsq.Show();〃打开子窗体tssStatus.Text=〃计算器〃;//在状态栏中显示操作内容}privatevoidtsmdate_Click(objectsender,EventArgse)frmTimetime=newfrmTime();〃创建子窗体对象time.MdiParent=this;//指定当前窗体为MDI父窗体time.Show();//打开子窗体tssStatus.Text=〃万年历〃;//在状态栏中显示操作内容}privatevoidtsmdel_Click(objectsender,EventArgse)(frmDeletedevicedelete=newfrmDeletedevice();//创建子窗体对象delete.MdiParent=this;//指定当前窗体为MDI父窗体delete.Show();//打开子窗体tssStatus.Text二〃设备数据维护〃;〃在状态栏中显示操作内容}}}子窗体frmMain.csusingSystem;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;usingSystem.Configuration;namespaceDeviceSystem{publicfrmselecName()InitializeComponent();stringcons=ConfigurationManager.ConnectionStrings["DeviceSystem.Properties.Settings.MyDeviceConnectionString"].ConnectionStringconnection=newSqlConnection(cons);}privatevoidfrmselecName_Load(objectsender,EventArgse)(//TODO:这行代码将数据加载到表“myDeviceDataSet.equipment”中。您可以根据需要移动或移除它。this.equipmentTableAdapter.Fill(this.myDeviceDataSet.equipment);}privatevoidbtnSelectName_Click(objectsender,EventArgse)(stringname=textBox1.Text;〃按名称查询设备stringsql=String.Format("select*fromequipmentwherenamelike'%{0}%'”,name);try(SqlDataAdapterdataAdapter=newSqlDataAdapter(sql,connection);DataSetdatSet=newDataSet("equipment");dataAdapter.Fill(datSet);〃设置各列的显示数据字段dataGridView1.Columns[0].DataPropertyName="id";dataGridView1.Columns[1].DataPropertyName="name";dataGridView1.Columns[2].DataPropertyName="price";dataGridView1.Columns[3].DataPropertyName="count";dataGridView1.DataSource=datSet.Tables[0];}catch(Exceptionex)(MessageBox.Show(ex.Message,"操作数据库出错啦!",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);}}privatevoidbutton1_Click(objectsender,EventArgse)(this.Close();}}}子窗体frmselecPrice.csusingSystem;usingSystem.Drawing;usingSystem.Data.SqlClient;usingSystem.Configuration;namespaceDeviceSystempublicfrmselecPrice()(InitializeComponent();stringcons=ConfigurationManager.ConnectionStrings["DeviceSystem.Properties.Settings.MyDeviceConnectionString"].ConnectionString;connection=newSqlConnection(cons);}privatevoidbtnselectPrice_Click(objectsender,EventArgse)(//decimal表示十进制数decimalprice1,price2;try(price1=Convert.ToDecimal(textBox1.Text);price2=Convert.ToDecimal(textBox2.Text);}catch(price1=0;price2=1000000M;//默认为最大值}if(price1>price2)(//如果price1>price2,交换两者decimaltemp二price1;pricel二price2;price2二temp;}〃按价格查询设备stringsql=String.Format("select*fromequipmentwherepricebetween{0}and{1}”,price1,price2);try{SqlDataAdapterdataAdapter=newSqlDataAdapter(sql,connection);DataSetdatSet=newDataSet("equipment");dataAdapter.Fill(datSet);〃设置各列的显示数据字段dataGridView1.Columns[0].DataPropertyName="id";dataGridView1.Columns[1].DataPropertyName="name";dataGridView1.Columns[2].DataPropertyName="price";dataGridView1.Columns[3].DataPropertyName="count";dataGridView1.DataSource=datSet.Tables[0];}catch(Exceptionex){MessageBox.Show(ex.Message,"操作数据库出错啦!",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);}}privatevoidfrmselecPrice_Load(objectsender,EventArgse)(//TODO:这行代码将数据加载到表“myDeviceDataSet.equipment”中。您可以根据需要移动或移除它。this.equipmentTableAdapter.Fill(this.myDeviceDataSet.equipment);}privatevoidbutton1_Click(objectsender,EventArgse)(this.Close();}}子窗体frmDataMaint.csusingSystem;usingSystem.Data.SqlClient;namespaceDeviceSystem{privatevoidfrmDataMaint_Load(objectsender,EventArgse)(//TODO:这行代码将数据加载到表“myDeviceDataSet.equipment”中。您可以根据需要移动或移除它。this.equipmentTableAdapter.Fill(this.myDeviceDataSet.equipment);}privatevoidbtnsave_Click(objectsender,EventArgse)(equipmentTableAdapter.Update(myDeviceDataSet.equipment);}privatevoidbtnguanbi_Click(objectsender,EventArgse)(this.Close();}privatevoidbtnrefresh_Click(objectsender,EventArgse)(equipmentTableAdapter.Fill(myDeviceDataSet.equipment);}}}子窗体frmDeletedevice.csusingSystem;usingSystem.Data.SqlClient;usingSystem.Configuration;namespaceDeviceSystem{publicpartialclassfrmDeletedevice:Form(SqlConnectioncon;SqlDataAdapterda;DataSetds;SqlCommandcom;publicfrmDeletedevice()InitializeComponent();}privatevoidfrmDeletedevice_Load(objectsender,EventArgse)(BKY();stringcons=ConfigurationManager.ConnectionStrings["DeviceSystem.Properties.Settings.MyDeviceConnectionString"].ConnectionString;con=newSqlConnection(cons);////绑定cbosmda=newSqlDataAdapter("selectnamefromequipment",con);ds=newDataSet();da.Fill(ds,"equipment");cbosm.DataSource=ds.Tables["equipment"];cbosm.DisplayMember="name";FillDgvshebei();}privatevoidFillDgvshebei()(//绑定dgvshebeida=newSqlDataAdapter("select*fromequipment",con);ds=newDat

温馨提示

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

评论

0/150

提交评论