分享
 
 
 

C#面向对象

王朝学院·作者佚名  2009-11-07
窄屏简体版  字體: |||超大  

1、写一个账户类(Account),属性:

Id:账户号码

Password:账户密码

Name:真实姓名

PersonId:身份证号码

Email:客户的电子邮箱

Balance:账户余额

方法:

Deposit:存款方法,参数是double型的金额

Withdraw:取款方法,参数是double型的金额

构造方法:

有参和无参,有参构造方法用于设置必要的属性

2、银行的客户分为两类,储蓄账户(SavingAccount)和信用账户(CreditAccount),区别在于储蓄账户不允许透支,而信用账户可以透支,并允许用户设置自己的透支额度(使用ceiling表示).

为这两种用户编写相关的类

3、编写Bank类,属性:

(1)当前所有的账户对象的集合

(2)当前账户数量

方法:

(1)用户开户:

需要的参数:id、密码、姓名、身份证号码、邮箱、账户类型(储蓄账户还是信用账户);

(2)用户登录:

参数:id、密码;返回Account对象

(3)用户存款:

参数:id、存款数额

(4)用户取款:参数:id、取款数额

(5)设置透支额度:参数:id、新的额度;这个方法需要验证账户是否是信用账户

用户会通过调用Bank对象以上的方法来操作自己的账户,请分析各个方法需要的参数

另外,请为Bank类添加几个统计方法

(6)统计银行所有账户余额总数

(7)统计所有信用账户透支额度总数

4、写个主方法测试你写的类

Account.cs

view plaincopy to clipboardprint?

using System;

using System.Collections.Generic;

using System.Text;

namespace EXE1

{

abstract class Account

{

//账户号码

protected long id;

public long ID

{

get { return id; }

set { id = value; }

}

//账户密码

protected string password;

public string Password

{

get { return password; }

set { password = value; }

}

//户主姓名

protected string name;

public string Name

{

get { return name; }

set { name = value; }

}

//身份证号码

protected string personId;

public string PersonId

{

get { return personId; }

set { personId = value; }

}

//email

protected string email;

public string Email

{

get { return email; }

set { email = value; }

}

protected double balance;

public double Balance

{

get { return balance; }

set { balance = value; }

}

//静态的id号码生成器

private static long idBuilder = 100000;

public static long IdBuilder

{

get { return idBuilder; }

set { idBuilder = value; }

}

/// <summary>

/// 存款

/// </summary>

/// <param name="sum"></param>

public void Deposit(double sum)

{

if(sum<0)

{

throw new InvalidOperationException("输入的金额为负数!");

}

balance += sum;

}

/// <summary>

/// 抽象函数:取款,需要在子类中重写此方法

/// </summary>

/// <param name="sum"></param>

public abstract void Withdraw(double sum);

public Account()

{

}

/// <summary>

/// 有参数构造函数

/// </summary>

public Account(string password,string name,string personId,string email)

{

this.id = ++idBuilder;

this.password = password;

this.name = name;

this.personId = personId;

this.email = email;

}

}

}

using System;

using System.Collections.Generic;

using System.Text;

namespace EXE1

{

abstract class Account

{

//账户号码

protected long id;

public long ID

{

get { return id; }

set { id = value; }

}

//账户密码

protected string password;

public string Password

{

get { return password; }

set { password = value; }

}

//户主姓名

protected string name;

public string Name

{

get { return name; }

set { name = value; }

}

//身份证号码

protected string personId;

public string PersonId

{

get { return personId; }

set { personId = value; }

}

//email

protected string email;

public string Email

{

get { return email; }

set { email = value; }

}

protected double balance;

public double Balance

{

get { return balance; }

set { balance = value; }

}

//静态的id号码生成器

private static long idBuilder = 100000;

public static long IdBuilder

{

get { return idBuilder; }

set { idBuilder = value; }

}

/// <summary>

/// 存款

/// </summary>

/// <param name="sum"></param>

public void Deposit(double sum)

{

if(sum<0)

{

throw new InvalidOperationException("输入的金额为负数!");

}

balance += sum;

}

/// <summary>

/// 抽象函数:取款,需要在子类中重写此方法

/// </summary>

/// <param name="sum"></param>

public abstract void Withdraw(double sum);

public Account()

{

}

/// <summary>

/// 有参数构造函数

/// </summary>

public Account(string password,string name,string personId,string email)

{

this.id = ++idBuilder;

this.password = password;

this.name = name;

this.personId = personId;

this.email = email;

}

}

}

