还剩26页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
信息技术系课程设计报告课程物品库存管理年级专业计算机应用姓名实验内容1.程序功能介绍用文件系统实现的物品库存管理程序一种商品的品种里面包括三个品牌,以品种为单位,可以实现商品品种的添加、删除、查找、显示等功能2.课程设计要求
(1)组成商品品种的品牌不限数量,设置一个最大值(比如10),增加一个成员变量指示品牌的具体数量商品品种的数量是每个品牌的数量之和
(2)设计输出每日进货与出货的统计表,要求进货与出货分别为两个文本文件,清单上列有进出货物的时间、品种描述,具体品牌的进出货数量,如果是出货清单,在每笔出货的清单后还要有该次提取货物的总价格
(3)商品品种以品种代码的顺序存放3.程序设计思想该设计比较复杂,要对原程序做较大的修改,首先是数据的存放形式,因为要求数据按代码的顺序存放,并且进出货时对数据的各个组成成员都要做较大的修改如果要用文件的形式存放,那么文件的读写就非常频繁,而且要使用大量的临时文件,因此建议使用链表的形式存放数据,在程序开始运行时读取固定文件中的数据,程序运行时全部数据都在内存进行操作在程序运行结束前再将链表中的数据存放在原来的文件中,供下次运行程序时读取建议首先将文件读取这部分程序调试好,这样在调试程序时就不用每次都从键盘输入数据了,可以节省大量的时间同时,对链表中结点的操作有很多典型的程序可以参考,不同的结点只是数据部分类型不同,所以只要在上面稍加修改就可以使用(1类的封装由于数据的存放形式使用链表的形式,所以对于程序的很多操作实际上都是要求对链表进行一系列处理其中吧Citem类作为一个结点,因此包含了大量对链表进行操作的函数,为了满足程序的完整性与可读性,应将对链表操作的所有程序封装在一起classBrand//品牌类{......friendclassCItem;//定义品种类为友元类};classCNode//结点类{......friendclassCList;//定义链表类为友元类};注省略部分详见源程序代码及课程设计教材提示部分
(2)程序功能菜单的设置程序主题采用菜单选项的形式,输入相应的菜单选项后程序可以反复运行,而其中还要求
3.
4.
5.
6.项各有一个菜单,分别是按照商品品种名称和按照商品代码进行操作物品库存管理系统**************************************************
1.添加商品品种
2.显示商品品种
3.查询商品
4.删除商品
5.商品出库
6.商品进库
0.退出系统***************************************************4.设计中所负责的部分————商品的出库与入库部分intCItem::SetItemintn//置品种数据,正确返回1,当n为1时,是新进货物,输出至出清单文件{cout\n输入商品名称:;Flushcin;cin.getlineItem_name20;cout\n输入商品代码:;cinItem_code;cout\n输入商品颜色:;Flushcin;cin.getlinecolour20;cout\n输入品牌数:不超过MAX个;cinnBrnd;//循环实现品牌数据的输入count为商品总数forinti=0count=0;inBrnd;i++{cout\n输入品牌i+1的数据\n;cout\n输入品牌名称:;Flushcin;cin.getlinebrnd[i].brnd_name20;cout\n输入品牌代码:;cinbrnd[i].Brand_code;cout\n输入数量:;cinbrnd[i].quantity;cout\n输入价格:;cinbrnd[i].brnd_price;count+=brnd[i].quantity;}quantity=count;ifn==1{ofstreamfile进货清单.txtios::out|ios::ate;if!file{cout错误,不能打开文件.;getch;exit1;}timer=timeNULL;filectimetimer;file品种\t代码\t颜色\n;fileItem_name\tItem_code\tcolour\n;file品牌\t代码\t数量\t价格\n;forinti=0;inBrnd;i++{filebrnd[i].brnd_name\tbrnd[i].Brand_code\tbrnd[i].quantity\tbrnd[i].brnd_price\n;}file\n;file.close;}return1;}此函数的两个功能第一个是在添加商品时从键盘输入商品的各种数据,调用这个功能时利用n的缺省值,在调用时不给n赋值;第二个是在进货时如果进的是新的品种,那么也要从键盘输入这个品种的各种数据,这部分与第一个功能相同,但是进货要输出进货清单,所以进货功能调用该函数时n设置为1,函数在运行时增加一个判断语句,若n为1时,将所键入的数据输出至进货清单voidCItem::Show//显示品种数据{cout品种\t代码\t颜色\n;coutItem_name\tItem_code\tcolour\n;cout品牌\t代码\t数量\t价格\n;forinti=0;inBrnd;i++{coutbrnd[i].brnd_name\tbrnd[i].Brand_code\tbrnd[i].quantity\tbrnd[i].brnd_price\n;}cout\n\nflush;systempause;cout\n;}这个函数也是与出货功能有关,与InModify的函数类似因为是库中的商品出货,所以商品品种必须存在,若不存在,则输出提示信息,出货失败还有一种可能是商品品种曾经存在,但已经全部出完了,这时,该品种的各种数据还存在,只是数量为零所以,在函数开始执行时要判断库存量是否为零,若为零,则输出提示信息,出货失败在出货成功结束时同样要将本品种的各种品牌的出货数据输出到出货清单中同样,该函数也是对链表中所存在的结点的数据部分的修改voidCItem::OutModify//出货,修改结点中的数据部分{intchoicecountchuhuoprice=0;//chuhuo为出货量,price为总价格int*num;num=newint[nBrnd];ifquantity==0{cout数量为
0.;exit1;}forinti=0;inBrnd;i++//储存原来的数量{num[i]=brnd[i].quantity;}cout品牌\t代码\t数量\t价格\n;fori=0;inBrnd;i++{couti+
1.brnd[i].brnd_name\tbrnd[i].Brand_code\tbrnd[i].quantity\tbrnd[i].brnd_price\n;}cout\n\n;cout输入数字选择出货商品或按0退出.\n;cinchoice;whilechoice=1choice=nBrnd{cout输入商品数量:;cincount;whilecountbrnd[choice-1].quantity{cout库存不足,重新输入:;cincount;}brnd[choice-1].quantity-=count;cout出货成功,按0退出或按数字继续出货.\n;cinchoice;}ofstreamfile出货清单.txtios::out|ios::ate;if!file{cout错误,不能打开文件.;getch;exit1;}timer=timeNULL;filectimetimer;file品种\t代码\t颜色\n;fileItem_name\tItem_code\tcolour\n\n;file品牌\t代码\t价格\t出货量\n;fori=0;inBrnd;i++{ifchuhuo=num[i]-brnd[i].quantity{price=chuhuo*brnd[i].brnd_price;filebrnd[i].brnd_name\tbrnd[i].Brand_code\tbrnd[i].brnd_price\tchuhuo\n;}}file总价格为:price\n\n;delete[]num;file.close;}InModify()同样也与进货功能有关因为所进的品种可能是也有的品种,只是增加其中的数量而已所以,在输入进货品种或品种代码时要判断是否是库中已有的品种,若是就调用这个函数,只从键盘输入具体的品牌数量或新增品牌数据即可,而不用在键入品种的各种数据,同时,新键入的各种数据也输出到进货清单实际上该函数是对链表中所存在的结点的数据部分的修改此函数先判断出货量是不是大于库存量,如果大于将显示“库存不足,重新输入”如果小于的话将会继续程序,通过brnd[choice-1].quantity-=count;把原有量减去省下剩余量voidCItem::InModify//已有商品,再次进货,修改结点中的数据部分{charname
[20];charchoice;intcountjinhuo=0;intprenBrnd=nBrnd;//原先品牌数intn=1;//用于判断是否继续进货intflag=0;//用于判断是否新品牌int*num;num=newint[prenBrnd];forinti=0;inBrnd;i++//储存原来的数量{num[i]=brnd[i].quantity;}whilen{cout\n\n输入品牌名称:;Flushcin;cin.getlinename20;forinti=0;inBrnd;i++{ifstrcmpbrnd[i].brnd_namename==0{cout\n\n输入进货数量:;cincount;brnd[i].quantity+=count;quantity+=count;flag=1;break;}}ifflag==0{strcpybrnd[nBrnd].brnd_namename;cout\n输入品牌代码:;cinbrnd[nBrnd].Brand_code;cout\n输入数量:;cinbrnd[nBrnd].quantity;cout\n输入价格:;cinbrnd[nBrnd].brnd_price;quantity+=brnd[nBrnd].quantity;nBrnd++;}cout\n继续进货:y/n;cinchoice;ifchoice==y||choice==Yn=1;elsen=0;}ofstreamfile进货清单.txtios::out|ios::ate;if!file{cout错误,不能打开文件.;getch;exit1;}timer=timeNULL;filectimetimer;file品种\t代码\t颜色\n;fileItem_name\tItem_code\tcolour\n\n;file品牌\t代码\t价格\t进货量\n;fori=0;iprenBrnd;i++{ifjinhuo=brnd[i].quantity-num[i]{filebrnd[i].brnd_name\tbrnd[i].Brand_code\tbrnd[i].brnd_price\tjinhuo\n;}}ifnBrndprenBrnd{fori=prenBrnd;inBrnd;i++{filebrnd[i].brnd_name\tbrnd[i].Brand_code\tbrnd[i].brnd_price\tbrnd[i].quantity\n;}}file\n\n;delete[]num;file.close;}
5.课程设计遇到的技术问题与解决思路
1.在实际操作中,可能会因错误而输入错误的字符,这时可能会对程序的正常运行造成影响,所以必须刷新输入流清除储存器中的数据,经过翻阅C语言方面的资料发现使用以下函数就可实现inlineistreamFlushistreamstream{stream.clear;intchars_to_skip=stream.rdbuf-in_avail;returnstream.ignorechars_to_skip;}
2.怎样实现按任意键回到主菜单为了使程序的可读性和使用的方便性更好,设计程序时,打算增加此功能在设计过程中,试图通过一段程序实现,但始终都要输入一个字符后按回车键才行,表面上已经实现了此功能,但其实并没有达到预期的效果过了几天,在网上查找相关资料,终于在别人设计的一个小程序里面找到代码,原来只需要在利用库函数里面的一函数system,当然这里要包含头文件dos.h,程序中加入system“pause”即可达到要求
3.为保证程序界面的美观,如何清屏?在图书馆查阅了有关方面的书籍和文献,利用网络资源,使用函数systemcls即可程序完整代码#includeiostream.h#includeconio.h#includeiomanip.h#includefstream.h#includestring.h#includestdlib.h#includetime.h#includedos.h#includeprocess.h//exit1time_ttimer;inlineistreamFlushistreamstream//清除储存器中数据{stream.clear;intchars_to_skip=stream.rdbuf-in_avail;returnstream.ignorechars_to_skip;}#defineMAX10//运用宏定义,规定品牌数最大为10classBrand//品牌类{private:charbrnd_name
[20];//品牌名称intBrand_code;//品牌代号intquantity;//数量floatbrnd_price;//价格public:Brand{quantity=0;strcpybrnd_name0;}friendclassCItem;//定义友元类};classCItem//品种类{private:charItem_name
[10];//品种名称intItem_code;//品种代号charcolour
[10];//颜色intquantity;//数量Brandbrnd[MAX];//最多MAX个品牌intnBrnd;//品牌的数量MAXpublic:CItem{strcpyItem_name\0;quantity=0;nBrnd=0;}//缺省构造函数CItemchar*name{strcpyItem_namename;Item_code=0;}//用品种名称构造CItemintcode{Item_code=code;strcpyItem_name\0;}//用品种代码构造intSetItemintn=0;//置品种数据,正确返回1,当n为1时,是新进货物,输出至出清单文件char*GetItemName{returnItem_name;}//返回品种名intGetItemCode{returnItem_code;}//返回品种代码intCompareCItem;//比较品种名称,供查找用,比较结果为1,0intCompareCodeCItem;//比较品种代码,比较结果为1,0voidShow;//显示品种数据voidOutModify;//出货,修改结点中的数据部分voidInModify;//已有商品,再次进货,修改结点中的数据部分};intCItem::CompareCItempitem//比较品种名称,供查找用,比较结果为1,0{intn;n=strcmpItem_namepitem.Item_name;//两个字符串相等,n=0ifn!=0return0;elsereturn1;}intCItem::CompareCodeCItempitem//比较品种代码,比较结果为1,0{returnItem_code==pitem.Item_code;}intCItem::SetItemintn//置品种数据,正确返回1,当n为1时,是新进货物,输出至出清单文件{cout\n输入商品名称:;Flushcin;cin.getlineItem_name20;cout\n输入商品代码:;cinItem_code;cout\n输入商品颜色:;Flushcin;cin.getlinecolour20;cout\n输入品牌数:不超过MAX个;cinnBrnd;//循环实现品牌数据的输入count为商品总数forinti=0count=0;inBrnd;i++{cout\n输入品牌i+1的数据\n;cout\n输入品牌名称:;Flushcin;cin.getlinebrnd[i].brnd_name20;cout\n输入品牌代码:;cinbrnd[i].Brand_code;cout\n输入数量:;cinbrnd[i].quantity;cout\n输入价格:;cinbrnd[i].brnd_price;count+=brnd[i].quantity;}quantity=count;ifn==1{ofstreamfile进货清单.txtios::out|ios::ate;if!file{cout错误,不能打开文件.;getch;exit1;}timer=timeNULL;filectimetimer;file品种\t代码\t颜色\n;fileItem_name\tItem_code\tcolour\n;file品牌\t代码\t数量\t价格\n;forinti=0;inBrnd;i++{filebrnd[i].brnd_name\tbrnd[i].Brand_code\tbrnd[i].quantity\tbrnd[i].brnd_price\n;}file\n;file.close;}return1;}voidCItem::Show//显示品种数据{cout品种\t代码\t颜色\n;coutItem_name\tItem_code\tcolour\n;cout品牌\t代码\t数量\t价格\n;forinti=0;inBrnd;i++{coutbrnd[i].brnd_name\tbrnd[i].Brand_code\tbrnd[i].quantity\tbrnd[i].brnd_price\n;}cout\n\nflush;systempause;cout\n;}voidCItem::OutModify//出货,修改结点中的数据部分{intchoicecountchuhuoprice=0;//chuhuo为出货量,price为总价格int*num;num=newint[nBrnd];ifquantity==0{cout数量为
0.;exit1;}forinti=0;inBrnd;i++//储存原来的数量{num[i]=brnd[i].quantity;}cout品牌\t代码\t数量\t价格\n;fori=0;inBrnd;i++{couti+
1.brnd[i].brnd_name\tbrnd[i].Brand_code\tbrnd[i].quantity\tbrnd[i].brnd_price\n;}cout\n\n;cout输入数字选择出货商品或按0退出.\n;cinchoice;whilechoice=1choice=nBrnd{cout输入商品数量:;cincount;whilecountbrnd[choice-1].quantity{cout库存不足,重新输入:;cincount;}brnd[choice-1].quantity-=count;cout出货成功,按0退出或按数字继续出货.\n;cinchoice;}ofstreamfile出货清单.txtios::out|ios::ate;if!file{cout错误,不能打开文件.;getch;exit1;}timer=timeNULL;filectimetimer;file品种\t代码\t颜色\n;fileItem_name\tItem_code\tcolour\n\n;file品牌\t代码\t价格\t出货量\n;fori=0;inBrnd;i++{ifchuhuo=num[i]-brnd[i].quantity{price=chuhuo*brnd[i].brnd_price;filebrnd[i].brnd_name\tbrnd[i].Brand_code\tbrnd[i].brnd_price\tchuhuo\n;}}file总价格为:price\n\n;delete[]num;file.close;}voidCItem::InModify//已有商品,再次进货,修改结点中的数据部分{charname
[20];charchoice;intcountjinhuo=0;intprenBrnd=nBrnd;//原先品牌数intn=1;//用于判断是否继续进货intflag=0;//用于判断是否新品牌int*num;num=newint[prenBrnd];forinti=0;inBrnd;i++//储存原来的数量{num[i]=brnd[i].quantity;}whilen{cout\n\n输入品牌名称:;Flushcin;cin.getlinename20;forinti=0;inBrnd;i++{ifstrcmpbrnd[i].brnd_namename==0{cout\n\n输入进货数量:;cincount;brnd[i].quantity+=count;quantity+=count;flag=1;break;}}ifflag==0{strcpybrnd[nBrnd].brnd_namename;cout\n输入品牌代码:;cinbrnd[nBrnd].Brand_code;cout\n输入数量:;cinbrnd[nBrnd].quantity;cout\n输入价格:;cinbrnd[nBrnd].brnd_price;quantity+=brnd[nBrnd].quantity;nBrnd++;}cout\n继续进货:y/n;cinchoice;ifchoice==y||choice==Yn=1;elsen=0;}ofstreamfile进货清单.txtios::out|ios::ate;if!file{cout错误,不能打开文件.;getch;exit1;}timer=timeNULL;filectimetimer;file品种\t代码\t颜色\n;fileItem_name\tItem_code\tcolour\n\n;file品牌\t代码\t价格\t进货量\n;fori=0;iprenBrnd;i++{ifjinhuo=brnd[i].quantity-num[i]{filebrnd[i].brnd_name\tbrnd[i].Brand_code\tbrnd[i].brnd_price\tjinhuo\n;}}ifnBrndprenBrnd{fori=prenBrnd;inBrnd;i++{filebrnd[i].brnd_name\tbrnd[i].Brand_code\tbrnd[i].brnd_price\tbrnd[i].quantity\n;}}file\n\n;delete[]num;file.close;}classCNode//结点类{private:CNode*pNext;//指向链表下一结点的指针CItem*pData;//用于指向数据类的指针public:CNode{pData=0;pNext=0;}//结点构造函数CNodeCNodenode//用于拷贝的构造函数{pData=node.pData;pNext=node.pNext;}voidInputDataCItem*pSal{pData=pSal;}//输入数据voidShowNode{pData-Show;}//输出结点中的数据CItem*GetData{returnpData;}//返回下一结点的指针friendclassCList;//定义链表类为友元类};classCList//定义链表类{protected:CNode*pHead;//链表头结点指针public:CList{pHead=0;}~CList{DeleteList;}voidAddNodeCNode*pnode;//首部添加结点CNode*DeleteNodeCNode*;//删除一个指定的结点,返回该结点的指针CNode*LookUpCItem;/*查找一个指定的数据,返回该数据所在结点在链表中的指针,若未找到返回0*/voidShowList;//打印整个链表voidDeleteList;//删除整个链表CNode*GetListHead{returnpHead;}//返回链表首结点CNode*GetListNextNodeCNode*;//返回链表指定结点的下一个结点voidInsertCNode*;//按代码的顺序插入一个结点};voidCList::AddNodeCNode*pnode//首部添加结点{ifpHead==0{pHead=pnode;pnode-pNext=0;}else{pnode-pNext=pHead;pHead=pnode;}}CNode*CList::DeleteNodeCNode*pnode//删除一个指定的结点,返回该结点的指针{ifpnode==pHead//删除的结点是链表的首结点{pHead=pnode-pNext;pnode-pNext=0;}else{CNode*p=pHead;whilep-pNext!=pnodep=p-pNext;p-pNext=pnode-pNext;//删除结点后将前后两个结点再连结起来pnode-pNext=0;}returnpnode;}CNode*CList::LookUpCItempitem/*查找一个指定的数据,返回该数据所在结点在链表中的指针,若未找到返回0*/{CNode*pn=pHead;ifpitem.GetItemCode==0{whilepn{ifpn-pData-Comparepitemreturnpn;//按品种名称查找pn=pn-pNext;}}else{whilepn{ifpn-pData-CompareCodepitemreturnpn;//按品种代码查找pn=pn-pNext;}}return0;}voidCList::ShowList//打印整个链表{CNode*p=pHead;whilep{p-pData-Show;p=p-pNext;}}voidCList::DeleteList//删除整个链表{CNode*p*q;p=pHead;whilep{deletep-pData;q=p;p=p-pNext;deleteq;}}CNode*CList::GetListNextNodeCNode*pnode//返回链表指定结点的下一个结点{returnpnode-pNext;}voidCList::InsertCNode*pnode//按代码的顺序插入一个结点{CNode*p1*p2;ifpHead==0{pHead=pnode;pnode-pNext=0;}elseifpHead-pData-GetItemCode=pnode-pData-GetItemCode{pnode-pNext=pHead;pHead=pnode;}else{p2=p1=pHead;whilep2-pNextp2-pData-GetItemCodepnode-pData-GetItemCode{p1=p2;p2=p2-pNext;}ifp2-pData-GetItemCodepnode-pData-GetItemCode{p2-pNext=pnode;pnode-pNext=0;}else{pnode-pNext=p2;p1-pNext=pnode;}}}voidmain{intchoice;CListlist;CItem*p;CNode*pn;charname
[20];//按商品名称操作时用于输入名称charstr
[20];intcode;//按商品代码操作时用于输入代码ifstreaminfileTIS.txtios::in|ios::nocreate|ios::binary;if!infile{cout数据文件不存在.\nflush;systempause;systemcls;}else{CItempitem;infile.readreinterpret_castchar*pitemsizeofCItem;while!infile.eof{p=newCItem;*p=pitem;pn=newCNode;pn-InputDatap;list.Insertpn;infile.readreinterpret_castchar*pitemsizeofCItem;}}infile.close;do{cout\n\t物品库存管理系统;cout\n**********************************************;cout\n\n
1.添加商品品种;cout\n\n
2.显示商品品种;cout\n\n
3.查询商品;cout\n\n
4.删除商品;cout\n\n
5.商品出库;cout\n\n
6.商品进库;cout\n\n
0.退出系统;cout\n**********************************************;cout\n\n输入选择:;Flushcin;cin.getlinestr20;choice=atoistr;switchchoice{case1://添加商品品种systemcls;p=newCItem;p-SetItem;pn=newCNode;pn-InputDatap;list.Insertpn;systemcls;break;case2://显示商品品种systemcls;pn=list.GetListHead;ifpn==0{cout无库存.endl;systemcls;}else{list.ShowList;systemcls;}break;case3://查询商品systemcls;cout\n\n
1.按商品品种名称查询商品;cout\n\n
2.按商品品种代码查询商品;cout\n\n
0.退出;cout\n\n输入选择:;cinchoice;ifchoice==1{cout\n\n输入品种名称:\n;Flushcin;cin.getlinename20;p=newCItemname;pn=list.LookUp*p;ifpnpn-GetData-Show;else{cout\n没找到商品\n\nflush;systempause;}deletep;}ifchoice==2{cout\n\n输入品种代码:\n;cincode;intn;n=code;p=newCItemn;pn=list.LookUp*p;ifpnpn-GetData-Show;else{cout\n没找到商品\n\nflush;systempause;}deletep;}systemcls;break;case4://删除商品systemcls;cout\n\n
1.按商品品种名称删除商品;cout\n\n
2.按商品品种代码删除商品;cout\n\n
0.退出;cout\n\n输入选择:;cinchoice;ifchoice==1{cout\n\n输入品种名称:\n;Flushcin;cin.getlinename20;p=newCItemname;pn=list.LookUp*p;ifpnlist.DeleteNodepn;else{cout\n没找到商品\n\nflush;systempause;}deletep;}ifchoice==2{cout\n\n输入品种代码:\n;cincode;p=newCItemcode;pn=list.LookUp*p;ifpnlist.DeleteNodepn;else{cout\n没找到商品\n\nflush;systempause;}deletep;}systemcls;break;case5://商品出库systemcls;cout\n\n
1.按商品品种名称进行商品出库;cout\n\n
2.按商品品种代码进行商品出库;cout\n\n
0.退出;cout\n\n输入选择:;cinchoice;ifchoice==1{cout\n\n输入品种名称:\n;Flushcin;cin.getlinename20;p=newCItemname;pn=list.LookUp*p;ifpnpn-GetData-OutModify;else{cout\n没找到商品\n\nflush;systempause;}deletep;}ifchoice==2{cout\n\n输入品种代码:\n;cincode;p=newCItemcode;pn=list.LookUp*p;ifpnpn-GetData-OutModify;else{cout\n没找到商品\n\nflush;systempause;}deletep;}systemcls;break;case6://商品进库systemcls;cout\n\n
1.按商品品种名称进行商品进库;cout\n\n
2.按商品品种代码进行商品进库;cout\n\n
0.退出;cout\n\n输入选择:;cinchoice;ifchoice==1{cout\n\n输入品种名称:\n;Flushcin;cin.getlinename20;p=newCItemname;pn=list.LookUp*p;ifpnpn-GetData-InModify;else{cout\n没找到商品\n\nflush;systempause;}deletep;}ifchoice==2{cout\n\n输入品种代码:\n;cincode;p=newCItemcode;pn=list.LookUp*p;ifpnpn-GetData-InModify;else{cout\n没找到商品\n\nflush;systempause;}deletep;}systemcls;break;case0://退出系统break;default:cout选择错误!\nflush;systempause;systemcls;}}whilechoice!=0;ofstreamoutfileTIS.txtios::binary;if!outfile{cout错误,不能打开文件;getch;exit1;}pn=list.GetListHead;whilepn{p=pn-GetData;outfile.writereinterpret_castconstchar*psizeofCItem;pn=list.GetListNextNodepn;}outfile.close;}6.心得及体会在自己设计的过程中,学到了很多东西当我只是掌握了C++的基本知识时候,要自己编写程序,在我看来仿佛不可思议但是,这是必须做的所以必须把每一句程序都看懂,不明白找资料解决当一步一步完成程序设计要求时候,会体会到什么是豁然开朗,什么是茅塞顿开这是过程给予的快乐在设计的过程中,有时候会找不到头绪想过放弃,想过去别人那里求助但是,当坚持下来,发现自己也能解决的时候,是对自己莫大的肯定程序设计让自己知道没什么不可以的.只要放心思进去.。