数据结构课程设计——仓库管理系统源程序

合集下载

c语言课程设计仓库管理

c语言课程设计仓库管理

c语言课程设计仓库管理一、教学目标本节课的教学目标是让学生掌握C语言的基本语法和编程技巧,通过编写程序实现简单的仓库管理系统,培养学生的逻辑思维能力和解决问题的能力。

具体来说,知识目标包括:理解C语言的基本数据类型、运算符、控制结构、函数等;技能目标包括:能够使用C语言编写简单的程序,掌握基本的编程技巧和调试方法;情感态度价值观目标包括:培养学生对计算机科学的兴趣,增强学生的自信心和自主学习能力。

二、教学内容本节课的教学内容主要包括C语言的基本语法和编程技巧,以及仓库管理系统的实现。

具体来说,教学大纲如下:1.C语言的基本语法:数据类型、变量、常量、运算符、控制结构等;2.编程技巧:变量声明、函数定义、循环控制、条件判断等;3.仓库管理系统:需求分析、功能设计、程序实现等。

三、教学方法为了达到本节课的教学目标,我们将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

通过这些方法,激发学生的学习兴趣,提高学生的主动性和参与度。

具体来说:1.讲授法:讲解C语言的基本语法和编程技巧,让学生掌握理论知识;2.讨论法:学生分组讨论,培养学生的团队协作能力和沟通能力;3.案例分析法:分析仓库管理系统的实例,让学生了解实际应用场景;4.实验法:让学生动手编写程序,培养学生的实际操作能力和解决问题的能力。

四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》;2.参考书:《C语言编程实例教程》;3.多媒体资料:课件、教学视频等;4.实验设备:计算机、编程环境等。

通过以上教学资源,丰富学生的学习体验,提高学生的学习效果。

五、教学评估本节课的教学评估将采用多元化的评价方式,以全面、客观、公正地反映学生的学习成果。

具体评估方式如下:1.平时表现:通过观察学生在课堂上的参与程度、提问回答、小组讨论等表现,评估学生的学习态度和积极性;2.作业:布置与课程内容相关的编程作业,评估学生的编程能力和对知识的掌握程度;3.考试:安排一次课程结束后的考试,测试学生对C语言基本语法和编程技巧的掌握情况;4.项目报告:让学生分组完成一个简单的仓库管理系统项目,评估学生的实际操作能力和团队协作能力。

(仓库管理)仓库管理系统源码

(仓库管理)仓库管理系统源码

(仓库管理)仓库管理系统源码unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, Dialogs,StdCtrls,DB,ADODB,jpeg,ExtCtrls;typeTForm1=class(TForm)ADOConnection1:TADOConnection;ADOQuery1:TADOQuery;Edit1:TEdit;Edit2:TEdit;Button1:TButton;Button2:TButton;ADOTable1:TADOTable;Image1:TImage;Label1:TLabel;Label2:TLabel;Label3:TLabel;Label4:TLabel;Button3:TButton;procedureButton1Click(Sender:TObject);procedureButton2Click(Sender:TObject);procedureButton3Click(Sender:TObject); private{Privatedeclarations}publiccount:integer;{Publicdeclarations}end;varForm1:TForm1;implementationusesUnit12,Unit19;{$R*.dfm}procedureTForm1.Button1Click(Sender:TObject); varyonghu:string;beginyonghu:=trim(edit1.T ext);//trim去除字符串空格count:=count+1;//登陆次数withadoquery1dobeginClose;;:='select*from用户信息表where用户名='''+yonghu+'''';open;if(adoQuery1.RecordCount<>0)and(edit2.T ext<>'')and(adoQuery1.FieldByName('密码').AsString=edit2.T ext)thenbeginifadoQuery1.FieldByName('是否管理员').AsString='True'thenbeginform12.SpeedButton1.Visible:=true;form12.Button13.Visible:=true;('密码正确,即将进入系统。

仓库管理系统数据结构课程设计c语言

仓库管理系统数据结构课程设计c语言

一、概述仓库管理系统是管理仓储物品的重要工具,通过合理的数据结构设计,能够高效地管理仓库中的物品进出、库存等情况。

本文旨在设计一个基于C语言的仓库管理系统数据结构,以实现对仓库的有效管理和操作。

二、需求分析1. 仓库管理系统需要能够实现对仓库中不同类型物品的管理,包括物品的入库、出库、库存查询等功能。

2. 系统需要能够对不同的物品进行分类管理,包括对物品的编号、名称、规格、数量等信息的记录和管理。

3. 系统需要具备对物品进行盘点的功能,能够及时更新库存信息。

4. 系统需要实现对仓库内物品的结构化管理,确保物品的存储和检索的高效性和准确性。

三、数据结构设计1. 仓库管理系统主要涉及的数据结构包括:仓库、物品、库存等。

2. 仓库:仓库可以使用链表进行组织,每个节点存储一个仓库的信息,包括仓库的编号、名称、位置区域等。

3. 物品:物品可以使用结构体进行定义,包括物品的编号、名称、规格、数量等信息。

4. 库存:库存可以通过哈希表进行管理,将物品的编号作为关键字,实现对库存的快速查询和插入操作。

四、系统模块设计1. 入库模块:用于向仓库中添加物品,并更新库存信息。

2. 出库模块:用于从仓库中移除物品,并更新库存信息。

3. 查询模块:用于对仓库中的物品和库存信息进行查询。

4. 盘点模块:用于对仓库进行物品的盘点和库存的更新。

五、算法设计1. 入库算法:当向仓库中添加新物品时,需要判断物品是否已存在,若存在则更新数量,若不存在则添加新物品。

2. 出库算法:当从仓库中移除物品时,需要判断库存是否充足,若充足则更新数量,若不足则提示库存不足。

3. 查询算法:通过哈希表和链表进行查询,实现高效的物品和库存信息查询。

4. 盘点算法:遍历仓库中的物品,对库存信息进行更新。

六、系统实现1. 使用C语言编写主程序,包括对仓库的管理和操作。

2. 根据数据结构设计和算法设计,实现对仓库的物品和库存的管理。

3. 使用文件存储来实现对仓库信息的持久化,确保系统重启后数据不丢失。

数据结构课程设计_仓库库存管理系统

数据结构课程设计_仓库库存管理系统

库存物品信息管理1、设计目的:利用《数据结构》课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C++语言进行程序设计,并规范地完成课程设计报告。

