註冊
登錄
論壇
搜索
幫助
導航
私人消息 (0)
公共消息 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
種子論壇 | 高雄市資訊培育協會學員討論區
»
【 教 師 專 區 】
»
C#
» C# 7 610 電腦零件設計
返回列表
發帖
發短消息
加為好友
may
(奇異果)
當前離線
UID
9
帖子
2201
精華
1
積分
10
閱讀權限
200
來自
高雄市資訊培育協會
在線時間
1163 小時
註冊時間
2010-2-22
最後登錄
2024-11-23
管理員
1
#
跳轉到
»
倒序看帖
打印
字體大小:
t
T
may
發表於 2024-1-8 22:57
|
只看該作者
C# 7 610 電腦零件設計
QC+ 物件導向程式語言
最新一次更新時間:2024-01-05 17:52:26
1. 題目說明:
請新增一個主控台應用程式,加入C:\ANS.CSF\CS06資料夾中的CSD06.cs進行編寫。依下列題意進行作答:建立多個以零件為基礎的電腦各組件的類別,計算筆電的成本及售價,使輸出值符合題意要求。檔案名稱請另存新檔為CSA06.cs,儲存於C:\ANS.CSF\CS06資料夾,再進行評分。
2. 設計說明:
專案內已有part類別,請撰寫LCD類別繼承part類別。內有一個整數欄位size(螢幕尺吋),請透過建構子依照傳入的尺吋設定成本,規則如下:10吋LCD的成本是1500元,15吋LCD的成本是2500元,17吋LCD的成本是3500元。
請撰寫CPU類別繼承part類別。CPU有一數值欄位speed(運算速度),透過建構子依照傳入的速度數值設定成本,規則:速度1.66的成本是7000元,速度2.2的成本是8500元,速度2.4的成本是13000元。
請撰寫HD類別繼承part類別。HD有一整數欄位vol(硬碟容量),透過建構子依照傳入的容量設定成本,規則:256G的成本是1800元,512G的成本是2500元。
請使用以上的零件,撰寫Notebook類別,該類別有三個屬性,分別是LCD, CPU, HD,在建構子傳入三個參數,分別代表LCD尺寸、CPU速度、HD大小。若未傳入,以10、1.66及256為預設值。
* 提示:需撰寫兩個建構子
在Notebook類別中,定義double型態的profit屬性,代表利潤比例,如其值為1.2,表示利潤為20%。此類別中再分別建立兩個方法,名稱分別為getCost及getPrice,前者功能為回傳總成本,後者為回傳總成本加利潤。
* 總成本計算公式:LCD + CPU + HD
* 售價計算公式:(LCD + CPU + HD) × profit
在Main()方法中撰寫程式,需輸入一組數字(數字間以一個半形空格分隔),若輸入兩個數字(以一個半形空格分隔),如【3 1.5】,表示建立三個筆電物件,採用預設的硬體配置,且利潤比需為1.5,再計算總成本及售價後輸出,輸出格式如【NB:3,Cost:30900,Total:46350】。
若輸入五個數字(數字間以半形空格分隔),如【2 1.2 10 1.66 256】表示建立兩台筆電物件,採用10吋LCD、速度1.66的CPU、256的硬碟,且利潤比需為1.2,再計算總成本及售價後輸出,輸出格式如【NB:2,Cost:20600,Total:24720】。
若輸入不在指定範圍的資料,請輸出【error】。
3. 輸入輸出:
輸入說明
筆電數量及利潤比例(中間以一個半形空格分隔)
輸出說明
總成本及售價(輸出最後一行後不自動換行)
範例輸入1
3 1.5
範例輸出1
NB:3,Cost:30900,Total:46350
範例輸入2
3 1.8 2
範例輸出2
error
4. 評分項目:
(1) 符合設計說明輸出正確格式 配分20
收藏
分享
May
發短消息
加為好友
may
(奇異果)
當前離線
UID
9
帖子
2201
精華
1
積分
10
閱讀權限
200
來自
高雄市資訊培育協會
在線時間
1163 小時
註冊時間
2010-2-22
最後登錄
2024-11-23
管理員
2
#
may
發表於 2024-1-9 09:56
|
只看該作者
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Threading;
namespace CSA06
{
class CSA06
{
static void Main(string[] args)
{
try
{
string[] data = Console.ReadLine().Split(' ');
for(int i = 0; i < data.Length; i++)
if (Convert.ToDouble(data[i].ToString()) < 0) { throw new Exception(); }
double cost = 0;
double total = 0;
Notebook n;
if (data.Length == 2) {
n = new Notebook();
n.profit = Convert.ToDouble(data[1].ToString());
cost = n.getCost() * Convert.ToDouble(data[0].ToString());
total = n.getPrice() * Convert.ToDouble(data[0].ToString());
}
else if (data.Length == 5)
{
n = new Notebook(Convert.ToDouble(data[3].ToString()),Convert.ToInt32(data[2].ToString()), Convert.ToInt32(data[4].ToString())){
profit = Convert.ToDouble(data[1].ToString())
};
cost = n.getCost() * Convert.ToDouble(data[0].ToString());
total = n.getPrice() * Convert.ToDouble(data[0].ToString());
}
else
{
throw new Exception();
}
Console.Write("NB:{0},Cost:{1},Total:{2}", data[0].ToString(), cost, total);
}
catch
{
Console.Write("error");
}
Console.ReadKey();
}
}
abstract class part
{
public int cost;
public int getCost()
{
return cost;
}
}
class LCD : part
{
private int _size = 0;
public int size
{
get
{
return _size;
}
set
{
_size = value;
}
}
public LCD(int s)
{
size = s;
if (s == 10)
{
this.cost = 1500;
}
else if (s == 15)
{
this.cost = 2500;
}
else if (s == 17)
{
this.cost = 3500;
}
}
}
class CPU : part
{
private double _speed;
public double speed
{
get
{
return _speed;
}
set
{
_speed = value;
}
}
public CPU(double s)
{
this._speed = s;
if (s == 1.66)
{
this.cost = 7000;
}
else if (s == 2.2)
{
this.cost = 8500;
}
else if (s == 2.4)
{
this.cost = 13000;
}
}
}
class HD : part
{
private int _vol = 0;
public int vol
{
get
{
return _vol;
}
set
{
_vol = value;
}
}
public HD(int v)
{
this._vol = v;
if (v == 256)
{
this.cost = 1800;
}
else if (v == 512)
{
this.cost = 2500;
}
}
}
class Notebook
{
LCD lcd;
CPU cpu;
HD hd;
private double _profit = 0.0;
public Notebook()
{
lcd = new LCD(10);
cpu = new CPU(1.66);
hd = new HD(256);
}
public Notebook(double c, int l, int h)
{
lcd = new LCD(l);
cpu = new CPU(c);
hd = new HD(h);
}
public double profit
{
get
{
return _profit;
}
set
{
_profit = value;
}
}
public double getCost()
{
return (lcd.getCost() + cpu.getCost() + hd.getCost());
}
public double getPrice()
{
return (lcd.getCost() + cpu.getCost() + hd.getCost()) * profit;
}
}
}
複製代碼
May
TOP
返回列表
谷哥人營隊
113Scratch夏令營
113年APCS冬令營
113年Scratch冬令營
113年Python證照特訓營(一)
113年谷哥人程式體驗營
113年國三專班
Python研習營(113_114)
113年Python證照特訓營(二)
113年程式夏令營(一)(二)
113年APCS夏令營(一)(二)
Python研習營
113年Python研習冬令營
112年國三專班
112APCS夏令營(一)(二)
112App快速開發夏令營
C語言 / C++ (特別輔導)
C++證照
C#
家教特輔
C語言特輔/證照(家教)
C++證照
C#
HTML5+CSS+JavaScript+PHP+MySQL
Java 家教 (王捷恩)
113新版塊名稱
快樂學 Scratch
Python 家教 (王捷恩 康恒睿)
Python 特別輔導 (家教)
快樂 C++ (家教)
我愛 Java (家教)
程式解題我最行 (家教)
程式常態班
C++ 新生挑戰區
考照心得分享
快樂 C++11307週五19:00
快樂C++11309週六13:30-15:30
快樂 C++11303 (週六15:40-17:40) 3F
程式解題我最行 (週六15:30-17:30) 3F
快樂 C++ (週六13:30-15:30) 3F
快樂 C++ (週六19:00-21:00) 3F
程式解題我最行 (週六10:00-12:00) 3F
快樂學 Scratch
程式解題我最行(週五19:00-21:00)
快樂 C++ (週六13:30-15:30) 3F
程式解題我最行(週三19:15-21:15)
快樂 C++11207週六10
快樂 C++11208週六19:00
程式解題我最行 (週五19:00-21:00) 3F
快樂 C++ (週六15:30-17:30) 3F
程式解題我最行 (週六19:00-21:00) 3F
程式解題我最行 (週四19:10-21:10)
產投職訓
結訓課程 (產投職訓)
Php & MySQL old
Illustrator old
Dreamweaver old
Android手機程式開發班
PHP & MySQL電子商務互動式網站實作班 (102下)
PHP & MySQL (102上)
PHP & MySQL電子商務互動式網站實作班
Photoshop數位影像設計初階
Flash創意廣告動畫初階
行銷短片視訊剪輯
數位商業攝影實務班
PHP & MySQL電子商務系統開發實務初階班
電子商務系統開發實務中階班
Server基礎架設&動態網頁設計初階班
Java視窗應用程式設計與遊戲開發班
Illustrator時尚插畫創作設計初階班
102上Php & MySQL 初階班
電子商務互動式網站實作中階
Dreamweaver多媒體網頁設計
Android手機程式開發班(2012年10月)
PHP & MySQL (2012年10月)
創意塗鴉
yahoo橫幅
google橫幅
市民學苑
第二屆樂活部落格
第一屆電腦設備簡易維護和故障排除班
專案訓練
電子商務創業班
TQC PHP認證
投資理財班
領隊導遊班
電腦基礎及網路應用身心障礙專班
應用軟體網頁化開發
[收藏此主題]
[關注此主題的新回復]
[通過 QQ、MSN 分享給朋友]