商品进销存管理程序课程设计.doc_第1页
商品进销存管理程序课程设计.doc_第2页
商品进销存管理程序课程设计.doc_第3页
商品进销存管理程序课程设计.doc_第4页
商品进销存管理程序课程设计.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

高级语言课程设计商品进销存管理程序题 目:班 级:12 软工2班学生学号:201230690231学生姓名: 庄志炜 指导老师: 肖磊 提交时间:2012年5月10日成 绩:华南农业大学 信息学院成绩评定方法 每名同学提交最终课程设计报告后,按照安排的时间到实验室向指导老师演示程序并回答老师提出的问题,老师根据实际情况从如下6个方面给出成绩。评分项目分数功能是否满足要求(50分)界面是否美观(10分)所学知识在设计中的运用是否得当(10分)对效率要求较高的部分是否有更深的思考与设计(10分)答辩陈述是否清楚(10分)答辩陈述是否完整(10分)小组总成绩:一、问题描述1、简要描述设计一个商品进销存管理程序,该程序具有以下功能: (1)录入商品信息; (2)给定商品编号,修改该商品信息; (3)给定商品编号,删除该商品信息; (4)录入商品的进货与销售信息; (5)给定商品编号或商品名,查看该商品及库存信息; (6)统计功能:提供一些统计各类信息的功能。2、题目要求 (1)按照分析、设计、编码、调试和测试过程完成应用程序; (2)学习并使用流程图等工具,并在撰写报告中使用; (3)程序的各项功能在程序运行时,以菜单方式选择并执行; (4)要求用户输入数据时,要给出清晰、明确的提示,包括:输入数据的内容、格式及结束方式等 (5)所有的信息存储在一个文件或多个中,并实现文件读写操作。 (6)程序中用链表存放商品及进销存信息并实现增删减功能。3、系统功能分析(1)录入商场所用商品信息的功能,添加单一新商品信息的功能。(2)查询商品信息的功能,按商品的编号、名称、价格区间查询商品,以及浏览全部商品。还可查询某一确定日期商品的销售量和进货量。查询仓库的商品总量及商品总价值。(3)实现商品的进货和销售功能,将销售信息和进货信息存储在文件中。(4)修改商品的编号、名称和价格的功能。(5)根据输入编号删除商品信息。(6)统计商品的销售量,做前十的总销量排行榜。4、开发平台介绍 本次程序设计,基于 Code blocks. Code:Blocks 是一个开放源码的全功能的跨平台C/C+集成开发环境。 Code:Blocks是开放源码软件。Code:Blocks由纯粹的C+语言开发完成,它使用了蓍名的图形界面库wxWidgets(2.6.2 unicode)版。对于追求完美的C+程序员,再也不必忍受Eclipse的缓慢,再也不必忍受VS.NET的庞大和高昂的价格。(本段来自百度百科)二、系统设计1、系统总体结构设计系统各个功能的总体关系:系统程序中信息都是以结构体的形式表示,并且每一个结构体嵌套在一个链表中,从而能够实现上述中所设想的功能。系统各个功能的总体关系:功能菜单添加商品功能查询商品信息功能销售商品功能进货功能修改商品信息删除商品信息销售排行榜2、数据结构设计struct shopping int shanping_bianhao; char shanpinname N; char jiliangdanwei N; float jia_ge; int kucun; struct shopping *next; shopping,*shop;商品库存信息结构体: 商品进货销售信息结构体:struct sell_and_buy int shanping_bianhao; int buy_or_sell; char dateN; char shanpinname N; char jiliangdanwei N; struct sell_and_buy *next; sell_and_buy,*sell;商品信息储存在文本文件,文件名:goods.dat;商品进货销售信息存储在二进制文件,文件名:business.dat。用文本的读出和写入实现信息从文件写入链表,信息从链表存储在文件中。由于链表的内容在实现各种功能的过程中多次发生变化,因此需改变后重写入文件,用一个函数实现,如下:void chongxie(struct shopping *p) FILE *fp; if(fp=fopen(goods.txt,w)=NULL) exit(0); while(p!=NULL) fprintf(fp,%d %s %s %.2f %d%c,p-shanping_bianhao,p-shanpinname,p-jiliangdanwei,p-jia_ge,p-kucun,n); p=p-next; fclose(fp);3 、系统各个函数及函数之间关系设计主函数 main( )功能菜单商品库存信息读入函数wu=shuju_shopping()商品进货销售信息读入函数shuju_buy_or_sell()商场现有商品信息录入函数luru_shopping();判断所添加新商品编号是否与已有重复函数duibi(int a)添加新商品insertshopping(wu)修改商品信息xiugaixinxi()删除商品信息函数shanchu()销售和进货函数jinghuo(0或1);查询商品信息函数chazhaoshopping(wu);Case1按编号找商品Case2按名称找商品Case4浏览全部商品按价格区间找jiagequjian();查看某天商品的销售情况xiaoshou_or_jinhuo_xinxi(1);查看某天商品的进货情况xiaoshou_or_jinhuo_xinxi(0);Case7查看库存情况查看商品销售排行榜在进行按区间查找商品时还需进行执行函数void xuanze(float a,float b),选择出价格a和b之间的商品,函数代码如下:void xuanze(float a,float b) int flag=1; struct shopping *p,*wu; wu=shuju_shopping(); p=wu; printf(nn); while(p!=NULL) if(p-jia_ge=a&p-jia_geshanping_bianhao); printf( 名称: %s nn,p-shanpinname); printf( 价格: %6.2f元 nn,p-jia_ge); printf( 库存: %d%s nn,p-kucun,p-jiliangdanwei); printf(nn); flag=0; p=p-next; if(flag=1) printf(n); printf(你好,没有该价格区间的商品*nn); 4 、界面设计程序运行时,以简单,易懂的“菜单”的方式执行,菜单中会有提示。在主菜单中选择所需功能到所需要的功能,有时可能会有二级“菜单”,每当执行完主菜单的一个功能时,由程序中的system(cls)函数进行清屏操作,避免已经没有的信息界面仍然出现,返回主菜单。代码如下:do printf(nnn); printf( *欢迎进入商品管理系统n); printf( * 请选择: *n); printf( * *n); printf( * 1 录入商场现有商品信息 *n); printf( * *n); printf( * 2 添加新种商品信息 *n); printf( * *n); printf( * 3 查询信息 *n); printf( * *n); printf( * 4 销售物品 *n); printf( * *n); printf( * 5 进货信息 *n); printf( * *n); printf( * 6 修改商品信息 *n); printf( * *n); printf( * 7 删除信息 *n); printf( * *n); printf( * 8 查看销量排行榜 *n); printf( * *n); printf( * 0 退出系统 *n); printf( * *n); printf( *欢迎进入商品管理系统n); printf( n); printf(shanping_bianhao,p1-shanpinname,p1-jiliangdanwei,&p1-jia_ge,&p1-kucun); wu=p1; else p2-next=p1; p2=p1; p1=(struct shopping *)malloc(sizeof(shopping); fscanf(fp,%d%s%s%f%d,&p1-shanping_bianhao,p1-shanpinname,p1-jiliangdanwei,&p1-jia_ge,&p1-kucun); p2-next=NULL; fclose(fp); return(wu); return 0;2、添加新种类的商品代码:struct shopping *insertshopping(struct shopping *wu) char ch; wu=shuju_shopping(); struct shopping *p,*q,*t; FILE *fp; if(fp=fopen(goods.txt,a+)=NULL) return 0; q=wu; while(q!=NULL) t=q; q=q-next; if(q=NULL) p=(struct shopping*)malloc(sizeof(shopping); printf(n请依次输入新商品的编号,商品名,计量单位和价格:n); scanf(%d%s%s%f,&p-shanping_bianhao,p-shanpinname,p-jiliangdanwei,&p-jia_ge); p-kucun=0; if(duibi(p-shanping_bianhao) printf(*n); printf(该商品已存在,添加失败nn); free(p); break; getchar(); printf(*n); printf(确定输入请输入,否则请输入nn); printf(请输入:); ch=getchar(); printf(*n); if(ch=Y|ch=y) fprintf(fp,%d %s %s %.2f %d%c,p-shanping_bianhao,p-shanpinname,p-jiliangdanwei,p-jia_ge,p-kucun,n); t-next=p; p-next=NULL; printf(nn); break; else printf(nn); fclose(fp); return wu;3、销售商品和进货功能代码(a为0时执行销售功能,为1时执行进货功能):struct sell_and_buy *jinghuo(int a) FILE *fp1; if(fp1=fopen(business.txt,ab+)=NULL) return 0; int n,m,flag=1; struct sell_and_buy *head,*p1; struct shopping *wu,*p; head=shuju_buy_or_sell(); wu=shuju_shopping(); p1=head; printf( n); printf(shanping_bianhao=n) printf(n); printf( 编号: %d nn,p-shanping_bianhao); printf( 名称: %s nn,p-shanpinname); printf( 价格: %6.2f元 nn,p-jia_ge); printf( 库存: %d%s nn,p-kucun,p-jiliangdanwei); printf(nn); printf(*n); printf(请输入该商品的交易数量 及 交易时间(格式为):n); scanf(%d%s,&m,p1-date); if(!a) if(mp-kucun) printf(*nn); printf(nnnn); break; m=-m; p-kucun=p-kucun+m; p1-buy_or_sell=m; p1-shanping_bianhao=p-shanping_bianhao; strcpy(p1-shanpinname,p-shanpinname); strcpy(p1-jiliangdanwei,p-jiliangdanwei); fwrite(p1,sizeof(struct sell_and_buy),1,fp1); printf(*nn); if(!a) printf(应支付金额:%.2f元nn,-(m*p-jia_ge); printf(nn); break; p=p-next; if(p=NULL) printf(没有该商品nn); printf(shanping_bianhao; printf(*n); printf(输入待删除商品的编号:n); scanf(%d,&a); q=p; while(p!=NULL) if(p-shanping_bianhao=a) if(i=a) printf(n); printf( 编号: %d nn,p-shanping_bianhao); printf( 名称: %s nn,p-shanpinname); printf( 价格: %6.2f元 nn,p-jia_ge); printf( 库存: %d%s nn,p-kucun,p-jiliangdanwei); printf(nn); getchar(); printf(*n); printf(确定删除请输入,否则请输入nn); printf(请输入:); ch=getchar(); printf(*n); if(ch=N|ch=n) printf(删除失败*nn); break; else p=p-next; printf(*删除成功*nn); free(q); break; else printf(n); printf( 编号: %d nn,p-shanping_bianhao); printf( 名称: %s nn,p-shanpinname); printf( 价格: %6.2f元 nn,p-jia_ge); printf( 库存: %d%s nn,p-kucun,p-jiliangdanwei); printf(nn); getchar(); printf(*n); printf(确定删除请输入,否则请输入nn); printf(请输入:); ch=getchar(); printf(*n); if(ch=N|ch=n) printf(删除失败*nn); break; else q-next=p-next; printf(*删除成功*nn); free(p); break; q=p; p=p-next; if(p=NULL) printf(没有该商品n); if(i!=a) p=wu; chongxie(p); return 0;5、销售排行榜代码:void bandan() memset(m,0,sizeof(m); struct sell_and_buy *p,*head; head=shuju_buy_or_sell(); p=head; int i=1,j,flag=1,k; FILE *fp; while(p!=NULL) flag=1; if(p-buy_or_sell0) for(j=0; jshanpinname)=0) mj.buy_or_sell=mj.buy_or_sell+p-buy_or_sell; flag=0; if(flag) mi=*p; i+; p=p-next; for(k=1; ki; k+) for(j=1; jmj+1.buy_or_sell) m0=mj+1; mj+1=mj; mj=m0; fp=fopen(xiaoshoubandan.txt,w); if(fp=NULL) printf(nsorry,读取数据失败!n); else for(j=1; ji; j+) fprintf(fp,%d %d %s %d%sn,j,mj.shanping_bianhao,mj.shanpinname,-mj.buy_or_sell,mj.jiliangdanwei); fclose(fp); for(j=1; jshanping_bianhao=a) printf(n); printf( 编号: %d nn,p-shanping_bianhao); printf( 名称: %s nn,p-shanpinname); printf( 价格: %6.2f元 nn,p-jia_ge); printf( 库存: %d%s nn,p-kucun,p-jiliangdanwei); printf(nn); break; p=p-next; if(p=NULL) printf(没有该商品n); p=wu; break; case 2: printf( n); printf(输入商品名称:n); scanf(%s,s); system(cls); while(p!=NULL) if(strcmp(p-shanpinname,s)=0) printf(n); printf(

温馨提示

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

评论

0/150

提交评论