1、目录一、设计任务产品进销存管理系统1二、功能需求分析1三、功能算法设计13.1各功能函数关系图13.2详细算法设计2四、代码实现34.1重要代码34。1。1相关头文件的编写以及结构体的建立34。1。2添加产品信息函数34。1。3查询产品信息函数54.1。4主函数74。2运行结果84。2。1系统界面84.2.2添加84。2。3查询94。2.4退出9五、调试分析105.1存储结构的建立105。2定义查询功能105。3功能缺失弥补10六、课设总结10七、谢辞10八、参考文献10一、设计任务产品进销存管理系统问题描述:针对某一种行业的库房的产品进销存情况进行管理。基本要求:采用一定的存储结构对库房的货
2、品及其数量进行分类管理;可以进行产品类的添加、产品的添加、产品数量的添加;能够查询库房每种产品的总量、进货日期、销出数量、销售时间等。二、功能需求分析系统的功能主要有:管理员操作:进入系统后,管理员就可以对产品的进货,销售,存货等方面的信息有个详细的了解。并且可以对产品的类,产品,产品的数量,产品销售信息进行管理,可以添加新的产品信息。同时对库房每种产品的总量、进货日期、销出数量、销售时间等也可以有详细的了解.三、 功能算法设计菜单3.1各功能函数关系图退出查询添加3.2详细算法设计(1)头文件设计 添加相关头文件即可(2)int Create(sqlist L);创建数据库系统用于储存产品的
3、相关信息,如每种产品的总量、进货日期、销出数量、销售时间等.(3)int Add(sqlist &L);添加产品的相关信息,如产品类、产品、产品数量、进货日期、销出数量、销售时间等.(4)void View(sqlist &L);查询产品相关信息,比如每种产品的总量、进货日期、销出数量、销售时间等.(5) void Display(sqlist L);对查询到的产品的一些相关信息进行打印输出,从而对我们所需要查的产品的具体情况一目了然。(6) void menu_operation();对菜单整体情况和布局进行显示,并显示出出它的各项功能:添加功能,查询功能以及退出菜单。(7) Void ma
4、in(); 编辑主函数,实现对各部分的分工和控制和执行作用。四、代码实现4。1重要代码4。1.1相关头文件的编写以及结构体的建立includestdio。h#includeincludestring.h#includebuy_time)。year),&(qbuy_time)。month),&((qbuy_time)。day)); printf(”请输入销售数量:n); scanf(%d,(q-sales_quantity)); printf(”请输入销售时间(年月-日):n”); scanf(d-dd”,(q-sales_time)。year),((qsales_time)。month),((
5、qsales_time).day); qproduct_stock=(q-product_quantity)(qsales_quantity); q-next=NULL; L.kindelemk。first_product=q; p=L。kindelemk。first_product; for(j=1;jn;j+) q=(plinklist)malloc(sizeof(productnode)); printf(请输入需添加产品的名称:n”); scanf(”s”,(qproduct_name)); printf(”请输入产品总量:n); scanf(d,&(qproduct_quantity
6、)); printf(”请输入进货日期(年-月日):n); scanf(”d%d-d,&(qbuy_time).year),(qbuy_time)。month),(qbuy_time).day)); printf(”请输入销售数量:n); scanf(”d”,&(qsales_quantity); printf(”请输入销售时间(年-月日):n”); scanf(”%dd-%d”,((qsales_time)。year),((qsales_time).month),&((qsales_time)。day); q-product_stock=(qproduct_quantity)(qsales_
7、quantity); q-next=p-next; p-next=q; p=q; else/商品下有产品 p=L。kindelemk。first_product; for(j=0;jn;j+) q=(plinklist)malloc(sizeof(productnode)); printf(”请输入需添加产品的名称:n); scanf(”s”,&(qproduct_name); printf(”请输入产品总量:n); scanf(”d”,(qproduct_quantity); printf(”请输入进货日期(年月-日):n”); scanf(d-%d-%d,((qbuy_time)。year
8、),((qbuy_time)。month),((qbuy_time)。day)); printf(请输入销售数量:n”); scanf(”d,(qsales_quantity); printf(请输入销售时间(年月日):n”); scanf(”d-d-%d,(qsales_time)。year),(q-sales_time).month),(q-sales_time)。day); q-product_stock=(qproduct_quantity)-(qsales_quantity); for(p=L.kindelemk。first_product;(pnext)!=NULL;p=pnext
9、); qnext=p-next; pnext=q;p=q; break; if(k=L.length)/没有该商品类 strcpy(L。kindelemk。pkindname,pkindname); L。length+; printf(”请输入所要添加的产品类数量(个):n); scanf(%d,n); L。kindelemk.kind_number=n; for(j=0;jn;j+) p=(plinklist)malloc(sizeof(productnode)); printf(”请输入此产品类所含产品的产品名称:n); scanf(”%s,&(p-product_name)); prin
10、tf(”请输入产品总量:n); scanf(%d”,(p-product_quantity); printf(”请输入产品的进货日期(年月-日):n); scanf(%d-%d-%d”,((pbuy_time).year),&((pbuy_time).month),&(p-buy_time)。day)); printf(请输入产品的销售数量:n”); scanf(”d,(p-sales_quantity)); printf(”请输入产品的销售时间(年月-日):n”); scanf(ddd,&(p-sales_time)。year),((p-sales_time).month),((psales
11、_time)。day); p-product_stock=(pproduct_quantity)(p-sales_quantity); L.kindelemk。first_product=p;p-next=NULL; return ok;4。1。3查询产品信息函数void View(sqlist L)int i,k,order,flag=0; char pkindname20,product_name20; plinklist p; printf(请输入待查询产品所商品类:n”); scanf(”%s,&pkindname); for(i=0;inext)/进行产品的匹配 m+; if(str
12、cmp(p-product_name,product_name)=0)/找到产品 printf(查询选项:n); printf(”t1-进货日期n”); printf(”t2-产品总量n); printf(”t3-销售数量n); printf(”t4-销售日期n”); printf(t5-产品库存n”); printf(”t6-全部信息n); printf(t0返回n);loop: printf(请进行选择:(0-7)n”); scanf(”d”,order); switch(order) case1:printf(”进货日期t”); printf(d-d-dn”,(pbuy_time)。ye
13、ar,(pbuy_time)。month,(pbuy_time)。day); printf(n”);goto loop; case 2: printf(*产品总量t”); printf(”%dn,pproduct_quantity); printf(”n);goto loop; case 3: printf(”*销售数量t”); printf(%dn,p-sales_quantity); printf(”n);goto loop; case 4: printf(*销售日期t”); printf(”%d%d-dn,(p-sales_time)。year,(psales_time).month,(
14、psales_time)。day); printf(n”);goto loop; case 5: printf(”产品库存t”); printf(”%dn”,pproduct_stock); printf(”n);goto loop; case 6: printf(”查询信息如下:n”); printf(”t”); printf(”产品的名称t”); printf(”st”,pproduct_name); printf(进货日期t); printf(”%d-d-%dn,(p-buy_time)。year,(p-buy_time)。month,(pbuy_time).day); printf(”
15、t); printf(”产品总量t”); printf(”dt,pproduct_quantity); printf(”销售数量t); printf(”dn”,psales_quantity); printf(t”); printf(销售日期t”); printf(%dd%dn,(psales_time).year,(p-sales_time)。month,(psales_time).day); printf(”t”); printf(”产品库存t); printf(”%dt”,pproduct_stock);goto loop; case 0: system(cls”);flag=1; br
16、eak; default: printf(对不起,你输入有误!”);goto loop; break; 4.1.4主函数void main()int order; sqlist L; Init(L); loop: menu_operation(); printf(”n); scanf(”%d”,&order); switch(order) case 1:system(cls”); Add(L); goto loop; case 2:system(”cls); View(L); goto loop; case 0: exit(0); 4.2运行结果4。2.1系统界面4。2。2添加4。2.3查询4
17、。2.4退出五、调试分析5.1存储结构的建立认识邻接矩阵存储结构,经过不断地调试,成功完成图创建函数的编辑。5.2定义查询功能让用户更快的,更好的查询到产品的相关信息,在做到存储以后马上就能根据提示进行查询。5。3功能缺失弥补进行整体效果调试,减少一些运行时出现的问题和错误,使其功能效果更加完善。六、课设总结要做好一件事,只能一步一步的去做,不可能一下子就完成。在程序的编写,实现上同样如此。简单的几个功能,在真正实现、编写代码的过程却发现有很多的问题没有解决.比如要存储哪些数据,用什么方式存储;用怎么样的结构去保存各种数据等。并且在最后去演示系统的时候还出来很大的漏洞,不过后来经过修改,终于成功的完成了系统.要做好一个系统,一个严谨的思维是不可以或缺的,每一个联系都要考虑,每个细节都需要注意,每一种错误都要会解决.只有把每一种问题都解决了,才能做出一个完善的系统出来。七、谢辞本报告是在王英华老师的悉心指导和热情关怀下完成的,同时也感谢给予我帮助的各位同学。八、参考文献、严蔚敏,吴伟民数据结构(语言版)清华大学出版社、严蔚敏,吴伟民数据结构(语言版)清华大学出版社、严蔚敏,吴伟民数据结构(语言版)清华大学出版社9
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100