《c#超市商品库存管理信息系统任务书大学论文.doc》由会员分享,可在线阅读,更多相关《c#超市商品库存管理信息系统任务书大学论文.doc(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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) 可以增加新的商品信息、修改、删除。三、课程设计要求程序质量要求: 贯彻面向对象程序设计思想。 设计用户图形界面,界面友好,功能明确,操作方便。 可以加以其它功能或修饰。 代码简洁清晰,并给出必要的注释,以增强程序的可读性。课程设计说明书: 课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签名:_五、成绩六、教师评语沈阳航空航天大学设计用纸目录一、需求分析5二、设计分析7三、主要界面截图8四、技术要点
3、11五、个人总结16六、参考文献17七、源程序1735一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。该系统是一个较典型的商品库存管理信息系统,使用ACCESS数据库存放信息;其使用者被假定为某超市的管理员(可查商品具体信息)和售货员(购物系统),系统应该具有安全、稳定、功能齐全的特点。1. 安全性分析超市系统管理的数据涉及到超市机密,数据量较大,且是一种基础性数据,能够为超市管理员和售货员提供信息查询,所以要通过设置密码登录、身份验证等手段确保数据不能被除了管理员之外的人随意的查看,删减和修改。2. 稳定性分析指系统比较健壮,只要是用户的合理操作,系统都应给出
4、合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。3. 主要功能分析(1)创建ACCESS数据库:创建数据库中名为pyw的表,用于存放全部商品的编号,名称,厂家,库存,进货价和售出价等信息;(2)数据库的ODBC连接:系统可以通过ODBC创建与数据库及其中名为pyw信息表的连接。(3)设计用户界面:添加各种控件,完成界面的设计、并能在此基础上实现其它功能;(4)数据浏览:通过DataGrid控件绑定到名为pyw的信息表,并显示全部通讯数据;(5)数据查询(管理员操作):用户输入查询条件,如:输入编号可以进行查询其他信息,系统规则地在控件textbox中显示查询结果,且显示的数据尽量
5、全面。(6)信息添加:可以增加新的商品信息,用户输入编号,名称,厂家,库存,进货价和售出价等信息即可完成添加。(7)信息修改:对用户录入的数据能够提供修改功能。(8)信息删除:可指定某条无用的商品信息,删除。 二、设计分析为了满足本系统要求,一共设计了一个ACCESS数据库中的数据表,以及VS2010中的5个窗口。其基本功能简述如下:1. ACCESS数据库名称为pyw.mdb;数据表名称为student;用于存放全体学生的编号,名称,厂家,库存,进货价和售出价等信息;其中:“编号”字段为“数字”型,字段大小:长整型;“名称”字段为“文本”型,字段大小:255;“厂家”字段为“文本”型,字段大
6、小:255;“库存”字段为“数字”型,字段大小:长整型;“进货价”字段为“货币”型,字段大小:255;“售出价”字段为“货币”型,字段大小:255;2. 密码输入窗口,为:Form1;3. 设置密码窗口,一共2个窗口,为:Form3和Form4;主要功能是提供密码输入界面和设置密码界面,完成安全性的身份验证。4. 主要功能窗口,有2个,管理员所用为:Form2,售货员所用为Form5 ;Form2:完成(1)数据库的ODBC连接;(2)设计用户界面;(3)数据浏览;(4)数据查询;(5)信息添加;(6)信息修改;(7)信息删除;(8)退出系统;等主要功能。Form5:完成(1)连接商品信息数据
7、库;(2)购物界面设计;(3)单价查询;(4)购买商品信息显示;三、主要界面截图图1 ACCESS数据库中student数据表截图图2 管理员密码登录及售货员免密码登录窗口 图3 设置管理员登录系统密码 图4 管理员系统界面 图5 售货员界面四、技术要点(对本程序贡献较大的知识点;数据库数据表、ODBC连接、主要窗体、重要算法的设计与实现)1、数据库的设计建立了名称为pyw.mdb的ACCESS数据库,并在其中建立了student数据表,用于存放所有商品的编号,名称,厂家,库存,进货价和售出价等信息;其中设计截图如下:图6 数据表的设计窗口2、创建与数据库的ODBC连接创建与数据库的ODBC连
8、接的步骤。(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控件绑定和显示数据是通过dataGridView控件和添加数据源实现,基本步骤通过手动
9、操作实现,如下:(1) 添加一个dataGridView控件(2)“添加新数据源”“数据库”“数据集”“新建连接”选择“ODBC数据源”选择“数据源1406”保存“连接字符串”选择“表”。图9 选择“数据源1406”图10 保存“连接字符串”图11 选择“表”图10 成功实现DataGrid控件绑定(3)在Form2_Load中加载数据private void Form1_Load(object sender, EventArgs e) this.inforTableAdapter.Fill(this.dataSet1.student); 4、输入编号查询采用过滤方法实现,在DataGrid控
10、件绑定和显示的数据基础上进行过滤,基本步骤通过代码实现5、增加信息、修改信息。采用过滤方法实现,在DataGrid控件绑定和显示的数据基础上进行增加、修改、删除,基本步骤通过代码实现,代码见源码6、 购买商品 查询商品单价及显示购买商品信息,代码见源码7. 设置密码 增加新窗口进行操作。 8.退出及返回上一步代码:(其中之一) Form1 frm1 = new Form1(); frm1.Show(); this.Hide(); 五、 个人总结程序优点:1.管理员登录需密码验证,保证安全;2.售货员登录无需密码,方便;3.管理员每次登陆可更改密码;4.进入系统后可返回登陆界面,而不是直接关闭程
11、序,返回登陆界面后设置的密码依然有效,界面可切换;5.购物系统可通过扫描编号查询单价及所购商品名称,输入购买数量可给出总价;6.考虑到0的特殊性,程序给了提醒并做了修改,当密码全为0时登录不了系统。程序缺点:1.无法计算显示在listbook中各个商品价格总和,需进一步借助计算器计算。2.查询只设计了通过编号查询代码。个人心得:在老师的指导,同学的帮助下,经过反复查阅资料,我终于圆满的完成了课程设计。通过这次课程设计,让我更加深刻了解了课本知识,复习了上学期的知识的同时,添加了许多不知道的新知识,在设计过程中遇到一些或大或小的问题,比如说如何连接两个窗体,数据源的绑定等等,甚至有的数据很难查出
12、,但是这些问题经过这次设计,都一一得以解决,我相信C#这本书中还有很多我不明白的问题,但是这次的课程设计给我相当的基础知识,为我以后工作打下了严实的基础。虽然这次课程是那么短暂的1周时间,我感觉到这些天我的所学胜过我上一学期所学,这次任务是设计一个系统,其实就是一次大的作业,大的挑战,是让我对课本知识的巩固和对基本知识的熟悉和应用,编写程序细节往往很重要,错一点都不行,这使我做事的耐心和仔细程度得以提高。我认为课程设计是培训学生运用课本所学的理论知识来分析解决实际问题的重要教学环节,是对上学期所学知识的复习和巩固。同样,也促使了同学们查找资料的技能,加强了同学间相互探讨,相互学习的能力。因此,
13、我们必须珍惜这次机会,如果时间可以重来,我可能会认真的去学习和研究,也可能会自己独立的完成一个系统,我相信无论是谁看到自己做出的成果时心里一定会很兴奋。此次设计让我明白了一个很深刻的道理:所学知识通过实践才能得到检验,才会记得更牢固,学到的东西才会更多。 通过课程设计使我们了解到一些实际与理论之间的差异,为以后的工作打下了坚实的基础,而其还可以培养和熟练使用资料,运用工具书的能力,把我们所学的课本知识与实践结合起来,起到温故而知新的作用。这一周的设计让我感触很深。我收获很多、学会很多、比以往更有耐心很多。感谢学校及老师给我们这次课程设计的机会,最真挚的感谢我们的辅导老师 ,在设计过程中,老师精
14、心的辅导和不厌其烦地的态度才使得我们以顺利的完成这次设计任务,任务的顺利完成为我以后学习计算机增强了信心,我只想说,这次课程设计完美!六、 参考文献1. 吴邵兴 C#项目开发案例导航.北京; 电子工业出版社,20122. 徐新华 数据库与MIDAS编程技术 清华大学出版社,20003. 七、 源程序using System;using System.Collections.Generic;using System.Linq;using System.Windows.Forms;namespace _143403030608 static class Program / / 应用程序的主入口点。
15、 / STAThread static void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1(); using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;us
16、ing 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, EventArgs e) if (textBox1.Text = ) SoundPlayer msc = new SoundPlayer(C:UsersdellDesktop裴彦文14340303060
17、814340 + .wav); msc.Play(); MessageBox.Show( 密码错误,请重新输入!); else int n = int.Parse(textBox1.Text); if (n = m&n0) SoundPlayer msc = new SoundPlayer(C:UsersdellDesktop裴彦文1434030306081434030 + .wav); msc.Play(); Form2 frm1 = new Form2(); frm1.Show(); this.Hide(); else SoundPlayer msc = new SoundPlayer(C
18、:UsersdellDesktop裴彦文14340303060814340 + .wav); msc.Play(); MessageBox.Show(密码错误,请重新输入!); 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(o
19、bject sender, EventArgs e) private void button4_Click(object sender, EventArgs 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 butt
20、on5_Click(object sender, EventArgs e) SoundPlayer msc = 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.
21、Forms;using System.Data.Odbc;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 bu
22、tton4_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(); /创建命令对象myCommand string ld_1 = this.textBox1.Text; string l
23、s_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 = INSERT INTO student (编号,名称,厂家,库存,进货价,售出价) VALUES ( + ld_1 + , + ls_2 + , + ls_3 + , + ls_4 + , + ls_5 + , + ls_6 +
24、 ); /INSERT oki! myCommand.Connection = myConn; int rtn = myCommand.ExecuteNonQuery(); /执行命令返回结果指派给DataReader对象myReader MessageBox.Show(rtn.ToString() + 商品信息被添加); this.studentTableAdapter.Fill(this.dataSet1.student); catch (Exception e1) MessageBox.Show(e1.Message); finally myConn.Close(); /关闭数据库连接
25、private void button2_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(); /创建命令对象myCommand string ld_1 = this.textBox1.Text;
26、 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 = select * from student where 编号 = + ld_1 + ; /select number类型 +string+ oki! myCommand.Connection = myConn;
27、 OdbcDataReader rd = myCommand.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); finally myConn.Close(); /关闭数据库连接 private void button1_Cli
28、ck(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.Show( 删除 ); OdbcCommand myCo
29、mmand = 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 = myCommand.ExecuteNonQuery(); /执行命令返回结果指派给DataReader对象myReader /
30、object rtn = myCommand.ExecuteScalar(); /ExecuteScalar 统计,查询,只读取首行首列 MessageBox.Show(rtn.ToString() + 商品信息被删除); this.studentTableAdapter.Fill(this.dataSet1.student); catch (Exception e1) MessageBox.Show(e1.Message); finally myConn.Close(); /关闭数据库连接 private void button5_Click(object sender, EventArgs
31、 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 = this.textBox2.Text; string ls_3 = thi
32、s.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 + WHERE 编号 = + ld_1 + ; /UPDATE oki! myCommand.Connection = myConn; int rtn = myCommand.ExecuteNonQuery(); /执行命令返回结果指派给DataRea
33、der对象myReader /object rtn = myCommand.ExecuteScalar(); /ExecuteScalar 统计,查询,只读取首行首列 MessageBox.Show(rtn.ToString() + 商品信息被修改); this.studentTableAdapter.Fill(this.dataSet1.student); catch (Exception e1) MessageBox.Show(e1.Message); finally myConn.Close(); /关闭数据库连接 using System;using System.Collection
34、s.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 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 = 密码错误,请查正后输入!; label3.ForeColor = Color.Red; private void button2_Click(object sender, E