在C#中怎么实现用户可以查看以前和现在的购买记录,附源码
时间: 2024-03-07 15:50:52 浏览: 23
在C#中,可以通过以下步骤实现用户可以查看以前和现在的购买记录:
1. 创建一个名为“PurchaseHistory”的类,该类包含以下属性:
- PurchaseDate:购买日期
- ProductName:商品名称
- Quantity:购买数量
- Price:商品价格
```
public class PurchaseHistory
{
public DateTime PurchaseDate { get; set; }
public string ProductName { get; set; }
public int Quantity { get; set; }
public decimal Price { get; set; }
}
```
2. 创建一个名为“User”的类,该类包含以下属性:
- Name:用户名称
- PurchaseHistories:购买历史记录列表
```
public class User
{
public string Name { get; set; }
public List<PurchaseHistory> PurchaseHistories { get; set; }
}
```
3. 在主程序中,创建一个名为“users”的列表,用于存储所有用户的信息和购买历史记录。
```
List<User> users = new List<User>();
```
4. 当用户购买商品时,将购买信息添加到用户的购买历史记录中。
```
User user = users.FirstOrDefault(u => u.Name == userName);
if (user == null)
{
user = new User() { Name = userName };
users.Add(user);
}
PurchaseHistory purchase = new PurchaseHistory()
{
PurchaseDate = DateTime.Now,
ProductName = productName,
Quantity = quantity,
Price = price
};
user.PurchaseHistories.Add(purchase);
```
5. 当用户需要查看购买历史记录时,可以按照日期排序并显示所有购买信息。
```
User user = users.FirstOrDefault(u => u.Name == userName);
if (user != null)
{
Console.WriteLine("Purchase history for user: {0}", user.Name);
Console.WriteLine("----------------------------------------------------------");
if (user.PurchaseHistories.Count == 0)
{
Console.WriteLine("No purchase history found.");
}
else
{
var purchaseHistory = user.PurchaseHistories.OrderByDescending(p => p.PurchaseDate);
foreach (var purchase in purchaseHistory)
{
Console.WriteLine("{0}\t{1}\t{2}\t{3}", purchase.PurchaseDate.ToString("yyyy-MM-dd HH:mm:ss"), purchase.ProductName, purchase.Quantity, purchase.Price);
}
}
}
else
{
Console.WriteLine("User not found.");
}
```
完整的源代码如下所示:
```
using System;
using System.Collections.Generic;
using System.Linq;
namespace PurchaseHistoryDemo
{
public class PurchaseHistory
{
public DateTime PurchaseDate { get; set; }
public string ProductName { get; set; }
public int Quantity { get; set; }
public decimal Price { get; set; }
}
public class User
{
public string Name { get; set; }
public List<PurchaseHistory> PurchaseHistories { get; set; }
}
class Program
{
static void Main(string[] args)
{
List<User> users = new List<User>();
// Purchase some products for user1
string userName = "user1";
string productName = "Product A";
int quantity = 2;
decimal price = 10.0m;
User user = users.FirstOrDefault(u => u.Name == userName);
if (user == null)
{
user = new User() { Name = userName };
users.Add(user);
}
PurchaseHistory purchase = new PurchaseHistory()
{
PurchaseDate = DateTime.Now,
ProductName = productName,
Quantity = quantity,
Price = price
};
user.PurchaseHistories.Add(purchase);
// Purchase some products for user2
userName = "user2";
productName = "Product B";
quantity = 3;
price = 15.0m;
user = users.FirstOrDefault(u => u.Name == userName);
if (user == null)
{
user = new User() { Name = userName };
users.Add(user);
}
purchase = new PurchaseHistory()
{
PurchaseDate = DateTime.Now.AddDays(-1),
ProductName = productName,
Quantity = quantity,
Price = price
};
user.PurchaseHistories.Add(purchase);
// Display purchase history for user1
userName = "user1";
user = users.FirstOrDefault(u => u.Name == userName);
if (user != null)
{
Console.WriteLine("Purchase history for user: {0}", user.Name);
Console.WriteLine("----------------------------------------------------------");
if (user.PurchaseHistories.Count == 0)
{
Console.WriteLine("No purchase history found.");
}
else
{
var purchaseHistory = user.PurchaseHistories.OrderByDescending(p => p.PurchaseDate);
foreach (var purchaseHistoryItem in purchaseHistory)
{
Console.WriteLine("{0}\t{1}\t{2}\t{3}", purchaseHistoryItem.PurchaseDate.ToString("yyyy-MM-dd HH:mm:ss"), purchaseHistoryItem.ProductName, purchaseHistoryItem.Quantity, purchaseHistoryItem.Price);
}
}
}
else
{
Console.WriteLine("User not found.");
}
Console.ReadLine();
}
}
}
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)