计算机基础强化训练课程设计
- 格式:doc
- 大小:131.00 KB
- 文档页数:10
仓库入库的管理与实现 1. 需求分析 1.1 问题描述 仓库入库的管理是对进入仓库的物品进行详细、准确的记录,以便日后的查账、建档等。 1.2 数据需求
在对入库的物品进行登记时,需记录其条形码编号、物品的名称、物品的基本单位、物品的单价、数量、总的金额、物品入库的时间和操作员的姓名。
符 号 数据类型 长 度 描 述 barcode char 10 条形码编号 storename char 10 物资名称 basicunit char 5 基本单位 unitprice char 5 物资单价 number char 20 入库数量 money char 20 总的金额 time char 10 入库时间 manager char 10 操作员姓名 shelf char 5 物资所放货架 layer char 5 所在货架层数
1.3功能需求 仓库入库管理系统为公司提供增加入库物资信息功能,查询物资信息和显示物资信息等功能,具体功能需求描述如下: 计算机基础强化训练 1 1.3.1 增加入库物资信息 可在原有的入库物资信息文件的基础上增加新的物资信息记录。在增加新的物资物资信息时,会提示输入物资的条形码编号、物资名称、单位、单价、数量、总的金额、入库的时间、操作员和物资所放的位置。 1.3.2 修改入库物资信息
在增加物资信息出现错误需要修改信息时,需用到此功能。提示输入要进行修改的物资的条形码编号,如果在文件中存在该物资的信息,则提示输入新的编号、名称、单价等信息,如果在文件中不存在该物资信息时,则会提示没有资料可以修改。
1.3.3 查询入库物资信息 当选择查询功能时,会有按条形码编号、物资名称、入库时间和操作员姓名四种不同的查询方式,分别提示输入物资的编号或名称或入库时间或操作员姓名,如果在文件中有相同的信息,则会显示次物资的全部信息,如果文件不存在,则会显示没有资料可以查询,然后返回主界面。 1.3.4 显示入库资料信息 需要查看所有的入库资料时,选择此功能,界面上会显示所有的入库物资的信息,以便查看,当库中没有资料时,提示没有资料可以显示。
1.3.5 保存入库物资信息 添加或修改了物资信息后,选择此功能,新的物资信息便会保存在磁盘中,在以后的显示时,再从磁盘中读取这些物资的信息,然后显示在界面上。
2.系统设计 2.1 结构体 用于存放物资入库时的货架和所在的层数。 struct position { char shelf[10]; //所在货架 char layer[10]; //所在层数 }; 计算机基础强化训练 2 用于存放每种物资的条形码编号、名称、单位、单价、数量、总的金额、入库时间和操作员、位置。 struct store { char barcode[10]; //条形码 char storename[20]; //物资名称 char basicunit[10]; //基本单位 char unitprice[5]; //单价 char number[20]; //数量 char money[50]; //金额 char time[10]; //入库时间 char manager[10]; //操作员 position pos; //位置 }; 2.2 数据结构
单链表的存储结构。 typedef struct LNode { struct store data; struct LNode *next; }LNode,*LinkList;
2.3 用户界面设计 主界面设计: 计算机基础强化训练
3 查询界面设计,选择查询功能后,会提示按不同的方式查询:
2.4 处理过程设计 添加物资信息时,在链表尾进行插入,具体代码如下: while(r) //找到最后一个结点 { if(r->next==NULL) break; r=r->next; } p->next=NULL; //p为链表尾 r->next=p; r=p; 查询和修改物资信息时,要在文件中找到相匹配的信息,具体处理如下: 例如利用物资名称进行查询,则需找到与之相匹配的物资名称,具体语句如下: p=L->next; while(p) { if(strcmp(p->data.storename,findmess)==0) { …… //要输出的内容 } p=p->next; 计算机基础强化训练 4 } 保存物资信息时,需将存在链表中的信息写入文本文档中,所用的函数为fwrite(), 具体实现如下: if(fwrite(p,sizeof(LNode),1,fp)==1) { p=p->next; count++; }
主函数的处理如下: int main() { while(!feof(fp)) //向打开的文件中加入记录 { p=(LNode*)malloc(sizeof(LNode)); if(fread(p,sizeof(LNode),1,fp)) { p->next=NULL; r->next=p; r=p; count++; } } fclose(fp); cout<<"记录导入完毕,共导入 " 3.系统设计 3.1 测试用例的设计 计算机基础强化训练 6 条形码编号 902088 407709 物资名称 书籍 电脑 物资基本单位 本 台 物资单价 5 200 入库物资数量 200 10 物资总金额 1000 2000 物资入库时间 20031201 20041203 操作员姓名 李四 张三 物资入库所放货架 3 5 物资所在货架层次 2 4 3.2 测试结果 测试添加信息功能: 计算机基础强化训练 7 测试查找功能的结果: 测试显示功能的结果: 计算机基础强化训练 8 测试修改功能的结果: 4.小结 计算机专业是一门实践性较强的学科,只懂得理论知识是不够的,必须有实践动手的 训练,这样理论和实践结合起来,才能把知识掌握的更准确、更深刻。通过这一周的基础强化训练,自己亲自动手实践,就使我对程序设计的基础内容,如算法设计、计算过程规划与实施等,都有了进一步的提高,而且巩固了专业的理论知识,为以后的学习打下了良好的基础,同时锻炼了我的分析和解决实际问题的能力,虽然设计中还有很多不足的地方,但我相信,通过多次的训练后能够更全面的分析处理问题。 程序能够达到基本要求,实现仓库入库管理的添加、查询、修改、显示和保存的功能,而且能够在查询物资信息时,分别按条形码编号、物资名称、入库时间和操作员四种方式查询。在使用了保存功能后,能够将添加或修改的物资信息存入到指定的磁盘中,下一次打开时,会自动导入到链表中,以便查询和显示物资信息。 程序中还有很多不足之处,每增加一条物资信息,需要保存后才能存在磁盘中,可以在增加的函数中增加保存的语句,使每次增加信息之后会自动保存,不必再选择保存功能。另外,在修改物资信息的时候,必须将物资的所有信息都输入一遍,如果只是修改物资信息的一项,那么就会很浪费时间。 计算机基础强化训练 9 5.参考文献 1. 《计算机科学导论》(第二版) 主 编:钟 珞 出版社:武汉理工大学出版社 出版或修订时间:2004.1 2. 《C++程序设计教程》(第一版) 主 编:闵联营 何克右 出版社:武汉理工大学出版社 出版或修订时间:2005.7 3. 《数据结构(C语言版)》(第一版) 主 编:严蔚敏 吴伟民 出版社:清华大学出版社 出版或修订时间:2004.3 4. 《C语言课程设计》(第一版) 主 编:黄 明 梁 旭 出版社:电子工业出版社 出版或修订时间:2006.6 5. 《C/C++程序设计》(第一版) 主 编: 吴国风 宣善立 出版社:高等教育出版社 出版或修订时间:2006.8