c++校园超市商品信息管理系统课程设计说明书(含源代码)_第1页
c++校园超市商品信息管理系统课程设计说明书(含源代码)_第2页
c++校园超市商品信息管理系统课程设计说明书(含源代码)_第3页
c++校园超市商品信息管理系统课程设计说明书(含源代码)_第4页
c++校园超市商品信息管理系统课程设计说明书(含源代码)_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机科学与技术教研室课程设计说明书(2 0 15-2 0 16学年第二学期)课程名称程序设计基础课程设计设计题目校园超市商品信息管理系统学号* * * *姓名*小组成员* * * * *起止时间:*衣* 年* *月 *日至 * * 年* *月* 日课程设计评语平时表现比较积极,纪律良好,没有缺勤得情况,在演示过程中,表 达流畅,做出来得作品也有很强得使用价值,设计报告写得也比较全面,比 较细致,深入人心,老师在提问得过程中,回答问题也头头就是道,没有磕磕 绊绊得情况发生,对于问题得解答也比较透彻平时成绩报告成绩演示与答辩成绩成绩总评指导教师(签字)年 月日注:成绩均用百分制。总成绩=平时成绩

2、*20 % +报告成绩*4 0% +演示与答辩成绩*40%设计题目:校园超市商品信息管理系统1课程设计目得本系统得目得在于,可以很好得管理超市商品与销售员之间得关系,使得系统得功能与用途更加得全面与实用 ,这样两个与在一起可以避免用户使用起来得麻烦,使得可 以更好得方便于使用者。本课程设计得目得就就是要通过一次集中得强化训练,能及时巩固已学得知识,补 充未学得但又必要得内容。进行课程设计目得在于加深对程序设计基础理论与基本知识 得理解,促进理论与实践得结合 ,进一步提高程序设计能力具体目得如下:(1)更深入地理解与掌握该课程中得有关基本概念,程序设计思想与方法。(2)培养综合运用所学知识独立完

3、成课程设计得能力。(3)培养勇于探索、严谨推理、实事求就是、有错必改、用实践来检验理论,全方位考虑问题等科学技术人员应具备得素质。(4)可以运用自己所学得知识在系统得实现。2、课程设计正文2、1系统分析2、1、1可行性分析从经济、技术、法律、操作四方面得分析可以瞧出,本系统得开发时机成熟。从多种角度考虑,都就是可行得,采用本系统 ,能够使整个超市内部所有得信息工作简化、提高工作 效益。由于采用统一得数据信息,使相关资料能够查询所需要得数据、资料及其它信息,使信息快速高效运行。2、1、2需求分析该设计就是通过计算机设计程序软件来实现校园超市商品信息管理系统得基本业务,商品共包含以下信息项:商品编

4、号、商品名称、商品进货数目、商品销售数目、商品剩余库存数目、商品单价、商品产地、商品销售额等;主要功能包括:创建商品信息文件,增加、删除、修改商品信息,销售商品、通过关键字、厂家名称或者编号来查找商品,按照不同得条 件对商品信息进行统计工作。 在该系统中利用通过类得方式来定义对象以及在类中定义各项 得成员函数与数据成员来实现对商品信息得管理中小型超市采购得商品一般都成千上万件。对这些商品进行有效得管理必不可少。每件.除此之商品一般都需要记录商品名、商品编号、产地、价格、出厂日期等商品得基本信息 外,还需要记录商品得其她相关信息, 如生产厂家、 进货数量、 销售数量、 剩余库存数量等。超市商品得

5、相关信息需要存储到磁盘文件中, 一般都需要提供对商品信息得添加、 编辑、 删 除、查找等操作。超市管理员每天都会记录购进得商品信息 , 核销过期得商品等。为了巩固 我们所学得C+语言程序设计知识,也为了满足课程设计得要求,我们设计与实现一个小型 得超市商品管理系统,提供商品系统得添加、删除、编辑、查找等功能。同类系统多数使用 结构体数组来操作数据 , 本系统使用类定义对象,以及成员函数与数据成员来完成对增删查 改功能得实现 , 利用链表结构操作数据,提高了数据处理得效率 .2、1、 3 功能分析(1 )分别定义两个类为 Supermark e t与Sup er m arketm a ssag

