static void Main(string[] args) { //测试数据——订单明细 OrderItem itemOne = new OrderItem("铅笔", 5, 1); OrderItem itemTwo = new OrderItem("钢笔", 10, 50); OrderItem itemThree = new OrderItem("圆珠笔", 20, 2); OrderItem itemFour = new OrderItem("橡皮擦", 20, 2); OrderItem itemFive = new OrderItem("篮球", 200, 10); OrderItem itemSix = new OrderItem("足球", 300, 5); //测试数据——订单 Order order1 = new Order("文具", "hhx", 600); Thread.Sleep(1000); Order order2 = new Order("运动器材", "Tom", 5000); Thread.Sleep(1000); Order order3 = new Order("其他", "hhx", 3000); //添加明细 Console.WriteLine("添加订单明细:"); order1.AddItems(itemOne); order1.AddItems(itemTwo); order1.AddItems(itemThree); order2.AddItems(itemSix); order2.AddItems(itemFive); order3.AddItems(itemFive); order3.AddItems(itemOne); //添加订单 Console.WriteLine("添加订单:"); OrderService service = new OrderService(); service.AddOrder(order1); service.AddOrder(order2); service.AddOrder(order1); //输出订单信息 Console.WriteLine(service.ToString()); //删除订单 Console.WriteLine("删除order2:"); service.DelOrder(order2.OrderNum); //service.DelOrder(2); //订单号错误删除失败 Console.WriteLine("当前订单状况:\n{0}", service.ToString()); //修改订单,将order1修改为order3 service.ChangeOrder(order1.OrderNum, order3); Console.WriteLine("当前订单状况:\n{0}", service.ToString()); //查询订单,按照订单号 service.AddOrder(order2); service.AddOrder(order1); var tmp = service.FindOrder(order1.OrderNum); service.SelfDefSort(); if (tmp.Count != 0) { for (int n = 0; n < tmp.Count; n++) { Console.WriteLine(tmp[n].ToString()); } } //订单查询,按照商品名称和客户 var tmp1 = service.FindOrder("铅笔"); var tmp2 = service.FindOrder("Tom"); foreach (Order o in tmp1) { Console.WriteLine("按照商品名:\n{0}", o.ToString()); } foreach (Order o in tmp2) { Console.WriteLine("按照客户名:\n{0}", o.ToString()); } //订单排序 Console.WriteLine("未排序:\n{0}", service.ToString()); service.DefSort(); Console.WriteLine("默认排序:\n{0}", service.ToString()); service.SelfDefSort(); Console.WriteLine("lambda表达式自定义排序:\n{0}", service.ToString()); service.Export(); Console.WriteLine(File.ReadAllText("D:\\Order.xml")); List <Order> ts = service.Import(); if (ts != null) { foreach (Order s in ts) { Console.WriteLine(s.ToString()); } } Console.Read(); }
static void Main(string[] args) { Console.WriteLine("Welcome to Order Management System!"); OrderService service = new OrderService(); string path = @"orders.xml"; service.Import(path); while (true) { try { String orderID; String customerName; Console.WriteLine("\n"); String action = GetInput("1.add an order\t2.delete an order\t3.alter your order\t4.sort your orders\nPlease select an action: "); switch (action) { case "1": customerName = GetInput("Customer name:"); service.AddOrder(customerName, Int32.Parse(DateTime.Now.ToString("HHmmss"))); Console.WriteLine("Add an order successful!"); service.PrintOrders(service.orderList); //Console.WriteLine("Your order ID is:" ); break; case "2": orderID = GetInput("Order ID:"); service.DeleteOrder(Int32.Parse(orderID)); Console.WriteLine("Delete the order successful!"); service.PrintOrders(service.orderList); break; case "3": orderID = GetInput("Order ID:"); String operation = GetInput("add item\t" + "delete item\nPlease select an operation:"); switch (operation) { case "add item": Console.WriteLine("Please enter item,amount and unitprice ,Separated by space"); string[] string1 = System.Text.RegularExpressions.Regex.Split(Console.ReadLine(), @"[ ]+"); string[] par3 = new string[3]; for (int i = 0; i < 3; i++) { par3[i] = string1[i]; } service.AlterOrder(Int32.Parse(orderID), operation, par3); service.PrintOrders(service.orderList); break; case "delete item": Console.WriteLine("Please enter item and amount ,Separated by space"); string[] string2 = System.Text.RegularExpressions.Regex.Split(Console.ReadLine(), @"[ ]+"); string[] par2 = new string[2]; for (int i = 0; i < 2; i++) { par2[i] = (string2[i]); } service.AlterOrder(Int32.Parse(orderID), operation, par2); service.PrintOrders(service.orderList); break; default: throw new ArgumentException("Invalid input!"); } break; case "4": Console.WriteLine("Please enter search conditions:"); customerName = GetInput("Customer name:"); orderID = GetInput("Order ID:"); String goodsName = GetInput("Goods name:"); customerName = customerName == "" ? null : customerName; orderID = orderID == "" ? null : orderID; goodsName = goodsName == "" ? null : goodsName; List <Order> results = service.SearchOrder(customerName, orderID, goodsName); service.PrintOrders(results); break; default: throw new ArgumentException("No such operation!"); } service.Export(path); } catch (ArgumentException e) { Console.WriteLine(e.Message); } catch (FormatException) { Console.WriteLine("Invalid input!"); } } }
static void Main(string[] args) { Console.WriteLine("Welcome to Order Management System!"); OrderService service = new OrderService(); service.Import("orders.xml"); service.OrderIDCounter = service.Orders != null && service.Orders.Count > 0 ? service.Orders[service.Orders.Count - 1].OrderID : 0; while (true) { try { String orderID; String customerName; String customerAddress; String action = GetInput("1.add an order\t2.delete an order\t3.modify an order\t4.select the orders\nPlease select an action: "); switch (action) { case "1": customerName = GetInput("Customer name:"); customerAddress = GetInput("Customer address:"); Console.WriteLine("Add an order successful!"); Console.WriteLine("Your order ID is:" + service.AddOrder(new Order(0, new Customer(customerName, customerAddress), DateTime.Now, new List <OrderItem>()))); break; case "2": orderID = GetInput("Order ID:"); service.DeleteOrder(Int32.Parse(orderID)); Console.WriteLine("Delete the order successful!"); break; case "3": orderID = GetInput("Order ID:"); String operation = GetInput( "customer name\tcustomer address\torder time\tadd item\n" + "delete item\tquantity\nPlease select an operation:" ); String modifyData = ""; if (operation != "add item") { modifyData = GetInput("The data After modify:"); } object data = null; int goodsID = 0; switch (operation) { case "customer name": case "customer address": data = modifyData; break; case "order time": data = DateTime.Parse(modifyData); break; case "add item": goodsID = Int32.Parse(GetInput("Goods ID:")); int quantity = Int32.Parse(GetInput("Quantity:")); data = new OrderItem(new Goods(goodsID), quantity); break; case "delete item": goodsID = Int32.Parse(GetInput("Goods ID:")); break; case "quantity": goodsID = Int32.Parse(GetInput("Quantity:")); data = Int32.Parse(modifyData); break; default: throw new ArgumentException("Invalid argument!"); } service.AlterOrder(Int32.Parse(orderID), operation, data, goodsID); Console.WriteLine("Modify successful!"); Console.Write(service.FindOrder(int.Parse(orderID), null, null)[0]); break; case "4": Console.WriteLine("Please enter search conditions:"); orderID = GetInput("Order ID:"); String goodsName = GetInput("Goods name:"); customerName = GetInput("Customer name:"); int orderId = orderID == "" ? int.MinValue : int.Parse(orderID); goodsName = goodsName == "" ? null : goodsName; customerName = customerName == "" ? null : customerName; List <Order> results = service.FindOrder(orderId, goodsName, customerName); Console.WriteLine("Result:"); foreach (Order order in results) { Console.WriteLine(order); } break; default: throw new ArgumentException("No such operation!"); } service.Export("orders.xml"); } catch (ArgumentException e) { Console.WriteLine(e.Message); } catch (FormatException) { Console.WriteLine("Invalid input!"); } } }
static void Main(string[] args) { OrderService os = new OrderService(); //新建订单操作 Order o1 = new Order(1, new OrderDetails("Coke", "Alan", 3)); Order o2 = new Order(1, new OrderDetails("Coke", "Alan", 3)); Order o3 = new Order(2, "Milk", "Betty", 20); Order o4 = new Order(3, "Fruit", "Chris", 30); Order o5 = new Order(4, "Beef", "Chris", 10); //添加订单操作 Console.WriteLine("o1添加成功:" + os.AddOrder(o1)); Console.WriteLine("o2添加成功:" + os.AddOrder(o2));//重复,返回false Console.WriteLine("o4添加成功:" + os.AddOrder(o4)); Console.WriteLine("o3添加成功:" + os.AddOrder(o3)); Console.WriteLine("o5添加成功:" + os.AddOrder(o5)); Console.WriteLine("\n\n原始订单"); foreach (Order o in os.orders) { //重写了ToString方法 Console.WriteLine(o); } //按订单号对订单排序 os.SortOrdersByOrderID(); Console.WriteLine("\n\n按订单号排序后"); //打印当前所有订单,已按订单号排序 foreach (Order o in os.orders) { Console.WriteLine(o); } //删除订单 Console.WriteLine("\n\no3删除成功:" + os.DeleteOrder(o3.orderID)); Console.WriteLine("删除o3后"); //打印当前所有订单,订单号2的订单已删除 foreach (Order o in os.orders) { Console.WriteLine(o); } Console.WriteLine("\n\n修改o1后"); //修改订单,将o1的cost改为100,productName改为wine os.ModifyOrder(o1.orderID, "Wine", o1.orderDetails.customerName, 100); //打印所有订单,此时o1的cost已经变为100,productName已经变为Wine foreach (Order o in os.orders) { Console.WriteLine(o); } Console.WriteLine("\n\n按姓名查找,且按金额递增排序"); //按照顾客姓名查找,也可以按照订单号查找,并且返回按照订单金额排序的结果 var ordersByChris = os.QueryByCustomerName("Chris"); //打印查找结果 foreach (Order o in ordersByChris) { Console.WriteLine(o); } os.Export("s.xml"); Console.WriteLine("Exported."); os.Import("s.xml"); Console.WriteLine("Imported."); foreach (Order o in os.orders) { Console.WriteLine(o); } }
public static void Main(string[] args) { OrderService service = new OrderService(); while (true) { Console.WriteLine("请选择功能:1.添加订单;2.删除订单;3.查找订单;4.修改订单;5.序列化;6.反序列化;7.退出系统"); string choice = Console.ReadLine(); switch (choice) { case "1": List <OrderItem> orderItems = new List <OrderItem>(); while (true) { Console.WriteLine("请输入商品名称:"); string ItemName = Console.ReadLine(); Console.WriteLine("请输入商品数量:"); int ItemNumber = Int32.Parse(Console.ReadLine()); Console.WriteLine("请输入商品单价:"); int ItemPrice = Int32.Parse(Console.ReadLine()); Console.WriteLine("请输入客户名:"); string ConsumerName = Console.ReadLine(); Console.WriteLine("继续购物?:y/n"); string flag = Console.ReadLine(); if (flag == "y") { orderItems.Add(new OrderItem(ItemPrice, ItemName, ItemNumber)); } else { orderItems.Add(new OrderItem(ItemPrice, ItemName, ItemNumber)); service.addOrder(ConsumerName, orderItems); break; } } break; case "2": while (true) { Console.WriteLine("请输入订单号!"); int ID = Int32.Parse(Console.ReadLine()); service.deleteOrder(ID); Console.WriteLine("是否继续删除:y/n"); string flag = Console.ReadLine(); if (flag == "y") { continue; } else { break; } } break; case "3": while (true) { Console.WriteLine("请输入查找模式:1.按订单号查找;2.按商品名查找;3.按客户名查找"); string mod = Console.ReadLine(); if (mod == "1") { Console.WriteLine("请输入订单号!"); int ID = Int32.Parse(Console.ReadLine()); Console.WriteLine(service.searchByOrderID(ID)); } else if (mod == "2") { Console.WriteLine("请输入商品名!"); string name = Console.ReadLine(); Console.WriteLine(service.searchByItemName(name)); } else if (mod == "3") { Console.WriteLine("请输入客户名!"); string name = Console.ReadLine(); Console.WriteLine(service.searchByConsumer(name)); Console.WriteLine("是否继续查找:y/n"); string flag = Console.ReadLine(); if (flag == "y") { continue; } else { break; } } } break; case "4": while (true) { Console.WriteLine("请输入订单号!"); int preOrderId = Int32.Parse(Console.ReadLine()); Console.WriteLine("请输入修改后的订单号!"); int OrderID = Int32.Parse(Console.ReadLine()); service.setOrderID(preOrderId, OrderID); Console.WriteLine("是否继续修改:y/n"); string flag = Console.ReadLine(); if (flag == "y") { continue; } else { break; } } break; case "5": service.Export(); break; case "6": service.Import("Order.xml"); break; case "7": break; default: Console.WriteLine("无效输入"); break; } } }
static void Main(string[] args) { OrderService service = new OrderService(); Order firstOrder = new Order() { OrderCode = "5", Customer = new Customer { Name = "Mike", Phone = "13845691234", Address = "Wuhan" }, Items = new List <OrderItem>() { new OrderItem() { Commodity = new Commodity() { Code = "123456", Name = "Phone", Price = 3999.0F }, Count = 2 }, new OrderItem() { Commodity = new Commodity() { Code = "123457", Name = "Pen", Price = 9.0F }, Count = 30 } } }; Order secondOrder = new Order() { OrderCode = "4", Customer = new Customer { Name = "Amy", Phone = "13845123457", Address = "Beijing" }, Items = new List <OrderItem>() { new OrderItem() { Commodity = new Commodity() { Code = "123456", Name = "Phone", Price = 3999.0F }, Count = 1 }, new OrderItem() { Commodity = new Commodity() { Code = "123457", Name = "Pen", Price = 9.0F }, Count = 1 } } }; Order thirdtOrder = new Order() { OrderCode = "3", Customer = new Customer { Name = "John", Phone = "13845123466", Address = "Shanghai" }, Items = new List <OrderItem>() { new OrderItem() { Commodity = new Commodity() { Code = "123456", Name = "Phone", Price = 3999.0F }, Count = 3 }, new OrderItem() { Commodity = new Commodity() { Code = "123457", Name = "Pen", Price = 9.0F }, Count = 3 } } }; Order fourthOrder = new Order() { OrderCode = "2", Customer = new Customer { Name = "Amy", Phone = "13845123356", Address = "Wuhan" }, Items = new List <OrderItem>() { new OrderItem() { Commodity = new Commodity() { Code = "123456", Name = "Phone", Price = 3999.0F }, Count = 4 }, new OrderItem() { Commodity = new Commodity() { Code = "123457", Name = "Pen", Price = 9.0F }, Count = 6 } } }; Order fifthOrder = new Order() { OrderCode = "1", Customer = new Customer { Name = "Bob", Phone = "13845123156", Address = "Guangzhou" }, Items = new List <OrderItem>() { new OrderItem() { Commodity = new Commodity() { Code = "123456", Name = "Phone", Price = 3999.0F }, Count = 5 }, new OrderItem() { Commodity = new Commodity() { Code = "123457", Name = "Pen", Price = 9.0F }, Count = 10 } } }; try { //添加订单 Console.WriteLine("-------------Add Order-------------"); service.AddOrder(firstOrder); service.AddOrder(secondOrder); service.AddOrder(thirdtOrder); service.AddOrder(fourthOrder); service.AddOrder(fifthOrder); service.Print(); //输出订单到XML文件 Console.WriteLine("-------------Export Orders----------"); service.Export(@"E:\order.xml"); Console.WriteLine("Successfully Exported.\n"); //删除所有订单 Console.WriteLine("-------------Delete All Orders------"); service.DeleteOrder("1"); service.DeleteOrder("2"); service.DeleteOrder("3"); service.DeleteOrder("4"); service.DeleteOrder("5"); Console.WriteLine("Successfully Deleted.\n"); service.Print(); //从XML文件导入订单 Console.WriteLine("-------------Import Orders----------"); service.Import(@"E:\order.xml"); Console.WriteLine("Successfully Imported.\n"); service.Print(); } catch (Exception e) { //显示错误信息 Console.WriteLine(e.Message); } }