《C超市管理系统课设报告.doc》由会员分享,可在线阅读,更多相关《C超市管理系统课设报告.doc(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1/51沈 阳 航 空 航 天 大 学课课 程程 设设 计计学学号号 _班班级级 _姓姓名名 _指导教师指导教师 _年年月月日日2/51沈 阳 航 空 航 天 大 学沈 阳 航 空 航 天 大 学课 程 设 计 任 务 书课 程 设 计 任 务 书学院:航空航天工程学部专业:飞行器制造工程班级:飞制学院:航空航天工程学部专业:飞行器制造工程班级:飞制 14061406学号:学号:143403030608143403030608 题目:题目:商品库存管理信息系统商品库存管理信息系统一、课程设计时间一、课程设计时间2015-2016 第一学期第 9 周,即 10 月 26 日-10 月 30 日,
2、共计 1 周,20学时。二、课程设计内容二、课程设计内容用 C#语言编写软件完成以下任务:(1)创建 ACCESS 数据库,用于存放商品的基本信息,包括:编号、名称、厂家、库存、进货价、售出价等。如下图:(2)创建与数据库的 ODBC 连接。例如:using System.Data.ODBC;(3)设计用户界面,添加各种控件;(4)完成如下主要功能,如下图:1)用 DataGrid 控件绑定和显示数据;2)输入商品编号或名称进行查询(可以用 SQL 方法,也可以用过滤方法);3)可以增加新的商品信息、修改、删除。3/51三、课程设计要求三、课程设计要求程序质量要求:贯彻面向对象程序设计思想。设
3、计用户图形界面,界面友好,功能明确,操作方便。可以加以其它功能或修饰。代码简洁清晰,并给出必要的注释,以增强程序的可读性。课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。四、指导教师和学生签字四、指导教师和学生签字指导教师:指导教师:_学生签名:学生签名:_五、成绩五、成绩六、教师评语六、教师评语4/51/51目录目录一、需求分析 5二、设计分析 7三、主要界面截图 8四、技术要点 11五、个人总结 16六、参考文献 17七、源程序 17I/510/51一、需求分析一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。该系统
4、是一个较典型的商品库存管理信息系统,使用ACCESS 数据库存放信息;其使用者被假定为某超市的管理员(可查商品具体信息)和售货员(购物系统),系统应该具有安全、稳定、功能齐全的特点。1.安全性分析超市系统管理的数据涉与到超市机密,数据量较大,且是一种基础性数据,能够为超市管理员和售货员提供信息查询,所以要通过设置密码登录、身份验证等手段确保数据不能被除了管理员之外的人随意的查看,删减和修改。2.稳定性分析指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。3.主要功能分析(1)创建 ACCESS 数据库:创建数据库中名为 pyw 的表
5、,用于存放全部商品的编号,名称,厂家,库存,进货价和售出价等1/51信息;(2)数据库的 ODBC 连接:系统可以通过 ODBC 创建与数据库与其中名为 pyw 信息表的连接。(3)设计用户界面:添加各种控件,完成界面的设计、并能在此基础上实现其它功能;(4)数据浏览:通过 DataGrid 控件绑定到名为 pyw 的信息表,并显示全部通讯数据;(5)数据查询(管理员操作):用户输入查询条件,如:输入编号可以进行查询其他信息,系统规则地在控件 textbox 中显示查询结果,且显示的数据尽量全面。(6)信息添加:可以增加新的商品信息,用户输入编号,名称,厂家,库存,进货价和售出价等信息即可完成
6、添加。(7)信息修改:对用户录入的数据能够提供修改功能。(8)信息删除:可指定某条无用的商品信息,删除。二、设计分析二、设计分析为了满足本系统要求,一共设计了一个 ACCESS 数据库中的数据表,以与 VS2010 中的 5 个窗口。其基本功能简述如下:2/511.ACCESS 数 据 库 名 称 为 pyw.mdb;数 据 表 名 称 为student;用于存放全体学生的编号,名称,厂家,库存,进货价和售出价等信息;其中:“编号”字段为“数字”型,字段大小:长整型;“名称”字段为“文本”型,字段大小:255;“厂家”字段为“文本”型,字段大小:255;“库存”字段为“数字”型,字段大小:长整
7、型;“进货价”字段为“货币”型,字段大小:255;“售出价”字段为“货币”型,字段大小:255;2.密码输入窗口,为:Form1;3.设置密码窗口,一共 2 个窗口,为:Form3 和 Form4;主要功能是提供密码输入界面和设置密码界面,完成安全性的身份验证。4.主要功能窗口,有 2 个,管理员所用为:Form2,售货员所用为 Form5;Form2:完成(1)数据库的 ODBC 连接;(2)设计用户界面;(3)数据浏览;(4)数据查询;(5)信息添加;(6)信息修改;(7)信息删除;(8)退出系统;等主要功能。Form5:完成(1)连接商品信息数据库;(2)购物界面设3/51计;(3)单价
8、查询;(4)购买商品信息显示;三、主要界面截图三、主要界面截图图 1ACCESS 数据库中 student 数据表截图图 2 管理员密码登录与售货员免密码登录窗口4/51图 3 设置管理员登录系统密码图 4 管理员系统界面5/51图 5 售货员界面四、技术要点四、技术要点(对本程序贡献较大的知识点(对本程序贡献较大的知识点;数据库数据表数据库数据表、ODBCODBC 连接连接、主要窗体主要窗体、重要算法的设计与实现)重要算法的设计与实现)1 1、数据库的设计、数据库的设计建立了名称为 pyw.mdb 的 ACCESS 数据库,并在其中建立了 student 数据表,用于存放所有商品的编号,名称
9、,厂家,库存,进货价和售出价等信息;其中设计截图如下:6/51图 6 数据表的设计窗口2 2、创建与数据库的、创建与数据库的 ODBCODBC 连接连接创建与数据库的ODBC连接的步骤。(1)首先在“控制面板”、“管理工具”、“ODBC数据源”中添加新的数据源1406,如图:7/51图 7 ODBC 数据源管理器中的 1406 数据源图 8 1406 数据源的配置(2)注册所需的库文件using System.Data.Odbc;(3)连接到 NCRL 数据源string ConnString1=Dsn=1406;uid=;pwd=;OdbcConnection myConn=newOdbcC
10、onnection(ConnString1);3 3、用、用 DataGridDataGrid 控件绑定和显示数据控件绑定和显示数据用DataGrid控件绑定和显示数据是通过dataGridView控件8/51和添加数据源实现,基本步骤通过手动操作实现,如下:(1)添加一个 dataGridView 控件(2)“添加新数据源”“数据库”“数据集”“新建连接”选择“ODBC数据源”选择“数据源 1406”保存“连接字符串”选择“表”。图 9 选择“数据源 1406”9/51图 10 保存“连接字符串”图 11 选择“表”10/51图 10 成功实现 DataGrid 控件绑定(3)在 Form2
11、_Load 中加载数据privatevoid Form1_Load(object sender,EventArgs e)this.inforTableAdapter.Fill(this.dataSet1.student);4 4、输入编号查询、输入编号查询采用过滤方法实现,在 DataGrid 控件绑定和显示的数据基础上进行过滤,基本步骤通过代码实现5 5、增加信息、修改信息。、增加信息、修改信息。采用过滤方法实现,在 DataGrid 控件绑定和显示的数据基础上进行增加、修改、删除,基本步骤通过代码实现,代码见源码6 6、购买商品购买商品查询商品单价与显示购买商品信息,代码见源码7.7.设置
12、密码设置密码增加新窗口进行操作。11/518.8.退出与返回上一步代码:(其中之一)退出与返回上一步代码:(其中之一)Form1 frm1=newForm1();frm1.Show();this.Hide();五、五、个人总结个人总结程序优点:1.管理员登录需密码验证,保证安全;2.售货员登录无需密码,方便;3.管理员每次登陆可更改密码;4.进入系统后可返回登陆界面,而不是直接关闭程序,返回登陆界面后设置的密码依然有效,界面可切换;5.购物系统可通过扫描编号查询单价与所购商品名称,输入购买数量可给出总价;6.考虑到 0 的特殊性,程序给了提醒并做了修改,当密码全为 0 时登录不了系统。程序缺点
13、:1.无法计算显示在 listbook 中各个商品价格总和,需进一步借助计算器计算。2.查询只设计了通过编号查询代码。个人心得:在老师的指导,同学的帮助下,经过反复查阅资料,我终于圆满的完成了课程设计。通过这次课程设计,让我更加深刻了解了课本知识,复习了上学期的知识的同时,添加了许多不知道的新知识,在设计过程中遇到一些或大或小的问题,比如说如何连接两个窗体,数据源的绑定等等,甚至有的数据很难查出,但是这些问题经过这次设计,都一一得以解12/51决,我相信 C#这本书中还有很多我不明白的问题,但是这次的课程设计给我相当的基础知识,为我以后工作打下了严实的基础。虽然这次课程是那么短暂的 1 周时间
14、,我感觉到这些天我的所学胜过我上一学期所学,这次任务是设计一个系统,其实就是一次大的作业,大的挑战,是让我对课本知识的巩固和对基本知识的熟悉和应用,编写程序细节往往很重要,错一点都不行,这使我做事的耐心和仔细程度得以提高。我认为课程设计是培训学生运用课本所学的理论知识来分析解决实际问题的重要教学环节,是对上学期所学知识的复习和巩固。同样,也促使了同学们查找资料的技能,加强了同学间相互探讨,相互学习的能力。因此,我们必须珍惜这次机会,如果时间可以重来,我可能会认真的去学习和研究,也可能会自己独立的完成一个系统,我相信无论是谁看到自己做出的成果时心里一定会很兴奋。此次设计让我明白了一个很深刻的道理
15、:所学知识通过实践才能得到检验,才会记得更牢固,学到的东西才会更多。通过课程设计使我们了解到一些实际与理论之间的差异,为以后的工作打下了坚实的基础,而其还可以培养和熟练使用资料,运用工具书的能力,把我们所学的课本知识与实践结合起来,起到温故而知新的作用。这一周的设计让我感触很13/51深。我收获很多、学会很多、比以往更有耐心很多。感谢学校与老师给我们这次课程设计的机会,最真挚的感谢我们的辅导老师,在设计过程中,老师精心的辅导和不厌其烦地的态度才使得我们以顺利的完成这次设计任务,任务的顺利完成为我以后学习计算机增强了信心,我只想说,这次课程设计完美!六、六、参考文献参考文献1.吴邵兴 C#项目开
16、发案例导航.;电子工业,20122.徐新华 数据库与 MIDAS 编程技术 清华大学,20003.baidu七、七、源程序源程序using System;using System.Collections.Generic;using System.Linq;using System.Windows.Forms;14/51namespace _143403030608static class Program/应用程序的主入口点。/STAThreadstatic void Main()Application.EnableVisualStyles();Application.SetCompatible
17、TextRenderingDefault(false);Application.Run(new Form1();using System;using System.Collections.Generic;15/51using SystemponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Media;namespace _143403030608public partial class Form
18、1:Formint m=Form4.o;public Form1()InitializeComponent();privatevoidbutton1_Click(objectsender,16/51EventArgs e)if(textBox1.Text=)SoundPlayermsc=newSoundPlayer(C:UsersdellDesktop裴彦文14340303060814340+.wav);msc.Play();MessageBox.Show(密码错误,请重新输入!);elseint n=int.Parse(textBox1.Text);if(n=m&n0)17/51SoundP
19、layermsc=newSoundPlayer(C:UsersdellDesktop裴彦文1434030306081434030+.wav);msc.Play();Form2 frm1=new Form2();frm1.Show();this.Hide();elseSoundPlayermsc=newSoundPlayer(C:UsersdellDesktop裴彦文14340303060814340+.wav);msc.Play();MessageBox.Show(密码错误,请重新输入!);18/51privatevoidbutton2_Click(objectsender,EventArgs
20、 e)this.Close();privatevoidbutton3_Click(objectsender,EventArgs e)Form3 frm1=new Form3();frm1.Show();this.Hide();19/51privatevoidtextBox1_TextChanged(objectsender,EventArgs e)privatevoidbutton4_Click(objectsender,EventArgs e)SoundPlayermsc=newSoundPlayer(C:UsersdellDesktop裴彦文14340303060814340303+.wa
21、v);msc.Play();Form5 frm1=new Form5();frm1.Show();this.Hide();20/51privatevoidForm1_Load(objectsender,EventArgs e)privatevoidbutton5_Click(objectsender,EventArgs e)SoundPlayermsc=newSoundPlayer(C:UsersdellDesktop裴彦文143403030608143+.wav);msc.Play();21/51using System;using System.Collections.Generic;us
22、ing SystemponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.Odbc;namespace _143403030608public partial class Form2:Formpublic Form2()InitializeComponent();22/51privatevoidForm2_Load(objectsender,EventArgs e)/TODO:这 行 代
23、 码 将 数 据 加 载 到 表“dataSet1.student”中。您可以根据需要移动或删除它。this.studentTableAdapter.Fill(this.dataSet1.student);privatevoidbutton4_Click(objectsender,EventArgs e)stringConnString1=Dsn=1406;uid=;pwd=;OdbcConnectionmyConn=newOdbcConnection(ConnString1);try23/51myConn.Open();/打开连接MessageBox.Show(继续点击确认添加!);Odbc
24、CommandmyCommand=myConn.CreateCommand();/创建命令对象myCommandstring 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;myCommandmandText=INSERTINTO student(编号,名称,厂家,库存,进货价,售出价)V
25、ALUES(+ld_1+,+ls_2+,+ls_3+,+ls_4+,+ls_5+,+ls_6+);/INSERT oki!myCommand.Connection=myConn;intrtn=myCommand.ExecuteNonQuery();/执行命令返回结24/51果指派给 DataReader 对象 myReaderMessageBox.Show(rtn.ToString()+商品信息被添加);this.studentTableAdapter.Fill(this.dataSet1.student);catch(Exception e1)MessageBox.Show(e1.Messa
26、ge);finallymyConn.Close();/关闭数据库连接privatevoidbutton2_Click(objectsender,EventArgs e)25/51stringConnString1=Dsn=1406;uid=;pwd=;OdbcConnectionmyConn=newOdbcConnection(ConnString1);trymyConn.Open();/打开连接MessageBox.Show(查询!);OdbcCommandmyCommand=myConn.CreateCommand();/创建命令对象myCommandstring ld_1=this.te
27、xtBox1.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;myCommandmandText=select*from student where 编号=+ld_1+;/select26/51number 类型+string+oki!myCommand.Connection=myConn;OdbcDataReaderrd=m
28、yCommand.ExecuteReader();rd.Read();textBox2.Text=+rd名称;textBox3.Text=+rd厂家;textBox4.Text=+rd库存;textBox5.Text=+rd进货价;textBox6.Text=+rd售出价;rd.Close();catch(Exception e1)MessageBox.Show(e1.Message);finallymyConn.Close();/关闭数据库连接27/51privatevoidbutton1_Click(objectsender,EventArgs e)Form1 frm1=new Form1
29、();frm1.Show();this.Hide();privatevoidbutton3_Click(objectsender,EventArgs e)stringConnString1=Dsn=1406;uid=;pwd=;OdbcConnectionmyConn=newOdbcConnection(ConnString1);try28/51myConn.Open();/打开连接MessageBox.Show(删除);OdbcCommandmyCommand=myConn.CreateCommand();/创建命令对象myCommandstring ld_1=this.textBox1.T
30、ext;string ld_2=this.textBox2.Text;myCommandmandText=DELETE FROM student WHERE 编 号=+ld_1+;/DELETE oki!myCommand.Connection=myConn;intrtn=myCommand.ExecuteNonQuery();/执行命令返回结果指派给 DataReader 对象 myReader/objectrtn=myCommand.ExecuteScalar();/ExecuteScalar统计,查询,只读取首行首列MessageBox.Show(rtn.ToString()+商29/5
31、1品信息被删除);this.studentTableAdapter.Fill(this.dataSet1.student);catch(Exception e1)MessageBox.Show(e1.Message);finallymyConn.Close();/关闭数据库连接privatevoidbutton5_Click(objectsender,EventArgs e)stringConnString1=Dsn=1406;uid=;pwd=;30/51OdbcConnectionmyConn=newOdbcConnection(ConnString1);trymyConn.Open();
32、/打开连接MessageBox.Show(修改);OdbcCommandmyCommand=myConn.CreateCommand();/创建命令对象myCommandstring 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;myCommandmandText=UPDATE stud
33、ent SET 名称=+ls_2+WHERE 编号=+ld_1+;/UPDATE oki!myCommand.Connection=myConn;31/51intrtn=myCommand.ExecuteNonQuery();/执行命令返回结果指派给 DataReader 对象 myReader/objectrtn=myCommand.ExecuteScalar();/ExecuteScalar统计,查询,只读取首行首列MessageBox.Show(rtn.ToString()+商品信息被修改);this.studentTableAdapter.Fill(this.dataSet1.stud
34、ent);catch(Exception e1)MessageBox.Show(e1.Message);finallymyConn.Close();/关闭数据库连接32/51using System;using System.Collections.Generic;using SystemponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace _143403030608public partial cla
35、ss Form3:Formpublic Form3()InitializeComponent();33/51privatevoidbutton1_Click(objectsender,EventArgs e)if(textBox1.Text=000000)button2.Enabled=true;label3.Text=密码正确,请点击下一步继续;label3.ForeColor=Color.Blue;else label3.Text=密码错误,请查正后输入!;label3.ForeColor=Color.Red;privatevoidbutton2_Click(objectsender,Ev
36、entArgs e)34/51Form4 frm1=new Form4();frm1.Show();this.Hide();privatevoidbutton3_Click(objectsender,EventArgs e)Form1 frm1=new Form1();frm1.Show();this.Hide();using System;using System.Collections.Generic;using SystemponentModel;using System.Data;using System.Drawing;35/51using System.Linq;using Sys
37、tem.Text;using System.Windows.Forms;namespace _143403030608public partial class Form4:Formpublic static int o;public Form4()InitializeComponent();privatevoidlabel1_Click(objectsender,EventArgs e)36/51privatevoidbutton1_Click(objectsender,EventArgs e)int a,b;a=int.Parse(textBox1.Text);b=int.Parse(tex
38、tBox2.Text);if(a=b)label3.Text=设置密码成功;label3.ForeColor=Color.Blue;o=a;elselabel3.Text=两次输入不相等,请重新输入!;label3.ForeColor=Color.Red;37/51privatevoidbutton2_Click(objectsender,EventArgs e)Form1 frm1=new Form1();frm1.Show();this.Hide();using System;using System.Collections.Generic;using SystemponentModel;
39、using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;38/51using System.Data.Odbc;using System.Media;namespace _143403030608public partial class Form5:Formpublic double c;public Form5()InitializeComponent();privatevoiddataGridView1_CellContentClick(obj
40、ectsender,DataGridViewCellEventArgs e)39/51privatevoidForm5_Load(objectsender,EventArgs e)/TODO:这 行 代 码 将 数 据 加 载 到 表“dataSet2.student”中。您可以根据需要移动或删除它。this.studentTableAdapter.Fill(this.dataSet2.student);privatevoidlabel4_Click(objectsender,EventArgs e)privatevoidtextBox3_TextChanged(object40/51send
41、er,EventArgs e)privatevoidbutton1_Click(objectsender,EventArgs e)stringConnString1=Dsn=1406;uid=;pwd=;OdbcConnectionmyConn=newOdbcConnection(ConnString1);trymyConn.Open();/打开连接MessageBox.Show(查询成功!);OdbcCommandmyCommand=myConn.CreateCommand();/创建命令对象myCommand41/51string ld_1=this.textBox1.Text;strin
42、g ls_2=this.textBox2.Text;myCommandmandText=select*from student where 编号=+ld_1+;/selectnumber 类型+string+oki!myCommand.Connection=myConn;OdbcDataReaderrd=myCommand.ExecuteReader();rd.Read();textBox3.Text=+rd售出价;string z;z=所购商品是:+rd名称.ToString();listBox1.Items.Add(z);rd.Close();catch(Exception e1)42/5
43、1MessageBox.Show(e1.Message);finallymyConn.Close();/关闭数据库连接privatevoidbutton2_Click(objectsender,EventArgs e)trydoublel=double.Parse(textBox2.Text);doublek=double.Parse(textBox3.Text);c=k*l;string y;43/51y=本件商品应付+c.ToString();listBox1.Items.Add(y);catch(Exception)privatevoidbutton3_Click(objectsender,EventArgs e)Form1 frm1=new Form1();frm1.Show();this.Hide();privatevoidbutton4_Click(objectsender,EventArgs e)44/51this.Close();privatevoidbutton4_Click_1(objectsender,EventArgs e)SoundPlayermsc=newSoundPlayer(C:UsersdellDesktop裴彦文1434030306081434+.wav);msc.Play();