C语言物资管理系统设计报告.docx

上传人:b****2 文档编号:18584850 上传时间:2023-08-19 格式:DOCX 页数:31 大小:244.89KB
下载 相关 举报
C语言物资管理系统设计报告.docx_第1页
第1页 / 共31页
C语言物资管理系统设计报告.docx_第2页
第2页 / 共31页
C语言物资管理系统设计报告.docx_第3页
第3页 / 共31页
C语言物资管理系统设计报告.docx_第4页
第4页 / 共31页
C语言物资管理系统设计报告.docx_第5页
第5页 / 共31页
C语言物资管理系统设计报告.docx_第6页
第6页 / 共31页
C语言物资管理系统设计报告.docx_第7页
第7页 / 共31页
C语言物资管理系统设计报告.docx_第8页
第8页 / 共31页
C语言物资管理系统设计报告.docx_第9页
第9页 / 共31页
C语言物资管理系统设计报告.docx_第10页
第10页 / 共31页
C语言物资管理系统设计报告.docx_第11页
第11页 / 共31页
C语言物资管理系统设计报告.docx_第12页
第12页 / 共31页
C语言物资管理系统设计报告.docx_第13页
第13页 / 共31页
C语言物资管理系统设计报告.docx_第14页
第14页 / 共31页
C语言物资管理系统设计报告.docx_第15页
第15页 / 共31页
C语言物资管理系统设计报告.docx_第16页
第16页 / 共31页
C语言物资管理系统设计报告.docx_第17页
第17页 / 共31页
C语言物资管理系统设计报告.docx_第18页
第18页 / 共31页
C语言物资管理系统设计报告.docx_第19页
第19页 / 共31页
C语言物资管理系统设计报告.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言物资管理系统设计报告.docx

《C语言物资管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《C语言物资管理系统设计报告.docx(31页珍藏版)》请在冰点文库上搜索。

C语言物资管理系统设计报告.docx

C语言物资管理系统设计报告

C语言程序设计报告

——物资管理系统

 

*

 

指导老师:

姓名:

班级序号:

学号:

 

一.题目要求

请设计一个物资管理系统,要求主程序中应提供文字交互菜单界面,要求包含以下几个功能模块:

1.信息输入模块input():

建立物资管理数据总文件,完成对物资原库存信息的录入,并存放到指定文件中

2.信息查找模块search():

采用如下方式进行查找,若找到,则输出该物资的相关信息;没有则给出提示信息。

(1)按产品名称查询(2)进货日期查询并统计。

(3)按产品名称和规格查询并统计。

3.新物资入库模块insert():

在原数据文件中插入新物资的信息。

4.领料模块lend():

查找所领取物资的信息,满足领料的要求,请登记领取物资名称,日期,数量(领料后修改)

5.

6.打印功能模块printf()

(1)打印领料单(2)打印物资库存清单。

二.需求分析

根据题目要求,由于物资信息是存放在文件中,所以提供文件的输入,输出等操作在程序中需要浏览物资的需要浏览物资信息,应提供显示,查找等操作;另外还应提供键盘选择菜单实现功能选择。

三.总统设计

