107年 捷運招考 北捷新進人員 工程員(三)行車類組(資訊維修類) 應用系統程式設計 試卷

pdf
196.47 KB
5 頁
Administrator
侵權投訴
加載中. ..
PDF
臺北捷運公司 107 年4月29 日新進工程員(三)(資訊類)
甄試試題-應用系統程式設計
第 1 頁,共 5 頁
注意: 請務必填寫姓名:
1.以下題目應全部作答。 應考編號:
2.科目總分為 100 分。
3.作答時不須抄題目,但請標明題號,並請用藍(黑)色原子筆橫向書寫。
題目:
一、 軟體系統開發要注重軟體品質議題,例如 ISO 9126 規範的軟
體功能性(Functionality)、可維護性(Maintainability)、使用性
(Usability)、效率(Efficiency)、可靠性(Reliability)。系統分析
設計需要針對軟體品質設計系統,在程式碼撰寫更需要考慮
軟體品質。(共 20 分)
(一) 軟體品質特徵中,可維護性又可細分為修改性
(Changeability)、測試性(Testability)、穩定性(Stability)等子
特徵,效率又可細分為時間行為(Time behavior) 、資源利用
率(Resource utilization)等子特徵,可靠性又可細分為容錯性
(Fault tolerance)、回復性(Recoverability)等子特徵。請針對
上述效率與可靠性的四個子特徵說明之。(12 分)
(二) 捷運公司要開發一個捷運旅客交通轉運查詢系統,針對上
述ISO 9126 軟體品質特徵,請說明終端使用者比較在意哪
些軟體品質特徵,系統開發管理者比較在意哪些軟體品質
特徵及其原因。(8 分)
臺北捷運公司 107 年4月29 日新進工程員(三)(資訊類)
甄試試題-應用系統程式設計
第 2 頁,共 5 頁
二、某公司管理組織以樹狀結構表示。C#程式碼如下所示。員工
(Employee)包括管理者(Manager)和開發人員(Developer):(1)
Manager 有自己管理的團隊,可以管理 Manager 和Developer;(2)
Developer 被Manager 所管理。(共 30 分)
(一) 請劃出程式碼中組織樹狀圖,並說明之:(7分)
abstract cla ss Employ ee {
public abstract void add(Employee employee);
public ab stract void r emove(Employ ee employee);
public abstract void myPrint();
publ ic v ir tual void setD ep(i nt d ep) { th is.de p = dep; }
public void print() {
Console.Wr iteLine(dep + ":" + N ame + " , Salary = " + Salary);
myPrint();
}
public String Name { get; set; }
public int Salary { get; set; }
protected int dep;
pri vate Str ing name ;
private int salary;
}
class Manag er: Employee {
public Manager(String name, int salary) {
Name = name;
Salary = salary;
setDep(1);
}
publ ic o verr ide void se tDep(i nt dep) {
this.dep = dep;
foreach (E mployee e mployee in employees) {
employee.setDep(this.dep + 1);
}
}
public override void add(Employ ee employee) {
employee.setDep(dep + 1);
employees.Add(employee);
}
public override voi d myPri nt() {
if (employees.Count>0) {
Console. W r iteLine("The manag ement team " + de p);
foreach (E mployee e mployee in employ ees) {
employee.print();
}
臺北捷運公司 107 年4月29 日新進工程員(三)(資訊類)
甄試試題-應用系統程式設計
第 3 頁,共 5 頁
Conso le. W r iteL ine(" The te am end " + de p);
}
}
public o verride void rem ove(Employee employ ee) {
employees.Remove(employee);
}
private L ist e mployees = new L ist();
}
class Devel oper: Employee {
public Developer(String name, int salary) {
Name = name;
Salary = salary;
setDep(1);
}
publ ic overr ide void my Print () { /*lea f node is no t applica ble* / }
public override void add(Employee employee) { /*leaf node is not applicable*/ }
public override void remove(Employee employee) { /*leaf node is not applicable*/ }
}
class Program {
static void Main(string[] args) {
Employee Tom = new Manager("Tom", 90000);
Employee Mary = new M anager("Mary", 80000);
Empl oye e Jo hn = new Mana ger( "Jo hn", 700 00);
Empl oye e Ke vin = new Deve lope r(" Kev in", 5000 0);
Employee Sam = new Developer("Sam" , 4000 0);
Empl oyee Bo b = new Deve loper(" Bob", 40000);
Mary.add(Kevin);
Mary.add(Sam);
John.add(Bob);
Tom.add(Mary);
Tom.add(John);
John.print();
Tom.print();
Console.Read();
}
}
(二) 請寫出上述程式碼的輸出。(8分)
(三) 請畫出上述程式碼類別圖。(15 分)
臺北捷運公司 107 年4月29 日新進工程員(三)(資訊類)
甄試試題-應用系統程式設計
第 4 頁,共 5 頁
三、假設資料庫包含以下四個關聯表綱要(STUDENT、COURSE、
CLASS、GRADE_REPORT),其中 STUDENT 關聯表記錄學生的
資料;COURSE 關聯表記錄系所開設的課程資料;CLASS 關聯
表記錄每學期課程的開班資訊;GRADE_REPORT 關聯表則記錄
學生的修課成績。每個關聯表的主鍵,並以底線標示,例如:
STUDENT 關聯表的主鍵為 StudentId。
STUDENT(StudentId, Name, YearOfEntrance, Major)
COURSE(CourseNo, CourseTitle, CreditHours, Department)
CLASS(ClassId, CourseNo, Semester, Year, Instructor)
GRADE_REPORT(StudentId, ClassId, Grade)
請用 SQL 語言撰寫下列的查詢(queries):( 共30 分)
(一) 列出資工系學生(Major='CSIE')的學號(StudentId)與姓名
(Name),並根據學號(StudentId)順序由小而大排序。(7 分)
(二) 列出講師「李大偉」(Instructor='李大偉')於2016 和2017 年所
教授的課程資訊,包含課程編號(CourseNo)和課程名稱
(CourseTitle)。假設 CLASS.Year 的資料型態為 CHAR(4)。(8 分)
(三) 列出學生「張小華」所修過之課程名稱、該課程之開設學期
(Semester)和年份(Year),以及其獲得的成績(Grade)。(8 分)
臺北捷運公司 107 年4月29 日新進工程員(三)(資訊類)
甄試試題-應用系統程式設計
第 5 頁,共 5 頁
(四) 找出至少有一門課程的成績低於 60 分的學生,列出該學生的
學號與姓名。(7 分)
四、假設幣值制面額分別是 28 元、21 元、1元,請用最少的錢幣個
數兌換 74 元。可使用貪婪演算法(Greedy Algorithm 與動態程式
規劃(Dynamic Program)兩種演算法解決:(共 20 分)
(一) 請說明兩種演算法的概念與優缺點,以及解答。(10 分)
(二) 請寫出兩種演算法核心程式。(10 分)
收藏 ⬇️ 下載