CreditAccount.cs

view plaincopy to clipboardprint?

using System;

using System.Collections.Generic;

using System.Text;

namespace EXE1

{

class CreditAccount : Account

{

protected double ceiling;

public double Ceiling

{

get { return ceiling; }

set { ceiling = value; }

}

public CreditAccount(string password, string name, string personId, string email)

: base(password, name, personId, email)

{

}

/// <summary>

/// 信用账户的取款操作

/// </summary>

public override void Withdraw(double sum)

{

if (sum < 0)

{

throw new InvalidOperationException("输入的金额为负数!");

}

if (sum > balance+ceiling)

{

throw new InvalidOperationException("金额已经超出余额和透支度的总数!");

}

balance -= sum;

}

}

}

using System;

using System.Collections.Generic;

using System.Text;

namespace EXE1

{

class CreditAccount : Account

{

protected double ceiling;

public double Ceiling

{

get { return ceiling; }

set { ceiling = value; }

}

public CreditAccount(string password, string name, string personId, string email)

: base(password, name, personId, email)

{

}

/// <summary>

/// 信用账户的取款操作

/// </summary>

public override void Withdraw(double sum)

{

if (sum < 0)

{

throw new InvalidOperationException("输入的金额为负数!");

}

if (sum > balance+ceiling)

{

throw new InvalidOperationException("金额已经超出余额和透支度的总数!");

}

balance -= sum;

}

}

}

SavingAccount.cs

view plaincopy to clipboardprint?

using System;

using System.Collections.Generic;

using System.Text;

namespace EXE1

{

class SavingAccount:Account

{

public SavingAccount(string password, string name, string personId, string email)

:base(password,name,personId,email)

{

}

/// <summary>

/// Withdraw from saving account.

/// </summary>

/// <param name="sum"></param>

public override void Withdraw(double sum)

{

if (sum < 0)

{

throw new InvalidOperationException("输入的金额为负数!");

}

if (sum > balance)

{

throw new InvalidOperationException("金额已经超出余额!");

}

balance -= sum;

}

}

}

using System;

using System.Collections.Generic;

using System.Text;

namespace EXE1

{

class SavingAccount:Account

{

public SavingAccount(string password, string name, string personId, string email)

:base(password,name,personId,email)

{

}

/// <summary>

/// Withdraw from saving account.

/// </summary>

/// <param name="sum"></param>

public override void Withdraw(double sum)

{

if (sum < 0)

{

throw new InvalidOperationException("输入的金额为负数!");

}

if (sum > balance)

{

throw new InvalidOperationException("金额已经超出余额!");

}

balance -= sum;

}

}

}

Bank.cs

view plaincopy to clipboardprint?

using System;

using System.Collections.Generic;

using System.Text;

namespace EXE1