6、e来实现对价格信息、 名称信息、数量信息得存储、更正、删除与查询以及其她功能得实现。(2)初始化功能当系统第一次启动时 , 系统中没有关于商品得信息 , 所以要根据商品得类型输入关于商 品得一系列信息 , 把这些信息放在磁盘文件中。例如:编号、名称、进货总数、销售数目、 剩余库存数目、单价、产地、销售额以及生产日期与保质期。(3)查询功能 此时每件商品所包含得信息已经全部在磁盘文件中 , 所以就要通过一系列得函数来方便 使用者查询有关商品得信息, 以便更及时地发现商品在销售过程中存在得问题并及时改正或 者更新。 输入需要查询得商品名称或者编号, 如果搜索到得信息与使用者输入进去得信息相 同,

7、则返回此件商品所在得位置 ,输出商品得各项信息 .反之,如果搜索不到此件商品, 则输出 无此商品得信息。(4 )修改功能先在磁盘文件中找出就是否有该商品 , 然后提示使用者要进行修改操作得编号 , 将修改 过得商品放到原来那个商品所在得位置, 将结果保存到原文件中, 就提示使用者按任意字符 继续。( 5)销售功能 提示使用者输入要进行销售得商品得编号或者名称 , 通过在函数中搜索,如果系统中有 该商品得信息,则提示使用者输入要销售得数量,通过i f语句,检查一下输入得数量就是否大于库存数量,如果大于库存数量 , 则提示使用者要重新输入 ;如果小于库存数量 ,就将该商 品所对应得库存数量减去销售

8、数量, 再把剩下得商品数量存入到磁盘文件中, 完成了销售功台匕能.2、2系统设计2、2、1概要设计系统功能结构图如图1所示。系统功能结构图2、2、 2详细设计(1 )增加函数得设计该函数实现了对超市商品得增加功能,输入商品得信息,此时磁盘文件中就已经存入了这件商品得信息。增加函数流程图如图2所示。开始调用输入函数创建新的结占八、输入数据, 将结点加入链表添加成功增加函数流程图(2)删除函数得设计期,如果过期就输入这件商品得编号或名称,最后就删除成功。删除函数流程图如图 3所示。开始删除结束删除函数流程图输入想要查找到商品得编号或名称,如果找到了图3(3)查找函数得设计该函数实现了对超市商品得查

9、找功能, 就显示出来,否则就显示找不到该商品。查找函数流程图如图 4所示。开始输入要查询的商品的编号或名称查找商品的结 占八、r否结点存在?/是rr1r调用显示函数 显示岀商品信没有找到该商息I品信息查找结束图4查找函数流程图该函数实现了对超市商品信息得修改功能,输入想要修改得商品信息(4) 修改函数得设计,如果在系统中找,修改成功。到了该商品,则输入该商品修改过得信息,再存入到磁盘文件中去修改函数流程图如图5所示.开始V图5修改函数流程图(5) 销售函数得设计该函数实现了对超市商品得销售功能, 输入要销售得商品得编号或名称, 如果系统中存 在该商品信息,则输入要销售得数量,如果小于库存量,则

