c++校园超市商品信息管理系统课程设计汇本说明书(含源代码)

上传人:痛*** 文档编号:84830556 上传时间:2022-05-04 格式:DOC 页数:35 大小:6.87MB
返回 下载 相关 举报
c++校园超市商品信息管理系统课程设计汇本说明书(含源代码)_第1页
第1页 / 共35页
c++校园超市商品信息管理系统课程设计汇本说明书(含源代码)_第2页
第2页 / 共35页
c++校园超市商品信息管理系统课程设计汇本说明书(含源代码)_第3页
第3页 / 共35页
点击查看更多>>
资源描述
计算机科学与技术教研室课程设计说明书2015-2016学年 第二学期课程名称程序设计根底课程设计设计题目校园超市商品信息管理系统学号*小组成员*,*,* 起止时间: * 年 * 月 * 日 至 * 年* 月* 日 课程设计评 语平时表现比拟积极,纪律良好,没有缺勤的情况,在演示过程中,表达流畅,做出来的作品也有很强的使用价值,设计报告写的也比拟全面,比拟细致,深入人心,教师在提问的过程中,答复下列问题也头头是道,没有磕磕绊绊的情况发生,对于问题的解答也比拟透彻。平时成绩报告成绩演示与辩论成绩成绩总评指导教师签字年 月 日注:成绩均用百分制。总成绩=平时成绩*20%+报告成绩*40%+演示与辩论成绩*40%35 / 35设计题目:校园超市商品信息管理系统1.课程设计目的本系统的目的在于,可以很好的管理超市商品与销售员之间的关系,使得系统的功能和用途更加的全面和实用,这样两个和在一起可以防止用户使用起来的麻烦,使得可以更好的方便于使用者。 本课程设计的目的就是要通过一次集中的强化训练,能及时稳固已学的知识,补充未学的但又必要的容。进展课程设计目的在于加深对程序设计根底理论和根本知识的理解,促进理论与实践的结合,进一步提高程序设计能力。具体目的如下: (1)更深入地理解和掌握该课程中的有关根本概念,程序设计思想和方法。 (2) 培养综合运用所学知识独立完成课程设计的能力。 (3) 培养勇于探索、严谨推理、实事、有错必改、用实践来检验理论,全方位考虑问题等科学技术人员应具备的素质。 (4) 可以运用自己所学的知识在系统的实现。2、课程设计正文2.1系统分析2.1.1可行性分析从经济、技术、法律、操作四方面的分析可以看出,本系统的开发时机成熟。从多种角度考虑,都是可行的,采用本系统,能够使整个超市部所有的信息工作简化、提高工作效益。由于采用统一的数据信息,使相关资料能够查询所需要的数据、资料及其它信息,使信息快速高效运行。2.1.2 需求分析该设计是通过计算机设计程序软件来实现校园超市商品信息管理系统的根本业务,商品共包含以下信息项:商品编号、商品名称、商品进货数目、商品销售数目、商品剩余库存数目、商品单价、商品产地、商品销售额等;主要功能包括:创立商品信息文件,增加、删除、修改商品信息,销售商品、通过关键字、厂家名称或者编号来查找商品,按照不同的条件对商品信息进展统计工作。在该系统中利用通过类的方式来定义对象以及在类中定义各项的成员函数和数据成员来实现对商品信息的管理。中小型超市采购的商品一般都成千上万件。对这些商品进展有效的管理必不可少。每件商品一般都需要记录商品名、商品编号、产地、价格、出厂日期等商品的根本信息。除此之外,还需要记录商品的其他相关信息,如生产厂家、进货数量、销售数量、剩余库存数量等。超市商品的相关信息需要存储到磁盘文件中,一般都需要提供对商品信息的添加、编辑、删除、查找等操作。超市管理员每天都会记录购进的商品信息,核销过期的商品等。为了稳固我们所学的C+语言程序设计知识,也为了满足课程设计的要求,我们设计和实现一个小型的超市商品管理系统,提供商品系统的添加、删除、编辑、查找等功能。同类系统多数使用构造体数组来操作数据,本系统使用类定义对象,以及成员函数和数据成员来完成对增删查改功能的实现,利用链表构造操作数据,提高了数据处理的效率。2.1.3功能分析1分别定义两个类为Supermarket和Supermarketmassage来实现对价格信息、名称信息、数量信息的存储、更正、删除与查询以及其他功能的实现。2初始化功能当系统第一次启动时,系统中没有关于商品的信息,所以要根据商品的类型输入关于商品的一系列信息,把这些信息放在磁盘文件中。例如:编号、名称、进货总数、销售数目、剩余库存数目、单价、产地、销售额以及生产日期和保质期。3查询功能此时每件商品所包含的信息已经全部在磁盘文件中,所以就要通过一系列的函数来方便使用者查询有关商品的信息,以便更及时地发现商品在销售过程中存在的问题并及时改正或者更新。输入需要查询的商品名称或者编号,如果搜索到的信息与使用者输入进去的信息一样,那么返回此件商品所在的位置,输出商品的各项信息。反之,如果搜索不到此件商品,那么输出无此商品的信息。4修改功能先在磁盘文件中找出是否有该商品,然后提示使用者要进展修改操作的编号,将修改正的商品放到原来那个商品所在的位置,将结果保存到原文件中,就提示使用者按任意字符继续。5销售功能提示使用者输入要进展销售的商品的编号或者名称,通过在函数中搜索,如果系统中有该商品的信息,那么提示使用者输入要销售的数量,通过if语句,检查一下输入的数量是否大于库存数量,如果大于库存数量,那么提示使用者要重新输入;如果小于库存数量,就将该商品所对应的库存数量减去销售数量,再把剩下的商品数量存入到磁盘文件中,完成了销售功能。2.2系统设计2.2.1概要设计系统功能构造图如图1所示。图1 系统功能构造图2.2.2详细设计1增加函数的设计该函数实现了对超市商品的增加功能,输入商品的信息,此时磁盘文件中就已经存入了这件商品的信息。增加函数流程图如图2所示。图2 增加函数流程图2删除函数的设计该函数实现了对超市商品的删除功能,输入商品的生产日期和截止日期,判断是否过期,如果过期就输入这件商品的编号或名称,最后就删除成功。删除函数流程图如图3所示。图3 删除函数流程图3查找函数的设计该函数实现了对超市商品的查找功能,输入想要查找到商品的编号或名称,如果找到了就显示出来,否那么就显示找不到该商品。查找函数流程图如图4所示。图4 查找函数流程图4修改函数的设计该函数实现了对超市商品信息的修改功能,输入想要修改的商品信息,如果在系统中找到了该商品,那么输入该商品修改正的信息,再存入到磁盘文件中去,修改成功。修改函数流程图如图5所示。图5 修改函数流程图5销售函数的设计该函数实现了对超市商品的销售功能,输入要销售的商品的编号或名称,如果系统中存在该商品信息,那么输入要销售的数量,如果小于库存量,那么输出销售成功,并将销售过后的剩余库存量存入到磁盘文件中去。销售函数流程图如图6所示。图6 销售功能流程图2.3系统实现1进入系统进入系统图如图7、图8所示。图7 进入系统界面图图8 系统菜单图2增加界面增加界面图如图9所示。图9 增加界面图3查找界面查找界面图如图10、图11所示。图10 按名称查找商品界面图图11 按编号查找商品界面图4销售界面销售界面图如图12所示。图12 销售界面图5退出系统退出系统界面图如图13所示。图13 退出系统界面图2.4系统测试与维护2.4.1 系统测试1 void AddItem() /*添加商品信息*/例:input:商品名称:a output:商品名称:a input:商品编号:1001 output:商品编号:1001 input:进货总数:10 output:进货总数:10 input:销售数目:20 output:销售数目:20 input:剩余库存:10 output:剩余库存:10 input:产地:ss output:产地:ss input:单价:10 output:单价:102 void Supermarketmassage:RemoveItem() /*删除商品信息*/例:input:删除商品名称:a output:删除成功3void Supermarketmassage:ModifyItem() /*修改商品信息*/例:input:商品名称:a output:商品名称:a input:商品编号:1001 output:商品编号:1001 input:进货总数:10 output:进货总数:10 input:销售数目:20 output:销售数目:20 input:剩余库存:50 output:剩余库存:50 input:产地:ss output:产地:ss input:单价:10 output:单价:104 void Supermarketmassage:Find() /*查询商品信息*/例:input:商品名称:a output:商品名称:查找商品名称 input:商品编号:1001 output: 输出商品信息系统测试图如图14、15所示。图14 系统测试图输入界面图图15 系统测试退出界面图2.4.2 系统维护经过屡次的对系统的测试,能够保证系统准确无误的运行,用户可以放心使用。3、课程设计总结在为期十天的课程设计中,通过完成这次教师布置的任务,体会颇多,收获也很多。利用设计这次校园超市商品信息管理系统的时机使我比拟熟练的掌握了这学期所学习有关c、c+中的一些主要的知识点和应用点。例如:类和对象的定义、类数据成员及成员函数的声明和定义、类的实现、构造函数与析构函数的定义等等。不只是死板的只知道书本上的知识,能够学以致用。在本次的课程设计中,我不仅仅只学到了利用c+语言来编写程序,还学到了程序开发的一些比拟重要的步骤,比方需求分析、总体设计、程序模块设计包含功能需求、程序代码设计与分析、运行结果等、对系统的检测和维护等一些中重要的东西。为整个课程设计中的程序设计模块提供主要思路以及实现功能的主要方法,这个工作说起来简单,却不太容易实现,整体的思路对于能否完成一个比拟漂亮的程序是至关重要的,如果最一开场的整体思路都没有明确,或者说我们定下来的主题很难用我们学过的知识去实现,这将会导致以后的一系列工作都无法开展。所以说,有一个明确的主题是重中之重。由于我们的人力和所学的知识有限,导致我们此次工作中存在着许多的缺乏和缺点。比方,这个系统只能实现简单的增、删、查、改,还有好多的功能不能去实现,比方说打折活动、员工与老板之间的联系、顾客与售货员之间的联系都没有在这个系统中表达出来,这个系统只能表达出来商品与顾客之间的联系,比拟单一,纯粹的就是一个单链构造,没有扩散出来。再比方,这个系统几乎没有亮点可寻,只是普普通通的,规规矩矩的按照学过的或者是从别的书籍中得到的知识来编写的程序,没有让人耳目一新的新颖的地方,创新的东西太少。其实,我在本次的课程设计中也学到了不少东西,同时也运用到了我们的系统中。例如:1对链表的灵活运用。链表,是存储数据的一个很方便的工具,简而言之,就是基于链式储存构造下的线性表。包括单向链表、双向链表以及循环链表。链表的根本操作包括创立链表、在链表中插入结点、在链表中删除结点、遍历链表中的容以及销毁链表等。相对于顺序表来说,它方便进展插入、删除操作,但是,线性表的容遍历与输出需要从头指针开场。在这个系统中我们用到了链表的遍历,主要是利用它来查询我们要找的商品信息。2#include 头文件的应用。此头文件包含了本程序中的按任意键继续的函数,是库函数。conio是Console Input/Output控制台输入输出的简写,其中定义了通过控制台进展数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比方getch函数等等。3void ReadFileistream & in函数。它的输入参数是 标准输入流,没有输出。函数完成的作用是,依次将标准输入流中的数据读入到变量中。通过此次课程设计,学到的也不只有这些新知识,对于编程的思想和方法我也颇有感触。如果想要编写出来逻辑清晰,可读性比拟强的程序,应该在编程之前先有一个对于程序设计的整体思路,并把它记录下来,这样就可以防止了直接编程序的手忙脚乱。还有就是编程的思想,存储数据最好的就是用链表或者是对象数组,在编写稍微复杂一点的程序时,尽量用类定义对象以及数据成员、成员函数等的方式来实现。还有就是,我的能力也相应的提高了一些,比方就是比拟浅显的掌握和运用链表构造,能够比以前更加熟练的利用类以及成员函数来实现功能。既复习了以前的旧知识,又学到了一些新的知识;设计增强了我所用所学知识去解决具体问题的能力,进一步培养了我独立思考问题和解决问题的能力。特别是学会了在Visual C+ 6.0集成开发环境中如何调试程序的方法。本次实践也锻炼了我面对难题,自己思索,自己探索,自己查资料发现问题、解决问题的独断能力。总的来说,收获还是比拟多的。4、参考文献1谭浩强.c+程序设计第二版M,:清华大学,2004.2云清,庆红.数据构造M.人民邮电大学,2004.63晓,王丽丽 “C+面向对象程序设计多样实验探究J ?计算机时代? 20134袁素梅,付文成 基于Visual C+ 6.0的学生信息管理系统J ?电脑编程技巧与维护? 2012辩论记录辩论小组教师:*,*提问与辩论情况记录如下:1.你的系统中的查找功能是如何实现的?答:也是利用链表构造,显示遍历链表,找到想要根据编号或者名称查找的商品,如果找到了想要找到商品,就调用显示函数,将商品的信息显示出来。2.你最后运行界面的颜色是如何显示出来的?答:是通过#include这个头文件,这是个可以调用库函数的一个c语言的头文件。还用到了 system(color C); 其中color后面的C是前风光代号,还可以在C之前加一些代码作为背风光代号,各颜色代码如下:0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色 A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色3.“按任意键继续是怎样实现的?答:先是定义了#include 这个头文件,然后调用这个库函数中的getch()函数,最后在自己想用到“按任意键继续这个功能的地方直接调用这个函数就可以了。4.你的系统中为什么选择用链表构造?答:由于此题目的数据元素的个数不可预知,所以使用链表。链表是动态的,可以在需要的时候增长和减小其长度,而数组是在编译时分配存的,所以其大小是不可改变的,而且会出现存浪费的情况。我认为单循环链表能较好的解决问题。在建立循环链表时,因为链表的大小由输入决定,因此与其匹配的结点数也是变化的,所以要进展动态存分配。附录:程序源代码#include #include #include#include #include /用getch()using namespace std;int number;class Supermarket public:char name20;char Num20;int um; /进货总数int Mnum; /销售数目int Enum; /剩余库存数目double Price; /单价char Add20; /产地double Sum; /销售额Supermarket * Next;void Input()coutname;coutNum;coutum;coutMnum;coutEnum;coutAdd;coutPrice;Sum=Mnum*Price; void ReadFile(istream & in) /文件指针 innameNumumMnumEnumAddPriceSum; void Show()cout商品名:nameendl商品编号:Numendl进货总数:umendl销售数目:Mnumendl剩余库存:Enumendl产地:Addendl单价:Priceendl销售额:Sumendlendl; void Show1()cout商品名:nameendl商品编号:Numendl进货总数:umendl销售数目:Mnumendl剩余库存:Enum-numberendl产地:Addendl单价:Priceendl销售额:SumendlNext;p!=End;p=p-Next,i+) if(i=2) p-Show1(); else p-Show(); coutInput(); End-Next=new Supermarket; End=End-Next; cout添加成功!endl; coutNext!=End;p=p-Next)/匹配成功那么返回上一个指针,不成功就返回空 if(!strcmp(p-Next-name,name) return p; return NULL; Supermarket *FindNum(char * Num) for(Supermarket * p=Head;p-Next!=End;p=p-Next)/匹配成功那么返回上一个指针,不成功就返回空 if(!strcmp(p-Next-Num,Num) return p; return NULL; Supermarket *FindAdd(char * Add) for(Supermarket * p=Head;p-Next!=End;p=p-Next)/匹配成功那么返回上一个指针,不成功就返回空 if(!strcmp(p-Next-Add,Add) return p; return NULL; ; Supermarketmassage:Supermarketmassage() Head=new Supermarket; Head-Next=new Supermarket; End=Head-Next; in.open(sort.txt); if(!in) cout这是一个新系统,无商品信息。请先输入。ReadFile(in); if(End-name0=0) break; End-Next=new Supermarket; End=End-Next; in.close(); couttt读取商品信息成功!Next!=End;) temp=Head-Next; Head-Next=Head-Next-Next; delete temp; delete Head,End; int Enum1=100; void Supermarketmassage:ShowMenu() cout 超 市 商 品 管 理 系 统 endl; cout endl; cout 1.增加商品信息 endl; cout 2.显示商品信息 endl; cout 3.排序统计商品 endl; cout 4.查找商品信息 endl; cout 5.删除商品信息 endl; cout 6.修改商品信息 endl; cout 7.销售超市商品 endl; cout 0.平安退出系统 endl; coutnttntt请选择:; void Supermarketmassage:Find() char name20 ,Num10; int x; Supermarket * p=NULL; coutntt*n; couttt 1.按商品的名称查找ntt 2.按商品编号查找; coutx; switch(x) case 1: coutname; if(p=FindItem(name) p-Next-Show(); cout输入任意字符!继续; getch(); else couttt没有找到该商品信息!nendl; cout输入任意字符!继续; getch(); break; case 2: coutNum; if(p=FindNum(Num) p-Next-Show(); cout输入任意字符!继续; getch(); else couttt没有找到该编号的商品!nendl; cout输入任意字符!继续; getch(); break; void Supermarketmassage:ModifyItem()/修改信息 char name20; Supermarket* p=NULL; coutname; if(p=FindItem(name) couttt已找到商品的信息,请输入新的信息!Next-Input(); cout修改成功!endl; cout输入任意字符!继续; getch(); else couttt没有找到!endl; cout输入任意字符!继续; getch(); void Supermarketmassage:RemoveItem()/ 删除信息 int date(int &,int &,int &);int year1,month1,day1,year2,month2,day2,sum1,sum2,SUM; coutyear1month1day1; sum1=date(year1,month1,day1); coutyear2month2day2; sum2=date(year2,month2,day2); SUM=sum2-sum1; if(SUM=30) cout该商品处于平安期,不用处理endl; else char name20; Supermarket * p=NULL,*temp=NULL; couttt请输入要删除的商品名:name; if(p=FindItem(name) temp=p-Next; p-Next=p-Next-Next; delete temp; couttt删除成功!endl; cout输入任意字符!继续; getch(); else couttt没有找到!endl; cout输入任意字符!继续; getch(); int date(int &day,int &month,int &year) /日期函数 int sum,leap; switch(month) /先计算某月以前月份的总天数 case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default:cout2) /如果是闰年且月份大于2,总天数应该加一天 sum+; return sum; void Supermarketmassage:sale() /销售函数 Supermarket a; Supermarket* p=NULL; int m; char name20 ,Num10; cout请输入想要销售的商品信息:endl; coutntt*n; couttt 1.按商品的名称查找ntt 2.按商品编号查找; coutm; switch(m) case 1: coutname; if(p=FindItem(name) coutnumber; if(number=Enum1) cout销售成功!endl; cout输入任意字符!继续; getch(); else cout库存缺乏,请重新输入!endl; cout输入任意字符!继续; getch(); else couttt没有找到!endl; cout输入任意字符!继续; getch(); break; case 2: coutNum; if(p=FindNum(Num) coutnumber; if(number=Enum1) cout销售成功!endl; cout输入任意字符!继续; getch(); else cout库存缺乏,请重新输入!endl; cout输入任意字符!继续; getch(); else couttt没有找到!endl; coutname,p1-name); /字符串name里面 strcpy(temp-Num,p1-Num); strcpy(temp-Add,p1-Add); temp-um=p1-um; temp-Mnum=p1-Mnum; temp-Enum=p1-Enum; temp-Price=p1-Price; temp-Sum=p1-Sum; strcpy(p1-name,p2-name); strcpy(p1-Num,p2-Num); strcpy(p1-Add,p2-Add); p1-um=p2-um; p1-Mnum=p2-Mnum; p1-Enum=p2-Enum; p1-Price=p2-Price; p1-Sum=p2-Sum; strcpy(p2-name,temp-name); strcpy(p2-Num,temp-Num); strcpy(p2-Add,temp-Add); p2-um=temp-um; p2-Mnum=temp-Mnum; p2-Enum=temp-Enum; p2-Price=temp-Price; p2-Sum=temp-Sum; int Supermarketmassage:ListCount()/统计当前链表的记录总数,返回一个整数 if(! Head) return 0; int n=0; for(Supermarket * p=Head-Next;p!=End;p=p-Next) n+; return n; void Supermarketmassage:Sort()/对当前链表进展排序 cout Sorting.endl; Supermarket *p=NULL,*p1=NULL,*k=NULL; int n=Supermarketmassage:ListCount(); if(nNext;p!=End;p=p-Next) for(k=p-Next;k!=End;k=k-Next) if(p-Addk-Add) Supermarketmassage:Swap(p,k); cout 排序完成!Next;p!=End;p=p-Next) outnamett Numtt umtt Mnumtt Enumtt Addtt Pricett Sumn; out.close(); void xinxing() /系统开场的心形图形 int i, j, k, l, m; char c=3; for (i=1; i=3; i+) for (j=1; j=32-2*i; j+)cout ; for (k=1; k=4*i+1; k+)coutc; for (l=1; l=13-4*i; l+)cout ; for (m=1; m=4*i+1; m+)coutc; coutendl; for (i=1; i=3; i+) for (j=1; j=24+1; j+)cout ; for (k=1; k=29; k+)coutc; cout=1; i-) for (j=1; j=40-2*i; j+)cout ; for (k=1; k=4*i-1; k+)coutc; coutendl; for (i=1; i=39; i+) cout ; coutc; coutendl; void logo() /进入系统的开头int i;coutttendl; for(i=0;i3;i+) couttttttttt endl; couttt【 欢送进入校园超市商品管理系统 】endl; for(i=0;i3;i+) couttttttttt endl; coutttnendl; int mai() system(color E); int x; bool quit=false; xinxing(); logo(); Supermarketmassage Grade; coutx; switch(x) case 0: quit=true; coutendl; coutendl; coutendl; coutendl; coutendl; coutendl; coutendl; coutendl; coutendl; coutendl; cout欢送下次使用endl; system(color C); xinxing(); break; case 1:Grade.AddItem(); break; case 2:Grade.Display(); break; case 3:Grade.Sort(); break; case 4:Grade.Find(); break; case 5:Grade.RemoveItem(); break; case 6:Grade.ModifyItem(); break; case 7:Grade.sale(); break; return 0; void main() mai();
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!