1、综合性程序设计报告设计题目: 粮油公司进销存管理系统指导教师: 班 级: 51104学 号: 5110418设 计 者: 宋玉峰成 绩: _设计时间: 2012 年 11 月 23 日主体目录1.课程设计要求2.题目描述 3.功能模块分解集说明 4.树状图解析5.数据库设计及说明6.结构体7.代码及注释8.设计测试说明9.设计体会课程设计要求题目描述1.问题分析:先定义合适的结构体,存储物品信息。在程序中建立一个文件用于存储,凡进行了进货操作的物品在文件中都有记录,进货时由于尚不知售货时间与售价、利润,故此三项(实际为四项,时间分为年、月两项)暂先赋值为零,待进行售货操作时再输入各数值,其中利
2、润由系统自动计算得出并保存。账目清单分为已售、仓储两部分,由此可看到所有购进、卖出的货物信息。利润查询可查得所输入到目前为止的各类所售货物数量与利润。2.问题概要该系统用于处理粮油公司的物资买入,卖出,仓储等设备账目。在买入物资时,记录物资的数量名称(如小麦,玉米,大豆等)和价钱,并在库房纪录中添加设备,在卖出物资时从库房中减掉该设备,并根据卖出的数量型号和价钱得出每一笔买出的利润。每隔一段时间盘点库房和账目计算出利润等数据。基本要求:有货物管理(物资的添加,删除,修改)有账目管理可以查询账目清单可以计算年度或月份或季度利润功能模块分解集说明根据问题描述和要求,系统要求能够实现物资基本信息管理
3、和物资的查询与统计。确定程序至少应该具备如下功能:“进货操作” 、 “售货操作” 、 “修改信息” 、 “账目清单” 、“月利润查询”等基本模块。“进货操作” 模块的作用是向物资链中增加物资;“售货操作” 模块的作用是记录物资链中售出的商品信息;“修改信息” 模块的作用是修改商品链中的物资信息;“账目清单”模块的作用是把所有物资的买入与售出信息输出到显示器上;“利润查询” 模块的作用是查询粮油公司的月利润。经综合考虑系统具有下面 5 项功能模块:物资买入,物资卖出,修改信息,账目清单,利润查询树状图解析菜单进货操作售货操作修改信息账目清单退出 利润查询数据库设计及说明函数模块inport();
4、 /为输入操作函数detail(); /为账目清单函数change(); /为修改信息函数outport(); /为收获操作函数fun1(); /为菜单函数 profit(); /为月利润查询函数结构体struct itemint num1;char name9;float prize;float num2;struct item *next; ;说明:此为物资基本信息包括:编号,商品名称,进价,数量。运用动态链表,可以多次输入。指针struct item *head;struct item *p1,*p2;/定义此指针*p1,*p2 指向 struct 结构体,运用链表不断延伸。宏定义#de
5、fine length sizeof(struct item)#define length1 sizeof(struct item1)#define length2 sizeof(struct item2)文件操作本程序建”xls,xls1”两个,每次操作后,文件中信息得到相应修改并重新储存界面说明进入菜单,会有六个选项,功能如上图。输入对应的代码,可执行该功能。设定共可以管理的物资有四种,分别为小麦、大米、大豆利润查询功能中只处理以上三种名称。在进货时输入进货编号、进价等,售货时输入售价与售货日期,程序自动计算出利润。示例:1.进入程序出现主菜单如图2.选“1”进行进货操作,界面如图:3.选
6、“2” ,进行售货操作,界面如图:4.选“3” ,进行修改信息,界面如图:5.选“4” ,查看账目信息,结果如图:6.选“5” ,查询月利润,如图代码及注释#include#include #include#include#define length sizeof(struct item)#define length1 sizeof(struct item1)#define length2 sizeof(struct item2)void inport()static int a;char c18;FILE* p;struct itemint num1;char name9;float pri
7、ce;float num2;struct item* next; ;struct item* head,*p1,*p2;p1=p2=(struct item*)malloc(length);/*开辟一个新单元*/if(p=fopen(“xls“,“a+“)=0)printf(“文件打开错误“);a=0; head=NULL;for(;)printf(“请输入商品的编号n“);scanf(“%d“,getchar();printf(“请输入商品的名称n“);scanf(“%s“,p1-name);printf(“请输入商品的进价n“);scanf(“%f“,printf(“请输入商品的数量(kg
8、)n“);scanf(“%f“,if(fwrite(p1,length,1,p)!=1)printf(“无法保存!n“);elseprintf(“保存成功!n“); printf(“tt是否继续输入? (y/n)n“);scanf(“%s“,if (strcmp(c1,“n“)=0|strcmp(c1,“N“)=0)break;if(a+1)=1)head=p1;elsep2-next=p1;p2=p1;p1=(struct item*)malloc(length);p2-next=NULL;void outport()static int a;char c12=“n“;FILE* fp;st
9、ruct itemchar num13;char name9;float price;float num2;float num3;struct item *next; ;struct item* head,*p1,*p2;p1=p2=(struct item*)malloc(length);/*开辟一个新单元*/if(fp=fopen(“xls1“,“a+“)=NULL)printf(“文件打开错误!n“);head=NULL;for(a=1;a;a+)printf(“请输入销售商品的年月日(如2011/1/12)n“);scanf(“%s“,p1-num1);printf(“请输入商品的名称n“);scanf(“%s“,p1-name);printf(“请输入商品的编号“);scanf(“%d“,printf(“请输入商品的售价n“);scanf(“%f“,