通过课程设计,巩固和加深对线性表、栈、队列、字符串、树、图、查找、排序等理论知识的理解;掌握现实复杂问题的分析建模和解决方法(包括问题描述、系统分析、设计建模、代码实现、结果分析等);提高利用计算机分析解决综合性实际问题的基本能力。

2、设计内容和要求:①、要求物品出库、入库信息管理,浏览、修改物品信息;②、物品信息按名称和代码存放,在程序出错时自动返回主页面③、可以按物品名称物品代码来查询物品信息,即在主菜单中增加查询功能选项,输入代码或名称即可显示;④、可以修改、删除某库存物品信息。

二、运行环境(软、硬件环境)软件环境:Vc6.0编程软件运行平台: Win32硬件:普通个人PC机三、算法设计的思想1、输入物品信息函数:Add(Link l)基本思想: 根据物品代码(code)来输入物品信息,如果代码已存在,则按ENTER键返回主页面;如果代码不存在,则继续输入物品名称、物品数量、物品等级;若继续输入,就直接输入代码等信息,若返回上一级,就按“0”键,调用main(),返回主界面。

2、物品出库函数:Del(Link l)基本思想: 根据输入的代码或名称,如果不存在该物品,就输出“不存在该物品”;然后输出是用代码出库或者名称出库,在选择操作后,输出该物品对应的信息,若输入“0”,则调用main(),返回主界面。

3、查看库存物品信息函数:Qur(Link l)基本思想:根据输入的信息判断有无该商品信息,如果没有该信息,则输出“你输入的信息有误”,有该物品,则输出该物品对饮的代码、名称、数量等信息,按enter键返回主界面。

4、删除物品信息函数:Del(Link l)基本思想:根据用户键入的选择,如果没有该物品信息,则输出没有改物品;调用该函数Del(Link l),如果存在该物品,则输出该物品及信息已成功修改,然后用户键入任意键返回主界面。

java仓库管理系统课程设计源代码

java仓库管理系统课程设计源代码

一、项目背景介绍1.1 仓库管理系统的重要性仓库管理系统是一种对仓库内物品进行全面管理和监控的信息系统。

在现代物流管理中,仓库管理系统扮演着至关重要的角色,可以提高仓库的利用率、降低存货成本、提高物流效率,为企业节省大量人力和物力资源,是企业管理中不可或缺的一部分。

1.2 项目意义本课程设计拟设计并实现一套基于Java语言的仓库管理系统,旨在通过应用软件技术和信息管理技术,实现对进销存等多类业务流程的自动化管理,并在实际操作中验证其运行效果和实用性,为学生提供一种将所学知识应用于实践的机会。

二、系统功能需求2.1 基本功能1) 系统登入:要求用户输入用户名和密码进行登入验证;2) 信息录入:包括商品信息、入库信息、出库信息等的录入;3) 信息查询:可以根据商品编号、名称、类别等条件查询商品信息;4) 库存管理:可以实时查看库存状况,并进行库存的盘点与调剂;5) 报表输出:可以输出商品进销存报表,方便管理人员进行决策;6) 权限管理:不同用户具有不同的权限,管理员具有对系统进行设置的权限。

2.2 进一步功能1) 供应商管理:可以录入供应商信息,并进行供应商的评价和选择;2) 客户管理:可以录入客户信息,并对客户进行分类管理;3) 交易管理:支持交易的生成、记录和统计。

三、技术选型和开发环境3.1 技术选型本系统采用Java语言作为主要开发语言,使用MySQL作为数据库,前端采用Swing技术进行界面设计,后端采用JDBC进行数据传输和交互。

3.2 开发工具1) 开发环境:Eclipse2) 数据库工具:Navicat3) 版本管理工具:Git4) 项目管理工具:Maven四、系统设计4.1 系统架构设计本系统采用MVC(Model-View-Controller)架构,将业务逻辑、数据表示和用户界面分离,使得系统更加易于维护和升级。

4.2 数据库设计1) 商品表:包括商品编号、名称、类别、进价、售价、库存等字段;2) 入库表:包括入库单号、商品编号、数量、日期等字段;3) 出库表:包括出库单号、商品编号、数量、日期等字段;4) 用户表:包括用户名、密码、权限等字段。

C语言课程设计仓库管理系统

C语言课程设计仓库管理系统

C语言课程设计仓库管理系统一、教学目标本课程旨在通过学习仓库管理系统,让学生掌握C语言编程的基本概念和方法,培养学生具备一定的软件开发能力。

具体的教学目标如下:1.知识目标:(1)理解C语言的基本语法和数据结构;(2)掌握C语言的函数、指针、 arrays等核心概念;(3)熟悉常用的库函数和预处理指令;(4)了解软件开发的基本流程。

2.技能目标:(1)能够使用C语言编写简单的程序;(2)具备基本的代码调试和优化能力;(3)能够独立完成简单的软件项目。

3.情感态度价值观目标:(1)培养学生对计算机科学的兴趣和热情;(2)培养学生良好的编程习惯和团队协作精神;(3)使学生认识到编程对于解决实际问题的价值。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数、指针、数组等核心概念,以及软件开发的基本流程。

具体的教学大纲如下:1.C语言的基本语法和数据结构;2.函数、指针和数组的概念及应用;3.常用的库函数和预处理指令;4.软件开发的基本流程;5.综合实例:仓库管理系统的设计与实现。

三、教学方法为了提高教学效果,我们将采用多种教学方法相结合的方式进行教学。

具体包括:1.讲授法:用于讲解C语言的基本语法、数据结构、函数、指针、数组等核心概念;2.案例分析法:通过分析实际案例,使学生更好地理解仓库管理系统的设计与实现;3.实验法:让学生动手编写代码,巩固所学知识,提高编程能力;4.小组讨论法:分组进行讨论,培养学生的团队协作能力和问题解决能力。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的C语言教材;2.参考书:提供丰富的C语言编程参考书籍;3.多媒体资料:制作精美的课件,辅助讲解;4.实验设备:提供足够的计算机设备,让学生进行编程实践。

通过本课程的学习,希望学生能够掌握C语言编程的基本概念和方法,为今后的计算机科学学习和软件开发打下坚实基础。

五、教学评估为了全面、客观地评估学生的学习成果,我们将采用多种评估方式相结合的方法。

仓库管理系统 数据库原理课程设计

仓库管理系统 数据库原理课程设计