{

/// <summary>

/// Bank类,对当前银行中的所有账户进行管理

/// </summary>

class Bank

{

//存放账户的集合

private List<Account> accounts;

public List<Account> Accounts

{

get { return accounts; }

set { accounts = value; }

}

//当前银行的账户数量

private uint currentAccountNumber;

public uint CurrentAccountNumber

{

get { return currentAccountNumber; }

set { currentAccountNumber = value; }

}

/// <summary>

/// 构造函数.

/// </summary>

public Bank()

{

accounts=new List<Account>();

}

/// <summary>

/// 开户;

/// typeOfAccount:1 for saving account, 2 for credit account, 3 for loan saving account, 4 for loan credit account..

/// </summary>

public Account OpenAccount(string password, string confirmationPassword, string name, string personId, string email, int typeOfAccount)

{

Account newAccount;

if (!password.Equals(confirmationPassword))

{

throw new InvalidOperationException("两次密码输入的不一致!");

}

switch (typeOfAccount)

{

case 1: newAccount=new SavingAccount(password, name, personId, email); break;

case 2: newAccount=new CreditAccount(password, name, personId, email); break;

default: throw new ArgumentOutOfRangeException("账户类型是1到2之间的整数");

}

//把新开的账户加到集合中

accounts.Add(newAccount);

return newAccount;

}

/// <summary>

/// 根据账户id得到账户对象

/// </summary>

/// <param name="id"></param>

/// <returns></returns>

private Account GetAccountByID(long id)

{

foreach (Account account in accounts)

{

if (account.ID == id)

{

return account;

}

}

return null;

}

/// <summary>

/// 根据账号和密码登陆账户

/// </summary>

public Account SignIn(long id, string password)

{

foreach (Account account in accounts)

{

if (account.ID == id && account.Password.Equals(password))

{

return account;

}

}

throw new InvalidOperationException("用户名或者密码不正确,请重试!");

return null;

}

/// <summary>

/// 存款

/// </summary>

public Account Deposit(long id, double sum)

{

Account account = GetAccountByID(id);

if (account != null)

{

account.Deposit(sum);

return account;

}

throw new InvalidOperationException("非法账号!");

return null;

}

/// <summary>

/// 取款

/// </summary>

public Account Withdraw(long id, double sum)

{

Account account = GetAccountByID(id);

if (account != null)

{

account.Withdraw(sum);

return account;

}

throw new InvalidOperationException("非法账号!");

return null;

}

/// <summary>

/// 设置透支额度

/// </summary>

public Account SetCeiling(long id, double newCeiling)

{

Account account = GetAccountByID(id);

try

{

(account as CreditAccount).Ceiling = newCeiling;

return account;

}

catch (Exception ex)

{

throw new InvalidOperationException("此账户不是信用账户!");

return account;

}

throw new InvalidOperationException("非法账号!");

return null;

}

/// <summary>

/// 统计银行所有账户余额总数

/// </summary>

/// <returns></returns>

public double GetTotalBalance()

{

double totalBalance = 0;

foreach (Account account in accounts)

{

totalBalance += account.Balance;

}

return totalBalance;

}

/// <summary>

/// 统计所有信用账户透支额度总数

/// </summary>

public double GetTotalCeiling()

{

double totalCeiling = 0;

foreach (Account account in accounts)

{

if (account is CreditAccount)

{

totalCeiling += (account as CreditAccount).Ceiling;

}

}

return totalCeiling;

}

}

}

using System;

using System.Collections.Generic;

using System.Text;

namespace EXE1