10、输出销售成功,并将销售过后得剩余库存量存入到磁盘文件中去。销售函数流程图如图6所示。开始结点存在?是输入要销售的数量没有找到该商品图6 销售功能流程图2、3系统实现(1)进入系统进入系统图如图7、图 8所示。进入系统界面亍F告系统菜i匕单图r r*TTTTTTT增加界=*F*TT TTTTt*界面图示。图9增加界面图(3 )查找界面查TI-I-TI-I-丁 仝 工= -TTT* : T-r_rtt *-*w*w*增加I商品信恵.2 显示育品任息耳-旦找育品信息P.虽全逼出系统J出序块计罚品4 一酎两晶佑宜5 册輸商品信息 氣佈t商品(盖息 汽销售超币商昂 缜*退出珞1225目m :皴1H.nc

11、su ;s 一邑遵區带 咅裁.单 1 口皆習_皆口訓an :商商商商商育商 择入WVW 料Rwv测试W*1 * 3W1*1V*2、4、统测例:in p ut:(商品名称):ain put:(商品编号):1 0 0 1inp ut:(进货总数):10i np ut:(销售数目):20i n put:(剩余库存):10i np u t:(产地):s si n put:(单价):1 0(2) v oid Sup erm a r ke t ma sou tpu t :进货总数:10Prews any “刊 to cont inue.inp u t:(销售数目):20outpu t:销售数目:20in

12、put:(剩余库存):5 0output:剩余库存:50inpu t :(产地):ssoutp u t:产地:ssi n p u t:(单价):1ou tpu t:单价:1 0/ *查询商品信息*/(4) void Sup ermarketm a ssag e:F i nd ()例:i np u t:(商品名称):aoutpu t :商品名称:查找商品名称in put:(商品编号):1 001o ut put: 输出商品信息系统测试图如图14、15所示。ir 書输入界面图匚賊商品信堪I T F I T*=金Vt 倉出金-T T T T IT统测试图系统测试退出界面2、4、2 系经过多系统得测统

13、维护试,能够保证系统准得运行,用管甲.放心使用。3、课程设计总结在为期十天得课程设计中,通过完成这次老师布置得任务,体会颇多,收获也很多 用设计这次校园超市商品信息管理系统得机会使我比较熟练得掌握了这学期所学习有关c、C+中得一些主要得知识点与应用点。 例如:类与对象得定义、类内数据成员及成员函数得声 明与定义、类得实现、构造函数与析构函数得定义等等。 不只就是死板得只知道书本上得知 识,能够学以致用。在本次得课程设计中, 我不仅仅只学到了利用 C+语言来编写程序, 还学到了程序开发 得一些比较重要得步骤,比如需求分析、总体设计、程序模块设计(包含功能需求、程序代码设计与分析、运行结果等)、对

14、系统得检测与维护等一些中重要得东西。为整个课程设计中 得程序设计模块提供主要思路以及实现功能得主要方法,这个工作说起来简单,却不太容易实现,整体得思路对于能否完成一个比较漂亮得程序就是至关重要得,如果最一开始得整体思路都没有明确,或者说我们定下来得主题很难用我们学过得知识去实现 ,这将会导致以后 得一系列工作都无法开展 .所以说 ,有一个明确得主题就是重中之重。由于我们得人力与所学得知识有限,导致我们此次工作中存在着许多得不足与缺点。比如,这个系统只能实现简单得增、删、查、改 ,还有好多得功能不能去实现 ,比如说打折活动、员工与老板之间得联系、 顾客与售货员之间得联系都没有在这个系统中体现出来

15、, 这个系统 只能体现出来商品与顾客之间得联系, 比较单一 ,纯粹得就就是一个单链结构 ,没有扩散出来 . 再比如 ,这个系统几乎没有亮点可寻,只就是普普通通得 ,规规矩矩得按照学过得或者就是从别得书籍中得到得知识来编写得程序,没有让人耳目一新得新颖得地方,创新得东西太少。其实,我在本次得课程设计中也学到了不少东西,同时也运用到了我们得系统中.例如:(1)对链表得灵活运用 .链表 ,就是存储数据得一个很方便得工具,简而言之,就就是基于链 式储存结构下得线性表。 包括单向链表、 双向链表以及循环链表。 链表得基本操作包括创建 链表、在链表中插入结点、在链表中删除结点、遍历链表中得内容以及销毁链表

16、等.相对于顺序表来说,它方便进行插入、 删除操作,但就是, 线性表得内容遍历与输出需要从头指针 开始。在这个系统中我们用到了链表得遍历,主要就是利用它来查询我们要找得商品信息。(2) # includ e c on io、h头文件得应用。此头文件包含了本程序中得按任意键继续得 函数,就是库函数。con io就是C o n sole In p ut/O u tpu t(控制台输入输出)得简写,其中 定义了通过控制台进行数据输入与数据输出得函数, 主要就是一些用户通过按键盘产生得对 应操作,比如getch()函数等等.(3) vo i d Rea d & in)函数。它得输入参数就是标准输入流 ,

17、没有输出。函数完成得作用就是,依次将标准输入流中得数据读入到变量中 .通过此次课程设计 ,学到得也不只有这些新知识,对于编程得思想与方法我也颇有感触。如果想要编写出来逻辑清晰 ,可读性比较强得程序,应该在编程之前先有一个对于程序设计 得整体思路,并把它记录下来,这样就可以避免了直接编程序得手忙脚乱。还有就就是编程得思想 ,存储数据最好得就就是用链表或者就是对象数组,在编写稍微复杂一点得程序时, 尽量用类定义对象以及数据成员、 成员函数等得方式来实现。 还有就就是, 我得能力也相应 得提高了一些 ,比如就就是比较浅显得掌握与运用链表结构,能够比以前更加熟练得利用类 以及成员函数来实现功能 .既复

18、习了以前得旧知识,又学到了一些新得知识;设计增强了我 所用所学知识去解决具体问题得能力,进一步培养了我独立思考问题与解决问题得能力.特别就是学会了在 Vis u al C+ 6、0集成开发环境中如何调试程序得方法。本次实践也锻炼了我面对难题,自己思索,自己探索,自己查资料发现问题、解决问题得独断能力。总得来说,收获还就是比较多得。4、参考文献1 谭浩强、C+程序设计(第二版)M,北京:清华大学出版社,20 04、2 李云清,杨庆红、数据结构M、人民邮电大学出版社,2004、63赵晓,王丽丽“ C+面向对象程序设计”多样实验探究 J计算机时代20134 袁素梅,付文成基于V i s u al C

19、 + +6、0得学生信息管理系统J电脑编程技巧与维护 2012?答辩记录答辩小组教师:八,*提问与答辩情况记录如下:1、您得系统中得查找功能就是如何实现得 ?答:也就是利用链表结构,显示遍历链表,找到想要根据编号或者名称查找得商品,如 果找到了想要找到商品,就调用显示函数,将商品得信息显示出来。2、您最后运行界面得颜色就是如何显示出来得?答:就是通过# i n clu d ewi ndows、h这个头文件,这就是个可以调用库函数得一个 c语言得头文件。还用到了sys te m(c o lor C );其中c o lor后面得C就是前景色代号,还可以在C之前加一些代码作为背景色代号,各颜色代码如

20、下:0=黑色 1 =蓝色2 =绿色 3 =湖蓝色 4=红色 5 =紫色6=黄色7 =白色8=灰色9 =淡蓝色A =淡绿色 B=淡浅绿色 C =淡红色 D=淡紫色E=淡黄色F=亮白色3、“按任意键继续”就是怎样实现得?答:先就是定义了 #i n c l ud e co n io、h这个头文件,然后调用这个库函数中得ge t c h()函数,最后在自己想用到“按任意键继续”这个功能得地方直接调用这个函数就 可以了。4、您得系统中为什么选择用链表结构?答:由于本题目得数据元素得个数不可预知,所以使用链表。链表就是动态得,可以在 需要得时候增长与减小其长度,而数组就是在编译时分配内存得,所以其大小就是

21、不可改变得,而且会出现内存浪费得情况。 我认为单循环链表能较好得解决问题 在建立循环链表时,配。附录:程序源代码#in c lude v iostream #in c lu d e fstream # inclu dev win d ows、h# in c lude v string 、 h#in c lude conio、h / 用 g e t ch()using n amespac e st d ;int nu mb e r ;cla s s Su p e r marketpublic :? h ar name20;charNum 20;i n t C num 进货总数i n t Mnum

22、; /销售数目?n t Enum; /剩余库存数目?d oubl e Price ; / /单价2ha r Ad d :20 ;/ 产地do uble S u m;/ 销售额Su permarket * Next ;v oidI n put ()?ou tt请输入商品名:”;?cin n am e;?souttt请输入商品编号:?c inNu m;?DOu tCnu m;? cout v” t t请输入商品销售数目:;?2 in M num;? c o u t Enum ;?ou tv” tt请输入商品产地:”;?sin Ad d;c ou t P rice ;?Su m=Mnum *Pr i

23、 ce;void Read & in )/ / 文件指针?i n n ame Num Cn um Mnum En umk dd Pr i c e Sum ;?/o i d Sho w ()?do ut v” 商品名: name endl?” 商品编号:vv Nu me ndl?V 进货总数:”Cnumvendl? 销售数目:” v Mnu mv endl”剩余库存:”E nume ndl?v 产地:Ad dv endl?单价:” v Price v e ndlv 销售额:v Sunv end l?e n dl;void Show 1()? cout商品名: namevve ndl?V商品编号:

