手机销售系统课程设计论文.docx
《手机销售系统课程设计论文.docx》由会员分享,可在线阅读,更多相关《手机销售系统课程设计论文.docx(17页珍藏版)》请在冰豆网上搜索。
手机销售系统课程设计论文
目录
第1章前言1
第2章可行性分析2
第3章需求分析4
第4章概要设计5
第5章数据库设计6
第6章界面设计9
总结与体会12
参考文献:
13
附录:
部分源程序代码14
第1章前言
学生缴费管理系统是每一个学校财务管理机构管理学生财务缴纳及缴纳情况的不可缺少的一个管理信息系统,它的内容对于学校财务管理机构的管理者来说是至关重要的,所以学费管理系统应该能够为每一个学校财务管理机构的管理者提供充足的信息和快捷的查询手段,大大的方便学费管理机构的管理者的合理管理。
学生缴费系统作为计算机应用的一部分,使用计算机对学校财务出入及缴纳情况进行管理,具有着手工管理所无法比拟的优点,如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学校财务及缴纳情况管理的效率,也是学校财务管理机构帐收费的科学化、正规化管理,与先进科学技术接轨的重要条件。
本系统是《学生缴费系统》,它主要完成对学生信息管理,财务部门以及专管员信息的管理工作,其中包括大量的信息输入,修改,查询和打印。
本系统开发的目的是为了降低人工管理信息的复杂程度和工作量同时也为学校减少了人员的开支,每一个员工可以通过此系统来管理其业务信息,使学生学费的收缴实现信息化。
学校财务学生缴费管理系统,其开发的主要目的是通过计算机管理和监督各缴费学生实际缴费情况,提高社会学校财务缴费情况处理的准确程度,提高处理效率。
它主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性强、完整性好、数据安全性高的优秀数据库。
而对于后者则要求应用程序功能完备,操作界面友好,易使用等特点。
本小组开发的《学生缴费系统》主要任务是:
1.完成对学生信息的输入,管理和查询;
2.完成学生性质和企学生缴费情况的输入管理,查询和统计;
3.完成对学生所属系别的统计和查询;
4.完成对学生所属的专业进行查询;最后把查询结果打印出来。
第2章可行性分析
1.技术可行性:
由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。
因此,比较适合于采用数据库管理。
且学校用于学生管理的微机都是PIII以上的机器,在存储量、速度方面都能满足数据库运行的要求。
在技术难度方面完全可以实现。
本系统的设计是在WindowsXP中文版操作系统环境下,使用VB.NET中文版开发成功的。
ACCESS是数据库中的重要支持技术,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统选用的数据库语言介绍如下:
VB.NET是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。
它简单易学、效率高,且功能强大。
在VB.NET环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具。
ACCESS数据库是MICROSOFT推出的OFFICE系列办公室自动化软件中的用于数据库管理系统.它是一个中,小型的数据库管理系统,提供了与其它数据库管理软件包的良好接口,能方便识别DBASE,FOXBASE,FOXPRO,PARADOX等数据库管理系统生成的数据库文件.它的最大优点就是方便易用,操作方便、使用简单。
2.经济可行性:
对于一个学校来说,需要这样一个软件,为他们提供一个更有效率的工作,这样更有利于他们的发展。
随着信息时代的来临,我们的各项工作都要讲求效率,学生缴费更要准确无误,这就为我的软件提供了使用群体。
本系统大约有一千余行代码,开发周期历时半个月,成本费用在一万五千左右,而学校每雇佣一个员工一年的费用在一万元左右,也就是说软件的成本费用与一个员工一年的工资相当,软件的生命周期是三年到五年,并且软件的可操作性强对操作员做简单的培训即可,无须投入培训费用。
是一个投入资金少,收益快,节省人力资源的项目。
3.操作可行性:
本系统可以运行在Windows95/98/2000/XP等操作系统上,一般系统都可以运行而且安装也非常的简单,一看即懂,方便大家使用,即使不具备一定电脑知识的人也可以熟练掌握.软件的集成度高,数据库简单只要安装了Microsoftoffice2000即可运行,系统是基于人性化设计的,界面友好,无须专业人员即可操作。
第3章需求分析
1.需求分析任务:
⑴由于操作人员的计算机知识普遍不高,要求有良好的人机界面;
⑵由于该系统的使用对象多,要求有较好的权限管理;
⑶原始数据修改简单方便,支持多条件修改
⑷方便的数据查询,支持多条件查询;
⑸在相应的权限下,删除数据方便简单,数据稳定性好;
⑹数据计算自动完成,尽量减少人工干预;
2.数据字典:
名字:
营业员信息
别名:
描述:
每个营业员的详细信息。
定义:
营业员信息=营业员编号+营业员姓名+电话+备注。
位置:
存储到数据库中
名字:
手机信息
别名:
描述:
记录每部手机的信息
定义:
手机信息=手机编号+销售商编号+销售商名称+地址。
位置:
存储到数据库中
第4章概要设计
手机销售管理系统是每一个公司管理机构管理手机情况的不可缺少的一个管理信息系统,它的内容对于公司手机销售管理机构的管理者来说是至关重要的,所以手机销售管理系统应该能够为每一个公司管理机构的管理者提供充足的信息和快捷的查询手段,大大的方便销售管理机构的管理者的合理管理。
公司手机销售管理系统,其开发的主要目的是通过计算机管理和监督各种手机销售情况,提高销售情况处理的准确程度,提高处理效率。
它主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性强、完整性好、数据安全性高的优秀数据库。
此外还需要配置一些管理人员,人员的数目是根据管理员的数量确定的。
管理人员在对应的手机销售情况进行整理工作。
而主要负责销售管理这一模块,下面基于详细介绍:
手机销售系统,登录,手机销售查询,添加销售信息,退出五个子模块。
根据模块化的思想,把系统分为五大模块,然后对每个模块具体分析.这样条
理更清晰.开发制作更容易.具体系统功能如下:
手机销售系统
登录
手机销售查询
添加销售信息
退出
图4.1系统功能
第5章数据库设计
1.概念设计
✧能真实,充分低反映显示世界,包括事物和事物之间的联系,能满足拥护对数据的处理要求.是对显示世界的一个真实模型.
✧易于理解,从而可以用他和不熟悉的计算机拥护交换意见,拥护的积极参与是数据库设计成功的关键.
✧易与修改,当应用环境和应用要求改变时,容易对概念模型修改和扩充.
✧易于想关系,网状,层次等各种模型转换.
E-R图设计:
2.逻辑设计
逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构.
进货情况表(手机编号,销售商编号,销售商名称,地址、价格、进货量)
销售情况表(手机编号,营业编号,销售时间,金额,数量)
各个销售员销售情况表表(营业员编号,销售金额)
3.物理设计
物理结构设计依赖与给顶的计算机系统,为一个给给定的逻辑数据模型选取最适合应用要求的物理结构过程,存取方法是快速存取数据库中数据的技术.
不同数据库产品所提供的物理环境,存取方法和存取结构有很大差别,能供设计人员使用的设计变量,参数范围也很不相同,因此没有通用的物理设计方法可遵循,只能尽量设计优化物理设计结构,使得在数据库上运行的各种事务响应时间小,存储空间利用率高,事务吞吐率大,为此首先要对运行的事务进行详细分析,获得选择物理数据库设计所需要的参数然后充分了解系统提供的存取方法和存储结构.
存取方法是快速存取数据库中数据的技术.数据库管理系统一般都提供多种存取方法.常用的存取方法如下:
1.索引存取方法.
2.聚簇存取方法.
3.HSAH存取方法
进货情况
各个销售员销售情况表
营业员信息
第6章界面设计
一.程序流程图:
1.主界面以及部分说明:
登录系统界面:
……………
此页面可以允许任何人进入登录界面,点击“登录”即可进入。
此界面需要输入用户名,密码,然后点击“确定”即可进入菜单界面。
添加销售信息界面
查询子系统界面:
……………
本查询系统有两个优点:
一是查询结果显示应用了一个控件,可以方便的查看数据库
中的数据,一是可以将查询的结果导入到excel表格中,这样既方便查看结果,又可
以把查看的结果打印出来。
为了能够设计有效软件,必须对其功能进行有效测试
基于软件的正确性、清晰性、规范性、一致性、高效性进行单元测试,而单元测试是针对软件设计的最小单位——程序模块,进行正确性检验的测试工作,其目的在于发现每个程序模块内部可能存在的差错。
任何产品都有两种测试方法:
如果已经知道了产品因该具有的功能,可以通过测试来检验是否每个功能都能正常使用;如果知道了产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规定的说明正常进行.前一种方法叫黑盒测试,后一种方法叫白盒测试.
一般软件系统都通常由若干个子系统组成的,每个子系统又由许多模块组成的,因此,软件系统的测试过程基本上有以下几个步骤组成的:
1.模块测试;2.子系统测试;3.系统测试;4.验收测试;5.平行运行.
采用边界值分析法设计合理的输入条件与不合理的输入条件,然后采用错误推测法,列举出程序中所有可能的错误和容易发生错误的特殊情况,根据它们选择测试用例,在编码、单元测试阶段可以发现很多常见的错误和疑似错误,对于这些错误应该作重点测试,并设计相应的测试用例。
对本系统的测试采用了黑盒测试和白盒测试,黑盒测试测试了各个模块的功能是否可
以实现,通过测试,系统的各个模块的功能都能按照设计的要求实现,例如:
登陆模块可以正常运行,当输入登陆名和登陆密码的时候登陆模块会验证登陆的用户名和密码是否正确,以确定该用户是否可以应用此系统。
白盒测试是根据模块内部以及模块间的关系验证在各种有可能发生的情况下模块是否能按照规定的说明正常进行。
总结与体会
通过做课程设计,我确实学到了相当多的东西。
眼高手低是同学们的通病,有些事情看起来很同意,但做起来并不是如此。
在做本次数据库课程设计之前,我已经将课本上的东西熟练掌握,自认为做一个很简单的课程设计应该很容易,然而真正操作起来却遇到了很多的麻烦。
不过对数据库还是有一定的了解:
插入,更新,删除,查询:
SQL聚合函数,MAX(最大值)、MIN(最小值)、AVG(平均值)、SUM(和)、COUNT(数量)。
数据排序,ORDERBY子句位于SELECT语句的末尾,它允许指定按照一个列或者多个列进行排序,还可以指定排序方式是升序(从小到大排列,ASC)还是降序(从大到小排列,DESC)。
通配符过滤,单字符匹配的通配符为半角下划线“_”,多字符匹配的通配符为半角百分号“%”,它匹配任意次数(零或多个)出现的任意字符。
空值处理,数据库中,一个列如果没有指定值,那么值就为null,这个null和C#中的null,数据库中的null表示“不知道”,而不是表示没有。
SQL中使用isnull、isnotnull来进行空值判断。
多值匹配,SELECTFAge,FNumber,FNameFROMT_EmployeeWHEREFAgeIN(23,25,28)。
数据分组,GROUPBY子句必须放到WHERE语句的之后,没有出现在GROUPBY子句中的列是不能放到SELECT语句后的列名列表中的(聚合函数中除外)。
Having语句,在Where中不能使用聚合函数,必须使用Having,Having要位于GroupBy之后,注意Having中不能使用未参与分组的列,Having不能替代where。
作用不一样,Having是对组进行过滤。
限制结果集行数,也就是top关键字,SQLServer2005后增加了Row_Number函数简化实现,通常用于分页。
去掉数据重复,DISTINCT是对整个结果集进行数据重复处理的,而不是针对每一个列。
(忘了)
联合结果集,union关键字,基本的原则:
每个结果集必须有相同的列数;每个结果集的列必须类型相容。
union关键字合并两个查询结果集,并且将其中完全重复的数据行合并为一条。
union关键字因为要进行重复值扫描,所以效率低,因此如果不是确定要合并重复行,那么就用unionall关键字。
但是,在开始做课程设计时对整个模块的把握不够好,以至于浪费了好多时间而没能按想象中的顺利完成。
其次,在编写各个模块的程序代码时,真正感觉到了难度相当大,每次编写出来的代码都需要经过好几次修改才能顺利运行,而且在编写代码时常常会遇到一些很难解决的问题。
但是我总相信一句话“只要坚持,一千次失败过后,被会有一次闪亮的成功,凡事不能一蹴而就,对待学问、对待科研更是如此”,在做完这次课程设计之后,我也体会到了一种成功的喜悦。
同时这次课程设计也让我查到了许多在数据库学习中的漏洞,我也通过这次的实践机会完善了自己的知识,起到了很好的查缺补漏的效果。
本人签字:
参考文献:
[1]郑阿奇,彭作民主编.VisualBasic.NET程序设计教程.机械工业出版社,2006
[2]戴军湘,文龙编著.VisualBasic.NET程序设计基础教程.清华大学出版社
[3]石志国编著.VisualBasic.NET实用案例教程.清华大学出版社出版,2003
[4]林联彬,李旭,顾青主编.VisualBasic.NET程序设计.中国铁道出版社,2004
[5]李万红主编.VisualBasic.NET程序设计入门.清华大学出版社,2002
[6]曹祖圣主编.VisualBasic.NET学习范本.科学出版社,2003
[7]张玉亭,杨涛泽主编.VisualBasic.NET编程.中国电力出版社,2005
[8]马海军,杨继萍译.VisualBasic.NET程序设计高级教程.清华大学出版社
[9]李建中译.VisualBasic.NET语言描述.华中科技大学出版社,2004
[10]杨丽主编.VisualBasic.NET程序设计教程.中国水利水电出版社
附录:
部分源程序代码
use手机销售
(
手机编号char(6)primarykey,
手机品牌char(30),
手机型号char(30),
手机价格money,
库存量int
)
createtable营业员
(
营业员编号char(6)primarykey,
营业员姓名char(30),
电话char(12),
备注text
)
createtable销售
(
手机编号char(6),
营业员编号char(30),
销售时间datetime,
金额money,
数量int,
primarykey
(
手机编号,
营业员编号,
销售时间
))
createtable进货
(
手机编号char(6),
销售商编号char(6),
销售商名称char(30),
地址char(30),
价格money,
进货量int,
primarykey
(
手机编号,
销售商编号
))
insert手机信息
values('0305','联想','联想Y550',6800,5)
insert手机信息
values('0814','Dell','Dellk701',5500,4)
insert手机信息
values('0703','清华同方','风韵7401',4800,3)
insert营业员
values('001','阿猫阿狗','6026687',NULL)
insert营业员
values('002','小王八蛋','6026688',NULL)
insert销售
values('0814','001','2010-04-05',11000,2)
insert销售
values('0305','002','2010-04-04',6800,1)
insert进货
values('0814','1000','Dell集团','上海',10000,2)
insert进货
values('0305','1001','联想集团','北京',18900,3)