《c语言仓库货物管理系统3438.docx》由会员分享,可在线阅读,更多相关《c语言仓库货物管理系统3438.docx(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件学院院课程设计计报告设计名称称: CC语言课课程设计计 选题名称称仓库货货物管理理系统姓 名:李明慧慧学 号:1511592256110专业班级级:云计计算1班班系 (院院):软软件学院院设计时间间:20015.12.2920113.112.331设计地点点:实验验室 115#6610C语言课程设计报告 第 53 页,共16页1课程程设计目目的(1) 巩固和加加深学生生对C语语言的基基本知识识的理解解和掌握握;(2) 掌握C语语言编程程和程序序调试的的基本技技能;(3) 利用C语语言进行行简单软软件设计计的基本本思路和和方法;(4) 提高运用用C语言言解决实实际问题题的能力力;(5) 掌握
2、书写写程序设设计说明明文档的的能力。2课程程设计任任务与要要求:任务设计题目目从任务务书所列列选题表表中选取取,每人人1题。要求:1、在处处理每个个题目时时,要求求从分析析题目的的需求入入手,进进行合理理的模块块设计,定定义正确确函数和和自定义义数据类类型(如如结构体体类型)、编编制上机机程序和和上机调调试等若若干步骤骤完成题题目,最最终写出出完整的的分析报报告。前前期准备备工作完完备与否否直接影影响到后后序上机机调试工工作的效效率。在在程序设设计阶段段应尽量量利用已已有的标标准函数数,加大大代码的的重用率率。 2、设计计的题目目要求达达到一定定工作量量(2000行以以上代码码),并并具有一一
3、定的深深度。3、程序序设计语语言推荐荐使用CC,程序序书写规规范,源源程序需需加必要要的注释释并且缩缩进一致致。4、每位位同学需需提交可可独立运运行的程程序;5、每位位同学需需独立提提交设计计报告书书(每人人一份),要要求编排排格式统统一、规规范、内内容充实实,不少少于100页(代代码不算算);6、课程程设计实实践作为为培养学学生动手手能力的的一种手手段,单单独考核核。3课程程设计说说明书一 需求求分析现阶段快快速的社社会发展展要求高高速的完完成任何何事情。在在各个市市场,特特别在超超市,管管理员对对货物的的高效管管理显得得尤为重重要。不不仅客户户希望快快速,准准确的查查询到购购买的货货物信息
4、息,管理理员也希希望能方方便的管管理货物物,给客客户提供供满意的的服务。因此,本程序就可以完成统计并管理货物信息的任务。实现了统计每个货物的信息,然后可以轻松地通过对货物编号的排序快速的去找到想要查询的货物,然后就可以实现对货物的修改、删除、添加等功能。本程序的的宗旨在在于提高高管理者者的工作作效率,方便管理者及客户进行查询,实现精确地管理货物目的。二 系统统设计该程序设设计主要要运用了了c语言言的基本本知识,通通过调用用各个函函数实现现整个完完整的系系统功能能。该仓仓库管理理系统主主要实现现了管理理员和用用户两种种不同身身份的功功能,以以下就是是程序实实现的主主要功能能:管理员的的功能: 用
5、户的的功能: 00:显示示菜单 1:读读取信息息 11:录入入信息 2:查查询信息息 22:查询询信息 3:退退出系统统 33:修改改信息4:添加加信息 55:删除除信息6:正向向排序7:输出出信息8:保存存信息9:退出出系统 10:读取信信息有功能模模块图和和流程图图功能模块块图:仓库货物管理系统管理员用户输入密码 退出系统否 查询信息 读取信息是否正确? 是 读取信息 退出系统 保存信息 输出信息 正向排序 删除信息 添加信息 修改信息 查询信息 录入信息显示菜单 开 始流程图:读取信息是否是管理员?否输入密码查询信息是密码是否正确? 是 菜单选择 查询信 息添加信息删除信息修改信息录入信
6、息 正向排序输入编号 选择添加方式输入编号输入编号输入信息输出信息排序完毕输入添加内容查询完毕 删除完毕选择修改内容输入完毕 添加完毕输入修改信息 修改完毕保 存 信 息 读 取 信 息 退 出 系 统结 束三 详细细设计 1、首首先写入入头文件件#inccludde#inccludde#inccludde#inccludde#deffinee M sizzeoff(sttrucct ggoodds)2、定义义一个结结构体存存储货物物的信息息struuct gooods intt nuum; chaar nnamee200; flooat priice; intt ammounnt; strr
7、uctt gooodss *nnextt;3、输入入货物信信息函数数struuct gooods *crreatte() intt i; strructt gooodss *hheadd,*pp,*qq; p=qq=heead=NULLL; priintff(请请输入货货物的编编号 名称 价格格 数数量nn); forr(i=1;i+) p=(strructt gooodss *)malllocc(siizeoof(sstruuct gooods); scaanf(%dd %ss %ff %dd,&p-numm,p-naame,&p-prricee,&pp-aamouunt); if(i=1)
8、 heaad=pp;elsee q-nexxt=pp; q=pp; if(p-numm=00) breeak; q-nexxt=NNULLL; retturnn heead;4、查找找货物信信息函数数voidd fiind(strructt gooodss *hheadd,innt nnum) strructt gooodss *pp1; p1=heaad; intt i=0;whille(pp1!=NULLL) iff(p11-nnum=nuum) ii=1; pprinntf(%dd %ss %.2f %dn,p1-nuum,pp1-namme,pp1-priice,p1-ammounnt
9、); pprinntf(查找找货物编编号成功功); p11=p11-nnextt; iff(i=0) pprinntf(没有有查到货货物编号号n); 5、修改改信息函函数voidd chhangge(sstruuct gooods *heead,intt nuum) strructt gooodss *pp2; p2=heaad; intt j; intt i=0; whiile(p2!=NUULL) if(p2-nuum=numm) i=11; pprinntf(你想想修改货货物的11.编号号 2.名称 3.价价格 44.数量量 5.全部修修改?n); scaanf(%dd,&j); swi
10、itchh(j) caase 1:pprinntf(请输输入修改改的货物物的编号号:);sccanff(%d,&p22-nnum);prrinttf(修改货货物信息息成功n);brreakk; caase 2:pprinntf(请输输入修改改的货物物的名称称:);sccanff(%s,p2-naame);prrinttf(修改货货物信息息成功n);brreakk; caase 3:pprinntf(请输输入修改改的货物物的价格格:);sccanff(%f,&p22-ppricce);priintff(修修改货物物信息成成功nn);breeak; caase 4:pprinntf(请输输入修改改
11、的货物物的数量量:);sccanff(%d,&p22-aamouunt);prrinttf(修改货货物信息息成功n);brreakk; caase 5:pprinntf(请输输入修改改的货物物的编号号 名称称 价格格 数量量:);sccanff(%d %s %f %d,&p22-nnum,p2-naame,&p22-ppricce,&p2-ammounnt);priintff(修修改货物物信息成成功nn);breeak; deefauult :prrinttf(errror!n);bbreaak; p2=p2-neext; iff(i=0) priintff(没没有找到到要修改改的货物物编号n
12、);6、(11)添加加货物信信息函数数-头头插法struuct gooods *addd1(strructt gooodss *hheadd) sttrucct ggoodds *p3,*pmm; innt ii=0; pmm=heead; p33=(sstruuct gooods *)mmallloc(sizzeoff(sttrucct ggoodds); prrinttf(请添加加货物的的编号 名称称 价价格 数量n); sccanff(%d %s %f %d,&p33-nnum,p3-naame,&p33-ppricce,&p3-ammounnt); whhilee(pmm!=NNULL
13、L) whhilee(pmm-nnum=p33-nnum) prrinttf(已有此此货物编编号nn); sscannf(%d %s %f %d,&pp3-numm,p33-nnamee,&pp3-priice,&p33-aamouunt); pmm=heead; pmm=pmm-nnextt; p33-nnextt=heead; heead=p3; reeturrn hheadd; prrinttf(添加信信息成功功n);(2)添添加货物物信息函函数-非头插插法struuct gooods *addd2(strructt gooodss *hheadd,innt nnum) sttrucct
14、 ggoodds *p4,*p55; p55=heead; p44=(sstruuct gooods *)mmallloc(sizzeoff(sttrucct ggoodds); prrinttf(请添加加货物的的编号 名称称 价价格 数量n); sccanff(%d %s %f %d,&p44-nnum,p4-naame,&p44-ppricce,&p4-ammounnt); whhilee(p55!=NNULLL) whhilee(p55-nnum=p44-nnum) prrinttf(已有此此货物编编号nn); sccanff(%d %s %f %d,&p44-nnum,p4-naame
15、,&p44-ppricce,&p4-ammounnt); p55=heead; iff(p55-nnum!=p44-nnum) pp5=pp5-nexxt; p55=heead; whhilee(p55!=NNULLL) if(p5-nuum=numm) p44-nnextt=p55-nnextt; p55-nnextt=p44; p55=p55-nnextt; reeturrn hheadd; prrinttf(添加信信息成功功n);7、删除除货物信信息函数数struuct gooods *deel(sstruuct gooods *heead,intt nuum) sttrucct ggo
16、odds *p3,*p44; p33=p44=heead; innt ii=0; whhilee(p33-nnextt!=NNULLL) pp4=pp3; pp3=pp3-nexxt; iif(pp3-numm=nnum) i=1; p44-nnextt=p33-nnextt; frree(p3); prrinttf(删除货货物信息息成功n); iff(i=0) pprinntf(没有有找到要要删除的的货物n); reeturrn hheadd;8、正向向排序函函数struuct gooods *soort(strructt gooodss *hheadd) strructt gooodss
17、*pp,*qq,*aa,*bb,*nnewhheadd; newwheaad=NNULLL; intt maax; whiile(heaad!=NULLL) p=heaad; q=heaad-nexxt; a=heaad; b=NULLL; maax=pp-nnum; wwhille(qq!=NNULLL) iff(q-nuummmax) mmax=q-numm; aa=q; bb=p; p=p-nexxt; q=q-nexxt; if(a!=heaad) b-neext=a-nexxt; elsse heaad=hheadd-nnextt; if(newwheaad=NULLL) nnewh
18、headd=a; aa-nnextt=NUULL; elsse aa-nnextt=neewheead; nnewhheadd=a; reeturrn nnewhheadd;9、输出出信息函函数voidd prrintt(sttrucct ggoodds *heaad) strructt gooodss *ppt; pt=heaad; whiile(pt!=NUULL) priintff(%d %s %.2ff %ddn,ptt-nnum,pt-naame,pt-prricee,ptt-aamouunt); pt=pt-neext; 10、保保存货物物信息函函数voidd saave(strr
19、uctt gooodss *hheadd) FIILE *fpp; strructt gooodss *ppm; pmm=heead; iff(ffp=ffopeen(aaaa.daat,w)=NUULL) priintff(ccannnot havve tthiss fiilen); exiit(00); whhilee(pmm!=NNULLL) fwrritee(pmm,siizeoof(sstruuct gooods),1,fp); pm=pm-neext; fcclosse(ffp); prrinttf(保存信信息成功功n);11、读读取货物物信息函函数struuct gooods *
20、 ssavee_() innt ii; sttrucct ggoodds *heaad,*p,*q,*p1; FIILE *fpp; fpp=foopenn(aaaa.datt,r); iff(fpp=NNULLL) prrinttf(cannnott haave thiis ffileen); exxit(0); foor(ii=1;i+) p=(strructt gooodss *)malllocc(siizeoof(sstruuct gooods); freead(p,MM,1,fp); if(i=1) heaad=pp; elsse q-nexxt=pp; q=pp; if(p-nex
21、xt=0) breeak; q-nexxt=NNULLL; p1=heaad; whiile(p1!=NUULL) prrinttf(%d %s %.22f %dnn,pp1-numm,p11-nnamee,p11-ppricce,pp1-amoountt); p11=p11-nnextt; retturnn heead; fcllosee(fpp);12、释释放内存存函数voidd frree_(sttrucct ggoodds *heaad) sttrucct ggoodds *p5; whhilee(heead!=NUULL) p55=heead; frree(p5); heead=he
22、aad-nexxt; prrinttf(释放内内存成功功n);13、管管理员界界面voidd meenu11() sttrucct ggoodds *heaad; innt kk,nuum,nn,m,j,ii,z=3; chhar ch7; prrinttf(请输入入密码:); sccanff(%s,ch); whhilee(1) if(strrcmpp(chh,paasswwordd)=0) pprinntf(欢迎迎进入仓仓库管理理系统n);brreakk; elsse pprinntf(请再再次输入入密码:(你还还有%dd次机会会)nn,zz-1); sscannf(%s,chh); zz
23、-; if(z=0) priintff(退退出系统统); exiit (0); prrinttf(tt*n); prrinttf(tt*仓库管管理系统统*n); prrinttf(tt*n); prrinttf(tt*0.显示菜菜单*nn); prrinttf(tt*1.录入信信息*nn); prrinttf(tt*2.查询信信息*nn); prrinttf(tt*3.修改信信息*nn); prrinttf(tt*4.添加信信息*nn); prrinttf(tt*5.删除信信息*nn); prrinttf(tt*6.正向排排序*nn); prrinttf(tt*7.输出信信息*nn); prr
24、inttf(tt*8.保存信信息*nn); prrinttf(tt*9.退出系系统*nn); prrinttf(tt*10.读取信信息*nn); prrinttf(tt*n); whhilee(1) priintff(n); priintff(请请输入功功能选择择键:); scaanf(%dd,&k); priintff(n); if(k=1) heead=creeatee(); prrinttf(创建信信息成功功请继续续操作n); prrinttf(n); if(k=2) prrinttf(请输入入要查询询的货物物编号:); sccanff(%d,&nuum); fiind(heaad,nn
25、um); prrinttf(n); if(k=3) prrinttf(请输入入要修改改的货物物编号:); sccanff(%d,&n); chhangge(hheadd,n); prrintt(heead); pprinntf(nn); if(k=4) prrinttf(1.头插 2.非头插插n); sccanff(%d,&i); swwitcch(ii) caase 1:hheadd=addd1(heaad);priint(heaad);breeak; casse 22:sccanff(%d,&j);addd2(heaad,jj);pprinnt(hheadd);bbreaak; deffaullt :priintff(eerroor!);bbreaak; if(k=5) priintff(请请输入要要删除的的货物编编号:); sccanff(%d,&m); deel(hheadd,m); prrintt(heead); prrinttf(n); if(k=6) prrinttf(请将下下列货物物编号进进行排序序n); heead=sorrt(hheadd); prrintt(heead); prrinttf(货物排排序成功功n); if(k=7) prrintt(heead);
限制150内