今天非常开心,因为今天终于要给大家分享一个库存管理项目了.
我个人感觉在做项目之前一定先要把逻辑思路理清,不要拿到项目就噼里啪啦的一直敲下去这样是一不好的习惯,等你做大项目的时候,你就不会去养成一种做前理清逻辑思路的习惯,在接下来的项目中考虑的太复杂化.所以做前理清逻辑思路是个好习惯..
接下来我们先来分析一下这个库存难管理系统
既然是库存管理显然就有一个货品类(Goods)管理类(Adm)
货品类中包括了(货品名称;货品位置;货品价格;货品评价)
仓库类包括了一些方法
初始化货品信息Input()
输出货品清单列表output()
欢迎菜单Welcom()
根据商品名称获取商品位置GetHome()
获得满意度最高的商品GetSatisfactionHeightGoods()
输出满意度最高的货品outputSatisfactionHeightGoods()
最后在程序的入口类中调用其方法
下面就要详细的叙述一下这个类;方法;以及Main方法中的调用代码了.
首先在项目中添加一个货品类Goods
public class Adm { Goods[] goods = new Goods[3];//实例化一个对象数组
初始化货品的信息方法
public void Input() { Goods goods1 = new Goods();//实例化一个goods1对象 goods1.Name = "倚天剑"; goods1.Home = "峨眉山"; goods1.Satisfy = 99; goods1.Money = 9.9; goods[0] = goods1; //将对象每一项值赋给对象数组 Goods goods2 = new Goods();//实例化一个goods2对象 goods2.Name = "屠龙刀"; goods2.Home = "暂不知下落"; goods2.Satisfy = 99.9; goods2.Money = 90.9; goods[1] = goods2; //将对象每一项值赋给对象数组 Goods goods3 = new Goods();//实例化一个goods3对象 goods3.Name = "孔雀翎"; goods3.Home = "xx地方"; goods3.Satisfy = 100; goods3.Money = 90; goods[2] = goods3;//将对象每一项值赋给对象数组 }
输出货品清单列表
public void output()
{ Console.WriteLine("库存货品清单列表"); Console.WriteLine("======================"); foreach (Goods item in goods)//用foreach循环遍历数组) { if(item!=null)//如果当前数组中的值不为null { Console.WriteLine("货品名称:\t{0}",item.Name);//向屏幕打印货品名称 } } Console.WriteLine("======================"); }
欢迎菜单
根据商品名称获取商品位置
public void Welcom() { Console.WriteLine("======================欢迎使用库存管理系统======================="); Console.WriteLine("1:根据货品名称获取货品位置2:取得客户满意最高的货品3:退出"); Console.WriteLine("======================欢迎使用库存管理系统======================="); Console.WriteLine("请选择:"); int choice = int.Parse(Console.ReadLine());//向屏幕输入内容本身是一个string类型,这用到int.Parse转化为int类型 switch(choice)//根据输入的数组选择对应的功能 { case 1: GetHome(); break; case 2: outputSatisfactionHeightGoods(GetSatisfactionHeightGoods());
break; case 3: Console.WriteLine("退出成功!"); break; default: Console.WriteLine("对不起!没有对应的模块"); break; } }
public void GetHome() { Console.WriteLine("请输入要查询的货品名称:"); string name=Console.ReadLine(); foreach (Goods item in goods) { if (item != null)//如果当前数组中的值不为null { if(name.Equals(item.Name))//如果输入的名字和数组中的名字匹配,就输出对应的货品位置 { Console.WriteLine(item.Home);//输出货品位置 Welcom(); break; } } } }
获得满意度最高的商品
public Goods GetSatisfactionHeightGoods() { //用冒泡排序算法把满意度从大到小排列 for (int i = 0; i < goods.Length - 1; i++) { for (int j = 0; j < goods.Length - 1 - i; j++) { if (goods[i].Satisfy < goods[i + 1].Satisfy)//如果数组中的第一项满意度小于数组中的第二项的满意度那么就进行交换 { //交换过程 Goods a = goods[i]; goods[i] = goods[i + 1]; goods[i + 1] = a; } } } return goods[0];//返回数组下标为0的那一项这里保存的就是最大的数组中满意度最大那一项 }
输出满意度最高的货品
public void outputSatisfactionHeightGoods(Goods happy) { Console.WriteLine("客户满意最高的商品:{0};摆放在:{1};满意度:{2};价格:{3}", happy.Name, happy.Home, happy.Satisfy, happy.Money);//输出信息 }
到这这个库存系统也基本快做好了
最后在程序的入口类(即Main方法中)调用一下
static void Main(string[] args) { Adm adm = new Adm();//实例化一个仓库类对象 adm.Input();//保证前三项有值 adm.Inputshow();//调用输出货品信息的方法 adm.Welcom();//调用欢迎菜单的方法 Console.ReadLine(); }
到这一个简单的库存管理系统就Ok了
谢谢你们抽出宝贵的时间来看, 希望看完后对你有帮助.
- 6楼代码小兵的成长
- 不说啥了,加油吧,但是,不要放在首页了
- 5楼chenhp
- 控制台。。。
- 4楼BruceGoGo
- 。。。文章是怎么放首页的
- 3楼oh~NO!
- 昨天就在首页看到博主这个系列的文章了,没想到今天又看到了..,命名确实感觉有些问题.,比如Adm这个可以直接Admin的,如果货品类叫Goods的话,Adm类里的那个叫goods的数组会误导人,不如叫goodsArray更好一些.,初始化货品信息 不如叫 InitGoodsData什么的,因为并没有涉及到需要输入,所以叫Input并不合适.,输出货品清单列表 不如叫ShowGoodsList;位置:position;满意:satisfaction,命名最关键一点是不要误导人.,比如你的那个Inputshow,行为明明是输出结果,而方法的名字却是输入,很明显会误导人.,最后,贵在坚持!,博主加油!
- 2楼BruceGoGo
- 满意度最高的货品,翻译为HeightGood,这翻译真是醉死人了,我组里要是有人这么命名方法,会被鄙视然后改之。。。
- Re: 一树繁花
- @BruceGoGo,那应该怎么翻译呢?
- 1楼batsing
- 楼上评论的几位也不要太苛刻,看楼主应该是一个刚学C++的学生党,谁都是从菜鸟开始的。总之,楼主加油,先看看一些代码规范之类的,然后是练习,从面向过程到面向对象需要一个过程,可以从一些MVC框架开始。