您好,欢迎访问三七文档
08级C++语言课程设计1C++语言课程设计评语及教师签名:电子信息系班级学号4080209学生姓名杨记豪提交日期2010年6月25日成绩08级C++语言课程设计2一.设计题目:商品信息管理系统二.功能要求:程序应完成商品信息录入,查询,浏览、修改等功能。并实现菜单管理设计。三.主菜单示例如下:欢迎使用商品信息管理系统:********************************************1.浏览数据2.增加数据3.修改数据4.查询数据5.退出请选择(1-5):四.流程图:主程序流程图:NNNy增加数据函数的流程图:1cout”“”欢迎…opt=’1’pro.display();break;opt=’2’MultiplexMultiplex08级C++语言课程设计3N浏览数据函数的流程图:YN修改数据的流程图:current!=NULLptr=newproduct;head-next=ptr;ptr-next=current;intcount=0;cout”无商品信息….current=head-next;Head-next==NULLcurrent!=NULLcoutsetw(10)current……cout”共有”counts……08级C++语言课程设计4NYN查找函数的流程图:intcount=0;cout”无法显示数据”;prev=current;Multiplexcoutnum1….cout”欲修改商品…..head-next==NULLcurrent!=NULLcurrent!=NULL08级C++语言课程设计5YN五.程序实现:#includeiostream.h#includestdlib.h#includestring.h#includeiomanip.hstructproduct//创建一个结构体,保护商品号、名称{//价格、生产厂家、生产日期、现存量charnum[20];//还有指向下一个结构体的指针*nextcharname[20];doubleprice;charaddress[20];chardate[20];intsum;structproduct*next;};classlist//创建一个list类charopt;Multiplexopt=’1’break;opt=’2’cout”请输入你要…..Multiplex08级C++语言课程设计6{private:product*ptr;product*head;product*tail;product*current;product*prev;public:list();voidadd();voiddisplay();voidmodity();voidsearch();};list::list()//构造函数,{head=newproduct;//在构造函数中创建一个空的链表head-next=NULL;tail=NULL;}voidlist::add()//添加数据函数{ptr=newproduct;//建立一个新的结点ptrcout商品号:;cinptr-num;cout名称:;cinptr-name;cout价格:;cinptr-price;cout生产厂家:;cinptr-address;cout生产日期:;cinptr-date;cout现存量:;cinptr-sum;prev=head;08级C++语言课程设计7current=newproduct;current=head-next;while(current!=NULL)//如果链表不为空,一直找到它的最后一个元素{prev=current;current=current-next;}ptr-next=current;//在链表的表尾插入prev-next=ptr;}voidlist::display()//浏览数据函数{intcount=0;if(head-next==NULL)cout无商品信息!endl;else{current=head-next;coutsetw(10)商品号setw(10)名称setw(10)价格setw(10)生产厂家setw(10)生产日期setw(10)现存量endl;while(current!=NULL){coutsetw(10)current-numsetw(10)current-namesetw(10)current-pricesetw(10)current-addresssetw(10)current-date08级C++语言课程设计8setw(10)current-sumendl;count++;current=current-next;}cout共有countendl;//输入存储的商品的种类数}}voidlist::modity()//修改数据函数{intcount=0;charnum1[20];if(head-next==NULL)cout无法显示数据endl;else{cout欲修改商品号:;cinnum1;current=head-next;while((current!=NULL)&&(strcmp(current-num,num1)!=0)){prev=current;current=current-next;}if(current!=NULL){cout***********************endl;cout商品号:current-numendl;cout名称:current-nameendl;cout价格:current-priceendl;cout生产厂家:current-addressendl;08级C++语言课程设计9cout生成日期:current-dateendl;cout现存量:current-sumendl;cout***********************endl;cout请输入新的商品名称:;cincurrent-name;cout请输入新的商品价格:;cincurrent-price;cout请输入新的商品生产厂家:;cincurrent-address;cout请输入新的商品生产日期:;cincurrent-date;cout请输入新的商品现存量:;cincurrent-sum;coutnum1号商品的数据已经被修改endl;}elsecoutnum1号商品找不到endl;}}voidlist::search()//查找数据函数{charopt;charnum1[20],name1[20];cout请选择用那一种方式查找:endl;cout1按商品号endl;cout2按名称endl;cinopt;switch(opt){case'1'://按商品号查找{cout请输入你要查找的商品号:;cinnum1;current=head-next;while((current!=NULL)&&(strcmp(current-num,num1)!=0)){prev=current;08级C++语言课程设计10current=current-next;}if(current!=NULL){cout恭喜你找到了,商品信息为:endl;cout***********************endl;cout商品号:current-numendl;cout名称:current-nameendl;cout价格:current-priceendl;cout生产厂家:current-addressendl;cout生成日期:current-dateendl;cout现存量:current-sumendl;cout***********************endl;}elsecout对不起,没找到你要查找的商品!endl;}break;case'2'://按商品名称查找{cout请输入你要查找的商品名称:;cinname1;current=head-next;while((current!=NULL)&&(strcmp(current-name,name1)!=0)){prev=current;current=current-next;}if(current!=NULL){cout恭喜你找到了,商品信息为:endl;cout***********************endl;cout商品号:current-numendl;08级C++语言课程设计11cout名称:current-nameendl;cout价格:current-priceendl;cout生产厂家:current-addressendl;cout生成日期:current-dateendl;cout现存量:current-sumendl;cout***********************endl;}elsecout对不起,没找到你要查找的商品!endl;}}}intmain(){listpro;//创建list类的一个对象charopt;while(1){cout***********************endl;cout1.浏览数据endl;cout2.增加数据endl;cout3.修改数据endl;cout4.查询数据endl;cout5.退出endl;cout请选择(1-5):;cinopt;switch(opt){case'1':pro.display();break;case'2':pro.add();break;case'3':pro.modity();break;08级C++语言课程设计12case'4':pro.search();break;case'5':system(PAUSE);return0;}}}六.运行结果:七.课程设计总结程序的不足:1、程序没有实现文件的操作,自己也对程序加入了文件的打开与关闭,但是未能够运行成功,程序能写到文件中,但是不能正确的读出,未能找到错误所在,所以没有在程序中加入文件操作。2程序不够简洁,在设计程序中走了许多弯路,使得程序看起来比较庸余,程序整体不太很健壮。程序中遇到的问题08级C++语言课程设计131、文件操作未能实现,原因可能是自己对文件的操作不熟悉,不知道文件操作的过程是什么样的,只知道比葫芦画瓢,而对内部的实现机制模糊不清。2、存储商品的种类数的问题,一开始我采用的是顺序表,但是商品的种类有一上限,一旦存储商品的种类数超过了这个上限,就需要对其重新开辟空间或增加空间。为了解决上述问题,我采用了线性表的链式存储,这样就不需要考虑存储空间不足的问题,但是也同样存在不足之处,比如,在数据的查找时没有顺序存储的方便,必须从链表的头指针开始逐个查找。3、使用链表遇到的问题,以前都是用顺序表写程序,第一次用链表写,感觉很饶人,我好几次都被它给整蒙了,什么头指针、尾指针,什么当前指针,现在想起来依旧心有余悸,不过最终自己还是做出来了,我常在指针的指向出错,往往不知道指针指向了哪里,尤其是在添加数据时,先判断链表是否为空,为空该如何
本文标题:商品信息管理系统
链接地址:https://www.777doc.com/doc-4355481 .html