内蒙古科技大学课程设计说明文(论文)内蒙古科技大学课程设计说明书(论文)课程名称:数据库原理及应用题目:仓库管理系统学生姓名:徐瑞芳学号:0867111118专业:计算机科学与技术班级:计算机08-1班指导教师:康懿内蒙古科技大学课程设计任务书摘要随着科学技术的不断提高,计算机科学技术的日益成熟,其强大的功能以为我们深刻的恩师,它已进入社会的各个领域并发挥着越来越重要的作用。

而以往的仓库管理都是由人工来操作的,所以很容易导致各种问题的出现,像账单查询、各个账单的对照等等,这些都会给人们带来很多不便,且很容易产生漏账的现象。

所以在仓库管理方面我们迫切的需要一个标准的、高效率的计算机管理方式来引导其发展,通过计算机管理该企业的日常运作,给管理者以决策参考的模型,来不断完善管理水平,提高工作效率。

作为计算机应用的一部分,利用计算机对仓库进行管理,具有手工管理所无法比拟的优点。

例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高仓库管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

因此,作为一个企业来说,仓库的管理是企业发展的根本保证,因此开发一套完整的仓库管理系统已是大势所趋。

而本系统在设计方面采用Microsoft Access 2007,模拟仓库管理,系统主要针对于日常库存信息的管理,包括物资管理、仓库管理、入库操作、入库查询统计、出库操作、出库查询统计、库存查询统计等处理情况。

用户可以通过相应的模块,对仓库里的物品的基本情况和库存数量进行查询,管理员通过简单的操作即可轻松的管理仓库,查询各项相关信息,并能进行入库和出库操作等。

关键字:仓库管理,Microsoft Access 2007目录前言 (6)一、系统分析与设计 (7)(一)需求分析 (7)(二)数据库的E-R图 (7)(三)数据库的逻辑结构 (12)(四)数据结构设计 (12)二、结论 (15)三、结束语 (15)参考文献 (15)前言仓库在现实生活中用途十分广泛,各种商城、超市要利用仓库存放物资,药房、医院等要利用仓库存放药品,企业、工厂等要利用仓库存放原材料、生产成品,因此仓库的管理成了一项十分重要的工作。

数据结构课程设计——仓库管理系统源程序

数据结构课程设计——仓库管理系统源程序

#include<iostream>using namespace std;typedef struct{c har no[10];c har name[30];i nt count;}DataType;struct Node{D ataType data;N ode *next;};class Link{public:L ink(); //构造函数,建立单链表i nt Insert(); //插入节点,即添加货物N ode * Search(); //查找某个节点v oid Delete(); //删除节点或更改节点的数据v oid show(); //输出节点信息c har Yn(); //输入(y/n)函数c har * No(); //输入货物编号函数v oid Fprintf(); //将单链表数据写到文件中v oid Fscanf(); //读取文件中的数据private:N ode *first,*real,*p,*q;};int main(){i nt t=1,flag=1,f=1;c har n;N ode * p;L ink Ku;w hile(t){printf("\n\n\n\n\n");printf("\n\t\t\t**********************************");printf("\n\t\t\t* XXX仓库管理系统*");printf("\n\t\t\t* 1--- 存储货物*");printf("\n\t\t\t* 2--- 查询货物信息*");printf("\n\t\t\t* 3--- 取出货物*");printf("\n\t\t\t* 4--- 显示仓库内所有货物信息*");printf("\n\t\t\t* 0--- 退出仓库管理系统*");printf("\n\t\t\t**********************************");printf("\n\t\t\t请选择菜单号(0--4):");f=1;while(f==1){cin>>n;if(n<'0'||n>'4'){printf("输入有误,请重新输入(0--4):");f=1;}elsef=0;}printf("\n\n");switch(n){case '1':{printf("**********************************\n");printf("* 存储货物*\n");printf("**********************************\n");//printf(" 货物编号货物名称货物数量\n");//printf("**********************************\n");int a=1;while(a==1){a=Ku.Insert();Ku.Fprintf();//将单链表里的数据写入文件。

linux.c课程设计--仓库管理系统

linux.c课程设计--仓库管理系统

一实验名称:仓库管理系统二实验目的:利用linux.c语言编写一个仓库管理系统。

三实验内容和要求:1.查看仓库信息:显示仓库所有的货物的信息[例如:货物的编号、货物的名字、货物的剩余量等]2.入库功能:增加现有货物的库存量3.出库功能:减少现有货物的库存量4.维护功能:维护货物信息[例如:增加新货物种类、修改货物的名字等]5.离开四实验环境:Linux.c语言编译环境五操作方法与实验步骤:1.编程2.程序测试3.调试改进六源代码和截图#include 〈stdio。

h>#include <string。

h>#include <stdlib.h>#include 〈conio.h>struct cangku //结构体构建{int num;char name[20];char introdution[50];float square;};typedef struct cangku Cangku;int Shuru(Cangku t[]);void Mulu(Cangku t[],int n);void Chazhao(Cangku t[],int n);int Shanchu(Cangku t[],int n);int Xiugai(Cangku t[],int n);int Zengjia(Cangku t[],int n);void Baocunjilu(Cangku t[],int n);int Jiazaijilu(Cangku t[]);int Jiazaijilu1(Cangku t[]);int Xuanzemulu();int XuanzemuluYK();int main() //主函数输入正确密码进入选择目录{Cangku ck[50];int i,l,x,length,w=1;int n=1;int q=1234;system("cls");//清屏printf("进入管理员界面请输入1\n”);printf(”进入游客界面请输入2\n");printf("请输入:\n");scanf("%d",&x);if(x==1){system("cls");printf("请输入管理员密码:\n”);scanf(”%d",&l);system("cls");if(l==q){printf("正确,按任意键进入仓库管理菜单");getchar();}else{w=0;printf (”输入错误!\n");}while(w){switch(Xuanzemulu()){case 1: length=Shuru(ck);Baocunjilu(ck,length);break;case 2:length=Jiazaijilu(ck);Chazhao(ck,length);break;case 3: length=Jiazaijilu(ck);length=Shanchu(ck,length);Baocunjilu(ck,length);break;case 4:length=Jiazaijilu(ck);length=Xiugai(ck,length);Baocunjilu(ck,length);break;case 5:length=Jiazaijilu(ck);length=Zengjia(ck,length);Baocunjilu(ck,length);break;case 6:length=Jiazaijilu(ck);system(”cls”);Mulu(ck,length);break;case 7: exit(0);}}}else if(x==2){while(n){switch(XuanzemuluYK()){case 1: length=Jiazaijilu(ck);system("cls”);Mulu(ck,length);break;case 2:exit(0);}}}}int Xuanzemulu() //管理员选择目录根据数字选择进入的界面{int c;printf(”按任意键进入仓库管理菜单\n");getchar();system("cls”);system("color F0");printf(”*************************仓库管理管理员界面**************************\n");printf(" * 1. 录入仓库初始记录*\n");printf(”* 2. 按仓库名称查找记录*\n");printf(”*3。