根据上面的分析及题目要求可以分为以下六个模块(系统模块如下图1。

四.详细设计

<

(一)主函数一般是设计简洁,只提供输入,处理和输出部分的函数调用。

其中各功能模块用菜单方式选择。

其中流程图如图

(2)

menu()

{

intn,w1;

do

{

puts("\n\t\t*****************MENU********************\n\n");

puts("\t\t\t1.物资信息输入模块");

`

puts("\t\t\t2.查询模块");

puts("\t\t\t3.物资信息查找模块");

puts("\t\t\t4.领料查询");

puts("\t\t\t5.打印模块");

puts("\t\t\");

puts("\n\n\t\t***************************************\n");

puts("\t\t******************************by袁璐\n");

puts("\t\t*****************************");

printf("选择你要得命令[1-6]:

[]\b\b");

scanf("%d",&n);

if(n<1||n>6)N

{w1=1;getchar();}

elsew1=0;

}while(w1==1);

switch(n)

{case1:

enter();break;

case2:

search();break;

case3:

insert();break;图2

case4:

lend();break;

case5:

print();break;

case6:

exit(0);

}

}

 

>

main()***********主函数**************

{puts("\n\t\t****************欢迎进入物资管理系统*****************\n\n");

puts("\t\t\t姓名:

袁璐");

puts("\t\t\t学号:

604");

puts("\t\t\tEmail:

6@");

puts("\t\t\tTel:

005");

puts("\n\n\t\t***************************************\n");

puts("\t\t******************************制作袁璐\n");

puts("\t\t*****************************");

printf("\n按ENTER键进入...");

getch();

menu();

}

(二)各功能模块设计

1.输入模块*********几种类型,名称等信息*********

|

enter()

{inti,n;

printf("\n物资的种类大小(0-%d):

",N-1);

scanf("%d",&n);

printf("\n输入数据\n\n");

for(i=0;i

{printf("输入第几个物资的名称。

数量规格日期:

\n",i+1);

input(i);

#

}

if(i!

=0)save(n);

printf_back();

}

 

input(inti)

{printf("\nname(1-20letter):

");

scanf("%s",&pro[i].p_name);

printf("\nnumber(1-7num):

");

scanf("%d",&pro[i].p_num);

printf("\nsize(1-4letter):

");

scanf("%s",&pro[i].size);

printf("\ndate:

");

scanf("%d.%d.%d",&pro[i].,&pro[i].,&pro[i].;

printf("min_sreal_smax_s:

");

printf("\n最小库存量真实库存量最大库存量");

scanf("%d%d%d",&pro[i].min_s,&pro[i].real_s,&pro[i].max_s);

}

printf_data(inti)

{printf("\nname\t\tnum\tsize\tdate\t\tminrealmax\n");

printf("%s\t%d\t%s\t%d.%d.%d\t%d-%d-%d",pro[i].p_name,pro[i].p_num,pro[i].size,pro[i].,pro[i].,pro[i].,pro[i].min_s,pro[i].real_s,pro[i].max_s);

}

!

主要是为了输入商品类型,名称,数量,型号,日期,最大,最小,真实库存量,并存放在指定的文件中。

但要注意到输入时间,最大最小库存的格式(如)请输入第1th中商品信息:

name(1-20letter):

苹果

number(1-7num):

1

size(1-4letter):

2

~

date:

(二)searchmenu()*******查询模块*******

{intn,w2;

do

{

puts("\n\t\t****************查询菜单******************\n\n");

puts("\t\t\t1.姓名查询");

puts("\t\t\t2.日期查询");

puts("\t\t\t3.物资名称和规格查询");

puts("\t\t\t4.返回");

puts("\n\n\t\t***************************************\n");

printf("选择你要得命令[1-4]:

[]\b\b");

scanf("%d",&n);

if(n<1||n>4)

{w2=1;getchar();}

elsew2=0;

^

}while(w2==1);

switch(n)

{case1:

search_by_name();break;

case2:

search_by_date();break;

case3:

search_by_nameandsize();break;

case4:

getch();menu();

}

}

search()

{

searchmenu();}

search_by_name()

{intj,n,m=0;chara[20];

n=load();

printf("\n输入你要查询物资的名称\nname:

");

|

scanf("%s",a);

for(j=0;j

if(strcmp(a,pro[j].p_name)==0)

{m++;

printf_data(j);

}

printf("\n查找的第几种物资!

",m);

getch();

~

menu();

}

structs_date

{intyear;

intmonth;

intday;

}s;

{

search_by_date()

{intj,n,m=0;

n=load();

printf("\n输入你要查询物资的日期!

\ndate:

");

scanf("%d.%d.%d",&,&,&;

for(j=0;j

if(==pro[j].&&==pro[j].&&==pro[j].)

{m++;

-

printf_data(j);

}

printf("\n查找第几种物资在那天!

",m);

getch();

menu();

}

search_by_nameandsize()

[

{intj,n,m=0;chara[20],b[4];

n=load();

printf("\n输入你要查询物资的名称!

\nname:

");

scanf("%s",a);

printf("\n输入你要查询物资的规格!

\nsize:

");

scanf("%s",b);

for(j=0;j

if((strcmp(a,pro[j].p_name)==0)&&(strcmp(b,pro[j].size)==0))

\

{m++;

printf_data(j);

}

printf("查找第几种物资!

",m);

getch();

menu();

}

主要以一种查询方式进行说明流程图如下:

操作如图*****************菜单********************

 

1.商品种类

2.商品查找

3.新商品信息录入

4.领取商品

5.打印商品信息

6.退出

***************************************

******************************by袁璐

********************************yourorder[1-6]:

[2]

*****************SEARCH********************

 

&

1.通过商品名查询

2.通过录入日期查询

3.通过商品名和日期查询

4.返回菜单

 

***************************************

#

请选择要查询的种类[1-4]:

[1]

输入你要查询商品的名称!

name:

苹果

namenumsizedatemin-real-max

苹果436290023-4-5

找到1种商品!

'

*****************菜单********************

(三)新物资的录入在此函数上对新料进行了记录

insert()

{intn,c;

n=load();

puts("\nInputonedata:

\n");

do

%

{input(n);

printf_data(n);

printf("\n\nAreyousure\n1).sure\n2).cancelandagain\n3).backwithoutsave[]\b\b");

scanf("%d",&c);

if(c==1){save(n+1);printf_back();}

elseif(c!

=2)menu();

}while(c==2);

}

*

input(inti)

{printf("\nname(1-20letter):

");

scanf("%s",&pro[i].p_name);

printf("\nnumber(1-7num):

");

scanf("%d",&pro[i].p_num);

printf("\nsize(1-4letter):

");

scanf("%s",&pro[i].size);

printf("\ndate:

");

scanf("%d.%d.%d",&pro[i].,&pro[i].,&pro[i].;

printf("min_sreal_smax_s:

");

printf("\n最小库存量真实库存量最大库存量");

scanf("%d%d%d",&pro[i].min_s,&pro[i].real_s,&pro[i].max_s);

}

该函数据对物资进行了全面的查找

<

(四)领料模块*****查找对所领聊的信息,若满足领料要求,便登记一系列内容,并修改程序如下

structone_pro

{charp_name[20];

charsize[4];

structdateone_date;

longinttotal;

structone_pro*next;

}check;

@

lend()

{intj,n;

n=load();

printf("\n请检查你要带走物资的日期等信息!

");

printf("\nname(1-20letter)size(1-4letter)dateamount\n");

scanf("%s%s%d.%d.%d%d",&,&,&&&&;

for(j=0;j

if((strcmp,pro[j].p_name)==0)&&(strcmp,pro[j].size)==0)&&&&&&&&<=pro[j].real_s))

[

{pro[j].real_s-=;

printf_data(j);

printf_back();

}

elseprintf("日期错误!

");

}

(五)采用文件来存储数据信息

/

#include<>

save(intn)

{FILE*fp;

intk;

if((fp=fopen("","wb"))==NULL)

{printf("\nCannotopenfile!

\n");

returnNULL;

}

·

for(k=0;k

if(pro[k].real_s!

=0)

if(fwrite(&pro[k],sizeof(structproduct),1,fp)!

=1)

printf("文件书写错误!

\n");

fclose(fp);

}

load()

·

{

FILE*fp;

intk;

if((fp=fopen("","rb"))==NULL)

{printf("\n不能打开文件!

\n");

returnNULL;

}

for(k=0;!

feof(fp);k++)

]

fread(&pro[k],sizeof(structproduct),1,fp);

fclose(fp);

return(k-1);

}

C语言课程设计感想:

在学习C语言这门课时,由于是第一次接触计算机的课程,而且这门课本来就很抽象,因此,上课时就觉得听不懂.上程序设计课时也是一知半解,加上设计课的时间短,所以自己也没有什么进步。

老师布置课程设计后,通过不断的学习与实践,慢慢有了一些进步,自己在综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的方面有了很大的提高。

当今科学技术发展日新日异,计算机应用在生活中更是无处不在。

作为一个大学来说掌握计算机技术是十分重要的。

回顾这次的课程设计,我感慨良多。

从题目到编程,再从编程到调试,我学到很多很多的的东西,通过这次课程设计,我懂得了学习计算机靠的是大量的上机编程调试,从中才可以不断提高编程水平。

在设计的过程中,我遇到了很多问题,这毕竟第一次做的,难免会遇到过各种各样的问题,比如说结构体、调试不成功……

我很高兴在我遇到困难的时候,同学们给了我很多的帮助,可以这么说,没有同学们,我现在肯定还没有完成这次课程设计。

在设计中遇到了很多编程问题,在同学的帮助下,最后都迎刃而解。

最后,我要再次对各位同学和老师说一声,谢谢大家的帮助,谢谢!

 

后附程序及运行结果

一,程序

#include<>

#include<>

#defineN100

structdate

{intyear;

intmonth;

intday;

};

structproduct

{charp_name[20];

longintp_num[7];

charsize[4];

structdatein_date;

longintmax_s;

|

longintmin_s;

longintreal_s;

structproduct*next;

}pro[N];

menu()

{

intn,w1;

$

do

{

puts("\n\t\t*****************MENU********************\n\n");

puts("\t\t\t1.物资信息输入模块");

puts("\t\t\t2.查询模块");

puts("\t\t\t3.物资信息查找模块");

puts("\t\t\t4.领料查询");

puts("\t\t\t5.打印模块");

*

puts("\t\t\");

puts("\n\n\t\t***************************************\n");

puts("\t\t******************************by董刚\n");

puts("\t\t*****************************\n");

printf("选择你要得命令[1-6]:

[]\b\b");

scanf("%d",&n);

if(n<1||n>6)

{w1=1;getchar();}

}

elsew1=0;

}while(w1==1);

switch(n)

{case1:

enter();break;

case2:

search();break;

case3:

insert();break;

case4:

lend();break;

case5:

print();break;

}

case6:

exit(0);

}

}

main()

{puts("\n\t\t****************欢迎进入物资管理系统*****************\n\n");

puts("\t\t\t姓名:

袁璐");

puts("\t\t\t学号:

604");

puts("");

puts("\t\t\tTel:

005");

puts("\n\n\t\t***************************************\n");

puts("\t\t******************************制作袁璐\n");

puts("\t\t*****************************");

printf("\n按ENTER键进入...");

getch();

menu();

}

 

enter()

{inti,n;

printf("\n物资的量的大小(0-%d):

",N-1);

scanf("%d",&n);

printf("\n输入数据\n\n");

for(i=0;i

{printf("输入第几个物资的名称。

数量规格日期:

\n",i+1);

input(i);

}

if(i!

=0)save(n);

printf_back();

}

-

searchmenu()

{intn,w2;

do

{

puts("\n\t\t****************查询菜单******************\n\n");

puts("\t\t\t1.姓名查询");

puts("\t\t\t2.日期查询");

#

puts("\t\t\t3.物资名称和规格查询");

puts("\t\t\t4.返回");

puts("\n\n\t\t***************************************\n");

printf("选择你要得命令[1-4]:

[]\b\b");

scanf("%d",&n);

if(n<1||n>4)

{w2=1;getchar();}

elsew2=0;

}while(w2==1);

switch(n)

{case1:

search_by_name();break;

case2:

search_by_date();break;

case3:

search_by_nameandsize();break;

case4:

getch();menu();

}

}

~

search()

{

searchmenu();}

search_by_name()

{intj,n,m=0;chara[20];

n=load();

printf("\n输入你要查询物资的名称\nname:

");

[

scanf("%s",a);

for(j=0;j

if(strcmp(a,pro[j].p_name)==0)

{m++;

printf_data(j);

}

printf("\n查找的第几种物资!

",m);

getch();

[

menu();

}

structs_date

{intyear;

intmonth;

intday;

}s;

search_by_date()

{intj,n,m=0;

n=load();

printf("\n输入你要查询物资的日期!

\ndate:

");

scanf("%d.%d.%d",&,&,&;

for(j=0;j

if(==pro[j].&&==pro[j].&&==pro[j].)

{m++;

`

printf_data(j);

}

printf("\n查找第几种物资在那天!

",m);

getch();

menu();

}

search_by_nameandsize()

&

{intj,n,m=0;chara[20],b[4];

n=load();

printf("\n输入你要查询物资的名称!

\nname:

");

scanf("%s",a);

printf("\n输入你要查询物资的规格!

\nsize:

");

scanf(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2