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

下载本文档

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

文档简介

1、中 国 地 质 大 学本科生课程论文封面课程名称 c语 言 课 程 设 计 教师姓名 刘文中 本科生姓名 陈文 本科生学号 20121003931 本科生专业 网络工程 所在院系 计算机学院 类别: 日期: 课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总 成 绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。目 录课程设计评语2目 录31课程论文题目42程序设计思路43功能模块图54数据结构设计55算法设计66程序代码137程序运行结果228编程中遇到的困难及解决方法259总结心得及良好

2、建议2610致谢261课程论文题目物资管理系统2程序设计思路(1)库存和领料信息以文本文件的方式存放在两个文件里,提供相应的输入输出操作。(2)提供库存几种方式的查找。(3)提供库存的建立、插入。(4)能查找满足领货要求的信息,并修改库存、领货文本文件。3功能模块图物资管理系统信息输入模块信息查询模块信息添加模块物资领取模块信息打印模块退出模块4数据结构设计(一)主函数一般是设计简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其中流程图如图(1)开始显示一系列功能选择判断m 是否是1到6?根据n值调用各功能模块函数结束图(1)菜单*/do puts("ntt

3、*菜单*nn"); puts("ttt1.信息输入"); puts("ttt2.信息查询"); puts("ttt3.信息插入"); puts("ttt4.领货"); puts("ttt5.信息打印"); puts("ttt6.退出"); puts("nntt*n"); puts("tt* 陈文n"); puts("tt*2013.01.05n"); printf("请选择 1-6: bb&quo

4、t;); scanf("%d",&n); if(n<1|n>6) w1=1;getchar(); else w1=0; while(w1=1);switch(n) /*选择功能*/ case 1:enter();break; /*信息输入模块*/ case 2:search();break; /*信息查询模块*/ case 3:insert();break; /*信息添加模块*/ case 4:lend();break; /*物资领取模块*/ case 5:print();break; /*信息打印模块*/ case 6:exit(0); /*退出模块*

5、/ main() /*主函数*/ menu();(二)各功能模块设计1.输入模块*几种类型,名称等信息 */*信息输入模块*/void enter() int i,n; printf("n产品种类数量(0-%d)?:",N-1); scanf("%d",&n); printf("n请输入数据nn"); for(i=0;i<n;i+) printf("输入第%d种产品数据:n",i+1); input(i); if(i!=0)save(n); printf_back();2.searchmenu()*查

6、询模块*/*信息查询模块*/void searchmenu() int n,w2; do puts("ntt*查询*nn"); puts("ttt1.按名称查询"); puts("ttt2.按日期查询"); puts("ttt3.按名称规格查询"); puts("ttt4.返回"); puts("nntt*n"); printf("请选择 1-4: bb"); scanf("%d",&n); if(n<1|n>4)

7、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_nameandsize();break; /*按名称规格查询*/ case 4:getch();menu(); /*退出模块*/ void search() searchmenu();/*按名称查询*/void search_by_name() int j,n,m=0;char a2

8、0; n=load(); printf("n请输入产品名称!nname:"); scanf("%s",a); for(j=0;j<n;j+) if(strcmp(a,proj.p_name)=0) m+; printf_data(j); printf("n找到%d种产品!",m);getch();menu();/*按日期查询*/struct s_date int year; int month; int day; s;void search_by_date() int j,n,m=0; n=load(); printf(&quo

9、t;n输入你想查找的产品日期!ndate:"); scanf("%d.%d.%d",&s.year,&s.month,&s.day); for(j=0;j<n;j+)if(s.year=proj.in_date.year)&&(s.month=proj.in_date.month)&&(s.day=proj.in_date.day) m+; printf_data(j); printf("n找到当天的此产品%d!",m);getch();menu();/*按名称规格查询*/void

10、search_by_nameandsize() int j,n,m=0; char a20,b4; n=load(); printf("n输入你想找的产品名称!n名称:"); scanf("%s",a); printf("n输入你想找的产品库存量!n库存量:"); scanf("%s",b); for(j=0;j<n;j+) if(strcmp(a,proj.p_name)=0)&&(strcmp(b,proj.size)=0) m+; printf_data(j); printf("

11、;找到%d种产品!",m);getch();menu();3.新物资的录入 在此函数上对新料进行了记录/*信息添加模块*/void insert() int n,c; n=load(); puts("n输入一个数据:n"); do input(n); printf_data(n); printf("nn是否确信?n1).是n2).取消并重试n3).返回不保存 bb"); scanf("%d",&c); if(c=1)save(n+1);printf_back(); else if(c!=2)menu(); while