(库存管理)数据结构课程设计报告库存管理系统

(库存管理)数据结构课程设计报告库存管理系统

课程设计任务书2011—2012学年第1学期电子与信息工程系计算机科学与技术专业班级课程设计名称:数据结构课程设计设计题目:库存管理系统完成期限:自2012 年 1 月2日至2012 年 1 月 6 日共 1 周设计依据、要求及主要内容(可另加附页):一、设计目的熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。

二、设计要求(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。

凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩;(3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表;(4)认真编写课程设计报告。

三、设计内容1)问题描述试设计一库存管理系统,产品信息包括产品编号、名称、价格、数量等(产品编号不重复)。

2) 基本要求该系统应具有以下功能:1、产品信息录入功能(产品信息用文件保存)--输入2、产品信息浏览功能--输出3、产品入库4、产品出库5、查询和排序功能:1)按价格从大到小排序2)按名称查询6、产品信息删除、修改功能。

四、参考文献[1]《数据结构》. 王红梅. 清华大学出版社[2]《数据结构学习辅导与实验指导》. 王红梅. 清华大学出版社[3]《C++程序设计》. 钱能. 清华大学出版社[4]《C++程序设计试验指导》. 钱能. 清华大学出版社[5]《C++程序设计》.谭浩强. 清华大学出版社#include<iostream>#include<string>#include<iomanip>#include<fstream>using namespace std;int count=0;class CData //定义数据基类{public:CData(){};virtual int Compare(CData &)=0;virtual void Show()=0;virtual ~CData(){};};class CNode //定义结点基类{private:CData *pData; //用于指向数据类的指针CNode *pNext; //用于指向链表的后向指针public:void InputData(CData *pdata){pData=pdata;} //输入数据void ShowNode(){pData->Show();} //打印一个节点的数据CData *GetData(){return pData;}friend class CList; //定义链表类为基类};class CList{CNode *pHead; //链表头结点指针public:CList(){pHead=0;};~CList(){DeleteList();}void AddNode(CNode *pnode); //在首部添加结点CNode *DeleteNode(CNode *); //删除一个指定的结点,返回该结点的指针CNode *Search(CData &); //查找一个指定的数据,返回该数据所在的结点在链表的指针,未找到返回0bool IsExist(CData &);void ShowList(); //打印整个链表void DeleteList(); //删除整个链表CNode *GetListHead(){return pHead;} //返回链表首结点CNode *GetListNextNode(CNode *pnode); //返回链表指定结点的下一个结点};CNode *CList::GetListNextNode(CNode *pnode) //返回链表指定结点的下一个结点{CNode *p1=pnode;return p1->pNext;};void CList::AddNode(CNode *pnode) //在首部添加结点{if (pHead==0) //如果是空链表,插入的结点是唯一的结点{pHead=pnode;pnode->pNext=0;return;}else //否则,插入到链表首部{pnode->pNext=pHead;pHead=pnode;}};CNode *CList::DeleteNode(CNode *pnode) //删除一个指定的结点,返回该结点的指针{CNode *p1,*p2;p1=pHead; //指向首结点while(p1!=pnode&&p1->pNext!=0) //寻找要删除的结点{p2=p1;p1=p1->pNext; //结点p2始终在p1的后面}if (p1==pHead) //如果要删除的是首结点{pHead=pHead->pNext; //将首结点后移return pnode;}p2->pNext=p1->pNext; //p1指向被删除的结点,将p2结点与p1后面的结点连接起来return pnode;}CNode *CList::Search(CData &data) //查找一个指定的数据,返回指针,若未找到返回0 {CNode *p1=pHead;while(p1) //从头结点开始查找{if (p1->pData->Compare(data)==0)return p1; //找到后返回结点指针p1=p1->pNext;}return 0; //搜索完找不到,返回空指针0}void CList::ShowList() //打印整个链表{CNode *p1=pHead;while(p1){p1->pData->Show();p1=p1->pNext;}}void CList::DeleteList() //删除整个链表结点{CNode *p1,*p2;p1=pHead;while(p1){delete p1->pData;p2=p1;p1=p1->pNext;delete p2;}}class Repository:public CData //库存为记录,为数据基类的公有派生类{private :char szName[20]; //库存中数据:商品名、商品数量和入库时间unsigned int szNumber;char szTime[20];char szN;CList ShList;public:Repository(); //构造函数Repository(char *name,int number,char *time);void SetRecord(char *name, int number,char *time); //输入数据函数int Compare(CData &); //比较函数,比较商品名void Show();void AddRecord();void Display();void LookUpRecord();void DeleteRecord();void ModifyRecord();void SaveToFile();void Operate(string &strChoice);void ReadFromFile();void Output();};Repository::Repository(){strcpy(szName,"\0");szNumber=0;strcpy(szTime,"\0");}Repository::Repository(char *name,int number,char *time){strcpy(szName,name);szNumber=number;strcpy(szTime,time);szN=name[0];}void Repository::SetRecord(char *name, int number,char *time) //输入数据函数{strcpy(szName,name);szNumber=number;strcpy(szTime,time);szN=name[0];}int Repository::Compare(CData &data) //比较商品名{Repository &temp=(Repository &)data;return strcmp(szName,temp.szName);}void Repository::Show() //打印一个结点的数据{cout<<setw(15)<<szName<<setw(15)<<szNumber<<setw(15)<<szTime<<endl; }void Repository::AddRecord() //将记录添加到链表中{CNode *pNode;Repository *pSh;char szName[20],szTime[20];unsigned int szNumber;cout<<"请输入新商品名(输入0退出,并进入系统菜单):";cin>>szName;while(strcmp(szName,"0")){cout<<"请输入新商品入库时间: ";cin>>szTime;cout<<"请输入新商品数量: ";cin>>szNumber;pSh=new Repository; //生成新的数据累对象pSh->SetRecord(szName,szNumber,szTime); //数据类对象赋值pNode=new CNode; //生成新的结点pNode->InputData(pSh); //结点插入链表ShList.AddNode(pNode);count++;cout<<"请输入新商品名(输入0退出,并进入系统菜单) ";cin>>szName;}cout<<endl<<endl;}void Repository::Display() //显示全部链表数据{cout<<"当前操作共有"<<count<<"条新商品的添加纪录。

