订货与发货系统实验报告.doc_第1页
订货与发货系统实验报告.doc_第2页
订货与发货系统实验报告.doc_第3页
订货与发货系统实验报告.doc_第4页
订货与发货系统实验报告.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录一、需求分析3二、程序的主要功能3三、程序运行平台3四、 系统总框架图3五、 程序类的说明3六、 模块分析5七、 比较有特色的函数6八、 存在的不足与对策718一、 需求分析1)一个合同可签订多种产品,每个合同文本必须包括合同编号,客户的名称,地址,签定时间,帐号,总金额及产品清单。2)合同签订必须为现有的库存产品,但产品库存量不够时,可允许先签订合同;3)发货时,必须根据合同签订的情况发货,不得超出合同签订的产品品种,数量及库存量。二、程序的主要功能管理员密码登陆,货物的入库与出库,货物查询三、程序运行平台Devc+4、 系统总框架图5、 程序类的说明class huowulei /货物类public: string no; /编号string gname; /名称string unit; /单位string standards; /规格string brand; /品牌string producetime; /生产日期double price; /价格string EXP; /保质期/货物类构造函数class in:virtual public huowulei /入库类 public:int count_in; /数量string time_in; /入库时间in *next; /指向自身的指针/入库类构造函数in(string no1,string gname1,string unit1,string standards1,string brand1,string producetime1,double price1,string EXP1,int count_in1,string time_in1):huowulei(no1, gname1, unit1, standards1, brand1, producetime1 , price1,EXP1)count_in=count_in1;time_in=time_in1;class out:virtual public huowulei /出库类public:int count_out; /数量out *next; /指向自身的指针string time_out; /出库时间/出库类构造函数out(string no1,string gname1,string unit1,string standards1,string brand1,string producetime1,double price1,string EXP1,int count_out1,string time_out1):huowulei(no1, gname1, unit1, standards1, brand1, producetime1 , price1,EXP1) count_out=count_out1; time_out=time_out1;class mimalei /密码类public:string mimalei1;mimalei(string mimalei2)mimalei1=mimalei2;6、 模块分析这是已有商品入库函数。void manager:rukuhanshu1()system(cls);in *p1,*p2;string no1;int no,mark;list_in(); if(head1=NULL)coutnntt仓库中没有存货,请先入库货物!endl;system(pause);return;list_in();p2=p1=head1;coutendlendl no1;coutendlno; while(no1!=p1-no) & (p1-next!=NULL)p2=p1; p1=p1-next;if(no1=p1-no)mark=p1-count_in;p1-count_in=mark+no;write(); coutendltt该商品已入库,按任意键继续。total1;total=total1;fin.ignore();for(int i=0;inognameunitstandardsbrandproducetimepriceEXPcount_outtime_out;out *temp=new out(no,gname,unit,standards,brand,producetime,price,EXP,count_out,time_out);temp-next=head2;head2=temp;fin.close();7、 比较有特色的函数string getPW(char pwCh=*)const int length=18; /最大密码长度=18char passlength=0;for(int i=0;ilength-1;i+) passi=getch();if(passi=r)passi=0;coutendl;return string(pass);coutpwCh;coutendl;return string(pass);/登录函数8、 存在的不足与对策通过这次课程设计我学到了很多东西,尤其是在程序设计这方面,程序设计不仅仅是代码的优良,而且还需要有设计头脑,只有好的设计头脑你才能创造出好的程序板块,才能有更好的交互性,这次设计我感觉我的c+学习有了质的提升,特别是密码设计,指针,类的设计,派生类,重载,各个函数的设计。但我发现我还有很多不足,特别是在指针,指针数组方面,我还需要加强学习。下一步我将更加努力学习特别是指针,函数方面,指针太重要了,我学的还不是太好,应该给予重视。程序源代码#include #include #include using namespace std;void kcjfhgl();void htms();void load();class kehu/构造一个客户类 public: kehu(); kehu(); friend void shuru1(); friend void kcjfhgl(); friend void cprk();friend void htfh(); friend void load1(); friend void modify(); friend void htms(); friend void htqd(); friend void htcx(); friend double s1(int i); friend void load(); private: string money; string num; string name; string zhanghao; string sex; string dizhi; string riqi; int tushu; int pencil; int pen; ; class hetong:public kehu/派生子类 public: friend void shuru2(); friend void kcjfhgl(); friend void cprk();friend void htfh(); friend void load1(); friend void modify(); friend void htms(); friend void htqd(); friend void htcx(); friend double s1(int i); friend void load(); private: string num; string name; string zhanghao; string dizhi; string riqi; string money; int tushu; int pencil; int pen; ; class kucun:public kehu public: friend void shuru3(); friend void kcjfhgl();friend void htfh();friend void cprk(); friend void load1(); friend void modify(); friend void htms(); friend void htqd(); friend void htcx(); friend double s1(int i); friend void load(); private: string money; string num; string name; string zhanghao; string sex; string dizhi; string riqi; int tushu; int pencil; int pen; ; kehu stu15;/对象数组 hetong tea15; kucun cun15; kehu:kehu();/调用构造函数 kehu:kehu();/调用析构函数 double s1(int i) double x,y,z,s; x=1.0*stui.tushu; y=1.0*stui.pencil; z=1.0*stui.pen; s=x+y+z; return s; void menu() cout 订货发货管理系统 nn; cout 1 客户管理 nn; cout 2 合同管理 nn;cout 3 库存及发货管理 nn; cout 4 EXIT nn; void menuf() cout 1 欢迎客户注册 n; cout 2 修改信息 n; void menuh() cout 1 签订合同 n; cout 2 查询合同 n; void menup()cout 1 产品入库 n;cout 2 合同发货 n;void htcx() int i,flag=0; ifstream f(opq.txt); for(i=0;stui.sexstui.zhanghaostui.pencilstui.tushustui.pen; f.close(); ifstream F(uvw.txt); for(i=0;; F.close(); string number; cout输入客户的编号number; for(i=0;i15;i+) if(number=stui.num) flag=1;break; if(flag=0) cout无此合同endl; if(flag=1) cout编号: stui.num 姓名: 地址: stui.dizhi 日期:stui.riqi铅笔: stui.pencil图书: stui.tushu钢笔: stui.pen 账号:stui.zhanghao 总金额:stui.tushu+stui.pencil+stui.penendl;int z; do menu(); coutz; switch(z) case 1:load();break; case 2:htms();break; case 3:kcjfhgl();break; case 4:exit(0);break; while(z4); void htqd()/合同 签订 int i,flag=0; ifstream f(opq.txt); for(i=0;stui.sexstui.zhanghaostui.pencilstui.tushustui.pen; f.close(); ifstream F(uvw.txt); for(i=0;; F.close(); cout输入你要签订的编号:number; for(i=0;i15;i+) if(number=stui.num) flag=1;break; if(flag=0) cout查无此人endl; if(flag=1) cout名字:账号:stui.zhanghao地址:stui.dizhi 铅笔: stui.pencil图书:stui.tushu钢笔:stui.penendl; int u,o,p; cout铅笔、钢笔、图书、购买量?n; coutu; stui.pencil=stui.pencil+u; couto; stui.pen=stui.pen+o; coutp; stui.tushu=stui.tushu+p; cout合同已签订; cout 铅笔: stui.pencil图书:stui.tushu钢笔:stui.penendl; int z; do menu(); coutz; switch(z) case 1:load();break; case 2:htms();break; case 3:kcjfhgl();break; case 4:exit(0);break; while(z4); void load1()/客户注册 kehu *p1=new kehu1; cout请输入您的编号:p10.num; cout请输入您的名字:; cout请输入你的账号:p10.zhanghao; cout请输入您的地址:p10.dizhi; cout您购买图书量:p10.tushu; cout您购买笔芯的数量:p10.pencil; cout客户购买钢笔的量:p10.pen; ofstream outfile(opq.txt,ios:app); outfilep10.num p10.sex p10.zhanghao p10.tushu p10.pencil p10.penendl; outfile.close(); delete p1; int z; do menu(); coutz; switch(z) case 1:load();break; case 2:htms();break; case 3:kcjfhgl();break; case 4:exit(0);break; while(z4); void cprk()/产品入库(增 ) int i;string number;int flag=0,t;kehu *stu=new kehu15;hetong *tea=new hetong15;coutg; cuni.tushu=cuni.tushu+g;coutm;cuni.pen=cuni.pen+m;coutw;cuni.pencil=cuni.pencil+w;cout各商品的库存量为:;cout图书:cuni.tushu铅笔:cuni.pencil钢笔cuni.penendl; int z; do menu(); coutz; switch(z) case 1:load();break; case 2:htms();break; case 3:kcjfhgl();break; case 4:exit(0);break; while(m4); void htfh()int i;string number; int flag=0,t; kehu *stu=new kehu15; hetong *tea=new hetong15; coutnumber; ifstream f(opq.txt); for(i=0;stui.sexstui.zhanghaostui.pencilstui.tushustui.pen; ifstream F(uvw.txt); for(i=0;; for(i=0;i15;i+) if(stui.num=number) flag=1; t=i; break; for(i=0;i15;i+) if(teai.num=number) flag=2; t=i; break; if(flag=0) coutt该用户信息不存在或已删除; if(flag=1) ofstream ma(opq.txt,ios:trunc); ma.close(); for(i=t;i14;i+) stui=stui+1; ofstream m(opq.txt); for(i=0;i14;i+) mstui.num stui.sex stui.zhanghao stui.pencil stui.tushu stui.penendl; coutt删除成功; m.close(); if(flag=2) ofstream te(uvw.txt,ios:trunc); te.close(); for(i=t;i14;i+) teai=teai+1; ofstream n(uvw.txt); for(i=0;i14;i+) nteai.num endl; coutt删除成功; n.close(); int z; do menu(); coutz; switch(z) case 1:load();break; case 2:htms();break; case 3:kcjfhgl();break; case 4:exit(0);break; while(z4); void modify() int i,flag=0; ifstream f(opq.txt); for(i=0;stui.sexstui.zhanghaostui.pencilstui.tushustui.pen; f.close(); ifstream F(uvw.txt); for(i=0;; F.close(); cout输入你要修改的编号:number; for(i=0;i15;i+) if(number=stui.num) flag=1;break; if(flag=0) cout查无此人endl; if(flag=1) cout名字:账号:stui.zhanghao地址:stui.pen; cout请问修改什么:; coutm; if(m=1) coutl; =l; if(m=2) coutq; stui.zhanghao=q; if(m=3) coutw; stui.dizhi=w; system(cls);cout修改后:n;cout名字:账号:stui.zhanghao地址:stui.dizhiendl; system(cls);int z

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论