{

/// <summary>

/// Bank类,对当前银行中的所有账户进行管理

/// </summary>

class Bank

{

//存放账户的集合

private List<Account> accounts;

public List<Account> Accounts

{

get { return accounts; }

set { accounts = value; }

}

//当前银行的账户数量

private uint currentAccountNumber;

public uint CurrentAccountNumber

{

get { return currentAccountNumber; }

set { currentAccountNumber = value; }

}

/// <summary>

/// 构造函数.

/// </summary>

public Bank()

{

accounts=new List<Account>();

}

/// <summary>

/// 开户;

/// typeOfAccount:1 for saving account, 2 for credit account, 3 for loan saving account, 4 for loan credit account..

/// </summary>

public Account OpenAccount(string password, string confirmationPassword, string name, string personId, string email, int typeOfAccount)

{

Account newAccount;

if (!password.Equals(confirmationPassword))

{

throw new InvalidOperationException("两次密码输入的不一致!");

}

switch (typeOfAccount)

{

case 1: newAccount=new SavingAccount(password, name, personId, email); break;

case 2: newAccount=new CreditAccount(password, name, personId, email); break;

default: throw new ArgumentOutOfRangeException("账户类型是1到2之间的整数");

}

//把新开的账户加到集合中

accounts.Add(newAccount);

return newAccount;

}

/// <summary>

/// 根据账户id得到账户对象

/// </summary>

/// <param name="id"></param>

/// <returns></returns>

private Account GetAccountByID(long id)

{

foreach (Account account in accounts)

{

if (account.ID == id)

{

return account;

}

}

return null;

}

/// <summary>

/// 根据账号和密码登陆账户

/// </summary>

public Account SignIn(long id, string password)

{

foreach (Account account in accounts)

{

if (account.ID == id && account.Password.Equals(password))

{

return account;

}

}

throw new InvalidOperationException("用户名或者密码不正确,请重试!");

return null;

}

/// <summary>

/// 存款

/// </summary>

public Account Deposit(long id, double sum)

{

Account account = GetAccountByID(id);

if (account != null)

{

account.Deposit(sum);

return account;

}

throw new InvalidOperationException("非法账号!");

return null;

}

/// <summary>

/// 取款

/// </summary>

public Account Withdraw(long id, double sum)

{

Account account = GetAccountByID(id);

if (account != null)

{

account.Withdraw(sum);

return account;

}

throw new InvalidOperationException("非法账号!");

return null;

}

/// <summary>

/// 设置透支额度

/// </summary>

public Account SetCeiling(long id, double newCeiling)

{

Account account = GetAccountByID(id);

try

{

(account as CreditAccount).Ceiling = newCeiling;

return account;

}

catch (Exception ex)

{

throw new InvalidOperationException("此账户不是信用账户!");

return account;

}

throw new InvalidOperationException("非法账号!");

return null;

}

/// <summary>

/// 统计银行所有账户余额总数

/// </summary>

/// <returns></returns>

public double GetTotalBalance()

{

double totalBalance = 0;

foreach (Account account in accounts)

{

totalBalance += account.Balance;

}

return totalBalance;

}

/// <summary>

/// 统计所有信用账户透支额度总数

/// </summary>

public double GetTotalCeiling()

{

double totalCeiling = 0;

foreach (Account account in accounts)

{

if (account is CreditAccount)

{

totalCeiling += (account as CreditAccount).Ceiling;

}

}

return totalCeiling;

}

}

}

客户端测试:

view plaincopy to clipboardprint?

using System;

using System.Collections.Generic;

using System.Text;

namespace EXE1