数据结构课程设计_C语言_库存管理系统_源代码

数据结构课程设计_C语言_库存管理系统_源代码
void dellist(linklist *l);
void change(linklist *l);
void write_file(linklist *l);
linklist* read_file(linklist *l);
int main(void)//主函数
{
int y;
}
else
{
printf("%10s %10s %10s %10s %10s\n","编号","名称","品牌","价格","数量");
printf("%10d %10s %10s %10d %10d\n",p->data.j,p->,p->data.pai,p->data.price,p->data.number);
p=p->next;
j++;
}
}
}
int StrCmp(char na[],char name[],int y)
{
int i =0;
int n=0;
while(na[i])
printf(" * ======================================================= * \n");
printf(" * 1. 读 取 记 录 * \n");
printf(" * 6. 更 改 记 录 * \n");
printf(" * 0. 退 出 系 统 * \n");

数据结构课程设计报告库存管理系统

数据结构课程设计报告库存管理系统

课程设计任务书2011 —2012学年第1学期电子与信息工程系计算机科学与技术专业 ____________ 班级课程设计名称:数据结构课程设计 ____________________设计题目:______ 库存管理系统 ________________________________完成期限:自2012年1月_2_日至2012 年1 月6日共1 周设计依据、要求及主要内容(可另加附页):一、设计目的熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。

二、设计要求(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。

凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩;(3 )学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表;(4)认真编写课程设计报告。

三、设计内容1)问题描述试设计一库存管理系统,产品信息包括产品编号、名称、价格、数量等(产品编号不重复)2)基本要求该系统应具有以下功能:1、 ------------------------------------------- 产品信息录入功能(产品信息用文件保存)输入2、产品信息浏览功能一一输出3、产品入库4、产品出库5、查询和排序功能:1 )按价格从大到小排序2 )按名称查询6、产品信息删除、修改功能。

四、参考文献[1] 《数据结构》•王红梅•清华大学出版社[2] 《数据结构学习辅导与实验指导》•王红梅•清华大学出版社[3] 《C++程序设计》•钱能•清华大学出版社[4] 《C++程序设计试验指导》•钱能•清华大学出版社⑸《C++程序设计》•谭浩强•清华大学出版社#in clude<iostream> #in clude<stri ng>#include<iomanip>#include<fstream>using namespace std;int count=0;class CData // 定义数据基类{public:CData(){};virtual int Compare(CData &)=0;virtual void Show()=0;virtual ~CData(){};};class CNode // 定义结点基类{private:CData *pData; // 用于指向数据类的指针CNode *pNext; // 用于指向链表的后向指针public:void InputData(CData *pdata){pData=pdata;} // 输入数据void ShowNode(){pData->Show();} // 打印一个节点的数据CData *GetData(){return pData;}friend class CList; // 定义链表类为基类};class CList{CNode *pHead; // 链表头结点指针 public:CList(){pHead=0;};~CList(){DeleteList();}void AddNode(CNode *pnode); //CNode *DeleteNode(CNode *); //CNode *Search(CData &); // 到返回bool IsExist(CData &);void ShowList();// void DeleteList(); // CNode *GetListHead(){return pHead;} //CNode *GetListNextNode(CNode *pnode); // 返回链表指定结点的下一个结点在首部添加结点 删除一个指定的结点,返回该结点的指针 查找一个指定的数据,返回该数据所在的结点在链表的指针,未找 打印整个链表 删除整个链表返回链表首结点};CNode *CList::GetListNextNode(CNode *pnode) // 返回链表指定结点的下一个结点{CNode *p1=pnode;return p1->pNext;};void CList::AddNode(CNode *pnode) // 在首部添加结点{if (pHead==0) // 如果是空链表,插入的结点是唯一的结点{ pHead=pnode;pnode->pNext=0;return;}else // 否则,插入到链表首部{ pnode->pNext=pHead; pHead=pnode;}};CNode *CList::DeleteNode(CNode *pnode) // 删除一个指定的结点,返回该结点的指针{ CNode *p1,*p2;p1=pHead; // 指向首结点while(p1!=pnode&&p1->pNext!=0) // 寻找要删除的结点{p2=p1;p1=p1->pNext; // 结点p2 始终在p1 的后面}if (p1==pHead) // 如果要删除的是首结点{pHead=pHead->pNext; // 将首结点后移return pnode;}p2->pNext=p1->pNext; //p1 指向被删除的结点,将p2 结点与p1 后面的结点连接起来return pnode;}CNode *CList::Search(CData &data) // 查找一个指定的数据,返回指针,若未找到返回0 { CNode *p1=pHead;while(p1) // 从头结点开始查找{if (p1->pData->Compare(data)==0)return p1; // 找到后返回结点指针p1=p1->pNext;}return 0; // 搜索完找不到,返回空指针0}void CList::ShowList() // 打印整个链表{CNode *p1=pHead;while(p1){p1->pData->Show(); p1=p1->pNext;}}void CList::DeleteList() // 删除整个链表结点{CNode *p1,*p2; p1=pHead;while(p1){delete p1->pData;p2=p1;p1=p1->pNext;delete p2;}}class Repository:public CData // 库存为记录,为数据基类的公有派生类{private :char szName[20]; // 库存中数据:商品名、商品数量和入库时间unsigned int szNumber;char szTime[20];char szN;CList ShList;public:Repository(); // 构造函数Repository(char *name,int number,char *time); void SetRecord(char *name, int number,char *time);// int Compare(CData &); // 比较函数,比较商品名void Show();void AddRecord();输入数据函数void Display();void LookUpRecord();void DeleteRecord();void ModifyRecord();void SaveToFile();void Operate(string &strChoice);void ReadFromFile();void Output();};Repository::Repository(){strcpy(szName,"\0");szNumber=0; strcpy(szTime,"\0");}Repository::Repository(char *name,int number,char *time){strcpy(szName,name); szNumber=number; strcpy(szTime,time);szN=name[0];}void Repository::SetRecord(char *name, int number,char *time) // {strcpy(szName,name); szNumber=number; strcpy(szTime,time);szN=name[0];}int Repository::Compare(CData &data) // 比较商品名{输入数据函数return strcmp(szName,temp.szName);}void Repository::Show() // 打印一个结点的数据{cout<<setw(15)<<szName<<setw(15)<<szNumber<<setw(15)<<szTime<<endl;void Repository::AddRecord() // 将记录添加到链表中{CNode *pNode; Repository *pSh;char szName[20],szTime[20]; unsigned int szNumber;cout<<" 请输入新商品名(输入0 退出,并进入系统菜单)cin>>szName;while(strcmp(szName,"0")){cout<<" 请输入新商品入库时间: "; cin>>szTime;cout<<" 请输入新商品数量: "; cin>>szNumber;pSh=new Repository; //pSh->SetRecord(szName,szNumber,szTime); //pNode=new CNode; // pNode->InputData(pSh); //生成新的数据累对象数据类对象赋值生成新的结点结点插入链表ShList.AddNode(pNode);count++;cout<<" 请输入新商品名(输入0 退出,并进入系统菜单)cin>>szName;} cout<<endl<<endl;}void Repository::Display() // 显示全部链表数据{cout<<" 当前操作共有"<<count<<" 条新商品的添加纪录。

