C语言小型物流仓储管理系统课程设计
1、课程设计目的和要求
目的:进一步加深、巩固学生所学专业课程《C程序设计》的基本理论知识,理论联系实际,培养学生综合分析问题和解决问题的能力。掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能。
要求:编写仓库管理系统,实现库存记录、出库记录、入库记录等三方面的功能。
2、课程设计名称及内容 ? 2.1课程设计名称 仓库物资管理系统 ? 2.2设计内容
设计一个仓库物资管理系统,该系统要求对仓库物资信息进行管理和维护,实现仓库物资信息化。
? 2.3任务和要求
1. 创建库存记录文件,根据提示输入若干电器的信息,并将信息保存至一个文件中。
2. 物资入库管理,创建一个入库记录文件,每次有物资入库,则按入库记录要求输入各项信息,并将该次的入库信息添加到文件中,同时修改相应的库存记录文件。
3. 物资出库管理,创建一个出库记录文件,每次有物资出库,则按出库记录要求输入各项信息,并将该次的出库信息添加到文件中,同时修改相应的库存记录文件。注意:物资出库时要检查出库数
量的合法性(即出库数量必须小于库存数量)。
4. 按不同条件进行查询操作,输出满足条件的物资信息。
(1) 输入电器名称,在库存记录文件中查找相应的物资信息并输出。 (2) 输入品牌名称,在库存记录文件中查找该品牌的所有电器信息并输出。 (3) 输入一个日期(年.月.日),输出该天的入库记录和出库记录。 (4) 输入电器名称和型号,输出该电器的所有入库记录和出库记录。 5. 按不同条件对物资信息进行统计工作。
(1) 输入电器名称,在库存记录文件中统计该电器的现有库存总量。 (2) 输入电器名称,在入库记录文件中统计该电器的入库次数。
(3) 输入一个日期(年.月),在出库记录文件中统计该月的出库记录次数。 (4) 设置一个库存数量警戒值,输出库存数量小于该警戒值的所有库存电器的信息。
3.设计思想
作为仓库物资管理系统,首先要有对物资信息的录入,库存记录应包括以下信息:电器名称、品牌名称(或生产厂家)、型号、库存数量、价值。
主要以录入、查找、增加、修改、删除、显示等功能,贯穿整个 程序。输入要查找的物资名称,系统会自动显示对应的物资信息。 最后就是退出程序 4.程序详细设计
程序共有 20个函数,分别为 void CreatStock() void CreatInstock() void Creatoutstock() void SearchElename(); void SearchBrand();
void SearchDate();
void SearchElenameAndBrand(); void PrintStock(struct stock *p); void PrintInstock(struct instock *p); void PrintOutstock(struct outstock *p) void SearchMenu() void CountMenu() void Count4() void main() int read_stock() int read_instock() int read_outstock() int Count1() int Count2() int Count3()
其中程序末尾定义了main函数,主函数void main(),主要通过调用各个成员函数,最终实现物资信息的创建、查找、统计等各项功能。
5.课程设计心得与体会
在这次C语言课程设计中,我收获颇丰也发现了自己许多不足的地方,结合自己所学并通过查阅资料,在程序设计过程中加深了我对面向对象的程序设计方法的认识,在巩固了基本的程序设计方法的基础上进一步学习了C中类的定义、成员方法的使用以及函数的调用
等。同时,在程序的设计过程中暴露出了许多问题,首先,程序设计之初思路混乱,面对程序要求的各项功能如:教师信息的创建、删除、修改、查找等无从下手,最终通过一个个的子函数分别完成不同的功能并通过主函数调用最终实现程序
功能的完整性;第二,平时对于面向对象的程序设计方法仅仅局限于概念上的理解,真正实现起来被每个对象繁杂的属性搞的晕头转向;第三,自己对C语言的学习仅仅局限于课本知识,很少实践,以至于在编程过程中错误不断甚至出现低级的语法错误。这次课程设计使我的编程能力得到了很大的提高,加深了我对面向对象这一概念的理解,对以后其他面向对象程序语言的学习打好良好基础,同样也在编程方面积累了经验
6.参考资料 《C程序设计》 7.程序源代码 #include \#include
#define STOCKNUM 3//原来库存中家电的种类 #define INSTOCKNUM 3//每次输入的家电种类 #define OUTSTOCKNUM 3//出库家电的种类 struct date//时间结构 { int year; int month; int day; };
struct stock//库存结构 {
char elename[20];
char brand[20]; char type[20];
intstocknum;;intvalue;;}stoc[STOCKNUM+INSTOCKNU;structinstock//入库结构;charelename[20];;charbrand[20];;chartype[20];;intinstocknum;;intprice;;structdateintime;;charsendername[20];;}in
int stocknum; int value;
}stoc[STOCKNUM+INSTOCKNUM]; struct instock//入库结构 {
char elename[20]; char brand[20]; char type[20]; int instocknum; int price; struct date intime; char sendername[20]; }in[INSTOCKNUM]; struct outstock//出库结构 {
char elename[20]; char brand[20]; char type[20];