{

class Program

{

/// <summary>

/// Sign when needed.

/// </summary>

/// <returns></returns>

static Account SignIn(Bank icbc)

{

Console.WriteLine("\nPlease input your account ID:");

long id;

try

{

id = long.Parse(Console.ReadLine());

}

catch (FormatException)

{

Console.WriteLine("Invalid account ID!");

return null;

}

Console.WriteLine("Please input your password:");

string password = Console.ReadLine();

Account account;

try

{

account = icbc.SignIn(id, password);

}

catch (InvalidOperationException ex)

{

Console.WriteLine(ex.Message);

return null;

}

return account;

}

/// <summary>

/// Simulate an ATM

/// </summary>

/// <param name="args"></param>

static void Main(string[] args)

{

Bank icbc = new Bank();

while (true)

{

Console.WriteLine("\nPlease choose the service you need:");

Console.WriteLine("(1) Open a New Account");

Console.WriteLine("(2) Deposit");

Console.WriteLine("(3) Withdraw");

Console.WriteLine("(4) Set Ceiling");

Console.WriteLine("(5) Get Total Balance");

Console.WriteLine("(6) Get Total Ceiling");

Console.WriteLine("(0) Exit");

string choice;

choice = Console.ReadKey().KeyChar.ToString();

switch (choice)

{

case "1":

{

string personId;

int typeOfAccount;

string password;

Console.WriteLine("\nWhich kind of account do you want to open?");

while (true)

{

Console.WriteLine("(1) Saving Account\n(2) Credit Account\n(3) Return to Last Menu");

try

{

typeOfAccount = int.Parse(Console.ReadKey().KeyChar.ToString());

}

catch (FormatException)

{

Console.WriteLine("\nInvalid option, please choose again!");

continue;

}

if (typeOfAccount < 1 || typeOfAccount > 5)

{

Console.WriteLine("\nInvalid option, please choose again!");

continue;

}

break;

}

if (typeOfAccount == 5)

{

break;

}

Console.WriteLine("\nPlese input your name:");

string name = Console.ReadLine();

while (true)

{

Console.WriteLine("Please input your Personal ID:");

personId = Console.ReadLine();

if (personId.Length != 18)

{

Console.WriteLine("Invalid Personal ID, please input again!");

continue;

}

break;

}

Console.WriteLine("Please input your E-mail:");

string email = Console.ReadLine();

while (true)

{

Console.WriteLine("Please input your password:");

password = Console.ReadLine();

Console.WriteLine("Please confirm your password:");

if (password != Console.ReadLine())

{

Console.WriteLine("The password doesn't math!");

continue;

}

break;

}

Account account = icbc.OpenAccount(password, password, name, personId, email, typeOfAccount);

Console.WriteLine("The account opened successfully.");

Console.WriteLine("Account ID: {0}\nAccount Name: {1}\nPerson ID: {2}\nE-mail: {3}\nBalance: {4}", account.ID, account.Name, account.PersonId, account.Email, account.Balance);

break;

}

case "2":

{

Account account = SignIn(icbc);

if (account == null)

{

break;

}

int amount;

while (true)

{

Console.WriteLine("Please input the amount:");

try

{

amount = int.Parse(Console.ReadLine());

}

catch (FormatException)

{

Console.WriteLine("Invalid input!");

continue;

}

break;

}

try

{

icbc.Deposit(account.ID, amount);

}

catch (InvalidOperationException ex)

{

Console.WriteLine(ex.Message);

break;

}

Console.WriteLine("Deposit successfully, your balance is {0} yuan.", account.Balance);

break;

}

case "3":

{

Account account = SignIn(icbc);

if (account == null)

{

break;

}

int amount;

while (true)

{

Console.WriteLine("Please input the amount:");

try

{

amount = int.Parse(Console.ReadLine());

}

catch (FormatException)

{

Console.WriteLine("Invalid input!");

continue;

}

break;

}

try

{

icbc.Withdraw(account.ID, amount);

}

catch (InvalidOperationException ex)

{

Console.WriteLine(ex.Message);

break;

}

Console.WriteLine("Deposit successfully, your balance is {0} yuan.", account.Balance);

break;

}

case "4":

{

Account account = SignIn(icbc);

if (account == null)

{

break;

}

double newCeiling;

while (true)

{

Console.WriteLine("Please input the new ceiling:");

try

{

newCeiling = double.Parse(Console.ReadLine());

}

catch (FormatException)

{

Console.WriteLine("Invalid input!");

continue;

}

break;

}

try

{

icbc.SetCeiling(account.ID, newCeiling);

}

catch (InvalidOperationException ex)

{

Console.WriteLine(ex.Message);

break;

}

Console.WriteLine("Set ceiling successfully, your new ceiling is {0} yuan.", (account as CreditAccount).Ceiling);

break;

}

case "5": Console.WriteLine("\nThe total balance is: " + icbc.GetTotalBalance()); break;

case "6": Console.WriteLine("\nThe total balance is: " + icbc.GetTotalCeiling()); break;

case "0": return;

default: Console.WriteLine("\nInvalid option, please choose again!"); break;

}

}

}

}

}

using System;

using System.Collections.Generic;

using System.Text;

namespace EXE1

