C语言课程设计物资管理系统_第1页
C语言课程设计物资管理系统_第2页
C语言课程设计物资管理系统_第3页
C语言课程设计物资管理系统_第4页
C语言课程设计物资管理系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、中国地质大学(武汉)学 院: 专 业: 姓 名: 学 号:一 指导老师:_23目录一. 题目要求3二. 需求分析 3三. 总体设计4四. 详细设计 44.1主函数 44.2各功能模块设计 54.2.1信息输入模块5422信息查找模块64.2.3新物资入库模块84.2.4领料模块84.2.5打印功能模块84.2.6采用文件来存储数据信息 9五. 上机操作10六. 总结 13附录 14物资管理系统一. 题目要求请设计一个物资管理系统,要求主程序中应提供文字交互菜单界面,要求包含以下几个功能模块:1. 信息输入模块input():建立物资管理数据总文件,完成对物资原库存信息的录入,并存放到指定文件中

2、(pro.dat)2. 信息查找模块search():采用如下方式进行查找,若找到,则输出该物资的相 关信息;没有则给出提示信息。(1) 按产品名称查询(2) 进货日期查询并统计。(3) 按产品名称和规格查询并统计。3. 新物资入库模块in sert():在原数据文件中插入新物资的信息。4. 领料模块lend():查找所领取物资的信息,满足领料的要求,请登记领取物资名称,日期,数量(领料后修改)5. 打印功能模块printf ()(1)打印领料单 (2)打印物资库存清单。【提示】建立如下结构体:struct datei nt year ;int month ; int day;struct p

3、roduct char p_name20;物资名称 long int p_num7;物资编号 char size4;物资规格 struct date in date;进货日期 long int max_s;最大库存量 long int min_s;最小库存量 long int real_s;实际库存量 struct product*next; 结点指针 Struct l_pro char p_name 20;物资名称 struct date l_date;领料日期 long int total ;领料数量 struct l_pro*next;结点指针;二. 需求分析根据题目要求,由于物资信息是

