收藏 分销(赏)

C语言仓库管理系统设计报告.docx

上传人:二*** 文档编号:4484245 上传时间:2024-09-24 格式:DOCX 页数:29 大小:72.61KB
下载 相关 举报
C语言仓库管理系统设计报告.docx_第1页
第1页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、程序设计基础课程设计设计题目:仓库物资管理系统班级:网络0901班姓名:水土第一学号:20091221*完成日期:2010-9-9考前须知:免积分下载,还请亲们给个好评。思密达void find_l() ;/4. 1void find_2();/4. 2void find_3();/4. 3void f ind_4();/4. 4void f ind 5() ; /5. 1void f ind_6 () ; /5. 2void find_7() ;/5.3void find_8() ;/5.4void load();/读 stu_list_l 中的数据void main ()(int i, j

2、 ;pr intf (z,what do you want to do?nplease input the number according to the explaination. nz,);for(i=l;i12;i+)printf(/zif you input %d; then i t will work out the %d. n/z, i, i);printf (/zIf you are first use it, please input 1, 2 or 3. nNow please input the number:n);scanf&j);swi tch (j)(case l:s

3、can_l();save_l();break;/Icase 2:scan2();save_2();change_l();break;/2case 3:scan_3();save_3();change_2();break;/3case 4:find_l();break;/4. 1case 5:f ind_2();break;/4. 2case 6:find_3();break;/4. 3case 7:f ind_4();break;/4. 4case 8:f ind 5 0;break;/5. 1case 9:find_6();break;/5. 2case 10:find_7();break;

4、/5. 3case 11:find_8();break;/5. 4defaul t: printf (,errorn/,);)void scan()输入库存int i ;printf (please input the information : n/z);for(i=0;iSIZE;i+)(scanf (z,%s%s%s%d%fstu_l i. name, stu_l i. brand, stu_l i. style, & stu_li. num, &stu_li.money);)void scan_2()输入入库信息(int i ;printf (请输入物资入库信息:n);for(i=0;

5、iSIZE;i+)scanf (,%s%s%s%d%f%d%d%d%s/, stu 2 i . name, stu 2 i . brand, stu 2 i .style, &stu_2 i . num, &,stu_2 i . money, &stu_2 i . time, year, &stu_2 i . time, month, &stu_2 i. time, day, stu_2 i. stuf);)void scan_3。输入出库信息int i ;pr intf (请输入出库信息:n);for(i=0;iSIZE;i+)(scanf (,%s%s%s%d%d%d%d%s,, stu_

6、3 i . name, stu_3 i . brand, stu_3 i . s tyle, &stu_3 i . num, &stu_3 i . time, year, &stu_3 i. time, month, &stu_3 i. time, day, stu_3i.stuf);)for(i=0;istu_li.num) (printf (z,the error number, please input againn);scanf (,%s%s%s%d%d%d%d%s,, stu_3 i . name, stu_3 i . brand, stu_3 i . s tyle, &stu_3

7、i. num, &stu_3 i. time, year, &stu_3 i . time, month, &stu_3 i. time, day, stu_3i.stuf);)void save。/将库存信息保存成文件FILE *fp;int i;if(fp=fopen(stu_ltxt,wb)二二NULL)printf (connot open the filen);return;)for(i=0;iSIZE;i+)(if(fwrite(&stu_li,sizeof (struct goods), 1,fp)! = 1) pr intf (f i le write errorn,z);)f