{

class Program

{

/// <summary>

/// Sign when needed.

/// </summary>

/// <returns></returns>

static Account SignIn(Bank icbc)

{

Console.WriteLine("\nPlease input your account ID:");

long id;

try

{

id = long.Parse(Console.ReadLine());

}

catch (FormatException)

{

Console.WriteLine("Invalid account ID!");

return null;

}

Console.WriteLine("Please input your password:");

string password = Console.ReadLine();

Account account;

try

{

account = icbc.SignIn(id, password);

}

catch (InvalidOperationException ex)

{

Console.WriteLine(ex.Message);

return null;

}

return account;

}

/// <summary>

/// Simulate an ATM

/// </summary>

/// <param name="args"></param>

static void Main(string[] args)

{

Bank icbc = new Bank();

while (true)

{

Console.WriteLine("\nPlease choose the service you need:");

Console.WriteLine("(1) Open a New Account");

Console.WriteLine("(2) Deposit");

Console.WriteLine("(3) Withdraw");

Console.WriteLine("(4) Set Ceiling");

Console.WriteLine("(5) Get Total Balance");

Console.WriteLine("(6) Get Total Ceiling");

Console.WriteLine("(0) Exit");

string choice;

choice = Console.ReadKey().KeyChar.ToString();

switch (choice)

{

case "1":

{

string personId;

int typeOfAccount;

string password;

Console.WriteLine("\nWhich kind of account do you want to open?");

while (true)

{

Console.WriteLine("(1) Saving Account\n(2) Credit Account\n(3) Return to Last Menu");

try

{

typeOfAccount = int.Parse(Console.ReadKey().KeyChar.ToString());

}

catch (FormatException)

{

Console.WriteLine("\nInvalid option, please choose again!");

continue;

}

if (typeOfAccount < 1 || typeOfAccount > 5)

{

Console.WriteLine("\nInvalid option, please choose again!");

continue;

}

break;

}

if (typeOfAccount == 5)

{

break;

}

Console.WriteLine("\nPlese input your name:");

string name = Console.ReadLine();

while (true)

{

Console.WriteLine("Please input your Personal ID:");

personId = Console.ReadLine();

if (personId.Length != 18)

{

Console.WriteLine("Invalid Personal ID, please input again!");

continue;

}

break;

}

Console.WriteLine("Please input your E-mail:");

string email = Console.ReadLine();

while (true)

{

Console.WriteLine("Please input your password:");

password = Console.ReadLine();

Console.WriteLine("Please confirm your password:");

if (password != Console.ReadLine())

{

Console.WriteLine("The password doesn't math!");

continue;

}

break;

}

Account account = icbc.OpenAccount(password, password, name, personId, email, typeOfAccount);

Console.WriteLine("The account opened successfully.");

Console.WriteLine("Account ID: {0}\nAccount Name: {1}\nPerson ID: {2}\nE-mail: {3}\nBalance: {4}", account.ID, account.Name, account.PersonId, account.Email, account.Balance);

break;

}

case "2":

{

Account account = SignIn(icbc);

if (account == null)

{

break;

}

int amount;

while (true)

{

Console.WriteLine("Please input the amount:");

try

{

amount = int.Parse(Console.ReadLine());

}

catch (FormatException)

{

Console.WriteLine("Invalid input!");

continue;

}

break;

}

try

{

icbc.Deposit(account.ID, amount);

}

catch (InvalidOperationException ex)

{

Console.WriteLine(ex.Message);

break;

}

Console.WriteLine("Deposit successfully, your balance is {0} yuan.", account.Balance);

break;

}

case "3":

{

Account account = SignIn(icbc);

if (account == null)

{

break;

}

int amount;

while (true)

{

Console.WriteLine("Please input the amount:");

try

{

amount = int.Parse(Console.ReadLine());

}

catch (FormatException)

{

Console.WriteLine("Invalid input!");

continue;

}

break;

}

try

{

icbc.Withdraw(account.ID, amount);

}

catch (InvalidOperationException ex)

{

Console.WriteLine(ex.Message);

break;

}

Console.WriteLine("Deposit successfully, your balance is {0} yuan.", account.Balance);

break;

}

case "4":

{

Account account = SignIn(icbc);

if (account == null)

{

break;

}

double newCeiling;

while (true)

{

Console.WriteLine("Please input the new ceiling:");

try

{

newCeiling = double.Parse(Console.ReadLine());

}

catch (FormatException)

{

Console.WriteLine("Invalid input!");

continue;

}

break;

}

try

{

icbc.SetCeiling(account.ID, newCeiling);

}

catch (InvalidOperationException ex)

{

Console.WriteLine(ex.Message);

break;

}

Console.WriteLine("Set ceiling successfully, your new ceiling is {0} yuan.", (account as CreditAccount).Ceiling);

break;

}

case "5": Console.WriteLine("\nThe total balance is: " + icbc.GetTotalBalance()); break;

case "6": Console.WriteLine("\nThe total balance is: " + icbc.GetTotalCeiling()); break;

case "0": return;

default: Console.WriteLine("\nInvalid option, please choose again!"); break;

}

}

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有