C语言仓库管理系统-数据结构-课程设计

C语言仓库管理系统-数据结构-课程设计

C语言仓库管理系统-数据结构-课程设计C语言仓库管理系统-数据结构课程设计一、程序设计目标1. 问题描述2. 问题分析二、概要设计1. 方案确定2. 程序设计模块连接图3. 模块功能说明三、详细设计1. 数据设计2. 流程框图四、C源程序清单五、调试分析和测试结果六、软件使用说明书七、附录程序设计书题目:仓库货品管理系统一、程序设计目标1.问题描述一个库存货品信息管理系统软件,要求能实现库存货品信息的输入、插入、删除、查找等功能,并能建立和更新的库存信息保存于文件供输出或打印。

对于查找、删除等功能要求能按货品名、货品号分别进行。

每个货品的相关信息包括:货品号、货品名、货品库存量、进货日期、货品生产厂家及供应商等。

2.问题分析实际上要完成的是一个简单数据库管理信息系统的设计,同时要掌握数据结构方面的知识。

二、概要设计1.方案确定库存货品信息管理系统要求实现许多功能,可遵循结构化程序设计思想来进行本系统的设计——自顶向下,逐步细化,也就是将软件设计任务划分成许多容易解决的小的子任务,即分解出许多子功能模块进行设计。

本程序经过分析可划分出6个子任务:输入、输出、插入、删除、查找和保存。

2.程序设计模块连接图库存货品信息管理系统的模块连接结构如下图:3.模块功能说明对本系统的功能进行分析后可作如下的模块化设计:输入模块实现功能:按顺序将货物编号、货物名称、货物数量依次输入,并建立链表将其连接。

当输入的货品编号为0时,输入结束。

插入模块实现功能:向已经存盘的文件中再输入货品的信息,包括货品编号、货品名称、货品数量等等。

删除模块实现功能:在已经存储的文件中删除指定的货品信息,并释放内存空间。

删除可以按照货品编号和货品名称两中方法进行。

查找模块实现功能:在已经存储的文件中查找指定的货品信息。

可以按照查找货品编号和货品名称两种方法进行。

输出模块实现功能:在输入特定的文件名之后,输出该文件中所包含的全部货品信息。

数据结构仓库管理系统

数据结构仓库管理系统

仓库管理系统1. 题目要求设计一个仓库管理系统,可以按照顺序和货物名称查询仓库的存储情也可以增加或删除货物。

