C#应用程序开发报告.doc_第1页
C#应用程序开发报告.doc_第2页
C#应用程序开发报告.doc_第3页
C#应用程序开发报告.doc_第4页
C#应用程序开发报告.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

课程设计评分细则 序号评 分 内 容分值得 分1选题新颖、结构完整、原创性强,语言规范、排版美观、装订规范。202系统需求分析403系统设计情况204系统实现情况【答辩】40 5提交了数据库文件,且电子文档与打印稿一致10 6迟到、早退、打游戏或做无关之事,发现一次扣10分;旷课一次扣30分负分最终成绩答辩教师签名C#应用开发技术课程设计报告是是是题目: (独立完成 与他人合作 ) 学 号: 姓 名: 孙勇军 指导 教 师: 王珂柯 黄立丰 年 月目录1.项目背景.31.1项目简介.31.2开发平台.32 需求分析.4-52.1项目功能结构.43 系统设计.53.1 数据库表设计. .3.2 界面设计. . . .4系统实现. .74.1 系统功能实现.4.2 SQLHelper类的改进.5心得总结.136参考文献.15一、 项目背景:1、 项目简介目的是为了加强同学们的动手编程能力和创新能力,进行应用知识实现各个功能;要求是一通过编号将实验和实验室各个设备定义和初始化,二是实验设备的查询功能的实现,三是查询某段时间内的维修量和新增入库量,选做并分各个实验室来操作。2、 开发平台Microsoft Visual Stido 2005和Microsoft 二、 需求分析:1、 项目功能结构实现的各项功能 实验室设备管理系统登录界面注册界面设备入库日常管理各类设备信息及管理设备情况统计各个实验室查询 唐瑞孙勇军 钱小龙项目功能结构及分工图2、 项目功能分析说明本项目要求实现实验室设备的管理,功能分析如下:1) 登录系统,必需是此系统用户才能使用此系统并对系统中各数据进行添加、删除及修改2) 用户注册3) 实验设备种类信息显示及添加、删除、修改:显示各实验室中当前有何种设备,每种设备总数量、维修数量及新增数量,除序规则实验室优先,然后是设备种类ID。显示列表下方,可实现实验设备信息添加、删除、修改。如购买一种新设备,需首先在此页面添加设备种类信息;一种设备从一间实验室转移至另一实验室,需对设备所属实验室进行修改;一种设备全部更换需删除该设备种类信息。本操作中,可操作的字段为实验设备种类ID、设备名及所属实验室,其他字段如设备总数量的修改不能手动操作,系统会根据第一个设备信息的修改自动获取。4) 每一个实验设备信息显示及操作:显示三、 系统设计:3.1 数据库表设计. .用户登录表:Log:表名含义类型及长度NULL备注UserName用户名Char(30)NO主码Password密码Char(30)NO用户注册表:register表名含义类型及长度NULL备注UserName用户名Char(20)NO主码Password密码Char(20)NOmod身份Char(50)NOe_mail邮箱Char(50)NOindia爱好Char(MAX)NOchek验证码Char(20)NO各实验室设备查询表: LabEquipmentCategory表名含义类型及长度NULL备注CategoryId设备编号intNO主码CategoryName设备名称nvarchar(100)NOCategoryAmount设备数量intNODamageAmount报废数量intNORepairAmount维修数量intNOLabNum实验室编号varchar(6)NONewAmount新增入库数量intNO设备状况表:LabEquipmentCondition表名含义类型及长度NULL备注_condition状况Varchar(20)NO主码各实验室属性表:LabInformation表名含义类型及长度NULL备注LabNum实验室编号varchar(6)NO主码LabName实验名称nvarchar(100)NOAcademy所属学院名称nvarchar(100)NOChargePerson负责人姓名nvarchar(50)NO3.2 界面设计. . . .(1)、注册界面(2)、各实验查询界面: (3)、实验室的添加和修改操作界面:四、系统实现4.1 系统功能实现:(1)注册信息的实现:a.首先用几个TextBox接收用户输入的相应的信息,再用几个Select语句将其指向数据库的列名,然后调用SQLHelper中的执行函数即可入库;b.判断用户输入的情况:包括用户名是否为空、密码是否为空、重复密码、身份、年龄分别是否为空和重复密码和密码是否一致,然后判断邮箱的格式是否正确(是否是*.*),外加功能输入验证码,随机产生一个字符串,当用户输入与其一致,即可注册,最终外加功能未实现。(2)查询功能的实现:a. 报废设备数量的查询:先用Select语句讲某个实验室,某个设备物品的Id,当它的Condition= 报废 时,即可用SQLHelper.ExeSQL(sqlStr1)执行命令。然后将执行后转换成int型再做数据处理。最后再一次执行SQLHelper.ExeSQL(sqlStr1)命令后存入数据。 public static int GetDamageAmount(int categoryId, string labNum) int GetDamageAmount;string sqlStr = select count(CategoryId) from LabEquipment where CategoryId= + categoryId + and LabNum= + labNum + and Condition=报废;string sqlStr1 = select count(CategoryId) from LabEquipmentCondition where Condition= 报废 ; int categoryAmount = Convert.ToInt32(SQLHelper.GetString(sqlStr).ToString(); if (SQLHelper.ExeSQL(sqlStr1) = 0) GetDamageAmount+; GetDamageAmount = Convert.ToInt32(SQLHelper.GetString(sqlStr).ToString(); return GetDamageAmount; b.维修设备查询:实现类似于报废设备数量的查询。c.某一段时间某个实验室的维修量查询:这个功能没有完全实现。我是这样实现的,public static int GetCategoryAmount(int categoryId, string labNum) string sqlStr = select count(CategoryId) from LabEquipment where CategoryId= + categoryId + and LabNum= + labNum + ;string sqlStr1 = select count(Condition) from LabEquipmentCondition where CategoryId= + categoryId + and LabNum= + labNum + ; int categoryAmount = Convert.ToInt32(SQLHelper.GetString(sqlStr).ToString(); return categoryAmount; d. 新增入库数查询 :当输入各种设备时,添加新设备时记录系统时间作为设备入库时间,若入库时间大于当前系统时间减去6个月的时间,表明是新增设备(newDate即用以比较的时间):int GetNewAmount;string sqlStr = select count(CategoryId) from LabEquipment where CategoryId= + categoryId + and LabNum= + labNum + and buy_Date= + newDate + ;string sqlStr1 = select count(CategoryId) from LabEquipmentCondition where new_date0; GetNewAmount = Convert.ToInt32(SQLHelper.GetString(sqlStr).ToString(); if (SQLHelper.ExeSQL(sqlStr1) = 0) GetNewAmount+; return GetNewAmount;(2) 实验室信息的添加和修改功能的实现:a. ifelse语句的应用;b. try、catch语句实现异常处理;c. Page_Load(sender, e)实现页面的刷新。实验室信息的添加的ButtonInsert_Click()的代码如下: try string LabNum = TextBoxLabNum.Text.Trim(); string LabName = TextBoxLabName.Text.Trim(); string ChargePerson = TextBoxChargePerson.Text.Trim(); string AcademyName = DropDownListAcademy.SelectedValue; if (LabNum = | LabName = ) if (LabNum = ) MessageBox.Show(请输入实验室号!); Page_Load(sender, e); return; if (LabName = ) MessageBox.Show(请输入实验室名!); Page_Load(sender, e); return; else string sqlStr1 = select LabNum from LabInformation; if (SQLHelper.IsIn(sqlStr1, LabNum) = false)/设备种类编号已存在,告知ID已存在,并退出操作 MessageBox.Show(该实验室已存在!); Page_Load(sender, e); return; string sqlStr2 = insert into LabInformation values( + LabNum + , + LabName + , + AcademyName + , + ChargePerson + ); SQLHelper.ExeSQL(sqlStr2); MessageBox.Show(添加成功!); Page_Load(sender, e); catch (Exception ex) MessageBox.Show(连接错误,原因可能是: + ex); 实验室信息修改ButtonUpdate_Click()的代码如下:try string LabNum = TextBoxLabNum.Text.Trim(); string LabName = TextBoxLabName.Text.Trim(); string ChargePerson = TextBoxChargePerson.Text.Trim(); string AcademyName = DropDownListAcademy.SelectedValue; if (LabNum = | LabName = ) if (LabNum = ) MessageBox.Show(请输入实验室号!); Page_Load(sender, e); return; if (LabName = ) MessageBox.Show(请输入实验室名!); Page_Load(sender, e); return; else string sqlStr1 = select LabNum from LabInformation; if (SQLHelper.IsIn(sqlStr1, LabNum) = true)/设备种类编号不存在,告知ID不存在,并退出操作 MessageBox.Show(该实验室不存在!); Page_Load(sender, e); return; /string sqlStr2 = insert into LabInformation values( + LabNum + , + LabName + , + AcademyName + , + ChargePerson + ); string sqlStr2 = Update LabInformation set LabName= + LabName + ,ChargePerson= + ChargePerson + ; SQLHelper.ExeSQL(sqlStr2); MessageBox.Show(修改成功!); Page_Load(sender, e); catch (Exception ex) MessageBox.Show(连接错误,原因可能是: + ex); 4.2 SQLHelper类的改进我对SQLHelper类增加了:(1)获取数据集列名的公共函数public static DataSet GetDatasetDrop(string sql,string a) ,主要利用SqlDataAdapter sda = new SqlDataAdapter(sql, conn);sda.Fill(ds,a)实现,然后返回数据集ds;(2)判断增加的数据集是否和数据库中的一致,public static bool IsIn(string sql, string name),然后利用SqlCommand cmd1 = new SqlCommand(sql, conn), SqlDataReader sdr = cmd1.ExecuteReader(),通过sdr.Read()一行一行的读取是否与数据库中的一致; (3)获取数据库中的一个数据值的公共函数,public static string GetString(string sql )将SqlCommand对象执行的影响的值利用cmd.ExecuteScalar().ToString()返回。SQLHelper类的不足:(1)虽然能够实现各个基本操作功能的方法,但是要强大地实现广泛查询功能的时候,在跟数据库和各个页面的连接时,不能具体地查找到某一列名并进行相应的操作功能实现。(2)在它与添加项调用时,反复定义变量,增加了存储空间。所以程序有待改进。五、心得总结通过一个学期的C#程序设计学习,我发现它是一门网页设计入门的编程语言,还是比较容易入门的课程。而C#课程设计正是为了将我们所学的基础知识加以应用,使知识更加深刻。开始学习C#的时候,我有点不适应它新的平台,但有编程语言学习的基础,我开始学会用C#语言编程。在这次课程设计中,页面设计时,我思维开放,将一个个的功能用界面设计出来,还写出了需求分析及功能结构,然后开始编程序。编程分为两个阶段,一是分别实现各个功能,二是将各个功能联合起来形成一个完整的系统。我在做登录和注册界面时通过学过的经验完成了,于是我外加了验证码这一功能,想法是只要鼠标放在

温馨提示

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

评论

0/150

提交评论