您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > c语言仓库货物管理系统
软件学院课程设计报告设计名称:C语言课程设计选题名称仓库货物管理系统姓名:李明慧学号:1515925610专业班级:云计算1班系(院):软件学院设计时间:2015.12.29~2013.12.31设计地点:实验室15#610C语言课程设计报告第1页,共16页1.课程设计目的(1)巩固和加深学生对C语言的基本知识的理解和掌握;(2)掌握C语言编程和程序调试的基本技能;(3)利用C语言进行简单软件设计的基本思路和方法;(4)提高运用C语言解决实际问题的能力;(5)掌握书写程序设计说明文档的能力。2.课程设计任务与要求:任务设计题目从任务书所列选题表中选取,每人1题。要求:1、在处理每个题目时,要求从分析题目的需求入手,进行合理的模块设计,定义正确函数和自定义数据类型(如结构体类型)、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。2、设计的题目要求达到一定工作量(200行以上代码),并具有一定的深度。3、程序设计语言推荐使用C,程序书写规范,源程序需加必要的注释并且缩进一致。4、每位同学需提交可独立运行的程序;5、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算);6、课程设计实践作为培养学生动手能力的一种手段,单独考核。3.课程设计说明书一需求分析现阶段快速的社会发展要求高速的完成任何事情。在各个市场,特别在超市,管理员对货物的高效管理显得尤为重要。不仅客户希望快速,准确的查询到购买的货物信息,管理员也希望能方便的管理货物,给客户提供满意的服务。因此,本程序就可以完成统计并管理货物信息的任务。实现了统计每个货物的信息,然后可以轻松地通过对货物编号的排序快速的去找到想要查询的货物,然后就可以实现对货物的修改、删除、添加等功能。本程序的宗旨在于提高管理者的工作效率,方便管理者及客户进行查询,实现精确地管理货物目的。二系统设计该程序设计主要运用了c语言的基本知识,通过调用各个函数实现整个完整的系统功能。该仓库管理系统主要实现了管理员和用户两种不同身份的功能,以下就是程序实现的主要功能:管理员的功能:用户的功能:C语言课程设计报告第2页,共16页0:显示菜单1:读取信息1:录入信息2:查询信息2:查询信息3:退出系统3:修改信息4:添加信息5:删除信息6:正向排序7:输出信息8:保存信息9:退出系统10:读取信息有功能模块图和流程图功能模块图:否是仓库货物管理系统管理员用户输入密码是否正确?显示菜单录入信息查询信息修改信息添加信息删除信息正向排序输出信息保存信息退出系统读取信息读取信息查询信息退出系统C语言课程设计报告第3页,共16页流程图:否是是开始是否是管理员?输入密码读取信息查询信息密码是否正确?菜单选择查询信息输入编号查询完毕输入信息录入信息输入完毕修改信息选择修改内容输入编号输入修改信息添加信息选择添加方式输入添加内容添加完毕删除信息输入编号删除完毕正向排序排序完毕输出信息C语言课程设计报告第4页,共16页三详细设计1、首先写入头文件#includestdio.h#includestdlib.h#includestring.h#includewindows.h#defineMsizeof(structgoods)2、定义一个结构体存储货物的信息structgoods{intnum;charname[20];修改完毕保存信息读取信息退出系统结束C语言课程设计报告第5页,共16页floatprice;intamount;structgoods*next;};3、输入货物信息函数structgoods*create(){inti;structgoods*head,*p,*q;p=q=head=NULL;printf(请输入货物的编号名称价格数量\n);for(i=1;;i++){p=(structgoods*)malloc(sizeof(structgoods));scanf(%d%s%f%d,&p-num,p-name,&p-price,&p-amount);if(i==1)head=p;elseq-next=p;q=p;if(p-num==0){break;}}q-next=NULL;returnhead;}4、查找货物信息函数voidfind(structgoods*head,intnum){structgoods*p1;p1=head;inti=0;while(p1!=NULL){if(p1-num==num){i=1;printf(%d%s%.2f%d\n,p1-num,p1-name,p1-price,p1-amount);printf(查找货物编号成功);}p1=p1-next;}if(i==0)printf(没有查到货物编号\n);C语言课程设计报告第6页,共16页}5、修改信息函数voidchange(structgoods*head,intnum){structgoods*p2;p2=head;intj;inti=0;while(p2!=NULL){if(p2-num==num){i=1;printf(你想修改货物的1.编号2.名称3.价格4.数量5.全部修改?\n);scanf(%d,&j);switch(j){case1:printf(请输入修改的货物的编号:);scanf(%d,&p2-num);printf(修改货物信息成功\n);break;case2:printf(请输入修改的货物的名称:);scanf(%s,p2-name);printf(修改货物信息成功\n);break;case3:printf(请输入修改的货物的价格:);scanf(%f,&p2-price);printf(修改货物信息成功\n);break;case4:printf(请输入修改的货物的数量:);scanf(%d,&p2-amount);printf(修改货物信息成功\n);break;case5:printf(请输入修改的货物的编号名称价格数量:);scanf(%d%s%f%d,&p2-num,p2-name,&p2-price,&p2-amount);printf(修改货物信息成功\n);break;default:printf(error!\n);break;}}p2=p2-next;}if(i==0)printf(没有找到要修改的货物编号\n);}6、(1)添加货物信息函数--------头插法structgoods*add1(structgoods*head){structgoods*p3,*pm;inti=0;pm=head;p3=(structgoods*)malloc(sizeof(structgoods));printf(请添加货物的编号名称价格数量\n);scanf(%d%s%f%d,&p3-num,p3-name,&p3-price,&p3-amount);while(pm!=NULL){while(pm-num==p3-num){printf(已有此货物编号\n);C语言课程设计报告第7页,共16页scanf(%d%s%f%d,&p3-num,p3-name,&p3-price,&p3-amount);pm=head;}pm=pm-next;}p3-next=head;head=p3;returnhead;printf(添加信息成功\n);}(2)添加货物信息函数--------非头插法structgoods*add2(structgoods*head,intnum){structgoods*p4,*p5;p5=head;p4=(structgoods*)malloc(sizeof(structgoods));printf(请添加货物的编号名称价格数量\n);scanf(%d%s%f%d,&p4-num,p4-name,&p4-price,&p4-amount);while(p5!=NULL){while(p5-num==p4-num){printf(已有此货物编号\n);scanf(%d%s%f%d,&p4-num,p4-name,&p4-price,&p4-amount);p5=head;}if(p5-num!=p4-num){p5=p5-next;}}p5=head;while(p5!=NULL){if(p5-num==num){p4-next=p5-next;p5-next=p4;}p5=p5-next;}returnhead;printf(添加信息成功\n);}7、删除货物信息函数C语言课程设计报告第8页,共16页structgoods*del(structgoods*head,intnum){structgoods*p3,*p4;p3=p4=head;inti=0;while(p3-next!=NULL){p4=p3;p3=p3-next;if(p3-num==num){i=1;p4-next=p3-next;free(p3);printf(删除货物信息成功\n);}}if(i==0)printf(没有找到要删除的货物\n);returnhead;}8、正向排序函数structgoods*sort(structgoods*head){structgoods*p,*q,*a,*b,*newhead;newhead=NULL;intmax;while(head!=NULL){p=head;q=head-next;a=head;b=NULL;max=p-num;while(q!=NULL){if(q-nummax){max=q-num;a=q;b=p;}p=p-next;q=q-next;}if(a!=head)C语言课程设计报告第9页,共16页{b-next=a-next;}else{head=head-next;}if(newhead==NULL){newhead=a;a-next=NULL;}else{a-next=newhead;newhead=a;}}returnnewhead;}9、输出信息函数voidprint(structgoods*head){structgoods*pt;pt=head;while(pt!=NULL){printf(%d%s%.2f%d\n,pt-num,pt-name,pt-price,pt-amount);pt=pt-next;}}10、保存货物信息函数voidsave(structgoods*head){FILE*fp;structgoods*pm;pm=head;if((fp=fopen(aaa.dat,w))==NULL){printf(cannothavethisfile\n);exit(0);}while(pm!=NULL){fwrite(pm,sizeof(structgoods),1,fp);pm=pm-next;C语言课程设计报告第10页,共16页}fclose(fp);printf(保存信息成功\n);}11、读取货物信息函数structgoods*save_(){inti;structgoods*head,*p,*q,*p1;FILE*fp;fp=fopen(aaa.dat,r);if(fp==NULL){printf(cannothavethisfile\n);exit(0);}for(i=1;;i++){p=(structgoods*)malloc(sizeof(structgoods));fread(p,M,1,fp);if(i==1)head=p;elseq-next=p;q=p;if(p-next==0){break;}}q-next=NULL;p1=head;w
本文标题:c语言仓库货物管理系统
链接地址:https://www.777doc.com/doc-1243498 .html