struct node{char NO; //商品编号char name[max]; //商品名称char count; //商品数量};2. 应用程序功能开始运行时界面如下:仓库管理链表建立界面如下:仓库管理链表插入界面如下:仓库管理链表查询界面如下:仓库管理链表删除界面如下:仓库管理链表输出界面如下:3. 输入数据类型、格式和内容限制输入数据类型为字符型,但在输入过程中不可出现空格,如在输入商品名称时不可出现空格。

4. 主要模块的算法描述流程图:5. 源程序代码#include<stdio.h>#include"iostream"int flag1=0;#include "string.h"#include "stdlib.h"#include "windows.h"using namespace std;typedef struct { //仓库管理结点类型 char NO[10]; //商品编号char name[30]; //商品名称char count[5]; //商品数量} DataType;typedef struct node { //结点类型定义 DataType data; //结点数据域struct node *next; //结点指针域} ListNode;typedef ListNode *LinkList;LinkList head;ListNode *p;LinkList CreateList(void);void InsertNode(LinkList head,ListNode *p);ListNode *ListFind(LinkList head);void DelNode(LinkList head);void PrintList(LinkList head);/*******尾插法建立带头结点的仓库管理链表算法*******/LinkList CreateList(void){LinkList head=(ListNode *)malloc(sizeof(ListNode)); //申请头结点ListNode *p,*rear;char flag='y'; //int flag=0; //结束标志置0rear=head; //尾指针初始指向头结点while (flag=='y'){p=(ListNode *)malloc(sizeof(ListNode)); //申新结点printf(" 商品编号(10) 商品名称(30) 商品数量(5) \n");printf("-----------------------------------------------\n");printf("\n添加商品编号:\n");cin>>p->data.NO;printf("\n添加商品名称:\n");cin>>p->;printf("\n添加商品数量:\n");cin>>p->data.count;rear->next=p; //新结点连接到尾结点之后rear=p; //尾指针指向新结点printf("继续添加记录?(y/n):");cin>>flag;}rear->next=NULL; //终端结点指针置空return head; //返回链表头指针}/*********在仓库管理链表head中插入结点************/void InsertNode(LinkList head,ListNode *p){ListNode *p1,*p2;p1=head;p2=p1->next;while(p2!=NULL && strcmp(p2->data.NO,p->data.NO)<0){p1=p2; //p1指向刚访问过的结点p2=p2->next; //p2指向表的下一个结点}p1->next=p; //插入p所指向的结点p->next=p2; //连接表中剩余的结点}/**********有序仓库管理链表的查找 ****************/ListNode *ListFind(LinkList head){ListNode *p;char num[10];char name[9];char pp;printf("==================\n");printf(" a. 按商品编号查询 \n");printf(" b. 按商品名称查询 \n");printf("==================\n");printf(" 请选择: ");p=head->next;cin>>pp;getchar();if (pp=='a'||pp=='A'){printf("请输入要查找的商品编号:");cin>>num;while (p&&strcmp(p->data.NO,num)<0) p=p->next;if ((p==NULL)||strcmp(p->data.NO,num)>0) p=NULL; //没有查到要查找的通讯信息}elseif (pp=='b'||pp=='B'){printf(" 请输入要查找的商品名称:");cin>>name;while(p&&strcmp(p->,name)!=0) p=p->next;}return p;}/********仓库管理链表上的结点删除*****************/void DelNode(LinkList head){char jx;ListNode *p,*q;p=ListFind(head); //调用查找函数if (p==NULL){printf("没有查到要删除的商品信息!\n");return;}if(p!=NULL) printf("真的要删除该商品吗?(y/n):");cin>>jx;if (jx=='y'||jx=='Y'){q=head;while ((q!=NULL)&&(q->next!=p)) q=q->next;q->next=p->next; //删除结点free(p); //释放被删结点空间printf("删除成功!\n");}}/********仓库管理链表的输出函数 **********/void PrintList(LinkList head){ListNode *p;p=head->next;printf(" 商品编号商品名称商品数量 \n");printf("--------------------------------------------------------------------------------\n");while (p!=NULL){printf("%15s%20s%23s\n",p->data.NO,p->,p->data.count);printf("---------------------------------------------------------------------------------\n");p=p->next; //后移一个结点}}void main(){int choice,j=1;char Choice;while(j){printf("\n\n\n\n\n");printf("\t\t\t\t仓库管理系统\n");printf("\n\t\t\t******************************");printf("\n\t\t\t* 1--- 仓库管理链表建立 *");printf("\n\t\t\t* 2--- 仓库管理链表插入 *");printf("\n\t\t\t* 3--- 仓库管理链表查询 *");printf("\n\t\t\t* 4--- 仓库管理链表删除 *");printf("\n\t\t\t* 5--- 仓库管理链表输出 *");printf("\n\t\t\t* 0--- 退出仓库管理系统 *");printf("\n\t\t\t******************************");printf("\n\t\t\t请选择菜单号(0--5):");cin>>choice;getchar();switch(choice){case 1:{printf("**********************************\n");printf("* 仓库管理链表建立 *\n");printf("**********************************\n");head=CreateList( );flag1=1;system("cls");break;}case 2:{if(flag1!=1) {printf("请先建立表!"); Sleep(1500);}printf("**********************************\n");printf("* 仓库管理链表插入 *\n");printf("**********************************\n");printf("商品编号(10) 商品名称(30) 商品数量\n");printf("************************************* \n");p=(ListNode *)malloc(sizeof(ListNode)); //申请新结点printf("\n添加商品编号:\n");cin>>p->data.NO;printf("\n添加商品名称:\n");cin>>p->;printf("\n添加商品数量:\n");cin>>p->data.count;InsertNode(head,p);system("cls");break;}case 3:{if(flag1!=1) {printf("请先建立表!"); Sleep(1500);}else{printf("***********************************\n");printf("* 仓库管理链表查询 *\n");printf("***********************************\n");p=ListFind(head);if (p!=NULL){printf("商品编号商品名称商品数量 \n");printf("--------------------------------------------------\n"); printf("%s,%s,%s\n",p->data.NO,p->,p->data.count);printf("---------------------------------------------------\n");}else printf("没有查到要查询的商品信息!\n");}break;}case 4:{if(flag1!=1) {printf("请先建立表!"); Sleep(1500);}else{printf("***********************************\n");printf("* 仓库管理链表删除 *\n");printf("***********************************\n");DelNode(head); //删除结点}break;}case 5:{if(flag1!=1) {printf("请先建立表!"); Sleep(1500);}else{printf("************************************\n");printf("* 仓库管理链表输出 *\n");printf("************************************\n");PrintList(head);}break;}case 0:j=0;system("cls");break;default:printf("\t\t\n 输入有错,请重新输入!\n");Sleep(1500);system("cls");break;}}}。

数据结构课程设计-仓库管理系统统

数据结构课程设计-仓库管理系统统
cout<<"请输入产品名字:";
cin>>p->name;
cout<<"请输入产品数量:";
cin>>p->num;
cout<<"请输入产品最大值:";
cin>>p->maxnumber;
cout<<"请输入产品最小值:";
cin>>p->minnumber;
p->next = p_head->next;
产品入库管理,可以填写入库单,确认产品入库;
产品出库管理,可以填写出库单,确认出库;
借出管理,凭借条借出,然后能够还库;
初始库存管理,设置库存的初始值,库存的上下警戒限;
可以进行盘库,反应每月、年的库存情况;
可以查询产品入库情况、出库情况、当前库存情况、可以按出库单,入库单,产品、时间进行查询;
2.数据库要求:在数据库中至少应该包含下列数据表:
if ( mm == 1 )
{
prodect *tp = new prodect;
tp = p_head->next;
while (tp)
{
if (tp->name == sp->proname)
{
m_name = tp->name;
m_counLeabharlann = tp->num;break;
}
tp = tp->next;
[4] 朱战立.数据结构(C++语言描述)(第二版本).高等出版社出版.2004年4月
[5]胡学钢.数据结构(C语言版).高等教育出版社.2004年8月

仓库管理系统课程设计

仓库管理系统课程设计

仓库管理系统课程设计(总24页) -本页仅作为预览文档封面,使用时请删除本页-课程设计报告课程名称数据结构设计题目运动会分数统计专业计算机科学与技术班级学号姓名完成日期 _________2012年6月8日_____________课程设计任务书设计题目:仓库管理系统设计内容与要求:【设计内容】为仓库设计一个仓库管理系统,记录存储货物的编号、名称、数量。

并且可以随时进行出货和出库操作、可随时查看货物信息。

【基本要求】1) 建立一个仓库管理程序,可以按顺序和货物名称查询仓库存储情况;2) 可以增加或删除货物;3) 可以实现货物的入库出库;4) 能用文件保存仓库货品信息;指导教师:____ ____2012年 6月 8日课程设计评语成绩:指导教师:_______________年月日1、问题描述建立一个仓库管理程序,可以按顺序和货物名称查询仓库存储情况,也可以增加或删除货物信息、实现货物的入库出库,要求能用文件保存仓库货品信息。

2、基本要求(1)、数据要求1) 建议输入货物的名称,编号,数量等,其余信息学生自行设计;2) 输出形式:有合理的提示,编号,名称,数量对应;3) 数据的存储结构自行设计。

4)仓库货物的相关数据要存储在数据文件中。

(2)、操作要求建立一个仓库管理程序,可以按顺序和货物名称查询仓库存储情况,也可以增加或删除货物信息、实现货物的入库出库,要求能用文件保存仓库货品信息。

