实验五:模拟实现输出进销存管理系统中的每月销售明细
任务要求:
运行程序,输入要查询的月份,如果输入的月份正确,则显示本月商品销售明细;如果输入的月份不存在,则提示“该月没有销售数据或者输入的月份有误!”信息;如果输入的月份不是数字,则显示异常信息。
整体代码框架:
实现步骤:
第一步:创建控制台应用程序,命令为SaleManage。
第二步:定义一个Information接口,定义两个属性Code和Name分别表示商品编号和名称,定义一个ShowInfo方法,用来输出信息
第三步:定义一个Sale类,继承自Information接口,实现接口中的成员。
第四步:在Sale类中定义有两个参数的构造函数,用来为属性赋初始值;
第五步:在Sale类中定义一个ShowInfo重载方法,用来输出销售的商品信息
第六步:定义一个泛型方法CaleMoney<T>(T[] items),用来计算商品销售额。
第七步:在Program类的Main方法中,创建Sale类型的数组,用来存储每月的商品销售明细;
第八步:创建double类型的数组,用来存储每月的商品销售数据明细
第九步:从键盘接受用户输入,调用Sale类中的方法,输出指定月份的商品销售明细及销售总额(自行补充2-3月份输出内容)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SaleManage
{
interface Information
{
string Code { get; set; }
string Name { get; set; }
void ShowInfo();
}
public class Sale: Information//继承接口,定义销售类
{
string code = " ";
string name = " ";
public string Code
{
get
{
return code;
}
set
{
code = value;
}
}
public string Name
{
get
{
return code;
}
set
{
code = value;
}
}
public Sale(string code,string name)
{
code = code;
Name = name;
}
public void ShowInfo(){ }
public static void ShowInfo(Sale[] sales) {
foreach (Sale s in sales)
Console.WriteLine("商品编号:" + s.Code + "商品名称 " + s.Name);
}
public static double CaleMoney<T>(T[] items)//定义范型方法
{
double sum = 0;
foreach(T item in items)
{
sum += Convert.ToDouble(item);
}
return sum;
}
}
class Program
{
static void Main(string[] args)
{
Sale[] salesJan = { new Sale("T0001","笔记本电脑"),new Sale ("T0002","手机"),
new Sale("T0003","平板电脑"),new Sale ("T0004","5G手机"),new Sale("T0005","台式电脑") };
Sale[] salesFeb = { new Sale("T0006", "机箱"), new Sale("T0007", "显示器") };
Sale[] salesMar = { new Sale("T0003", "平板电脑"), new Sale("T0004", "5G手机"),
new Sale("T0008", "组装电脑"), new Sale("T0009", "充电宝")};
double[] dbJan = { 3500, 999, 3288, 1999, 12888 };
double[] dbFeb = { 1499, 1699 };
double[] dbMar = { 3288, 1999, 1999.9, 49 };
while(true)
{
Console.Write("\n请输出要查询的月份(比如1、2、3等):");
try
{
int month= Convert.ToInt32(Console.ReadLine());
switch (month)
{
case 1:
Console.WriteLine("------- 1月的商品销售明细如下:");
Sale.ShowInfo(salesJan);//调用方法输出销售的商品信息
//调用范型方法计算出每月的总销售额,并输出
Console.WriteLine("\n1月商品总销售额:" + Sale.CaleMoney<double>(dbJan));
break;
case 2:
Console.WriteLine("------- 2月的商品销售明细如下:");
Sale.ShowInfo(salesJan);//调用方法输出销售的商品信息
//调用范型方法计算出每月的总销售额,并输出
Console.WriteLine("\n2月商品总销售额:" + Sale.CaleMoney<double>(dbFeb));
break;
case 3:
Console.WriteLine("------- 3月的商品销售明细如下:");
Sale.ShowInfo(salesJan);//调用方法输出销售的商品信息
//调用范型方法计算出每月的总销售额,并输出
Console.WriteLine("\n3月商品总销售额:" + Sale.CaleMoney<double>(dbMar));
break;
default:
Console.WriteLine(" 该月每月销售数据或者输入的月份有误!");
break;
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
}