还剩41页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
课程设计(论文)题目商店存货管理系统院(系)信息与控制工程学院专业班级计算机201201姓名高美虹学号120620103指导教师张维琪2014年6月27日西安建筑科技大学课程设计(论文)任务书专业班级计算机1201学生姓名高美虹指导教师(签名)
一、课程设计(论文)题目商店存货管理系统说明使用线性表实现商店存货的管理
二、本次课程设计(论文)应达到的目的数据结构是实践性很强的课程课程设计是加强学生实践能力的一个强有力手段课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工__工作作风的训练,将起到显著的促进作用本题目要达到目的熟练掌握线性表的实现
三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)输入数据5种商品的具体信息1.建立一个文件,包括5个种类的货物情况能对商品信息进行扩充(追加)、修改和删除以及简单的排序;2.扩充商品数量,完成系统查询功能;3.提供人机交互的界面
四、应收集的资料及主要____由于本课程没有安排“课内上机”学时,因此,在课程设计之前必须自己已经上机练习了“线性表”的基本操作____
1.RobertL.Kruse,DataStructuresAndProgramDesigninC++,高等教育出版社,
2001.
5.
2.严蔚敏等编著,数据结构(C语言版),清华大学出版社,
1997.4;
3.赵文静等编著,数据结构与算法,科学出版社,
2005.08;
4.孙鑫等编著,VC++深入详解,电子工业出版社,
2007.7
五、审核批准意见教研室主任(签字)设计总说明__一世纪,计算机技术日渐成熟并逐步湿透至我们生活中的各个方面,作为计算机应用的部分,使用计算机对商店存货信息进行管理,具有手工管理所无法比拟的优点,例如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,这些优点能够极大的提高商店信息管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件本次设计主要用数据结构和类阐述一个功能比较强大的的商店存货信息管理系统的后台操作过程及一些关键技术,商店存货管理系统的实现主要用到了单链表,类,对象,指针,首先创建商品信息类型的链表,然后将商品信息存到链表中去,再到链表中对商品信息象进行增、删、改、查、排序,分别由系统的添加模块、删除模块、修改模块、查询模块和排序模块实现,程序中用到了遍历函数、拷贝构造函数和赋值运算符重载函数,可以遍历商品的每个节点并实现商品信息的拷贝本文档主要介绍了商店存货管理系统的设计目的、问题描述、需求分析、概要设计、详细设计、调试分析、使用说明、设计总结、____等本程序实现了基于DOS界面的商店存货管理系统关键字数据结构、类、单链表、节点、遍历目录TOC\o1-3\h\z\u
1.设计目的
12.问题描述
23.需求分析
24.概要设计
35.详细设计
76.调试分析
167.使用说明
198.设计总结
199.____24《数据结构》课程设计-商店存货管理系统
1.设计目的“数据结构”是计算机科学与技术专业一门十分重要的专业技术基础课,计算机科学各领域及有关的应用软件都要使用到各种数据结构对于从事计算机科学及其应用的科技工__来说,数据结构与算法是必须透彻地掌握的重要基础学习数据结构与算法的最终目的是解决实际的应用问题,特别是非数值计算类型的应用问题课程设计是加强学生实践能力的一个强有力手段课程设计所安排的题目,在难度和深度方面都大于平时的上机训练,要求同学在完成设计和编写中小型软件的过程中,深化对数据结构与算法课程中基本概念、理论和方法的理解;训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念;使同学的程序设计与调试水平有一个明显的提高课程设计要求学生在完成程序设计的同时能够撰写比较规范的设计报告严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工__工作作风的训练,将起到显著的促进作用
2.
2.问题描述为了实现对商店货物的定量管理,设计了商店管理系统,系统主要用单链表实现对商品信息(种类、__、货架)的增加、删除、修改、查询和排序程序中用到了遍历函数,可以遍历商品的每个节点该管理系统可以解决人工管理所不能胜任的许多问题,而且使用计算机对商店存货信息进行管理,具有手工管理所无法比拟的优点,例如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长等这些优点能够极大的提高商店信息管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件
3.需求分析
3.1数据需求选择所需的模块
1.添加信息模块,
2.删除信息模块,
3.修改信息模块,
4.查询信息模块,
5.信息排序模块,
6.存入文件模块,
7.文件读取模块,
6.退出选择若选择为1,输入商品的种类、__、货架和所插入的位置若选择为2,输入所删除的位置,若选择为3,输入商品的种类、__、货架和所修改的位置若选择为4,输入所查询的位置若选择为6,输入要添加的文件名称若选择为7,输入要查询的文件名称
3.2基本功能需求基于任务书中的__目标,系统__的范围确定如下本系统涉及添加数据、删除数据、修改数据、查询数据、对数据进行排序、文件的存入和读取
1.输入数据商品的具体信息种类(5种)、__、货架
2.建立一个单链表,能对商品信息进行扩充(追加)、删除、修改、查询以及排序(按__由低到高排);
3.将已有的信息存入文件,从已有文件中读取信息;4.提供人机交互的界面
3.3非功能性需求用户界面需求简洁、易用、易懂、友好的用户界面硬件要求装有VisualC++
6.0的计算机可靠性需求保证用户在正常使用本系统时,用户的操作或误操作不会产生数据的丢失
4.概要设计
4.1数据结构本次设计用到的数据结构有单链表(classList):主要用到了数据结构中的链式存储结构对商品进行增加、删除、修改、查询和排序类(classList):此程序是基于C++实现的,对链表的实现当然也用到了类,类中的成员函数实现链表的各个功能结构体(structNode):为了完成链表的实现,必须设一个Node作为它的一个节点,来存储商品的信息
4.3函数间的关系Insert、remove、repla__、retrieve函数都调用了set_position函数来进行检索特点节点,也都用到了full和empty()函数来进行判满和判空.node是classList的节点,用来表示商品的信息classList通过调用Insert、remove、repla__、retrieve、sort、s__edate、loaddate函数实现对商品货物的增加、删除、修改、查询、把商品信息存入文件和从文件中读取商品信息,析构函数~List通过调用clear()函数实现析构
4.4系统功能模块图图4-1系统功能模块图
5.详细设计
5.1结构体的详细定义templateclassNode_entrystructNode{stringkind1;Node_entrypri__;Node_entryshelf;NodeNode_entry*next;Node;Nodestringkind_1Node_entrypri__2Node_entryshelf2NodeNode_entry*link;};结构体中的数据成员有kindkind1其中kind是枚举类型(分别有cigarettewatergumbeerbread五种类型);Node_entrypri__Node_entry是模板定义的Node中的数据类型,pri__是商品的__;Node_entryshelf Node_entry是模板定义的Node中的数据类型,shelf是商品所处的货架;NodeNode_entry*next Node_entry是模板定义的Node中的数据类型,next指针指向下一个节点;结构体中的成员函数有Node;此函构造数定义next为空Nodekindkind2Node_entrypri__2Node_entryshelf2NodeNode_entry*link此函数用来确定节点中数据成员的信息和所指的下一个Node节点;
5.3系统功能模块介绍添加商品信息模块首先选择所要添加的位置,然后选择要添加商品的种类、__和所处货架,再调用List的insert(....)函数对商品信息进行添加,最后对所添加的商品信息进行显示并按任意键继续删除商品信息模块首先选择所要删除的位置,再调用List的remove(....)函数对商品信息进行删除,最后对所删除的商品信息进行显示并按任意键继续修改商品信息模块首先选择所要修改的位置,然后选择要修改商品的种类、__和所处货架,再调用List的repla__(....)函数对商品信息进行修改,最后对修改后商品的信息进行显示并按任意键继续查询商品信息模块首先选择所要查询的位置,再调用List的retrieve(....)函数对商品信息进行查询,最后对所查询的商品信息进行显示并按任意键继续商品信息排序模块调用List的voidsort()函数对商品信息进行排序,排序所用的算法是简单插入排序的链表版,按照商品__由低到高对List中的货物进行排序,最后对排序后的商品信息进行显示模块选择要存入的文件名,将已有商品信息存入文件商品信息排序模块选择要读取的文件名,从已有文件中读取商品信息退出选择模块退出商店存货管理系统的使用
5.4具体模块设计添加商品信息模块是否图5-1商品信息的插入流程图商品信息模块是否图5-2商品信息的删除流程图商品信息模块是否图5-3商品信息的修改流程图商品信息模块是否图5-4商品信息的查询流程图商品信息排序模块图5-5商品信息的排序流程图图5-6写入文件流程图模块图5-7读取文件流程图
6.调试分析本软件是基于Windows的编程__,所以,软件调试必须在Windows环境下进行调试前须做好准备工作1需要__VisualC++
6.0的计算机一台;配置好之后,在VisualC++
6.0环境下进行软件的调试2测试数据商品信息输入在“插入商品信息”模块中,根据主界面提示,键入数字1,确定,再按提示进行操作测试,添加一条记录后,发现在数据文本中有保存该记录,如果错误输入,观察是否能正常提示信息否则修改程序再进行调试例如输入1后确定,程序显示“请输入你要插入的位置”,键入位置如2,继续操作,假设数据为cigarette121,程序正常运行退出保存商品信息删除在“删除商品信息”模块中,根据主界面提示,键入数字2,确定,再按提示进行操作测试,删除一条记录后,发现在数据文本中有保存该记录,如果错误输入,观察是否能正常提示信息否则修改程序再进行调试例如输入2后确定,程序显示“请输入你要删除的数据的位置”,键入位置如2,继续操作,假设数据为cigarette121程序正常运行退出保存商品信息修改在“商品信息修改”模块中,根据主界面提示,键入数字3,确定,再按提示进行操作测试,输入修改位置及修改后的信息,如果错误输入,观察是否能正常提示信息否则修改程序再进行调试例如输入3后确定,程序显示“请输入你要修改的位置”,键入位置如2,继续操作,假设数据为cigarette121,程序正常运行退出保存商品信息的查询按商品信息在单链表中所处的位置进行查询在“商品信息查询”模块中,根据主界面提示,键入数字4,确定,再按提示进行操作测试,输入查询的位置,如果错误输入,观察是否能正常提示信息否则修改程序再进行调试例如输入4后确定,程序显示“请输入你要查询的位置”,键入位置如2,继续操作,假设输出数据为cigarette121,程序正常运行退出保存商品信息的排序按商品__由低到高进行排序在“商品信息排序”模块中,根据主界面提示,键入数字5,确定,观察是否能正常显示商品信息,否则修改程序再进行调试例如输入5后确定,,假设输出数据为cigarette121;cigarette132;cigarette
143.程序正常运行退出保存商品信息加入文件根据主界面提示,输入要加入的文件名,确定,观察是否能正常执行,否则修改程序再进行调试例如输入a后确定,假设输出数据为加入文件成功,程序正常运行退出保存商品信息从文件中读取根据主界面提示,输入要读取的文件名,确定,观察是否能正常执行,否则修改程序再进行调试例如输入a后确定,假设输出数据为读取文件成功,程序正常运行退出保存3算法改进设想在程序设计前期,我们并没有用___文件来保存商品信息经过我不断的修改以及调试后,该程序总算可以进行___文本的读出与写入,并且添加商品信息后可以直接将信息保存在___文本文件中
7.使用说明
7.1主菜单图7-1主菜单
7.2添加商品信息图7-2添加商品信息
7.3删除商品信息图7-3删除商品信息
7.4修改商品信息图7-4修改商品信息
7.5查询商品信息图7-5查询商品信息
7.6商品信息排序图7-6商品信息排序
7.7商品信息存入文件图7-7商品信息存入文件图7-8文件中的信息
7.8商品信息从文件中读取图7-9商品信息从文件中读取
8.源程序#includeiostream#includeio__nip#includestring#includeconio.h#includefstream#includewindows.h#includemmsystem.husingnamespa__std;enumError_code{suc__ssfailrange_errorunderflowoverflowfatalnot_presentduplicate_errorentry_insertedentry_foundinternal_error};//enumkind{cigarettewatergumbeerbread};templateclassNode_entrystructNode{stringkind1;Node_entrypri__;Node_entryshelf;NodeNode_entry*next;Node;Nodestringkind_1Node_entrypri__2Node_entryshelf2NodeNode_entry*link;};templateclassNode_entryNodeNode_entry::Node{next=NULL;}templateclassNode_entryNodeNode_entry::Nodestringkind_1Node_entrypri__2Node_entryshelf2NodeNode_entry*link=NULL{kind1=kind_1;pri__=pri__2;shelf=shelf2;next=link;}templateclassList_entryclassList{public:Error_codeinsertListlistconststringkind_1constList_entrypri__2constList_entryshelf2;Error_coderemoveListliststringkind_1List_entrypri__2List_entryshelf2;Error_coderepla__Listlistconststringkind_1constList_entrypri__2constList_entryshelf2;Error_coderetrieveListliststringkind_1List_entrypri__2List_entryshelf2const;voidsort;List;intsizeconst;boolfullconst;boolemptyconst;voidclear;voidtr__ersevoid*visitList_entry;~List;ListconstListList_entrycopy;voidoperator=constListList_entrycopy;voids__edateListList_entrylist;voidloaddateListList_entrylist;protected:intcount;NodeList_entry*head;NodeList_entry*set_positionintpositionconst;};templateclassList_entryError_codeListList_entry::insertListlistconststringkind_1constList_entrypri__2constList_entryshelf2{intposition=list.size;ifposition0||positioncountreturnfail;NodeList_entry*new_node*previous*following;ifposition0{previous=set_positionposition-1;following=previous-next;}elsefollowing=head;new_node=newNodeList_entrykind_1pri__2shelf2following;ifnew_node==NULLreturnoverflow;ifposition==0head=new_node;elseprevious-next=new_node;count++;returnsuc__ss;}templateclassList_entryError_codeListList_entry::removeListliststringkind_1List_entrypri__2List_entryshelf2{stringkin_d;intposition;cout输入要删除商品的种类;cinkin_d;coutendl;NodeList_entry*h=head;forposition=0;h-kind1!=kin_d;position++h=h-next;NodeList_entry*prior*current;ifcount==0returnfail;ifposition0||position=countreturnfail;ifposition0{prior=set_positionposition-1;current=prior-next;prior-next=current-next;}else{current=head;head=head-next;}kind_1=current-kind1;pri__2=current-pri__;shelf2=current-shelf;deletecurrent;count--;returnsuc__ss;}templateclassList_entryError_codeListList_entry::repla__Listlistconststringkind_1constList_entrypri__2constList_entryshelf2{stringkin_d;intposition;cout输入要修改商品的种类;cinkin_d;coutendl;NodeList_entry*h=head;forposition=0;h-kind1!=kin_d;position++h=h-next;NodeList_entry*current;ifposition0||position=countreturnfail;current=set_positionposition;current-kind1=kind_1;current-pri__=pri__2;current-shelf=shelf2;returnsuc__ss;}templateclassList_entryError_codeListList_entry::retrieveListliststringkind_1List_entrypri__2List_entryshelf2const{stringkin_d;intposition;cout输入要查询商品的种类;cinkin_d;coutendl;NodeList_entry*h=head;forposition=0;h-kind1!=kin_d;position++h=h-next;NodeList_entry*current;ifposition0||position=countreturnfail;current=set_positionposition;kind_1=current-kind1;pri__2=current-pri__;shelf2=current-shelf;returnsuc__ss;}templateclassList_entryvoidListList_entry::sort{NodeList_entry*first_unsorted*last_sorted*current*trailing;ifhead!=NULL{last_sorted=head;whilelast_sorted-next!=NULL{first_unsorted=last_sorted-next;iffirst_unsorted-pri__head-pri__{last_sorted-next=first_unsorted-next;first_unsorted-next=head;head=first_unsorted;}else{trailing=head;current=trailing-next;whilefirst_unsorted-pri__current-pri__{trailing=current;current=trailing-next;}iffirst_unsorted==currentlast_sorted=first_unsorted;else{last_sorted-next=first_unsorted-next;first_unsorted-next=current;trailing-next=first_unsorted;}}}}NodeList_entry*q=head;cout排序后的信息:endl;forinti=0;q;i++{cout商品类型商品__商品货架endl;cout;coutq-kind1;cout;coutq-pri__;cout;coutq-shelf;coutendlendl;q=q-next;}systempause;cout\n;coutendl;}templateclassList_entryListList_entry::List{count=0;head=NULL;}templateclassList_entryintListList_entry::sizeconst{returncount;}templateclassList_entryboolListList_entry::fullconst{returnfalse;}templateclassList_entryboolListList_entry::emptyconst{returncount=0;}templateclassList_entryvoidListList_entry::clear{NodeList_entry*p*q;forp=head;p;p=q{q=p-next;deletep;}count=0;head=NULL;}templateclassList_entryvoidListList_entry::tr__ersevoid*visitList_entry{NodeList_entry*q;forq=head;q;q=q-next;}templateclassList_entryListList_entry::~List{clear;}templateclassList_entryListList_entry::ListconstListList_entrycopy{count=copy.count;NodeList_entry*new_node*old_node=copy.head;ifold_node==NULLhead=NULL;else{new_node=head=newNodeList_entryold_node-entry;whileold_node-next!=NULL{old_node=old_node-next;new_node-next=newNodeList_entryold_node-entry;new_node=new_node-next;}}}templateclassList_entryvoidListList_entry::operator=constListList_entrycopy{Listnew_copycopy;clear;count=new_copy.count;head=new_copy.head;new_copy.count=0;new_copy.head=NULL;}templateclassList_entryNodeList_entry*ListList_entry::set_positionintpositionconst{NodeList_entry*q=head;forinti=0;iposition;i++q=q-next;returnq;}voidwrite_entrycharc{coutc;}voidfirst_fa__{coutendl;coutendl\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆endl\t\t◆◆endl\t\t◆商店存货管理系统◆endl\t\t◆◆endl\t\t◆
1.商品增加◆endl\t\t◆◆endl\t\t◆
2.商品删除◆endl\t\t◆◆endl\t\t◆
3.商品修改◆endl\t\t◆◆endl\t\t◆
4.商品查询◆endl\t\t◆◆endl\t\t◆
5.商品排序◆endl\t\t◆◆endl\t\t◆
6.存入文件◆endl\t\t◆◆endl\t\t◆
7.文件读取◆endl\t\t◆◆endl\t\t◆
8.退出系统◆endl\t\t◆◆endl\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆endlendl\t\t;}templateclassList_entryvoidListList_entry::s__edateListList_entrylist{intposition;ofstreamout;out.openfile.___;out种类setw10__setw10货架endl;NodeList_entry*h=head;forposition=0;h;position++{outh-kind1setw12h-pri__setw12h-shelfendl;h=h-next;}cout成功存入!endl;}templateclassList_entryvoidListList_entry::loaddateListList_entrylist//从文件中读取商品信息{ifstreamfile;intposition;charfname
[41];cout请输入读取的文件名endl;cinfname;file.openfnameios::in;if!file{cout打开文件失败!endl;cin.get;}else{NodeList_entry*h=head;forposition=0;h;position++{iffile!file.eoffile.readreinterpret_castchar*listsizeoflist;if!list.emptyh=h-next;}file.close;cout读取成功!endl;}}int__in{intselect;stringkind1;intpri__;intshelf;Listintc_list;do{first_fa__;coutDoyourselect:;cinselect;coutendl;switchselect{case1:cout商品种类;cinkind1;cout商品__:;cinpri__;cout商品货架:;cinshelf;coutendl;c_list.insertc_listkind1pri__shelf;cout所添加的信息为endl;cout商品类型商品__商品货架endl;cout;coutkind1;cout;coutpri__;cout;coutshelf;coutendlendl\t该商品已经添加成功.......endlendl\t;systempause;cout\n;coutendl;break;case2:c_list.removec_listkind1pri__shelf;setw10;cout所删除的信息为endl;cout商品类型商品__商品货架endl;cout;coutkind1;cout;coutpri__;cout;coutshelf;coutendlendl\t该商品已经删除成功.......endlendl\t;systempause;break;case3:cout商品种类;cinkind1;cout商品__:;cinpri__;cout商品货架:;cinshelf;coutendl;c_list.repla__c_listkind1pri__shelf;cout修改后的信息为endl;cout商品类型商品__商品货架endl;cout;coutkind1;cout;coutpri__;cout;coutshelf;coutendlendl\t该商品已经修改成功.......endlendl\t;systempause;break;case4:c_list.retrievec_listkind1pri__shelf;cout所查询的信息为endl;cout商品类型商品__商品货架endl;cout;coutkind1;cout;coutpri__;cout;coutshelf;coutendlendl\t该商品已经查询成功.......endlendl\t;systempause;break;case5:c_list.sort;break;case6:c_list.s__edatec_list;systempause;break;case7:c_list.loaddatec_list;systempause;break;case8:cout\t谢谢使用!!!!endlendl\t\t;exit0;break;default:break;}systemcls;}whileselect0select=8;return0;}
9.设计总结
9.1课程设计过程的收获在此次课程设计中,我对C++各部分知识有了更深的理解,特别是链式实现方面的相关知识同时,我也体会到__一个大型程序时,必须要思路清晰,必须要有一个大体的框架结构,这样才有利于后续程序的编写其次,在编写程序时,一定要足够的细心,一定要注意细节,这样将为后面的调试减轻负担第三,我学会了绘制模块图及流程图
9.2问题及解决方法
(1)“ruturn返回值;”语句会导致函数直接结束,无法向下运行解决方法将“ruturn返回值;”安排在适当的位置,一般是在路径的最后
(2)出现“errorLNK2019无法解析的外部符号”错误解决方法函数的实现前加上“类名::”
(3)错误看法静态成员变量是该类共有的,那么其派生类就一定要开一段新的内存来该存储派生类从基类中继承的静态成员变量正确说法基类和其派生类共享该基类的静态成员变量内存
(4)出现“errorLNK2005”错误解决方法静态成员变量的初始化应当放在.cpp文件中
(5)在cinint/float时,如果输入一个字符,则会导致刷屏的结果原因这是因为非数字字符无法被cin接收而一直停留在缓冲区,导致下一次cin时直接从缓存读数但字符无法读取结果导致无限循环这被很多人认为成库的bug解放方法在cinint/float后加上cin.ignore; cin.clear;解释cin.clear;前面状态为假了再输入就不被执行了清空缓冲区,并将错误的cin流标识,通过这个可以把假状态清除掉,加上cin.ignore就可解决编译器编译while循环时因在缓冲区找不到合乎条件的数据而出现死循环的情况了
9.3程序调试能力的思考在调试时,我主要还是通过F10和F11来进行单步运行以及进入到函数内来进行调试从调试发现的错误来看,主要还是细节问题,比如在思考时漏考虑了一种情况,或对循环的终止条件判定出错,再有就是“==”写成“=”总之,我一定会吸取教训,以后再写程序时,应当更加细心
10.____
1.RobertL.Kruse,DataStructuresAndProgramDesigninC++,高等教育出版社,
2001.
5.
2.严蔚敏等编著,数据结构(C语言版),清华大学出版社,
1997.4;
3.赵文静等编著,数据结构与算法,科学出版社,
2005.08;
4.孙鑫等编著,VC++深入详解,电子工业出版社,
2007.7添加商品种类添加商品__
1.添加商品信息模块添加商品货架要删除商品种类
2.删除商品信息模块修改后商品种类修改后商品种类
3.修改商品信息模块商店存货管理系统修改后商品货架
4.查询商品信息模块要查询商品种类
5.商品信息排序模块按__从低到高依次排序输入文件名
6.存入文件模块输入文件名
6.从文件读取模块
8.退出选择模块开始输入添加模块编号输入插入的位置和商品信息调用List的插入函数显示插入的信息是否继续添加结束开始输入删除模块编号输入删除的位置调用List的删除函数显示删除的信息是否继续添加结束开始输入修改模块编号输入修改的位置和商品信息调用List的修改函数显示修改后的信息是否继续添加结束开始输入查询模块编号输入查询的位置调用List的修改函数显示查询的信息是否继续添加结束开始输入排序模块编号调用List的排序函数显示排好序的信息结束开始输入要写入的文件名用s__edate函数显示写入文件成功结束开始输入要读取的文件名调用s__edate函数显示读取文件成功结束。