8、close(fp);)void save_2。/将入库信息保存成文件(FILE *fp;int i ;if(fp=fopen(stu_list_2.txt”,wb)二二NULL)(pr intf (connot open the f i 1 enz,);return;for(i=0;iSIZE;i+)(if(fwrite(&stu2i, s i zeof(struc t entrance), 1, fp) !=1) printf(file write errorn);)fclose (fp);)void change。/入库时电器数量增加,并将信息加入库存文件int i ;load_l ();

9、for(i=0;iSIZE;i+)(if(strcmp(stu_li. name, stu_2i.name)=0&strcmp(stu_li.brand ,stu_2i. brand)=0&strcmp(stu_li. style,stu_2iL style)=0)(stu_li.num=stu_li.num+stu_2i.num;save_l ();void save_3()将出库信息保存成文件FILE *fp;int i;if(fp=fopen(,stu _list_3. txt,wb)=NULL)(pr intf (connot open the f i 1 en,z);return;)

10、for(i=0;iSIZE;i+)(if(fwrite(&stu_3i, sizeof(struct exit), 1, fp)! = 1)pr intf (*f i le write errorn,/);fclose (fp);void change_2。/出库时电器数量减少,并将信息加入库存文件int i;load l ();for(i=0;iSIZE;i+)(if(strcmp(stu_li. name, stu_3i. name)=0&strcmp(stu_li.brand ,stu_3i.brand)=0&strcmp (stu_li.style, stu_3i.style)=0)(

11、stu 1i.num=stu 1i.num-stu 3i.num;)save_l ();)FILE* open。/翻开库存记录(FILE *fp;if(fp=fopen(stu_list_l. txt,rb)二二NULL)(printf (connot open the file!n);return NULL;return fp;)FILE* open_2 ()/翻开入库记录FILE *fp;if (fp=fopen (,zstu_l ist_2. txt”, rb)二二NULL)printf (connot open the file!n); return NULL;)return fp;)

12、FILE* open_3。/翻开出库记录FILE *fp;if(fp=fopen(,stu list_3. txt, rb)二二NULL)(printf (connot open the file!n); return NULL;return fp;)void find 1()完成4.1(FILE *fp=NULL;int i ;char name 10;fp=open_l ();pr intf (please input the name : n,z) ; /4. 1scant(%s”, name);printf (zzthe information of the good : nz,);f

13、or(i=0;iS!ZE;i+)(在库在库if(fread (&stu_li,si zeof (struct goods), 1, fp)=1)/4. 1存记录之中查找i f(strcmp(name,stu_li.name)=0)pr intf (,z%s %s %s %d %. 2fn,z, stu 1 i. name, stu 1 i. brand, stu 1 i.style,stu_li.num, stu_li. money);)fclose (fp);)void find_5()/完成5. 1(FILE *fp二NULL;int i ;int sum=0;char name 10;f

14、p=open_l ();pr intf (z/please input the name : n); 5. 1scanf(%s,name);pr intf (,/ the information of the good:n);for(i=0;iSIZE;i+)(if(fread(&stu_l i, sizeof(struct goods), 1, fp)=l)/5. 1 在库 存记录之中查找if(strcmp(name, stu_li.name)=0)sum=sum+stu_li.num;)printf(,zthe number of this %s i s %d. name 10, sum)

15、;fclose (fp);void find_2O完成4. 2FILE *fp=NULL;i n t i;char brand 10;pr intf (please input the brand : n); 4. 2 scanf(%s,brand);fp=open_l ();for(i=0;iSIZE;i+)( if(fread(&stuli,sizeof(struct goods),1,fp)=1)/4.2i f(strcmp(brand,stu_1i.brand)=0) (printf (/zthe information of the good : nz/);pr i ntf (,z%

16、s %s %s %d %. 2fn,z, stu 1 i. name, stu _1 i. brand, stul i .style,stu_li.num, stu_1i. money);)fclose (fp);void find_3()完成4. 3(int i ;FILE *fp2=NULL, *fp3=NULL;int year,month,day;pr intf (,zplease input year, month, day, then find the exit and entrance:Xn);/4.3scanf (%d%d%d”,&year, &month, &day);fp2

17、=open_2();fp3=open 3();pr intf (zzthe information of entrance is:n);for (i=0;iSIZE;i+)(if (fread (&stu_2 i, si zeof (struct entrance), 1, fp2) =1)/读出入 库信息(if (stu_2 i. time. year=year) & (stu_2 i. time, month=month) & (st u_2 i . time. day=day) 入库 信息4. 3(pr intf (/%s %s %s %d %. 2f %d %d %d %sn/z, s

18、tu2i. name, stu2i. b rand,stu 2i.style,stu 2i.num,stu 2i. money,stu _2i.time.year, stu_2i. time, month, stu_2i. time, day, stu_2i. stuf);)pr intf (/z the information of exit is:n);课程设计目的和要求21.1 课程设计的目的:21.2 课程设计的要求:2课程设计任务内容:22 详细设计说明32.1 功能模块图:32.2 数据结构设计:42.3 功能模块设计:5软件使用说明:63 课程设计心得与体会:6参考文献:74 附

19、录:局部程序清单:7for (i=0;iSIZE;i+)if (fread (&stu_3 i, s i zeof (struct exit), 1, fp3) =1) /读出出库信息(if (stu_3 i. time. year=year) & (stu_3 i. time. month=month) & (st u_3 i. time. day=day)/出库信息4. 3(pr intf (z/%s %s %s %d %d %d %d %snz,, stu 3 i. name, stu 3 i. brand, stu_3i. style, stu_3i. num,stu_3i.time.

20、year,stu_3i.time.month, stu_3i. time, day, stu_3i. stuf);)fc1ose(fp2);fclose (fp3);void find_4()完成4. 4int i ;FILE *fp2=NULL,*fp3=NULL;char name10,style10;pr intf (z,please i nput the name and style of the goods, then find the entrance and exit: n,z) ; /4. 3scanf(s%s,name,style);fp2=open_2 ();fp3=ope

21、n_3 0;pr intf (zzthe entrance information of the good is:n);for (i=0;iSIZE;i+)/4. 4(if (f read (&stu_2 i, sizeof (struct entrance), 1, fp2)=l)读出入 库信息if (stremp (stu_2 i. name, name) =0& (stremp (stu_2 i. style, style )=0)/入库信息4. 4(pr intf (z,%s %s %s %d %f %d %d %d %sn,z, stu_2i. name, stu_2i. bra n

22、d, stu_2iL style,stu_2i.num,stu_2i.money,stu_2i.time.year,st u_2i. time, month, stu_2i. time, day, stu_2i. stuf);)pr intf (z,the ex i t information of the good is:n);for(i=0;iSIZE;i+)/4. 4(if (fread (&stu_3 i, s i zeof (struct exit), 1, fp3)=l)/读出出库信 息(if (stremp (stu_3 i. name, name) =0& (stremp (s

23、tu_3 i. style, style )=0)/出库信息4.4pr intf (/z%s %s %s %d %d %d %d %sn/z, stu_3i. name, stu_3i. brand, stu_3 i. style, stu_3 i. num, stu_3 i. time, year, stu_3 i. time, month, stu_3i. time, day,stu_3i.stuf);)fclose (fp2);fclose (fp3);)void find_6O完成5. 2(i n t i;int sum=0;FILE *fp=NULL;char name 10;pr

24、intf (/zplease input the name of the good, then output the number of its entrance : n/z) ; /5. 2scanf(%s”, name);fp=open_2 ();for(i=0;iSIZE;i+)(if (fread (&stu_2 i, sizeof (struct entrance), l,fp)=l)/读 出入库 信息(i f (strcmp (stu 2 i . name, name) =0) /入库信息 4. 4(sum=sum+stu_2i.num;pr intf (zzthe number

25、of the goods, entrance is %d. n”, sum);fclose (fp);)void find_7()/完成5. 3(int i ;int sum=0;int year,month;FILE *fp=NULL;printf (please input year and month,then output the number of exit in this month : n,z) ; /5. 3scanf&year,&month);fp=open_3 ();pr intf (z/the number of exit good in this month is:);

26、for(i=0;iSIZE;i+)/5. 3在出库记录文件中统计该月的出库记录次数。(if(fread(&stu 3i, sizeof(struct exit), 1, fp)=1)i f(stu _3i. t i me. year=year&stu _3i.t i me.month=month)(sum=sum+1;)printf(dn,sum);fclose (fp);)void find_8()完成5. 4!int i,j ;FILE *fp=NULL;pr intf (please input the red number, then output all the informatio

27、ns of the goods:n);getchar ();scanf(d,&j);fp=open 1 ();for(i=0;iSIZE;i+)/5. 4输出库存数量小于该警戒值的所有库存电器的 信息( if(frcad(&stu_li,sizeof(struct goods),1,fp)=1) (i f (s tu 1i.numj)(pr intf the information of the good are : nz,);pr intf (,z%s %s %s %d %. 2fn?z, stu_l i. name, stu_li. brand, stu_li.style, stu li.

28、 num, stu li.money);)fclose (fp);)void load()读stuist_l中的数据(FILE *fp=NULL;fp = open_l ();fread (stu_l, sizeof (struct goods), SIZE, fp);fclose (fp);附录资料:不需要的可以自行删除Abstract: Based on the comprehensive analysis on the plastic parts structure service requirement, mounding quality and mould menu factorin

29、g cost. A corresponding injection mould of internal side core pulling was designed. By adopting the multi-direction and multi-combination core-pulling. A corresponding injection mould of internal side core pulling was designed, the working process of the mould was introducedC语言详解-枚举类型注:以下全部代码的执行环境为V

30、C+ 6.0在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成 这项工作,您的代码可能是:#define MON I#define TUE 2#define WED 3#define THU4#define FRI5#define SAT6#define SUN7在此,我们定义一种新的数据类型,希望它能完成同样的工作。这种新的数据类型叫枚 举型。I.定义一种新的数据类型-枚举型以下代码定义了这种新的数据类型一枚举型enum DAYMON=1, TUE, WED, THU, FRI, SAT, SUN);(I)枚举型是一个集合,集合中的元素(枚举成员)是一些命名

31、的整型常量,元素之间用逗 号,隔开。(2) DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。(3)第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加lo(4)可以人为设定枚举成员的值,从而自定义某个范围内的整数。(5)枚举型是预处理指令#define的替代。(6)类型定义以分号;结束。2 .使用枚举类型对变量进行声明新的数据类型定义完成后,它就可以使用了。我们已经见过最基本的数据类型,如:整 型int,单精度浮点型float,双精度浮点型double,字符型char,短整型short等等。用这 些基本数据类型声明变量通常是这样:char a; 变量a

32、的类型均为字符型charcharletter;intx,y,z; 变量x,y和z的类型均为整型intintnumber;double m, n;double result; 变量result的类型为双精度浮点型double既然枚举也是一种数据类型,那么它和基本数据类型一样也可以对变量进行声明。方法一:枚举类型的定义和变量的声明分开cnuin DAY|MON=1, TUE, WED, THU, FRI, SAT, SUNI;enum DAY yesterday;enum DAY today;enum DAY tomorrow; 变量 tomorrow 的类型为枚举型 enum DAYenuin

33、DAY good_day, bad_day;/变量 good_day 和 bad_day 的类型均为枚举型 enum DAY 方法二:类型定义与变量声明同时进行:enum 跟第一个定义不同的是,此处的标号DAY省略,这是允许的。Saturday, sunday = 0, mo nd ay, tuesday, Wednesday, thursday, friday workday; 变量workday的类型为枚举型enum DAYenum week Mon= 1, Tue, Wed, Thu, Fri Sat, Sun days; 变量 days 的类型为枚举型 enum weekenum BO

34、OLEAN false, true end_flag, match_flag; 定义枚举类型并声明了两个枚举 型变量方法三:用typedef关键字将枚举类型定义成别名,并利用该别名进行变量声明: typedef enuin workday Saturday, sunday = 0, mo nd ay, tuesday, Wednesday, thursday, friday workday; 此处的workday为枚举型enum workday的别名workday today, tomorrow; 变量 today 和 tomorrow 的类型为枚举型 workday,也即 enum work

35、dayenum workday 中的 workday 可以省略:typedef enum Saturday, sunday = 0, monday, tuesday, Wednesday, thursday, friday workday; 此处的workday为枚举型enum workday的别名 workday today, tomorrow; 变量 today 和 tomorrow 的类型为枚举型 workday,也即 enum workday也可以用这种方式:typedef enum workdaySaturday,sunday = 0,mo nd ay,tuesday,Wednesd

36、ay,thursday,friday workday today, tomorrow; 变量 today 和 tomorrow 的类型为枚举型 workday,也即 enum workday注意:同一个程序中不能定义同名的枚举类型,不同的枚举类型中也不能存在同名的命 名常量。错误例如如下所示:错误声明一:存在同名的枚举类型typedef enum |Wednesday, thursday, friday workday;typedef enuin WEEK Saturday, sunday = 0, monday, workday;错误声明二:存在同名的枚举成员typedef enum Wed

37、nesday,ihursday,friday workday_l;typedef enum WEEK(Wednesday,sunday = 0, monday, workday_2;.使用枚举类型的变量2.1 对枚举型的变量赋值。实例将枚举类型的赋值与基本数据类型的赋值进行了比照:方法一:先声明变量,再对变量赋值#include/*定义枚举类型*/enum DAY MON=1, TUE, WED, THU, FRI, SAT, SUN ;void main() /*使用基本数据类型声明变量,然后对变量赋值*/ int x, y, z;x = 10;1课程设计目的和要求1.1 课程设计的目的:通

38、过一个学年的学习,对C程序设计这门课程之中所讲的知识有了一定的 了解。但是作为一名合格的大学生,不仅要认真阅读课本知识,还要通过上机 实践来增强和巩固自己的知识。特别是作为工科类学生,更要注重实践这一环 节。因为只有这样我们才能成为合格的计算机人材。1.2 课程设计的要求:在实践过程之中,重要的是独立思考,这样,不仅有利于提高自己对知识的理 解,还更有助于提高自己的实践动手能力。与此同时,还应该注意主动与别人 交流,这样便有利于就业之后与团队进行合作。2课程设计任务内容:仓库管理系统是各个大型商店进行管理的重要组成局部,其内容较多,为了满 足工作需求,要求设计的管理系统能够完成以下五种功能:1

39、 .创立库存记录文件。根据提示输入假设干电器的“电器名称、品牌名称(或 生产厂家)、型号、库存数量、价值”等信息、,并将信息保存至一个文件中。2 .物资入库管理,创立一个入库记录文件,每次有物资入库,那么按入库记 录要求输入“电器名称、品牌名称、型号、入库数量、单价、入库时间(年. 月.日)、送货人姓名”等信息,并将该次的入库信息添加到文件中,同时修 改相应的库存记录文件。3 .物资出库管理,创立一个出库记录文件,每次有物资出库,那么按出库记 录要求输入各项信息,并将该次的出库信息添加到文件中,同时修改相应的库 存记录文件。在此过程之中,检查出库数量的合法性(即出库数量必须小于库y = 20;

40、z = 30;/*使用枚举类型声明变量,再对枚举型变量赋值*/ enum DAY yesterday, today, tomorrow;yesterday = MON;today = TUE;tomorrow = WED;printf(%d %d %d n, yesterday, today, tomorrow);I方法二:声明变量的同时赋初值#include /*定义枚举类型*/enum DAY MON=1, TUE, WED, THU, FRI, SAT, SUN ;void main()(/*使用基本数据类型声明变量同时对变量赋初值*/ in( x=10, y=20, z=30;/*使用

41、枚举类型声明变量同时对枚举型变量赋初值*/ enum DAY yesterday = MON,today = TUE,tomorrow = WED;printf(%d %d %d n yesterday, today, tomorrow);)方法三:定义类型的同时声明变量,然后对变量赋值。#includc /*定义枚举类型,同时声明该类型的三个变量,它们都为全局变量*/enum DAY MON=1, TUE, WED, THU, FRI, SAT, SUN yesterday, today, tomorrow;/*定义三个具有基本数据类型的变量,它们都为全局变量*/int x, y, z;vo

42、id main()/*对基本数据类型的变量赋值*/x = 10; y = 20; z = 30;/*对枚举型的变量赋值*/yesterday = MON;today = TUE;tomorrow = WED;printf(%d %d %d n, x, y, z); 输出:10 20 30printf(%d %d %d n, yesterday, today, tomorrow); 输出:12 3 )方法四:类型定义,变量声明,赋初值同时进行。#include /*定义枚举类型,同时声明该类型的三个变量,并赋初值。它们都为全局变量*/ enum DAYMON=1,TUE,WED,THU,FRI,

43、SAT,SUNyesterday = MON, today = TUE, tomorrow = WED;/*定义三个具有基本数据类型的变量,并赋初值。它们都为全局变量*/int x = 10, y = 20, z = 30;void main()printf(%d %d %d n, x, y, z); 输出:10 20 30printf(%d %d %d n, yesterday, today, tomorrow); 输出:1 2 3|1.2 对枚举型的变量赋整数值时,需要进行类型转换。#include cnum DAY MON=1, TUE, WED, THU, FRI, SAT, SUN

44、;void main()(enum DAY yesterday, today, tomorrow;yesterday = TUE;today = (enum DAY) (yesterday + 1); 类型转换tomorrow = (enum DAY) 30; 类型转换/tomorrow = 3; 错误printf(%d %d %d n, yesterday, today, tomorrow); 输出:2 3 30 I使用枚举型变量#includeenumBELL= aBACKSPACE = b,HTAB=t,RETURN= rNEWLINE = nVTAB=*v,SPACEenum BOOLEAN FALSE = 0, TRUE matc

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 初中其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服