4、存放在文件中, 所以提供文件的输入, 输出等操作在 程序中需要浏览物资的需要浏览物资信息,应提供显示,查找等操作;另外还应提供键盘选择菜单实现功能选择。三. 总统设计根据上面的分析及题目要求可以分为以下六个模块。图(1)系统模块图四. 详细设计(1) 主函数:主函数一般是设计简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其中流程图如图(2)/*主函数*/menu() int n,w1; doputs(ttt*me nu *puts(ttt 1.enter new datann);/* 输入数据 */ puts(ttt 2.search menunn);/* 查找信息

5、 */ puts(ttt 3.insert new datann);/* 插入新数据 */ puts(ttt 4.lend datann);/* 领料数据 */ puts(ttt5.print datann);/* 打印 */puts(ttt 6.exit);/* 退出 */ printf(Please choose the number 1-6: bb);puts(nttt* n);scan f(%d,&n); if(n6)w1= 1;getchar(); else w1=0;while(w 仁=1); switch( n)case 1:e nter();break;case 2:searc

6、h();break;case 3:i nsert();break;case 4:le nd();break;case 5:pri nt();break;case 6:exit(0);main ()men u();(2 )各功能模块设计图(2)主函数流程图1 信息输入模块:主要是为了输入商品类型,名称,数量,型号,日期,最大,最小,真实库存量,并存放在指定的文件(pro.dat)中。enter()/*信息输入模块*/int i,n;printf(nHow many products do you want to input(0-%d)?:,N-1); scan f(%d, &n);prin tf

7、(nEn ter data no w!nn ”);for(i=0;i n ;i+)pri ntf(Please in put the %dth products data:n,i+1);in put(i);if(i!=0)save( n);prin tf_back();in put(i nt i)pri ntf(n name(1-20letter):);sca nf(%s,&proi.p_ name);prin tf(nn umber(1-7letter):);scan f(%d, &proi.p_ nu m);prin tf(nsize(1-4letter):);scan f(%s,&pro

8、i.size);prin tf(ndate(*.*.*):);开始结束输入用户要输入 学生记录的个数 n1YFN保存调用函返回主采单数 save( n)i从0到n1调用 输入函数in put( i)图(3)信息输入模块scan f(%d.%d.%d,&proi.in_date.year,&proi.in_date.mo nth,& proi.in_date.day); printf(min_s real_s max_s:);scan f(%d %d %d,&proi.min_s,&proi.real_s, &proi.max_s);prin tf_data(i nt i)pri ntf(nn

9、amet num ttsizetdatettmin real maxn);prin tf(%st%dtt%st%d.%d.%dt%d-%d-%d,proi.p_name,proi.p_ num,proi.size,proi.in_d ate.year,proi.i n_date.m on th,proi.i n_date.day,proi.m in _s,proi.real_s,proi.max_s); prin tf_back()pri ntf(nnSuccessful!nttTha nk you!n);getch();menu();2. 查询模块search。/*信息查找模块*/int n

10、,w2;doputs(ttt*search menu *nn);puts(ttt1.search by n ame);puts(ttt2.search by data);puts(ttt3.search by n ame and size);puts(ttt4.exit);puts(nttt*n);prin tf(Choose the number to search 1-4: bb);scan f(%d,&n);if(n 4) w2=1;getchar();else w2=0;while(w2=1);switch( n)case 1:search_by_ name();break; case

11、 2:search_by_date();break;case 3:search_by_ namea ndsize();break;search_by_name。/*按名称查找*/显示找到的记录提示没有找到int j,n ,m=0;char a20;n=load();结束图(4)查找模块prin tf(nln put the products n amenn ame:); sca nf(%s,a);for(j=0;j n;j+)if(strcmp(a,proj.p_ name)=O)m+;prin tf_data(j);prin tf(nThis is the %dth product you

12、have searched! ,m);getch();menu();struct s_date/*按日期查找 */int year;int mon th;int day;s;search_by_date()int j,n,m=0;n=load();prin tf(nl nput the date(*.*.*)ndate:);sca nf(%d.%d.%d, &s.year, &s.mo nth, &s.day);for(j=0;j n;j+)if(s.year=proj.i n_date.year) &( s.m on th=proj.i n_date.m onth)&( s.day=proj

13、.i n_date.day)m+;prin tf_data(j);prin tf(nThis is the %dth product you have searched! ,m);getch();menu();search_by_ namea ndsize()/* 按名称和规格查找 */int j,n ,m=0;char a20,b4;n=load();prin tf(nln put the products n amenn ame:);sca nf(%s,a);prin tf(nln put the products sizensize:);sca nf(%s,b);for(j=0;j n;

14、j+)if(strcmp(a,proj.p _n ame)=0)&(strcmp(b,proj.size)=0)m+;prin tf_data(j);prin tf(nThis is the %dth product you have searched! ,m);getch();menu();开始3. 新物资入库模块insert()/*新物资入库模块*/int n,c;n=load();puts(nln put one data:n);doin put( n);prin tf_data( n);prin tf(nnAre you sure?n1).suren2).can cel and aga

15、 inn 3).back without savescan f(%d,&c);if(c=1)save (n+1);pri ntf_back();else if(c=3)me nu();while(c=2);min_s,& proi.real_s,&proi.max_s);图(5)新物资入库模块4. 领料模块lend()/*领料模块*/int j,n;n=load();prin tf(nPlease check the products data you lend!);prin tf(n name(1-20letter)size(1-4letter) date amou ntn);scan f(

16、%s%s%d.%d.%d%d,&check.p_ name, &check.size, &check.l_date.year,&check.l_date .mon th,&check .l _date.day,&check.total);for(j=0;j n;j+)if(strcmp(check.p_ name,proj.p_ name)=0)&( strcmp(check.size,proj.size)=0)&(che ck.l _date.year=proj.i n_date.year)&(check. l_date.m on th=proj.i n_date.m onth)&(chec

17、k .l_ date.day=proj.i n_date.day )&(check.total=proj.real_s)proj.real_s-=check.total;save(proj.real_s);prin tf_data(j);prin tf_back();else prin tf(Erro!);5. 打印模块print()/*打印模块*/int i,n;n=load();for(i=0;i n;i+)prin tf_data(i);getch();men u();6. 采用文件来存储数据信息#in cludesave(i nt n)FILE*fp;int k;if(fp=fope