(3)、测试数据要求测试数据要求使用:1、全部合法数据;2、整体非法数据;3、局部非法数据。

进行程序测试,以保证程序的稳定。

(4)、界面要求有合理的提示,每个功能可以设立菜单,根据提示,能完成相关的功能操作并符合要求。

(5)、存储结构要求学生自己根据系统功能要求自己设计,但是要求仓库货物的相关数据要存储在数据文件中。

(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include<iostream>using namespace std;typedef struct{char no[10];char name[30];int count;}DataType;struct Node{DataType data;Node *next;};class Link{public:Link(); //构造函数,建立单链表int Insert(); //插入节点,即添加货物Node * Search(); //查找某个节点void Delete(); //删除节点或更改节点的数据void show(); //输出节点信息char Yn(); //输入(y/n)函数char * No(); //输入货物编号函数void Fprintf(); //将单链表数据写到文件中void Fscanf(); //读取文件中的数据private:Node *first,*real,*p,*q;};int main(){int t=1,flag=1,f=1;char n;Node * p;Link Ku;while(t){printf("\n\n\n\n\n");printf("\n\t\t\t**********************************");printf("\n\t\t\t* XXX仓库管理系统*");printf("\n\t\t\t* 1--- 存储货物*");printf("\n\t\t\t* 2--- 查询货物信息*");printf("\n\t\t\t* 3--- 取出货物*");printf("\n\t\t\t* 4--- 显示仓库所有货物信息*");printf("\n\t\t\t* 0--- 退出仓库管理系统*");printf("\n\t\t\t**********************************");printf("\n\t\t\t请选择菜单号(0--4):");f=1;while(f==1){cin>>n;if(n<'0'||n>'4'){printf("输入有误,请重新输入(0--4):");f=1;}elsef=0;}printf("\n\n");switch(n){case '1':{printf("**********************************\n");printf("* 存储货物*\n");printf("**********************************\n");//printf(" 货物编号货物名称货物数量\n");//printf("**********************************\n");int a=1;while(a==1){a=Ku.Insert();Ku.Fprintf();//将单链表里的数据写入文件。

}break;}case '2':{printf("***********************************\n");printf("* 查询货物信息*\n");printf("***********************************\n");flag=1;char yn;while(flag==1){p=Ku.Search();if(p){printf("\n货物编号货物名称货物数量\n");printf("---------------------------\n");printf("%5s%9s%8d\n",p->data.no,p->,p->data.count);printf("---------------------------\n");}elseprintf("仓库中没有该货物!\n");printf("是否继续查询?(y/n):");yn=Ku.Yn();if(yn=='y'||yn=='Y')flag=1;if(yn=='n'||yn=='N')flag=0;}break;}case '3':{printf("***********************************\n");printf("* 取出货物*\n");printf("***********************************\n");flag=1;char yn;while(flag==1)Ku.Delete();printf("是否继续取货?(y/n):");yn=Ku.Yn();//调用输入y/n函数if(yn=='y'||yn=='Y')flag=1;if(yn=='n'||yn=='N')flag=0;}break;}case '4':{Ku.show();break;}case '0':{char yn;printf("确定退出仓库管理系统吗?(y/n):");yn=Ku.Yn();//调用输入y/n函数if(yn=='y'||yn=='Y')printf("谢谢使用...\n");t=0;}if(yn=='n'||yn=='N'){t=1;}break;}}}return 0;}Link::Link(){first=new Node;first->next=NULL;real=first;FILE *fp=NULL;fp=fopen("d:\\file01.txt","a");fclose(fp);//Fprintf();Fscanf();}int Link::Insert(){char yn;char no[10],name[30];int count,t;printf("\n 货物编号货物名称(30) 货物数量(5) \n");printf("-----------------------------------------------\n");printf("\n请输入货物编号(10个字符以):\n");strcpy(no,No());printf("\n输入货物名称(30个字符以):\n");cin>>name;t=1;while(t){printf("输入货物数量(整数): ");cin>>count;if(count<=0){t=1;printf("货物数量必须大于0,请重新");}elset=0;}p=first;real=first;p=p->next;while(p){if(strcmp(p->data.no,no)==0&&strcmp(p->,name)==0){//printf("仓库中已有该货物%d件\n",p->data.count);p->data.count=p->data.count+count;printf("添加成功!仓库中现有该货物%d件\n是否继续存货?(y/n):",p->data.count);yn=Yn();if(yn=='y'||yn=='Y') return 1;if(yn=='n'||yn=='N') return 0;}if(strcmp(p->data.no,no)==0&&strcmp(p->,name)!=0){printf("该货物的名称输入有误,应为%s\n请重新输入(y)或取消存货(n):",p->);yn=Yn();if(yn=='y'||yn=='Y') return 1;if(yn=='n'||yn=='N') return 0;}if(strcmp(p->data.no,no)!=0&&strcmp(p->,name)==0){printf("该货物的编号输入有误,应为%s\n请重新输入(y)或取消存货(n): ",p->data.no);yn=Yn();if(yn=='y'||yn=='Y') return 1;if(yn=='n'||yn=='N') return 0;}real=p;p=p->next;}if(p==NULL){Node *s=new Node;strcpy(s->data.no,no);strcpy(s->,name);s->data.count=count;s->next=NULL;real->next=s;real=s;printf("添加成功!仓库中现有该货物%d件\n是否继续存货?(y/n):",real->data.count);yn=Yn();if(yn=='y'||yn=='Y') return 1;if(yn=='n'||yn=='N') return 0;}return 0;}Node * Link::Search(){char ab;char no[10],name[30];int f;p=first;printf("==================\n");printf(" a. 按货物编号查询\n");printf(" b. 按货物名称查询\n");printf("==================\n");printf(" 请选择(a/b):");f=1;while(f==1){cin>>ab;if(ab=='a'||ab=='A'||ab=='b'||ab=='B'){f=0;if(ab=='a'||ab=='A'){printf("\n请输入货物编号(10个字符):\n");strcpy(no,No());while(p&&strcmp(p->data.no,no)!=0)p=p->next;}if(ab=='b'||ab=='B'){printf("\n请输入货物名称(30个字符):");cin>>name;while(p&&strcmp(p->,name)!=0)p=p->next;}}else{f=1;printf("输入有误,请重新输入(a/b):");}}return p;}void Link::Delete(){Node *q,*p;int count,t;char yn;p=Search();if(p==NULL){printf("仓库中没有该货物!\n");}else{printf("\n仓库中有该货物%d件。

相关文档
最新文档