地大C语言课程设计报告 物资管理系统
- 格式:pdf
- 大小:445.99 KB
- 文档页数:25
物资库存管理系统C 课程设计一、课程目标知识目标:1. 学生能理解物资库存管理系统的基本概念,掌握其功能模块和业务流程。
2. 学生能掌握C语言编程基础,运用数据结构进行库存管理系统的设计与实现。
3. 学生了解数据库原理,学会使用SQL语句进行库存数据的管理与查询。
技能目标:1. 学生具备运用C语言编写库存管理系统的能力,能实现商品信息的增删改查功能。
2. 学生能够运用所学知识,解决实际库存管理中遇到的问题,提高编程解决问题的能力。
3. 学生通过课程学习,具备一定的项目分析和设计能力,为后续专业课程打下基础。
情感态度价值观目标:1. 学生通过课程学习,培养认真负责、严谨细致的工作态度,增强团队协作意识。
2. 学生能够关注库存管理系统在实际应用中的发展,激发对信息技术的兴趣和热情。
3. 学生在学习过程中,树立正确的价值观,认识到信息技术对社会发展的积极影响。
课程性质:本课程为信息技术学科的一门实践性较强的课程,结合C语言编程、数据结构和数据库原理等知识,培养学生实际操作和解决问题的能力。
学生特点:学生已具备一定的C语言编程基础,具有一定的逻辑思维能力,但实践操作能力和项目分析设计能力有待提高。
教学要求:结合学生特点和课程性质,教师应注重实践操作环节,引导学生运用所学知识解决实际问题,提高学生的编程能力和项目设计能力。
同时,关注学生的情感态度价值观培养,使学生在学习过程中形成积极向上的人生态度。
通过课程目标分解,使学生在课程结束后能够达到预定的学习成果,为后续学习和工作打下坚实基础。
二、教学内容1. 系统需求分析:介绍物资库存管理系统的基本功能需求,包括商品信息的增删改查、库存预警、出入库管理等。
教材章节:第二章 系统需求分析2. C语言编程基础:复习C语言基本语法,强调指针、结构体等在库存管理系统中的应用。
教材章节:第三章 C语言编程基础3. 数据结构:讲解链表、栈、队列等数据结构在库存管理系统中的运用。
C 语言课程实习报告目录一.题目要求二.需求分析三.总体设计四.详细设计五.代码实现六.程序测试(成果记录)七.结束语一.题目要求物资管理系统【要求】主程序中应提供文字互交菜单界面,要求包含以下几个功能模块:(1)信息输入模块 input():建立物资管理数据总文件,完成物资原库存信息的录入,并将其存放到指定文件(如pro.dat)中。
(2)信息查找模块search():采用如下方式进行查找,若找到,则输出该物资的相关信息;若没有找到,则输出提示信息(如not found!)1按产品名称查询。
2按进货日期查询并统计(统计某年某月进的某种产品的数量、产品的种类)。
3按产品名称和规模查询并统计。
(3)新物资入库模块insert():在原数据文件中插入新物资信息。
(4)领料模块lend():查找所领取物资信息,若满足领料的要求,请登记领取物资名称、领料的日期、所领数量(领料后对库存的修改)。
(5)打印功能模块print():1打印领料单。
2打印物资库存清单。
二.需求分析根据题目要求,由于物资信息是存放在文件中并提供打印功能,所以应该提供输入,输出等操作:在程序中需要浏览物资信息,应提供显示,查找排序等操作:另外还应提供键盘式选择菜单实现功能选择。
三.总体设计四.详细设计1、主函数主函数只调用主菜单函数。
2、主菜单函数[程序]//********主函数********void menu(){int n,w=0;printf("\t\t**************Menu**************\n");printf("\ninput your choice:\n");scanf("%d",&n);do{if(n>6||n<1){printf("\nWrong!Input agin!\n");scanf("%d",&n);}else w=1;}while(w!=1);switch(n){case 1:input();break; 输入case 2:search_menu();break; 查找菜单流程图case 3:insert();break; 插入case 4:lend();break; 领货case 5:print_menu();break; 打印菜单case 6:exit(0); 退出}}3、信息输入模块[数据结构]所输入的数据在磁盘上以文本文件的形式保存,名字为product.txt! 在程序中以链表的形式储存!结构体如下:struct date /*日期结构体*/{int year;int month;int day;};struct product /*库存货物结构体*/{char p_name[20]; /*货物名称*/long int p_num; /*物资编号char size[4]; /*物资规格*/struct date in_date; /*进货日期*/long int max_s; /*最大库存量*/long int min_s; /*最小库存量*/long int real_s; /*实际库存量*/struct product *next;/*节点指针*/};/*输入函数*/[分析]:以只写的方式打开文件"product.txt",在do—while循环中输入各种货物的信息。
c 仓库货物管理系统课程设计一、课程目标知识目标:1. 让学生掌握仓库货物管理系统的基本概念、功能模块及其工作原理。
2. 了解数据库设计的基本原则,学会使用c语言实现简单的仓库货物管理系统。
3. 掌握数据结构在仓库货物管理系统中的应用。
技能目标:1. 培养学生运用c语言进行程序设计的能力,能够独立编写简单的仓库货物管理系统模块。
2. 培养学生运用数据库知识进行数据查询、更新、删除等操作的能力。
3. 提高学生的实际操作能力,能够利用所学知识解决实际问题。
情感态度价值观目标:1. 培养学生热爱编程,对计算机科学产生浓厚的兴趣。
2. 培养学生的团队协作精神,学会与他人共同解决问题。
3. 增强学生的责任感,认识到仓库货物管理系统在实际工作中的应用价值。
课程性质:本课程为实践性较强的课程,旨在让学生通过动手实践,掌握仓库货物管理系统的设计与实现。
学生特点:学生具备一定的c语言基础和数据库知识,但对实际应用系统的开发相对陌生。
教学要求:1. 结合课本知识,注重实践操作,提高学生的动手能力。
2. 激发学生的创新意识,鼓励学生独立思考和解决问题。
3. 强化团队合作,培养学生的沟通能力和协作精神。
二、教学内容1. 仓库货物管理系统概述:介绍仓库货物管理系统的基本概念、功能模块及其在实际工作中的应用。
教材章节:第一章 仓库货物管理系统的基本概念2. 数据库设计基础:讲解数据库设计的基本原则,指导学生运用ER图进行数据库设计。
教材章节:第二章 数据库设计3. C语言程序设计:结合仓库货物管理系统需求,教授C语言编程技巧,实现系统功能模块。
教材章节:第三章 C语言程序设计4. 数据结构应用:介绍数据结构在仓库货物管理系统中的应用,如链表、栈、队列等。
教材章节:第四章 数据结构及其应用5. 系统功能实现:详细讲解货物入库、查询、更新、删除等功能的实现方法。
教材章节:第五章 仓库货物管理系统的功能实现6. 系统测试与优化:介绍系统测试方法,教授学生如何对系统进行优化。
物资管理系统课程设计一、课程目标知识目标:1. 让学生掌握物资管理的基本概念、原则和方法。
2. 使学生了解物资管理系统的功能、结构和运作流程。
3. 帮助学生理解物资管理在现代企业管理中的重要性。
技能目标:1. 培养学生运用物资管理理论知识分析和解决实际问题的能力。
2. 提高学生设计、搭建和优化物资管理系统的操作技能。
3. 培养学生运用信息技术手段进行物资数据收集、处理和分析的能力。
情感态度价值观目标:1. 培养学生对物资管理工作的兴趣,激发其主动学习的积极性。
2. 培养学生具备良好的团队协作精神,提高沟通与协调能力。
3. 培养学生具备较强的责任感和职业道德,关注物资管理在企业可持续发展中的作用。
课程性质分析:本课程为实用性较强的学科,结合理论知识与实践操作,旨在培养学生具备物资管理的基本素养和操作技能。
学生特点分析:本课程面向高年级学生,他们具备一定的学科基础知识,具有较强的学习能力和自主探究能力。
教学要求:1. 教学内容要与课本紧密结合,注重理论与实践相结合。
2. 教学过程中,注重启发式教学,引导学生主动思考、积极参与。
3. 教学评价要关注学生的知识掌握、技能提升和情感态度价值观的培养。
二、教学内容1. 理论知识:- 物资管理的基本概念与原则- 物资管理系统的功能、结构与运作流程- 物资分类与编码方法- 物资采购、库存、配送管理- 物资管理信息化技术2. 实践操作:- 物资管理系统的搭建与优化- 物资数据的收集、处理与分析- 物资管理案例分析与讨论- 物资管理软件操作与实践教学大纲安排:第一周:物资管理基本概念、原则第二周:物资管理系统功能、结构与运作流程第三周:物资分类与编码方法第四周:物资采购、库存、配送管理第五周:物资管理信息化技术第六周:物资管理系统搭建与优化第七周:物资数据收集、处理与分析第八周:物资管理案例分析与讨论教学内容关联教材:《物资管理学》第一章:物资管理概述《物资管理学》第二章:物资管理系统《物资管理学》第三章:物资分类与编码《物资管理学》第四章:物资采购与库存管理《物资管理学》第五章:物资配送管理《物资管理学》第六章:物资管理信息化《物资管理学》实践教程:物资管理系统操作与实践教学进度安排:每周2课时,共计16课时。
物资管理系统 课程设计一、课程目标知识目标:1. 让学生掌握物资管理系统的基本概念、功能和构成要素;2. 使学生了解我国物资管理政策及其实施原则;3. 帮助学生掌握物资分类、编码、储存、配送等基本知识。
技能目标:1. 培养学生运用信息技术进行物资数据收集、处理和分析的能力;2. 提高学生设计、优化物资管理流程的能力;3. 培养学生运用物资管理系统解决实际问题的能力。
情感态度价值观目标:1. 培养学生关注社会热点问题,提高对物资管理工作的认识;2. 培养学生团结协作、积极参与的精神风貌,增强团队意识;3. 培养学生遵守国家法律法规,树立正确的价值观和道德观念。
课程性质:本课程为实用性较强的信息技术课程,结合实际案例,使学生掌握物资管理的基本知识和技能。
学生特点:学生具备一定的计算机操作能力,对实际应用有较高的兴趣,但可能对物资管理概念较为陌生。
教学要求:结合学生特点,采用案例教学、任务驱动等方法,注重理论与实践相结合,提高学生的实际操作能力和解决问题的能力。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 理论知识:- 物资管理基本概念:物资、物资管理、物资管理系统;- 物资管理功能:采购、储存、配送、回收;- 物资管理政策及实施原则:我国物资管理相关法律法规、政策;- 物资分类与编码:物资分类方法、编码原则。
2. 实践操作:- 物资管理系统软件操作:系统登录、功能模块操作;- 物资数据收集与处理:数据采集、数据整理、数据分析;- 物资管理流程设计:采购流程、库存管理流程、配送流程;- 物资管理案例分析与讨论:选取实际案例,进行问题分析、解决方案讨论。
3. 教学大纲安排:- 第一章:物资管理基本概念与政策(1课时)- 第二章:物资分类与编码(1课时)- 第三章:物资管理系统功能与操作(2课时)- 第四章:物资管理流程设计(2课时)- 第五章:物资管理案例分析与讨论(2课时)教学内容关联教材:本教学内容与教材《信息技术》中“物资管理系统”章节内容密切相关,涵盖了物资管理的基本概念、功能、政策及其实践操作。
C语言课程设计--物资管理系统C语言程序设计报告——物资管理系统实习成员:姓名学号贡献率(%)e-mail 组长吴江099074337 34% 282800463@成员韩艺超099074321 33% yichcao80@ 黄杨洋099074323 33% 451250157@专业: 网络工程班级: 网092班指导教师: 程泽凯2010/12/12课题: 物资管理系统问题描述:建立物资管理信息系统,包括仓库内的物资信息、入库信息、车库信息等,物资信息为物资编号、物资名称、规格类型、类别、计量单位等;入库信息为物资编号、物资名称、规格型号、类别、计量单位、数理、单价、金额、入库时间、经办人、保管人等;出库信息为物资编号、物资名称、规格型号、类别、计量单位、数理、单价、金额、领用时间、经办人、领用人等;物资余额信息为物资编号、物资名称、规格类型、类别、计量单位、数量、金额等。
功能要求:(1)各种物资管理信息需要利用文件的形式进行存储。
(2)输入功能:可以从键盘或文件中一次性输入多条信息;(3)输出功能:可将入库、出库等信息打印输出或显示;(4)查找功能:根据物资信息、或经办人、保管人等查找出所需信息;(5)增加、删除、修改功能:完成物资信息的多种更新;(6)统计功能:完成入库、出库、库存等信息的统计功能。
总体设计:根据上面的分析及题目要求可以分为以下六个模块(系统模块如下图1。
)程序实现:(一)主函数一般设计简洁,用switch结构实现对各功能函数的调用,其中包括input()、load()、output ()、search()、count()、save()、quit()。
(所有函数中用链表实现数据的传递)printf("\n*************************************** *************************\n");printf(" input ");printf("\n*********************************** *****************************\n");memset(new_addr,0,sizeof(addr_product));new_addr->next=NULL;if(first==NULL){first=new_addr;}else{last=get_last(first);last->next=new_addr;}scanf_product(&(new_addr->pro));getchar();printf("\n>continue?(Y/N)");flag=getchar();if(flag=='Y'||flag=='y'){input();}printf("\n************************************* ************************\n\n");}Show():显示所有入库物资信息,通过遍历链表的每一个节点实现。
仓储物资管理系统c 课程设计一、课程目标知识目标:1. 学生能理解仓储物资管理系统的基本概念,掌握其功能模块和工作流程。
2. 学生能掌握数据库设计的基本原理,运用数据库技术进行仓储物资管理。
3. 学生能了解并运用编程语言(如C语言)实现仓储物资管理系统的功能。
技能目标:1. 学生具备分析仓储物资管理需求的能力,能够根据需求设计合适的数据库结构。
2. 学生能够运用C语言编写程序,实现仓储物资管理系统的增、删、改、查等功能。
3. 学生具备调试和优化程序的能力,提高仓储物资管理系统的运行效率。
情感态度价值观目标:1. 培养学生热爱科学、勇于探索的精神,激发学生对计算机编程的兴趣。
2. 培养学生团队协作意识,学会与他人共同分析问题、解决问题。
3. 培养学生具备良好的信息素养,认识到仓储物资管理系统在现代企业管理中的重要性。
课程性质:本课程为实践性较强的课程,旨在让学生通过动手实践,掌握仓储物资管理系统的设计与实现。
学生特点:学生具备一定的C语言基础,对数据库知识有一定了解,但可能对实际应用场景下的系统设计缺乏经验。
教学要求:注重理论与实践相结合,引导学生通过实际项目需求,运用所学知识进行系统设计与开发。
在教学过程中,关注学生个体差异,鼓励学生积极参与讨论,培养其解决问题的能力。
最终实现课程目标,提高学生的综合素养。
二、教学内容1. 仓储物资管理系统概述:介绍仓储物资管理的概念、意义及系统组成,使学生了解课程背景和实际应用场景。
教材章节:第一章 仓储物资管理系统概述2. 数据库设计基础:讲解数据库设计的基本原理、方法和步骤,引导学生掌握仓储物资管理系统数据库设计技能。
教材章节:第二章 数据库设计基础3. C语言编程基础:复习C语言基础知识,强调在仓储物资管理系统中的应用。
教材章节:第三章 C语言编程基础4. 仓储物资管理系统功能模块设计:详细讲解系统功能模块划分、设计思路和实现方法。
教材章节:第四章 仓储物资管理系统功能模块设计5. 系统实现与调试:指导学生运用C语言编程,实现仓储物资管理系统的功能,并进行调试与优化。
c语言课程设计物资管理系统一、教学目标本节课的教学目标是使学生掌握C语言在物资管理系统中的应用。
具体来说,知识目标要求学生了解物资管理系统的基本概念和C语言的基本语法;技能目标要求学生能够使用C语言进行简单的物资管理系统的开发;情感态度价值观目标则是使学生认识到C语言在实际应用中的重要性,激发他们对计算机编程的兴趣。
二、教学内容本节课的教学内容主要包括三个部分:首先是物资管理系统的基本概念,包括物资管理系统的定义、功能和分类;其次是C语言的基本语法,包括数据类型、变量、运算符和控制语句;最后是C语言在物资管理系统中的应用,包括物资信息的添加、删除、修改和查询等功能。
三、教学方法为了达到本节课的教学目标,我们将采用多种教学方法相结合的方式。
首先是讲授法,教师将讲解物资管理系统的基本概念和C语言的基本语法;其次是讨论法,学生将分组讨论如何使用C语言实现物资管理系统的功能;接着是案例分析法,教师将展示一个简单的物资管理系统案例,学生将分析并模仿实现;最后是实验法,学生将在实验室环境中动手编写和测试C语言程序。
四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:教材《C语言程序设计》、参考书《C语言实战》、多媒体资料《C语言编程入门》和实验设备(计算机、编程环境等)。
这些资源将帮助学生更好地理解物资管理系统和C语言的基本概念,提高他们的编程技能。
五、教学评估本节课的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。
评估方式包括平时表现、作业和考试三个部分。
平时表现主要评估学生在课堂上的参与度、提问和回答问题的积极性等;作业主要评估学生的编程实践能力,如编写和调试C语言程序;考试则主要评估学生对物资管理系统和C语言基本概念的理解和掌握程度。
通过这些评估方式,我们可以全面了解学生的学习情况,及时发现和解决问题。
六、教学安排本节课的教学安排将分为五个课时,每个课时45分钟。
c 课程设计物资库存管理系统一、教学目标本课程旨在通过学习物资库存管理系统的设计与实现,让学生掌握以下知识目标:1.掌握物资库存管理的基本概念和流程。
2.掌握常用的库存管理算法和策略。
3.掌握物资库存管理系统的架构和设计方法。
4.能够运用相关知识对实际问题进行建模和分析。
5.能够使用编程语言实现简单的物资库存管理系统。
6.能够对实现的结果进行分析和评估。
情感态度价值观目标:1.培养学生团队合作和沟通的能力。
2.培养学生对技术的热爱和对专业的认同感。
3.培养学生对问题的敏感性和解决问题的积极性。
二、教学内容本课程的教学内容主要包括以下几个部分:1.物资库存管理的基本概念和流程。
2.常用的库存管理算法和策略。
3.物资库存管理系统的架构和设计方法。
4.实际案例分析和讨论。
第一周:物资库存管理的基本概念和流程。
第二周:常用的库存管理算法和策略。
第三周:物资库存管理系统的架构和设计方法。
第四周:实际案例分析和讨论。
三、教学方法为了实现上述教学目标,我们将采用以下教学方法:1.讲授法:用于讲解基本概念、算法和策略。
2.案例分析法:通过分析实际案例,让学生更好地理解和应用所学知识。
3.实验法:让学生动手实现简单的物资库存管理系统,提高其实践能力。
4.讨论法:鼓励学生积极参与讨论,培养其团队合作和沟通的能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《物资库存管理系统设计与实现》。
2.参考书:相关领域的经典著作和论文。
3.多媒体资料:教学PPT、视频教程等。
4.实验设备:计算机、网络设备等。
以上教学资源将有助于丰富学生的学习体验,提高其学习效果。
五、教学评估为了全面、客观、公正地评估学生的学习成果,我们将采取以下评估方式:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性。
2.作业:布置相关的编程练习和案例分析,评估学生的理解和应用能力。
3.考试:期末进行闭卷考试,评估学生对知识的掌握和运用能力。
课程设计——物资管理信息系统本物资管理系统具有以下特点:❤实现仓库物资的入库出库查询等操作;❤实现仓库物资权限管理,提高系统安全性;❤界面设计简单,操作方便。
本系统后台数据库采用SQL Server 。
前台采用visual C#作为主要开发工具。
采用ADO技术连接数据库,完成对数据库的一系列操作。
本系统按照面对对象的思想,进行程序开发,程序设计条理清楚。
一、系统概述1. 系统功能与应用背景物资管理信息系统在企业的整个管理过程中起着至关重要的作用,如果不能保证正确地进货、库存控制及发货,将会导致管理费用的增加,服务质量也难以得到保证,从而影响企业的竞争力。
物资管理涉及计划、物料平衡、采购、入库、出库、库存等业务,这些业务涉及大量的数据和信息,而且对这些数据和信息的准确性、及时性都要求非常高,任何错误和遗漏都会造成公司的损失,若采用纯人工的方法进行管理有一定难度。
因此,采用计算机技术实现物资管理,是提高公司管理水平的有效方法。
物资管理信息系统能够提高物资管理的质量和效率,降低物资管理信息系统的成本,以合理库存量控制库存和采购。
其功能包括采购申请、物品收发与报废、库存管理、往来单位、部门及人员管理等。
本实例完成的主要功能有:★用户管理;★物资信息设置;★入库管理;★出库管理;★库存管理;不同的单位有不同的需求,本系统大体上能满足以下几个方面的需求:★用户的信息需求:随时查询库存状况,进行库存物资汇总,对库存数据能随时进行删除、插入及恢复操作;★用户的处理需求:能随时添加、删除、修改每一条库存记录。
2.系统预览为物资管理信息系统的登陆界面,输入用户名和密码(默认用户名和密码分别为admin和admin),单击【确定】按钮,进入程序主界。
二、系统设计1.系统设计思想本系统主要完成对仓库的库存管理,包括入库、出库、库存以及密码管理等几个方面,系统可以完成对各类信息的浏览、查询、添加、删除、修改等操作。
系统核心是入库、库存和出库之间的关系,每个表的修改都将影响到其他的表,当完成入库或出库操作时,库存信息会自动修改。
中国地质大学本科生课程论文封面课程名称C语言课程设计报告——物资管理系统教师姓名徐凯本科生姓名李妮本科生学号20111002978本科生专业工程管理所在院系经济管理学院类别:实习报告日期:2012.11.28——2012.12.5课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总成绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。
目录课程设计评语 (2)目录 (3)1.课程论文题目 (4)2.程序设计思路 (4)3.功能模块图 (5)4.数据结构设计 (5)5.算法设计 (6)6.程序代码 (13)7.程序运行结果 (20)8.编程中遇到的困难及解决方法 (25)9.总结心得及良好建议 (25)10.致谢 (25)1.课程论文题目请设计一个物资管理系统,要求主程序中应提供文字交互菜单界面,要求包含以下几个功能模板:1.信息输入模块input():建立物资管理数据总文件,完成对物资原库存信息的录入,并存放到指定文件中(如pro.dat)中2.信息查找模块search():采用如下方式进行查找,若找到,则输出该物资的相关信息;否则,输出提示信息(如not found!)。
(1)按产品名称查询。
(2)进货日期查询并统计(统计某年某月进的某种产品的数量、种类)。
(3)按产品名称和库存量查询并统计。
3.新物资入库模块insert():在原数据文件中插入新物资的信息。
4.领料模块lend():查找所领取物资的信息,若满足领料的要求,请登记领取物资名称,日期,数量(领料后需要对库存进行修改)。
5.打印功能模块print()(1)打印领料单(2)打印物资库存清单。
2.程序设计思路根据要求,整个管理系统被设计为信息输入模板、信息查找模板、新物资入库模板、领料模板和打印模板。
模板的分析如下:(1)信息输入模板用fscanf()或fwrite()把物资信息录入pro.dat文件中。
(2)信息查找模板用键盘式菜单提示查找字段:产品名称、进货日期、产品名称和库存量。
按照产品名称查询,采用基本的查找算法物资库存文件记录的p_name字段,如、如果匹配则输出。
按照进货日期查询,则查找in_date字段。
提示输入查找日期,检查日期是否匹配,如果日期匹配,则输出。
按照产品名称和库存量查询,则提示输入产品名称和最小库存量,那么首先查找p_name字段,如果p_name字段匹配,再看real_s字段,如果小于输入的最小库存,则输出其信息。
在查找过程中,如果没有找到相应的记录,则输出“not found!”。
(3)新物资入库模板新物资入库模板所做的就是文件记录的添加操作,采用fprintf()或fwrite()用追加的方式写入物资信息文件。
(4)领料模板首先提示用户输入所要领的物资的名称或编号以及所领数量,然后查找物资库存信息文件,如果该物资存在且实际库存量满足,则允许领料,在领料文件中添加领料记录,并在物资文件中修改实际库存量。
(5)打印模板通过键盘式菜单选择打印领料单或者物资库存清单,显示结果分屏输出,每屏10条记录。
主要是文件的读操作(fscanf()、fread())。
3.功能模块图4.数据结构设计根据问题,应在产品信息输入模板运用以下结构:product 结构图如下所示,定义如下:struct date{int year;int month;int day;};struct product{char p_name[20];long int p_num[7];char size[4];struct date in_date;long int max_s;long int min_s;long int real_s;struct product *next;}pro[N];p_name p_num size datemax_s min_s real_syear month day 物资管理系统产品信息输入新产品入库产品信息查找系统退出产品领料模板打印产品信息5.算法设计(一)主函数一般是设计简洁,只提供输入,处理和输出部分的函数调用。
其中各功能模块用菜单方式选择。
其中流程图如图(2)menu(){int n,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\t6.Exit");printf("选择你要进行的命令[1-6]:[]\b\b");scanf("%d",&n);if(n<1||n>6)N{w1=1;getchar();}else w1=0;}while(w1==1);switch(n){case 1:enter();break;case 2:search();break;case 3:insert();break;图2case 4:lend();break;case 5:print();break;case 6:exit(0);}}main()***********主函数**************{puts("\n\t\t****************欢迎进入物资管理系统*****************\n\n");puts("\n\n\t\t***************************************\n");printf("\n 按ENTER 键进入...");getch();menu();}开始显示一系列功能选择输入n ,判断m 是否是1到6?根据n 值调用各功能模块函数结束(二)各功能模块设计1.输入模块*********几种类型,名称等信息*********enter(){int i,n;printf("\n物资的种类大小(0-%d)?:",N-1);scanf("%d",&n);printf("\n输入数据\n\n");for(i=0;i<n;i++){printf("输入第几个物资的名称。
数量规格日期:\n",i+1);input(i);}if(i!=0)save(n);printf_back();}input(int i){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].in_date.year,&pro[i].in_date.month,&pro[i].in_date.day);printf("min_s real_s max_s:");printf("\n最小库存量真实库存量最大库存量");scanf("%d%d%d",&pro[i].min_s,&pro[i].real_s,&pro[i].max_s);}printf_data(int i){printf("\nname\t\tnum\tsize\tdate\t\tmin real max\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].in_date.year,pro[i].in_date.month,pro[i].in_date.day,pro[i].min_s,pro[i].real_s, pro[i].max_s);}主要是为了输入商品类型,名称,数量,型号,日期,最大,最小,真实库存量,并存放在指定的文件(pro.dat)中。
但要注意到输入时间,最大最小库存的格式(如)请输入第1th中商品信息:name(1-20letter):夏普number(1-7num):1size(1-4letter):2date:2012-11-15amount[min-real-max]:3-4-5(二)searchmenu()*******查询模块*******{int n,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();}else w2=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(){int j,n,m=0;char a[20];n=load();printf("\n输入你要查询物资的名称\nname:");scanf("%s",a);for(j=0;j<n;j++)if(strcmp(a,pro[j].p_name)==0){m++;printf_data(j);}printf("\n查找的第几种物资!",m);getch();menu();}struct s_date{int year;int month;int day;}s;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==pro[j].in_date.year)&&(s.month==pro[j].in_date.month) &&(s.day==pro[j].in_date.day)){m++;printf_data(j);}printf("\n查找第几种物资在那天!",m);getch();menu();}search_by_nameandsize(){int j,n,m=0;char a[20],b[4];n=load();printf("\n输入你要查询物资的名称!\nname:");scanf("%s",a);printf("\n输入你要查询物资的规格!\nsize:");scanf("%s",b);for(j=0;j<n;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.退出Choice your order [1-6]:[2]开始选择2输入n判断m 是否是0到4?根据n 值调用各功能模块函数结束返回*****************SEARCH********************1.通过商品名查询2.通过录入日期查询3.通过商品名和库存量查询4.返回菜单***************************************请选择要查询的种类[1-4]:[1]输入你要查询商品的名称!name:夏普name num size date min-real-max夏普436290022012-11-153-4-5找到1种商品!*****************菜单********************(三)新物资的录入在此函数上对新料进行了记录insert(){int n,c;n=load();puts("\nInput one data:\n");do{input(n);printf_data(n);printf("\n\nAre you sure?\n1).sure\n2).cancel and again\n3).back without save[]\b\b");scanf("%d",&c);if(c==1){save(n+1);printf_back();}else if(c!=2)menu();}while(c==2);}input(int i){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].in_date.year,&pro[i].in_date.month,&pro[i].in_date.day);printf("min_s real_s max_s:");printf("\n最小库存量真实库存量最大库存量");scanf("%d%d%d",&pro[i].min_s,&pro[i].real_s,&pro[i].max_s);}该函数据对物资进行了全面的查找(四)领料模块*****查找对所领聊的信息,若满足领料要求,便登记一系列内容,并修改程序如下struct one_pro{char p_name[20];char size[4];struct date one_date;long int total;struct one_pro*next;}check;lend(){int j,n;n=load();printf("\n请检查你要带走物资的日期等信息!");printf("\nname(1-20letter)size(1-4letter)date amount\n");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,pro[j].p_name)==0)&&(strcmp(check.size,pro[j].size)==0)&&(check. one_date.year==pro[j].in_date.year)&&(check.one_date.month==pro[j].in_date.month)&&(check.o ne_date.day==pro[j].in_date.day)&&(check.total<=pro[j].real_s)){pro[j].real_s-=check.total;printf_data(j);printf_back();}else printf("日期错误!");}(五)采用文件来存储数据信息#include<stdio.h>save(int n){FILE*fp;int k;if((fp=fopen("pro.dat","wb"))==NULL){printf("\nCannot open file!\n");return NULL;}for(k=0;k<n;k++)if(pro[k].real_s!=0)if(fwrite(&pro[k],sizeof(struct product),1,fp)!=1)printf("文件书写错误!\n");fclose(fp);}load(){FILE*fp;int k;if((fp=fopen("pro.dat","rb"))==NULL){printf("\n不能打开文件!\n");return NULL;}for(k=0;!feof(fp);k++)fread(&pro[k],sizeof(struct product),1,fp);fclose(fp);return(k-1);}6.程序代码#include<stdio.h>#include<string.h>#define N100struct date{int year;int month;int day;};struct product{char p_name[20];long int p_num[7];char size[4];struct date in_date;long int max_s;long int min_s;long int real_s;struct product*next;}pro[N];menu(){int n,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\t6.Exit");printf("选择你要进行的命令[1-6]:[]\b\b");scanf("%d",&n);if(n<1||n>6){w1=1;getchar();}else w1=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("\n\n\t\t***************************************\n");printf("\n按ENTER键进入...");getch();menu();}enter(){int i,n;printf("\n物资的量的大小(0-%d)?:",N-1);scanf("%d",&n);printf("\n输入数据\n\n");for(i=0;i<n;i++){printf("输入第几个物资的名称。