C++超市管理系统.doc
《C++超市管理系统.doc》由会员分享,可在线阅读,更多相关《C++超市管理系统.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、华南理工大学广州学院2011-2012学年度第二学期课程名称:数据结构作业题目:超市管理系统专 业:网络工程年 级:2010级姓 名:伍灼兴学 号:21 系统概述本系统是一个超市简单管理系统,以菜单为选择,通过调用相关的函数,实现添加、删除、排列、显示等不同功能,同时,本系统采用“链表”的形式,函数的返回只是一个头结点,通过头结点可以找到所有链表中的信息,只要找到头指针就能进行相应的操作,所以模块化的程序方便以后的添加和删除、查询某些功能;至于排序方面,本系统,采用稳定又快捷的排序方法冒泡排序,根据联系号码的数字顺序进行从小到大排列;程序中通过system(“cls”)清屏函数实现界面的转换,
2、主函数中的循环保证程序不会退出,方便而美观;同时,还利用了字符串复制函数strcpy,作为一个简单的超市管理管理系统,除了完成以上一些基本输入功能外,还增加了文件的读入和写出功能,增强了程序的实用性。2 程序概要设计l 模块1:函数头文件 #include /包括cin , cout 函数定义#include /包括 文本文档的读/写/ 函数定义#include /包括 类,对象,数组函数定义l 模块2:主函数 int main()l 模块3:子函数 struct结构体的数据: void SuperMarket:input()/信息输入 void SuperMarket:display()/信
3、息输出 class类的功能:SuperMessage: SuperMessage()/无参构造函数 SuperMessage:SuperMessage()/析构函数(释放单链表) void SuperMessage:Save()/保存文件void SuperMessage:BubbleSort()/冒泡排序 void SuperMessage:Insert()/插入void SuperMessage:Delete()/删除SuperMarket * SuperMessage:Search(char * goodsname)/ 查找void SuperMessage:Change()/修改voi
4、d SuperMessage:Show()/显示2.1 实现功能l 函数头调用系统中的相关函数,以确保程序的运行正常。l 建立一个超市管理系统结构体SuperMarket有相关变量和链接指针:struct SuperMarket /数据结构体char goodsname100; /货物名称 int goodsmarket; /货物编号 int allgoodsmarket; /进货总数 char sellmarket100; /售出数目int reservemarket;/剩余库存数目int s; /定义变量SuperMarket * Next;/链表指向下一个节点void Read & in
5、); /读入数据void input();/输入数据void display();/输出数据l 建立一个超市管理系统类SuperMessage来说明超市管理系统里的功能内容(是通过函数来实现): class SuperMessage/功能类public:SuperMessage();/构造函数 SuperMessage();/析构函数(释放单链表)void Save();/保存数据SuperMarket * Search(char *); /查找void BubbleSort();/排序void Insert();/插入void Delete();/删除void Change();/更改voi
6、d Show();/显示void S *,SuperMarket *); /两个SuperMarket对象交换数据域private:SuperMarket * End,* Head;ifstream in; /定义读,写文件对象ofstream out;l 主函数:定义一个布尔型变量flag并初始化为真true,当while(flag),即flag=1,则执行while循环语句里面的代码,同时也用于退出系统时中的swith选择语句,令flag=false (case 0:flag=false;break;),输入0,则退出系统。2.2 程序流程确定?货物信息1.添加Y/输入N显示所有货物信息2
7、.显示有序显示货物用户信息3.排序结束输入货物名称显示4.查找选择功能进行操作使用界面输入货物名称删除5.删除输入货物名称重新输入货物信息6.修改保存货物信息到文件7.保存0.退出3 程序详细设计3.1 求解方法l 超市管理系统添加货物信息模块:主要功能是添加货物相关信息模块,添加货物信息操作是根据货物的要求实现的。包括添加货物相关信息的货物名称、货物编号、进货总数、售出数目、剩余库存数目,最后输入完成后,通过按任意键回到主界面,部分主要代码如下: void SuperMarket:input()/信息输入cout请输入货物名称goodsname;cout请输入货物编号goodsmarket;
8、cout请输入进货总数allgoodsmarket;cout请输入售出数目sellmarket;cout请输入剩余库存数目reservemarket;s=j+;void SuperMessage:Insert()/插入End-input();/从单链表尾部插入End-Next=new SuperMarket;End=End-Next;coutendl插入信息已成功Next; p!=End; p=p-Next)p-display(); 分析:这里用了一个for循环,起始值是Supermarket的头结点,从头结点开始直至指向尾结点,通过p指向数据输出display,把货物的相关信息全部列出来。l
9、 超市管理系统排序货物信息模块:有效地排序所有货物的信息,主要根据货物编号码进行排序(递增的方式),大大提高的货物界面的可观性,考虑到稳定性和时间复杂性,所以用到冒泡排序(起泡法),部分代码如下: void SuperMessage:BubbleSort()/冒泡排序SuperMarket *p=NULL,*q=NULL;int exchange=j-1;int bound;int i;while(exchange)bound=exchange; exchange=0;for(p=Head-Next,i=1;iNext)if(p-allgoodsnumberp-Next-allgoodsnum
10、ber)SNext); /调用交换函数exchange=p-s;Show();分析:定义Supermarket的两个指针,分别是p、q,并初始值为空NULL,用冒泡法进行两两比较,把最小的allgoodnumber筛选出来,以此类推,按递增的方式进行排序,其中这里用到swap语句,适用于进行两两交换的,非常适用于冒泡这种排序,同时调用Show()函数,显示所有货物的信息。l 超市管理系统查找货物信息模块:主要是查询货物的信息,界面提示要输入需要查询的货物名称,如果不正确,显示此货物不存在,提示用户重新核对。如果正确,则显示出货物的所有信息货物名称、货物编号、进货总数、售出数目、剩余库存数目。部
11、分主要代码如下:SuperMarket * SuperMessage:Search(char * goodsname)/ 查找for(SuperMarket *p=Head-Next;p!=End;p=p-Next)if(!strcmp(p-goodsname,goodsname) if(x=4)p-display();return p;elsereturn p;if(x=4)cout此货物不存在,请重新核对endl;return 0;分析:在主函数main中的switch语句里,输入要查找货物的名称,其中此处用了比较字符串stcmp,即:两个字符串自左向右逐个字符相比(按ASCII值大小相比
12、较),直到出现不同的字符或遇0为止。主要用于查找的货物名称与系统内部是否相同,for if语句就是用来判断,如果相同,就认为相等,就调用了display()输出数据,把需要查找的货物信息输出,不相等,int x是全局变量,提示用户核对后再输入。l 超市管理系统删除货物信息模块:主要功能是删除不再需要的货物信息,或货物已过了保存期,需要烧毁,就输入你要删除的货物名称如果没有的话,将提示:没有找到!如果找到,则提示货物相关信息的已经从超市管理系统中删去。部分主要代码如下: void SuperMessage:Delete()/删除char goodsname100;SuperMarket * p=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 超市 管理 系统
限制150内