12、(c=2);4.领料模块*查找对所领聊的信息,若满足领料要求,便登记一系列内容,并修改/*物资领取模块*/struct one_pro char p_name20; char size4; struct date one_date; long int total; struct one_pro *next;check;void lend() int j,n; n=load(); printf("n请检查你想取的产品的信息!"); printf("n名称(1-20letter) 库存量(1-4letter) 日期 amountn");scanf("

13、;%s%s%d.%d.%d%d",&check.p_name,&check.size,&check.one_date.year,&check.one_date.month,&check.one_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.one_date.year=proj.in_date.year)&am

14、p;&(check.one_date.month=proj.in_date.month)&&(check.one_date.day=proj.in_date.day)&&(check.total<=proj.real_s) proj.real_s-=check.total; printf_data(j); save(n); printf_back(); else printf("数据错误!"); 5.打印领料单和物资库存清单/*信息打印模块*/void print() int i,n; n=load(); for(i=0;i&l

15、t;n;i+) printf_data(i); getch(); menu(); (三).采用文件来存储数据信息/*公共函数*/#include<stdio.h>void save(int n) /*保存函数*/ ; int k; if(fp=fopen("pro.dat","wb")=NULL) printf("n无法打开文件!n"); for(k=0;k<n;k+) if(prok.real_s!=0) if(fwrite(&prok,sizeof(struct product),1,fp)!=1) pr

16、intf("文件书写错误!n"); fclose(fp);int load() /*加载函数*/ ; int k; if(fp=fopen("pro.dat","rb")=NULL) printf("n无法打开文件!n"); return NULL; for(k=0;!feof(fp);k+) fread(&prok,sizeof(struct product),1,fp); fclose(fp); return(k-1);void input(int i) /*输入一种产品信息*/ printf(&quo

17、t;n名称(1-20letter):"); scanf("%s",&proi.p_name); printf("n编号(1-7num):"); scanf("%d",&proi.p_num); printf("n库存量(1-4letter):"); scanf("%s",&proi.size); printf("n日期:"); scanf("%d.%d.%d",&proi.in_date.year,&pro

18、i.in_date.month,&proi.in_date.day); printf("namountmin-real-max:"); scanf("%d-%d-%d",&proi.min_s,&proi.real_s,&proi.max_s);void printf_data(int i) /*输出信息函数*/printf("n名称tt编号t规格t日期ttmin-real-maxn");printf("%st%dt%st%d.%d.%dt%d-%d-%d",proi.p_name,

19、proi.p_num,proi.size,proi.in_date.year,proi.in_date.month,proi.in_date.day,proi.min_s,proi.real_s,proi.max_s);void printf_back() printf("nn请按任意键回主菜单!n"); getch(); menu();5.算法设计6.程序代码#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#define N 100s

20、truct date int year; int month; 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; struct product *next;proN;void enter();void search();void searchmenu();void search_by_name();void search_by_date();void search_by_n

21、ameandsize();void insert();void lend();void print();void save(int n);int load();void input(int i);void printf_data(int i) ;void printf_back(); void menu() /*菜单*/int n,w1; /*变量p保存选择菜单数字,w1判断输入数字对应菜单*/do puts("ntt*菜单*nn"); puts("ttt1.信息输入"); puts("ttt2.信息查询"); puts("

22、ttt3.信息插入"); puts("ttt4.领货"); puts("ttt5.信息打印"); puts("ttt6.退出"); puts("nntt*n"); puts("tt* 陈文n"); puts("tt*2013.01.05n"); printf("请选择 1-6: bb"); scanf("%d",&n); if(n<1|n>6) w1=1;getchar(); else w1=0; whil

23、e(w1=1);switch(n) /*选择功能*/ case 1:enter();break; /*信息输入模块*/ case 2:search();break; /*信息查询模块*/ case 3:insert();break; /*信息添加模块*/ case 4:lend();break; /*物资领取模块*/ case 5:print();break; /*信息打印模块*/ case 6:exit(0); /*退出模块*/ main() /*主函数*/ menu();/*信息输入模块*/void enter() int i,n; printf("n产品种类数量(0-%d)?:

24、",N-1); scanf("%d",&n); printf("n请输入数据nn"); for(i=0;i<n;i+) printf("输入第%d种产品数据:n",i+1); input(i); if(i!=0)save(n); printf_back();/*信息查询模块*/void searchmenu() int n,w2; do puts("ntt*查询*nn"); puts("ttt1.按名称查询"); puts("ttt2.按日期查询");

25、 puts("ttt3.按名称规格查询"); puts("ttt4.返回"); puts("nntt*n"); printf("请选择 1-4: bb"); scanf("%d",&n); if(n<1|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; /*

26、按日期查询*/ case 3:search_by_nameandsize();break; /*按名称规格查询*/ case 4:getch();menu(); /*退出模块*/ void search() searchmenu();/*按名称查询*/void search_by_name() int j,n,m=0;char a20; n=load(); printf("n请输入产品名称!nname:"); scanf("%s",a); for(j=0;j<n;j+) if(strcmp(a,proj.p_name)=0) m+; printf_

27、data(j); printf("n找到%d种产品!",m);getch();menu();/*按日期查询*/struct s_date int year; int month; int day; s;void search_by_date() int j,n,m=0; n=load(); printf("n输入你想查找的产品日期!ndate:"); scanf("%d.%d.%d",&s.year,&s.month,&s.day); for(j=0;j<n;j+)if(s.year=proj.in_da

28、te.year)&&(s.month=proj.in_date.month)&&(s.day=proj.in_date.day) m+; printf_data(j); printf("n找到当天的此产品%d!",m);getch();menu();/*按名称规格查询*/void search_by_nameandsize() int j,n,m=0; char a20,b4; n=load(); printf("n输入你想找的产品名称!n名称:"); scanf("%s",a); printf(&qu

29、ot;n输入你想找的产品库存量!n库存量:"); scanf("%s",b); for(j=0;j<n;j+) if(strcmp(a,proj.p_name)=0)&&(strcmp(b,proj.size)=0) m+; printf_data(j); printf("找到%d种产品!",m);getch();menu();/*信息添加模块*/void insert() int n,c; n=load(); puts("n输入一个数据:n"); do input(n); printf_data(n)

30、; printf("nn是否确信?n1).是n2).取消并重试n3).返回不保存 bb"); scanf("%d",&c); if(c=1)save(n+1);printf_back(); else if(c!=2)menu(); while(c=2);/*物资领取模块*/struct one_pro char p_name20; char size4; struct date one_date; long int total; struct one_pro *next;check;void lend() int j,n; n=load(); p

31、rintf("n请检查你想取的产品的信息!"); printf("n名称(1-20letter) 库存量(1-4letter) 日期 amountn");scanf("%s%s%d.%d.%d%d",&check.p_name,&check.size,&check.one_date.year,&check.one_date.month,&check.one_date.day,&check.total); for(j=0;j<n;j+)if(strcmp(check.p_name,p

32、roj.p_name)=0)&&(strcmp(check.size,proj.size)=0)&&(check.one_date.year=proj.in_date.year)&&(check.one_date.month=proj.in_date.month)&&(check.one_date.day=proj.in_date.day)&&(check.total<=proj.real_s) proj.real_s-=check.total; printf_data(j); save(n); printf

33、_back(); else printf("数据错误!"); /*信息打印模块*/void print() int i,n; n=load(); for(i=0;i<n;i+) printf_data(i); getch(); menu();/*公共函数*/#include<stdio.h>void save(int n) /*保存函数*/ ; int k; if(fp=fopen("pro.dat","wb")=NULL) printf("n无法打开文件!n"); for(k=0;k<n;

34、k+) if(prok.real_s!=0) if(fwrite(&prok,sizeof(struct product),1,fp)!=1) printf("文件书写错误!n"); fclose(fp);int load() /*加载函数*/ ; int k; if(fp=fopen("pro.dat","rb")=NULL) printf("n无法打开文件!n"); return NULL; for(k=0;!feof(fp);k+) fread(&prok,sizeof(struct product),1,fp); fclose(fp); return(k-1);void input(int i) /*输入一种产品信息*/ printf("n名称(1-20letter):"); scanf("%s",&proi.p_name); printf("n编号(1-7num):"); scanf("%d",&pr

温馨提示

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

评论

0/150

提交评论