18、n( pro.dat,wb)=NULL)pri ntf(nCa nn ot ope n file! n);return NULL;for(k=0;k n; k+)if(prok.real_s!=0)if(fwrite(&prok,sizeof(struct product),1,fp)!=1) printf(文件书写错误!n);fclose(fp);load()FILE*fp;int k;if(fp=fope n(pro.dat,rb)=NULL)printf(n不能打开文件!n);return NULL;for(k=0;!feof(fp);k+)fread(&prok,sizeof(stru

19、ct product),1,fp);fclose(fp);return(k-l);五.上机操作图(6)物资管理系统菜单图(7)输入两组数据min real max1-8-10min real max1-5-9图(8)查询菜单Ci l:WBI C课程设计Debueg.2. HQ-Input the products name name:bhbpanenunsizedatebbh438512422010-9.2This is the 1th product you haue searched?图(9)按名称查询d 谢Bt C谍程设计Debug9.2.eie-Input the date:cccnu

20、mbeF(i-71ettei*):5siae=2010.09.03min_s real_s max_s:1 3 8namenunsizedatenin realmaxLc438520432010.9.31-3-8fire i/ou sure?1.sure.cancel and aain.back without save 1Successful!Thank you!图(12)新物资入库模块Ci -I:W3I CM!程设计Debug9.2.eie-Please check the productJ s data you lendf namel-201etter) si2el-41ettep) d

21、ate amount aaa 12010.09.01 3name numsize datemin real max4385044i2010.9.1i-2-9Successful!Thank you?图(13)领料模块图(14)打印模块六.总结在学习C语言这门课时,由于是第一次接触计算机的课程,而且这门课本 来就很抽象,因此,上课时就觉得听不懂上程序设计课时也是一知半解,加上 设计课的时间短,所以自己也没有什么进步。老师布置课程设计后,通过不断的学习与实践,慢慢有了一些进步,自己在 综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的方面有了很 大的提高。当今科学技术发展日新日异,计

22、算机应用在生活中更是无处不在。 作 为一个大学来说掌握计算机技术是十分重要的。回顾这次的课程设计,我感慨良多。从题目到编程,再从编程到调试,我学 到很多很多的的东西,通过这次课程设计,我懂得了学习计算机靠的是大量的上 机编程调试,从中才可以不断提高编程水平。 在设计的过程中,我遇到了很多问 题,这毕竟第一次做的,难免会遇到过各种各样的问题,比如说结构体、调试不 成功我很高兴在我遇到困难的时候,同学们给了我很多的帮助,可以这么说,没 有同学们,我现在肯定还没有完成这次课程设计。在设计中遇到了很多编程问题, 在同学的帮助下,最后都迎刃而解。最后,我要再次对各位同学和曹弘老师说一 声,谢谢大家的帮助

23、,谢谢!附录:源程序#i nclude#i ncludevstri ng.h#defi ne N 100 struct dateint year;int mon th;int day;struct product/*主函数*/char p_name20;/* 物资名称 */ long int p_num7;/* 物资编号 */ char size4;/*物资规格 */ struct date in_date;/进货日期 */ long int max_s;/*最大库存量 */ long int min_s;/* 最小库存量 */ long int real_s;/*实际库存量 */ struc