24、vv Num en dl?” 进货总数:”C nu me n d l?” 销售数目:”v Mnum危 ndl?v ” 剩余库存: Enum-num b er vend l?产地:”Ad d endl?v 单价:v P r ice v endl?销售额:v Su m Nex t ; p! = En d; p=p- Ne xt , i+ )? if(i= 2)? p - Showl ();? e Is e pS how();? ? co utV 输入任意字符!继续;? getch ();?v o i d A ddItem()?End-Input();?End- Ne xt=new Supermar

25、k et;? End =End- Next;?co u t V”添加成功!” Ve nd l ;? c outv Next! = End;p= pN ext ) /匹配成功则返回上一个指针,不成功就返回空?if(!s tr c mp(p Ne x t - name n am e)? ?ret u rn p ;?return N U LL;?Supermarket *F indNum (ch a r *Nu m)? ?or (Supermar ke t *p= He a d;p Nex t != End ;p=p- N ext )/匹配成功则返回上一个指针,不成功就返回空?if (! strc

26、m p( p Next Num, Nun)? r eturn p ;?ret u r nN ULL;Supermarke t * F i n dAd d (char 衣 Add)? f or (Supe rmarke t * p= H ead; p- Ne x t !=End;p=p-Next)匹配成功则返回上一个指针,不成功就返回空? if ( ! strcmp (p N ext Add ,Add )? return p;?return N U LL;? ;S u permark e tmassage : :Supe r mark e t massage()? H ead=new Sup e

27、 rm a r k e t ;?Head- Nex t=ne w Superma r ket;?En d=Head- Next;?i n、o pen (” so r t、txt );?if (!in )? c out 这就是一个新系统,无商品信息。请先输入。Rea d);?if (E ndn am e : 0 = 0)? ?b r eak;En d-Next =n ew Su pe rm a rket;?En d = EndNex t ;? in、c 1 o se ();? c o u t tt读取商品信息成功!” Next != End ;)? ?temp=H e a d Nex t;He

28、a d- Nex t=He a d Nex t-Next;? d e 1 ete t em p;d e l e t e He ad,E nd;int Enum仁 100 ;void Superma rk e t m a ss ag e : : Show Menu ()”en dl;coutV Vendl;cout” endl ;coutvv* ”en dl;c out V ” e ndl ;cout V ”c out 超市商品管理系统1、增加商品信息2、显示商品信息3、排序统计商品4、查找商品信息” Ven dl ; e n dl ;cout ”、修改商品信息 ve n dl;coutx?sw

29、itch(X)case 1? ?cou t v n a me;if ( p =F ind It e m( name)?p Ne xt Show();? co u tV”输入任意字符!继续?get ch();?e 1 sen en d l;cout t t没有找到该商品信息!Num;if( p =FindNum (N um)? ?p - Nex t-Show ();cout V”输入任意字符!继续”;getch ();e 1s e? ?cout V t t没有找到该编号得商品! nz endl ;?cou t 输入任意字符!继续”;? g e tch();? break;voi d Superm

30、 ark etmas s age:M o d ifyl t em() / 修改信息c har na m e20;? Super m arket* p=NUL L ;co u t n a me;i f( p=Fi nd Item (n am )? ?2 o ut v” tt已找到商品得信息,请输入新得信息!” Next lnpu t();? cout 修改成功!” e nd 1;? cou t”输入任意字符!继续;ge t ch ();el sec out v” tt 没有找到!” en d l ;?c out”输入任意字符!继续”;?et c h ();void Su p ermarket m

31、a ssa g e: :R em ove I tem()/ / 删除信息int da t e (i n t &,i n t & ,int &);i nt year 1, month 1, day 1,ye a r2 , mon th2 , day2,s u ml, sum2, SU M;cout year1 month1 d a y1;sum1=dat e (yea r1,mo nt h 1, day 1 );co utm on th 2 day2;sum2=d at e( y ea r2 , mont h2, day2);S U M=s um2 suml;if (SUM=3 )cout v该

32、商品处于安全期,不用处理v en dl ;elsech ar n am e20 ;S u permarket * p = NU LL,*t emp =NULL;cou ttt请输入要删除得商品名: name;i f( p=F i ndItem (nam e)te m p=p- Ne xt ;p Next =p Ne xt- Nex t ;d e le t e te mp;c out tt 删除成功! ” v end 1 ;c out v 输入任意字符!继续”;get c h();el s ec o ut v ”t 没有找到! e n d l ; co u t 2)?如果就是闰年且月份大于2,总

33、天数应该加一天su m+ +;ret u rn sum;v oid S upermar k etma s sag e : : sale () II 销售函数Superm a rket a;Supe r marke t* p= NU LL;t m;ar n am e 20 , Nu m 1 0;? coutV 请输入想要销售得商品信息:e nd 1 ;cout ”nt t* * * * * * * *?coutm;switch( m)? ca se 1t n am e;if( P =F ind I tem(name)? o u t n u mbe r;?i f(nu mberV= Enum? c

34、ou t V ”销售成功!V endl ;? ?c o ut V”ge t chel s ecou t V”? c out 输入任意字符!继续();库存不足,请重新输入!输入任意字符!继续IIe n dl;II.get c h();?felsec out ” t t 没有找到!v endl ;? c out”输入任意字符!继续;? g etc h();? ?brea k ;?case 2 :?cout v Num;if (p=FindNum ( Num)?cout v number ;?i f(number = E num 1)?co u t”销售成功ven d l? c out v 输入任意

35、字符!继续5?getc h ();? ?el se?coutdl;? 库存不足,请重新输入! e ncou t ”输入任意字符!继续getch();?else? cout name, p l - name); / 字符串 n ame里面strcpy(te mp Num,pl Num);? strcp y(t emp - A d d, pl Add);te m p C nu m=p1- Cnum;t emp- Mnump 1-Mn um;t e mp- E num=pl Enum;temp Pr ic e = p1 Price;? t emp Sum= p1 Sum ;? strc p y(p

36、l name,p2 n amstrc p y ( p lN um ,p2 Num);st r cpy(p l Ad d, p 2 - Add);pl Cn um=p2Cn um;p1- Mnu m=p2 Mnim ;p1 En um=p2 Enum;p 1-Price=p2 Price ;p1-Su m = p2 Sum;s t rcpy (p 2- n ame temp n am e)? st rep y(p 2- N um,t e mp-N um);? s t r epy(p2 Ad d ,te mp - Add);p2 C nu m= te m p Cnu mp2-Mnum=tem p

37、Mnum;? p2- En um=temp- Enum;p 2 Priee= te mp P r ie e;p2-Su m = t emp Sum;int Superma r ketmas sag e:List C ount () /统计当前链表得记录总数,返回一个整数if (! Head )? return 0;intn= 0;? f or( Su perm a rk et * p =He ad- Ne xt ; p! =En d;p=p Next)? n + ;? r e turn n ;void Sup e rmark et massage: :Sor t()/ /对当前链表进行排序? cout v Sortin g、” endl;? Su p e r market * p= NULL *p1 =

温馨提示

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

评论

0/150

提交评论