数据结构-课程设计-库存管理系统.doc
《数据结构-课程设计-库存管理系统.doc》由会员分享,可在线阅读,更多相关《数据结构-课程设计-库存管理系统.doc(11页珍藏版)》请在咨信网上搜索。
学 号 数据结构课程设计 设计说明书 库存管理系统 起止日期: 2011年 1月 10 日 至 2011 年 1月15日 学生姓名 班级 成绩 指导教师(签字) 电子与信息工程系 2011年 1 月15日 天津城市建设学院 课程设计任务书 2010—2011学年第1学期 电子与信息工程 系 软件工程 专业 班级 课程设计名称: 数据结构课程设计 设计题目: 库存管理系统 完成期限:自 2011 年 12 月 12 日至 2011 年 12 月 16 日共 1 周 设计依据:c++程序设计 要求:熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。 主要内容: 1)问题描述 试设计一库存管理系统,产品信息包括产品编号、名称、价格、数量等(产品编号不重复)。 2) 基本要求 该系统应具有以下功能: 1、产品信息录入功能(产品信息用文件保存)--输入? 2、产品信息浏览功能 --输出? 3、产品入库 4、产品出库 5、查询和排序功能: 1)按价格从大到小排序 2)按名称查询 6、产品信息删除、修改功能。 目录 一、设计目的 4 二、设计要求 4 三、设计内容 4 (1)需求分析 4 (2)问题求解 4 (3)总体设计 5 (4)详细设计 6 (5)关键源程序清单 7 (6)执行结果: 12 四、参考文献 15 一、设计目的 熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。 二、设计要求 (1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务; (2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩.凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩; (3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表; (4)认真编写课程设计报告。 三、设计内容 (1)需求分析 程序的功能、输入输出的要求 1、从文件中加载数据; 2、 增加一个产品的信息; 3、 保存数据; 4、 显示所有产品的信息; 5、 删除某个产品的信息; 6、 用名称查找某个产品的信息; 7、 用编号查找某个产品的信息; 8、 退出。 (2)问题求解 首先,定义一个包含产品的编号、名称、价格、数量等的输入产品信息类(class Provider),紧接着,定义一个输入产品信息函数( void input()),输入定义好的类中的数据成员。接着定义产品输出的函数(void output()).这部分是产品输入输出。定义节点类(class Node),节点类中包含一个指向节点(Node)的指针变量(next)和节点成员函数. 定义产品信息的目录类(class List),有成员函数两个,一个List成员函数、一个增加产品信息的成员函数(void addNode())。定义一个显示产品的信息的函数(void XSNode()),用它来输入产品的信息。定义查询函数(void queryNode1(char *TName)、void queryNode2(char *TID)) 分别用指向编号和名称的地址来查询。还有定义删除和储存产品信息的函数(void delNode(char *TName)和void saveList())。 (3)总体设计 程序设计组成框图(如下): 库 存 管 理 系 统 功能显示 产品入库 保存数据 显示产品信息 产品出库 用名称查找某个产品信息 用编号查找某个产品信息 退出 流程图(如下): 开始 选择功能 显示功能 增加产品信息 保存数据 显示产品信息 删除产品信息 按名称查询 按编号查询 1 2 3 4 5 6 7 退出系统 (4)详细设计 函数功能 1、void input() 通过函数输入产品信息 2、void output() 通过函数输出产品信息 3、Node( ) 通过函数使指针指向下个地址 4、List() 通过函数使指针指向首地址 5、void addNode() 通过函数添加产品信息 6、void XSNode() 通过函数显示产品所有信息 7、void queryNode1(char *TName) 通过函数查询产品信息 8、void queryNode2(char *TName) 同上 9、void delNode(char *TName) 通过函数删除产品信息 10、void saveList() 通过函数储存产品信息 11、ofs。open(”data.txt”); 通过函数输出文本文件 12、ifs.open(”data。txt”); 通过函数输入文本文件 13、~List() 通数过定义析构函数,释放空间 14、int main() 通过主函数调用其他函数; (5)关键源程序清单 清单中应有足够的注释问题描述和功能设计。 源程序: #include<iostream〉 #include<fstream〉 #include〈string> #define NULL 0 using namespace std; class Provider //定义输入产品的信息的类 { public: char ID[10];//定义编号 char Name[10]; char Values[10]; char Num[10]; void input() //定义输入产品信息函数 { cout<〈”请输入产品的信息:"〈<endl; cout〈<” ID号:”; cin>>ID; cout<〈" 名称:"; cin>〉Name; cout〈〈" 价格:"; cin〉>Values; cout〈<” 数量:”; cin〉〉Num; } void output() //定函数义输出信息 { cout<〈"产品的信息显示如下:”<<endl; cout<〈"ID号:"<〈ID<<endl; cout〈<”名称:"<<Name〈<endl; cout<〈”价格:”<<Values〈〈endl; cout〈<"数量:”〈<Num<<endl; } }; //******************************************************************* class Node //定义节点 { public: Provider data; Node *next; //定义next为指向Node类对象的指针变量 Node( ) { next=NULL;} }; //******************************************************************* class List //定义产品信息目录类 { public: Node *start; List() { start=NULL;} void addNode() //添加一个产品的信息 { Node *p; p=new Node(); //链表 p-〉data。input(); p—>next=start; start=p; } //******************************************************************* void XSNode() //显示所有产品的信息 { Node *p; for(p=start;p!=NULL;p=p-〉next) p—〉data.output(); } //******************************************************************** void queryNode1(char *TName) //利用名称查询产品信息 { Node *p; for(p=start;p!=NULL;p=p—〉next) { if(strcmp(p-〉data.Name,TName)==0) { cout<〈"产品的信息显示如下:"<〈endl; cout<<"ID号:”<<p->data.ID〈〈endl; cout<<”名称:”<〈p->data。Name〈〈endl; cout<〈”价格"〈〈p-〉data。Values<〈endl; cout〈〈"数量:”〈<p->data。Num〈<endl; return; } } cout〈<”没找到你要的产品!!!”<〈endl; } //***************************************************************** void queryNode2(char *TID) //利用编号查询产品信息 { Node *p; for(p=start;p!=NULL;p=p-〉next) { if(strcmp(p—〉data.ID,TID)==0) { cout<〈"产品的信息显示如下:"〈〈endl; cout〈〈”ID号:”〈〈p—〉data。ID<〈endl; cout〈<”名称:"<〈p—〉data。Name<〈endl; cout〈〈"价格:”〈<p—>data。Values<〈endl; cout〈〈”数量:”〈<p->data.Num<〈endl; return; } } cout〈〈”没找到你要的产品!!!"〈〈endl; } //******************************************************************** void delNode(char *TName) //删除产品信息 { Node *p,*c; for(p=start,c=start;c!=NULL;c=c—>next) { if(strcmp(TName,c-〉data。Name)==0) { p—〉next=c-〉next; if(start==c) { start=c—〉next; } delete c; cout<<"删除已成功!!"〈〈endl; return; } p=c; } cout<〈"没找到你要删除的产品!!!”〈<endl; } //******************************************************************** void saveList() //储存产品信息 { Node *p; ofstream ofs; ofs.open(”data.txt”); for(p=start;p!=NULL;p=p->next) { ofs<<p—>data.ID〈〈” "; ofs〈〈p->data.Name<〈” "; ofs〈<p->data。Values〈<" "; ofs〈〈p—〉data。Num<<” ”; } ofs。close(); } void initList() { ifstream ifs; ifs.open("data.txt”); while(!ifs.eof()) { Node *p; p=new Node(); ifs>〉p->data。ID; ifs〉>p—〉data。Name; ifs〉>p—〉data.Values; ifs〉〉p->data.Num; p—>next=start; start=p; } ifs.close(); Node *p; p=start; start=start-〉next; delete p; } ~List() //定义析构函数,释放空间 { Node *c; for(c=start;c!=NULL;) { Node *p; p=c; c=c->next; delete p; } } }; //*************************************************************8 int main() { List p1; char ch; char tmpstr[50]; while(true) { cout<<" ***********************************”〈<endl; cout<<" 1、产品入库信息;”<〈endl; cout〈<” 2、保存产品信息;”〈<endl; cout<<” 3、显示产品信息;"<〈endl; cout〈<" 4、产品出库信息;”<〈endl; cout〈<” 5、用名称查找产品信息;"〈〈endl; cout〈<” 6、用编号查找产品信息;”<〈endl; cout〈〈" 0、退出;”〈<endl; cout<<" ***********************************"<<endl; cout<<"请选择:”; cin>〉ch; switch(ch) { case '1’: p1.addNode();break; case '2’: p1。saveList();break; case '3’: p1.XSNode();break; case ’4': cout<〈"请输入出库产品的名称:"; cin>>tmpstr; p1.delNode(tmpstr);break; case '5': cout<<"请输入你要查找的产品的名称:"; cin〉>tmpstr; p1.queryNode1(tmpstr);break; case '6': cout<〈”请输入你要查找的产品的编号:"; cin〉>tmpstr; p1.queryNode2(tmpstr);break; case ’0’: return 0; default: cout〈<”选择错误,请再次选择!!!"〈<endl; } } return 0; } (6)执行结果: 四、参考文献 [1]《数据结构》. 王红梅. 清华大学出版社 [2]《数据结构学习辅导与实验指导》。 王红梅. 清华大学出版社 [3]《C++程序设计》. 钱能。 清华大学出版社 [4]《C++程序设计试验指导》。 钱能。 清华大学出版社 [5]《C++程序设计》。谭浩强. 清华大学出版社 11 1- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 库存 管理 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文