24、t product *next;/*结点指针 */ proN;menu()int n,w1;doputs(ttt*me nu *nn)puts(ttt1.enter new datann);/*输入数据 */puts(ttt 2.search menunn);/*查找信息 */ puts(ttt 3.insert new datann);/*插入新数据 */ puts(ttt 4.lend datann);/*领料数据 */ puts(ttt 5.pri nt datann);/* 打印 */ puts(ttt 6.exit);/* 退出 */puts(nttt*n);prin tf(Plea

25、se choose the number 1-6: bb);sca nf(%d,&n); if(n 6)w 仁 1;getchar();else w1=0;while(w 仁=1); switch( n)case 1:e nter();break;case 2:search();break;case 3:i nsert();break;case 4:le nd();break;case 5:pri nt();break;case 6:exit(0);mai n()menu();enter()/*信息输入模块*/int i,n;prin tf(nHow many products do you

26、want to i nput(0-%d)?:,N-1);sca nf(%d,&n);prin tf(nEn ter data no w!nn);for(i=0;i n;i+)pri ntf(Please in put the %dth products data:n,i+1);in put(i);if(i!=0)save( n);prin tf_back(); _search(”*信息查找模块*/ int n,w2;doputs(ttt*search menu * nn); puts(ttt1.search by n ame);puts(ttt2.search by data);puts(tt

27、t3.search by n ame and size); puts(ttt4.exit);puts(nttt*n);prin tf(Choose the number to search 1-4: bb); sca nf(%d,&n);if(n 4)w2=1;getchar(); else w2=0;while(w2=1); switch( n)case 1:search_by_ name();break;case 2:search_by_date();break;case 3:search_by_ namea ndsize();break;case 4:getch();me nu();se

28、arch_by_name()/*按名称查找 */int j,n ,m=0;char a20;n=load();prin tf(nln put the products n amenn ame:);sca nf(%s,a);for(j=0;j n ;j+)if(strcmp(a,proj.p_ name)=0)m+;prin tf_data(j);prin tf(nThis is the %dth product you have searched!,m);getch();menu();struct s_date/*按日期查找 */int year;int mon th;int day;s;se

29、arch_by_date()int j,n,m=0;n=load();prin tf(nI nput the date(*.*.*)ndate:);sca nf(%d.%d.%d,&s.year,&s.mo nth,&s.day);for(j=0;j n ;j+)if(s.year=proj.i n_date.year)&( s.m on th=proj.i n_date.mo nth)&(s.day=proj.i n_date.day)m+;prin tf_data(j); _prin tf(nThis is the %dth product you have searched!,m);ge

30、tch();menu();search_by_nameandsize()/按名称和规格查找 */int j,n ,m=O;char a20,b4;n=load();prin tf(nln put the products n amenn ame:);sca nf(%s,a);prin tf(nln put the products sizensize:);sca nf(%s,b);for(j=0;j n ;j+)if(strcmp(a,proj.p_ name)=0)&( strcmp(b,proj.size)=0) m+;prin tf_data(j); _prin tf(nThis is

31、the %dth product you have searched!,m); getch();menu(); insert()/*新物资入库模块*/int n,c;n=load();puts(nln put one data:n);doin put( n);prin tf_data( n);saveprintf(nnAre you sure?n1).suren2).cancel and againn3).back without bb);sca nf(%d,&c);if(c=1)save( n+1);pri ntf_back();else if(c=3)me nu();while(c=2);

32、struct l_prochar p_n ame20;char size4;struct date l_date;long int total;struct l_pro *n ext;check;lend()/*领料模块*/int j,n;n=load();prin tf(nPlease check the products data you len d!);printf(nname(1-20letter) size(1-4letter) date amountn);sca nf(%s%s%d.%d.%d%d,&check.p_ name,&check.size,&check. I_date.

33、year,&chec k. l_date.m on th,&check. l_date.day,&check.total);for(j=0;j n ;j+)if(strcmp(check.p_ name,proj.p_ name)=0)&( strcmp(check.size,proj.size)=0) &(check .l _date.year=proj.i n_date.year)&(check. I_date.m on th=proj.i n_date. mon th)&(check .l _date.day=proj.i n_date.day)&(check.total=proj.real_s)proj.real_s-=check.total;save(proj.real_s);prin tf_data(j);prin tf_back();else prin tf(Erro!); prin t()/*打印模块*/ int i,n;n=load(); for(i=0;i n;i+) prin tf_data(i); ge

温馨提示

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

评论

0/150

提交评论