版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、沈 阳 航 空 航 天 大 学 课程设计学 号 _班 级 _ 姓 名 _指导教师 _年 月 日沈阳航空航天大学课程设计任务书学院: 专业:飞行器制造工程 班级:学号: 题目:商品库存管理信息系统一、课程设计时间2015-2016第一学期第9周,即10月26日-10月30日,共计1周,20学时。二、课程设计内容用c#语言编写软件完成以下任务:(1)创建access数据库,用于存放商品的基本信息,包括:编号、名称、厂家、库存、进货价、售出价等。如下图:(2)创建与数据库的odbc连接。例如:using system.data.odbc; (3)设计用户界面,添加各种控件;(4)完成如下主要功能,如
2、下图:1) 用datagrid控件绑定和显示数据; 2) 输入商品编号或名称进行查询(可以用sql方法,也可以用过滤方法);3) 可以增加新的商品信息、修改、删除。三、课程设计要求程序质量要求:² 贯彻面向对象程序设计思想。² 设计用户图形界面,界面友好,功能明确,操作方便。² 可以加以其它功能或修饰。² 代码简洁清晰,并给出必要的注释,以增强程序的可读性。课程设计说明书:² 课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签名:_五、成绩六、教师评语沈阳航空航天大学设计用纸目
3、录一、需求分析5二、设计分析7三、主要界面截图8四、技术要点11五、个人总结16六、参考文献17七、源程序1735一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。该系统是一个较典型的商品库存管理信息系统,使用access数据库存放信息;其使用者被假定为某超市的管理员(可查商品具体信息)和售货员(购物系统),系统应该具有安全、稳定、功能齐全的特点。1. 安全性分析超市系统管理的数据涉及到超市机密,数据量较大,且是一种基础性数据,能够为超市管理员和售货员提供信息查询,所以要通过设置密码登录、身份验证等手段确保数据不能被除了管理员之外的人随意的查看,删减和修改。2.
4、稳定性分析指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。3. 主要功能分析(1)创建access数据库:创建数据库中名为pyw的表,用于存放全部商品的编号,名称,厂家,库存,进货价和售出价等信息;(2)数据库的odbc连接:系统可以通过odbc创建与数据库及其中名为pyw信息表的连接。(3)设计用户界面:添加各种控件,完成界面的设计、并能在此基础上实现其它功能;(4)数据浏览:通过datagrid控件绑定到名为pyw的信息表,并显示全部通讯数据;(5)数据查询(管理员操作):用户输入查询条件,如:输入编号可以进行查询其他信息,系
5、统规则地在控件textbox中显示查询结果,且显示的数据尽量全面。(6)信息添加:可以增加新的商品信息,用户输入编号,名称,厂家,库存,进货价和售出价等信息即可完成添加。(7)信息修改:对用户录入的数据能够提供修改功能。(8)信息删除:可指定某条无用的商品信息,删除。 二、设计分析为了满足本系统要求,一共设计了一个access数据库中的数据表,以及vs2010中的5个窗口。其基本功能简述如下:1. access数据库名称为pyw.mdb;数据表名称为student;用于存放全体学生的编号,名称,厂家,库存,进货价和售出价等信息;其中:“编号”字段为“数字”型,字段大小:长整型;“名称”字段为“
6、文本”型,字段大小:255;“厂家”字段为“文本”型,字段大小:255;“库存”字段为“数字”型,字段大小:长整型;“进货价”字段为“货币”型,字段大小:255;“售出价”字段为“货币”型,字段大小:255;2. 密码输入窗口,为:form1;3. 设置密码窗口,一共2个窗口,为:form3和form4;主要功能是提供密码输入界面和设置密码界面,完成安全性的身份验证。4. 主要功能窗口,有2个,管理员所用为:form2,售货员所用为form5 ;form2:完成(1)数据库的odbc连接;(2)设计用户界面;(3)数据浏览;(4)数据查询;(5)信息添加;(6)信息修改;(7)信息删除;(8)
7、退出系统;等主要功能。form5:完成(1)连接商品信息数据库;(2)购物界面设计;(3)单价查询;(4)购买商品信息显示;三、主要界面截图图1 access数据库中student数据表截图图2 管理员密码登录及售货员免密码登录窗口 图3 设置管理员登录系统密码 图4 管理员系统界面 图5 售货员界面四、技术要点(对本程序贡献较大的知识点;数据库数据表、odbc连接、主要窗体、重要算法的设计与实现)1、数据库的设计建立了名称为pyw.mdb的access数据库,并在其中建立了student数据表,用于存放所有商品的编号,名称,厂家,库存,进货价和售出价等信息;其中设计截图如下:图6 数据表的设
8、计窗口2、创建与数据库的odbc连接创建与数据库的odbc连接的步骤。(1)首先在“控制面板”、“管理工具”、“odbc数据源”中添加新的数据源1406,如图:图7 odbc数据源管理器中的1406数据源图8 1406数据源的配置(2)注册所需的库文件using system.data.odbc;(3)连接到ncrl数据源string connstring1 = "dsn=1406;uid=;pwd="odbcconnection myconn = new odbcconnection(connstring1);3、用datagrid控件绑定和显示数据用datagrid控件
9、绑定和显示数据是通过datagridview控件和添加数据源实现,基本步骤通过手动操作实现,如下:(1) 添加一个datagridview控件(2)“添加新数据源”>“数据库”>“数据集”>“新建连接”>选择“odbc数据源”>选择“数据源1406”>保存“连接字符串”>选择“表”。图9 选择“数据源1406”图10 保存“连接字符串”图11 选择“表”图10 成功实现datagrid控件绑定(3)在form2_load中加载数据private void form1_load(object sender, eventargs e) r
10、tableadapter.fill(this.dataset1.student); 4、输入编号查询采用过滤方法实现,在datagrid控件绑定和显示的数据基础上进行过滤,基本步骤通过代码实现5、增加信息、修改信息。采用过滤方法实现,在datagrid控件绑定和显示的数据基础上进行增加、修改、删除,基本步骤通过代码实现,代码见源码6、 购买商品 查询商品单价及显示购买商品信息,代码见源码7. 设置密码 增加新窗口进行操作。 8.退出及返回上一步代码:(其中之一) form1 frm1 = new form1(); frm1.show(); this.hide(); 5、 个人总结程序优点:1.
11、管理员登录需密码验证,保证安全;2.售货员登录无需密码,方便;3.管理员每次登陆可更改密码;4.进入系统后可返回登陆界面,而不是直接关闭程序,返回登陆界面后设置的密码依然有效,界面可切换;5.购物系统可通过扫描编号查询单价及所购商品名称,输入购买数量可给出总价;6.考虑到0的特殊性,程序给了提醒并做了修改,当密码全为0时登录不了系统。程序缺点:1.无法计算显示在listbook中各个商品价格总和,需进一步借助计算器计算。2.查询只设计了通过编号查询代码。个人心得:在老师的指导,同学的帮助下,经过反复查阅资料,我终于圆满的完成了课程设计。通过这次课程设计,让我更加深刻了解了课本知识,复习了上学期
12、的知识的同时,添加了许多不知道的新知识,在设计过程中遇到一些或大或小的问题,比如说如何连接两个窗体,数据源的绑定等等,甚至有的数据很难查出,但是这些问题经过这次设计,都一一得以解决,我相信c#这本书中还有很多我不明白的问题,但是这次的课程设计给我相当的基础知识,为我以后工作打下了严实的基础。虽然这次课程是那么短暂的1周时间,我感觉到这些天我的所学胜过我上一学期所学,这次任务是设计一个系统,其实就是一次大的作业,大的挑战,是让我对课本知识的巩固和对基本知识的熟悉和应用,编写程序细节往往很重要,错一点都不行,这使我做事的耐心和仔细程度得以提高。我认为课程设计是培训学生运用课本所学的理论知识来分析解
13、决实际问题的重要教学环节,是对上学期所学知识的复习和巩固。同样,也促使了同学们查找资料的技能,加强了同学间相互探讨,相互学习的能力。因此,我们必须珍惜这次机会,如果时间可以重来,我可能会认真的去学习和研究,也可能会自己独立的完成一个系统,我相信无论是谁看到自己做出的成果时心里一定会很兴奋。此次设计让我明白了一个很深刻的道理:所学知识通过实践才能得到检验,才会记得更牢固,学到的东西才会更多。 通过课程设计使我们了解到一些实际与理论之间的差异,为以后的工作打下了坚实的基础,而其还可以培养和熟练使用资料,运用工具书的能力,把我们所学的课本知识与实践结合起来,起到温故而知新的作用。这一周的设计让我感触
14、很深。我收获很多、学会很多、比以往更有耐心很多。感谢学校及老师给我们这次课程设计的机会,最真挚的感谢我们的辅导老师 ,在设计过程中,老师精心的辅导和不厌其烦地的态度才使得我们以顺利的完成这次设计任务,任务的顺利完成为我以后学习计算机增强了信心,我只想说,这次课程设计完美!6、 参考文献1. 吴邵兴 c#项目开发案例导航.北京; 电子工业出版社,20122. 徐新华 数据库与midas编程技术 清华大学出版社,20003. 7、 源程序using system;using system.collections.generic;using system.linq;using system.wind
15、ows.forms;namespace _143403030608 static class program / <summary> / 应用程序的主入口点。 / </summary> stathread static void main() application.enablevisualstyles(); application.setcompatibletextrenderingdefault(false); application.run(new form1(); using system;using system.collections.generic;usi
16、ng system.componentmodel;using system.data;using system.drawing;using system.linq;using system.text;using system.windows.forms;using system.media;namespace _143403030608 public partial class form1 : form int m = form4.o; public form1() initializecomponent(); private void button1_click(object sender,
17、 eventargs e) if (textbox1.text = "") soundplayer msc = new soundplayer("c:usersdelldesktop裴彦文14340303060814340" + ".wav"); msc.play(); messagebox.show( "密码错误,请重新输入!"); else int n = int.parse(textbox1.text); if (n = m&&n>0) soundplayer msc = new sou
18、ndplayer("c:usersdelldesktop裴彦文1434030306081434030" + ".wav"); msc.play(); form2 frm1 = new form2(); frm1.show(); this.hide(); else soundplayer msc = new soundplayer("c:usersdelldesktop裴彦文14340303060814340" + ".wav"); msc.play(); messagebox.show("密码错误,请重新
19、输入!"); private void button2_click(object sender, eventargs e) this.close(); private void button3_click(object sender, eventargs e) form3 frm1 = new form3(); frm1.show(); this.hide(); private void textbox1_textchanged(object sender, eventargs e) private void button4_click(object sender, eventarg
20、s e) soundplayer msc = new soundplayer("c:usersdelldesktop裴彦文14340303060814340303" + ".wav"); msc.play(); form5 frm1 = new form5(); frm1.show(); this.hide(); private void form1_load(object sender, eventargs e) private void button5_click(object sender, eventargs e) soundplayer msc
21、 = new soundplayer("c:usersdelldesktop裴彦文143403030608143" + ".wav"); msc.play(); using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.linq;using system.text;using system.windows.forms;using system.data.odbc;
22、namespace _143403030608 public partial class form2 : form public form2() initializecomponent(); private void form2_load(object sender, eventargs e) / todo: 这行代码将数据加载到表“dataset1.student”中。您可以根据需要移动或删除它。 this.studenttableadapter.fill(this.dataset1.student); private void button4_click(object sender, ev
23、entargs e) string connstring1 = "dsn=1406;uid=;pwd=" odbcconnection myconn = new odbcconnection(connstring1); try myconn.open(); /打开连接 messagebox.show(" 继续点击确认添加! "); odbccommand mycommand = myconn.createcommand(); /创建命令对象mycommand string ld_1 = this.textbox1.text; string ls_2 =
24、this.textbox2.text; string ls_3 = this.textbox3.text; string ls_4 = this.textbox4.text; string ls_5 = this.textbox5.text; string ls_6 = this.textbox6.text; mycommand.commandtext = "insert into student (编号,名称,厂家,库存,进货价,售出价) values ( " + ld_1 + ", '" + ls_2 + "', '
25、" + ls_3 + "', " + ls_4 + ", '" + ls_5 + "' ,'" + ls_6 + "' )" /insert oki! mycommand.connection = myconn; int rtn = mycommand.executenonquery(); /执行命令返回结果指派给datareader对象myreader messagebox.show(rtn.tostring() + "商品信息被添加"); t
26、his.studenttableadapter.fill(this.dataset1.student); catch (exception e1) messagebox.show(e1.message); finally myconn.close(); /关闭数据库连接 private void button2_click(object sender, eventargs e) string connstring1 = "dsn=1406;uid=;pwd=" odbcconnection myconn = new odbcconnection(connstring1);
27、try myconn.open(); /打开连接 messagebox.show(" 查询! "); odbccommand mycommand = myconn.createcommand(); /创建命令对象mycommand string ld_1 = this.textbox1.text; string ls_2 = this.textbox2.text; string ls_3 = this.textbox3.text; string ls_4 = this.textbox4.text; string ls_5 = this.textbox5.text; stri
28、ng ls_6 = this.textbox6.text; mycommand.commandtext = "select * from student where 编号 = " + ld_1 + "" /select number类型 "+string+" oki! mycommand.connection = myconn; odbcdatareader rd = mycommand.executereader(); rd.read(); textbox2.text = " " + rd"名称&quo
29、t; textbox3.text = "" + rd"厂家" textbox4.text = "" + rd"库存" textbox5.text = "" + rd"进货价" textbox6.text = "" + rd"售出价" rd.close(); catch (exception e1) messagebox.show(e1.message); finally myconn.close(); /关闭数据库连接 private
30、void button1_click(object sender, eventargs e) form1 frm1 = new form1(); frm1.show(); this.hide(); private void button3_click(object sender, eventargs e) string connstring1 = "dsn=1406;uid=;pwd=" odbcconnection myconn = new odbcconnection(connstring1); try myconn.open(); /打开连接 messagebox.s
31、how(" 删除 "); odbccommand mycommand = myconn.createcommand(); /创建命令对象mycommand string ld_1 = this.textbox1.text; string ld_2 = this.textbox2.text; mycommand.commandtext = "delete from student where 编号 = " + ld_1 + "" /delete oki! mycommand.connection = myconn; int rtn =
32、mycommand.executenonquery(); /执行命令返回结果指派给datareader对象myreader /object rtn = mycommand.executescalar(); /executescalar 统计,查询,只读取首行首列 messagebox.show(rtn.tostring() + "商品信息被删除"); this.studenttableadapter.fill(this.dataset1.student); catch (exception e1) messagebox.show(e1.message); finally m
33、yconn.close(); /关闭数据库连接 private void button5_click(object sender, eventargs e) string connstring1 = "dsn=1406;uid=;pwd=" odbcconnection myconn = new odbcconnection(connstring1); try myconn.open(); /打开连接 messagebox.show(" 修改 "); odbccommand mycommand = myconn.createcommand(); /创建命
34、令对象mycommand string ld_1 = this.textbox1.text; string ls_2 = this.textbox2.text; string ls_3 = this.textbox3.text; string ls_4 = this.textbox4.text; string ls_5 = this.textbox5.text; string ls_6 = this.textbox6.text; mycommand.commandtext = "update student set 名称 ='" + ls_2 + "
35、9;where 编号 = " + ld_1 + "" /update oki! mycommand.connection = myconn; int rtn = mycommand.executenonquery(); /执行命令返回结果指派给datareader对象myreader /object rtn = mycommand.executescalar(); /executescalar 统计,查询,只读取首行首列 messagebox.show(rtn.tostring() + "商品信息被修改"); this.studenttable
36、adapter.fill(this.dataset1.student); catch (exception e1) messagebox.show(e1.message); finally myconn.close(); /关闭数据库连接 using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.linq;using system.text;using system.windows.forms;name
37、space _143403030608 public partial class form3 : form public form3() initializecomponent(); private void button1_click(object sender, eventargs e) if (textbox1.text = "000000") button2.enabled = true; label3.text = "密码正确,请点击下一步继续" label3.forecolor = color.blue; else label3.text =
38、 "密码错误,请查正后输入!" label3.forecolor = color.red; private void button2_click(object sender, eventargs e) form4 frm1 = new form4(); frm1.show(); this.hide(); private void button3_click(object sender, eventargs e) form1 frm1 = new form1(); frm1.show(); this.hide(); using system;using system.coll
39、ections.generic;using system.componentmodel;using system.data;using system.drawing;using system.linq;using system.text;using system.windows.forms;namespace _143403030608 public partial class form4 : form public static int o ; public form4() initializecomponent(); private void label1_click(object sen
40、der, eventargs e) private void button1_click(object sender, eventargs e) int a, b; a = int.parse(textbox1.text); b= int.parse(textbox2.text); if (a = b) label3.text = "设置密码成功" label3.forecolor = color.blue; o = a; else label3.text = "两次输入不相等,请重新输入!" label3.forecolor = color.red;
41、private void button2_click(object sender, eventargs e) form1 frm1 = new form1(); frm1.show(); this.hide(); using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.linq;using system.text;using system.windows.forms;using system.data
42、.odbc;using system.media;namespace _143403030608 public partial class form5 : form public double c; public form5() initializecomponent(); private void datagridview1_cellcontentclick(object sender, datagridviewcelleventargs e) private void form5_load(object sender, eventargs e) / todo: 这行代码将数据加载到表“dataset2.student”中。您可以根据需要移动或删除它。 this.studenttableadapter.fill(this.dataset2.student); private void label4_click(object sender, eventargs e) private void textbox3_textchanged(object sender
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石河子大学《智慧水利》2022-2023学年第一学期期末试卷
- 石河子大学《外国文学一》2021-2022学年第一学期期末试卷
- 石河子大学《化工仪表及自动化》2023-2024学年第一学期期末试卷
- 沈阳理工大学《展示空间设计》2022-2023学年第一学期期末试卷
- 沈阳理工大学《汽车理论》2023-2024学年第一学期期末试卷
- 沈阳理工大学《工控组态软件及应用》2022-2023学年第一学期期末试卷
- 管道保温工程合同协议书
- 光明租赁合同
- 合同编司法解释27解读
- 2024肉类采购合同样本
- 2022-家电品牌抖音快手运营、直播带货方案
- 山西省太原市2023届高三上学期期中数学试题
- 《这儿真美》优秀课件
- 《插花艺术》课程大作业
- 电视剧具体预算表
- DB15T 1276-2017 公路波纹钢管(板)桥涵工程质量检验评定标准
- hypertension高血压全英语版-课件
- 中药汤剂煎煮方法-课件
- 高中政治课程标准解读 汇报课件
- 心身疾病-课件
- 物理名词解释
评论
0/150
提交评论