北大“軟件工程”上機(jī)考試題

字號(hào):

一、問題陳述
    在一簡化的銀行存款系統(tǒng)中,前臺(tái)服務(wù)員負(fù)責(zé)處理客戶的存取款要求,存款時(shí)客戶需要填寫存款單(客戶名,帳號(hào),類別(活期,定期),金額),取款時(shí)客戶需要填寫取款單(客戶名,帳號(hào),金額)并輸入密碼,前臺(tái)服務(wù)員負(fù)責(zé)錄入客戶的存取/款單;客戶還可以通過自助存取款機(jī)進(jìn)行存取款操作,在交易時(shí)需要客戶自己輸入上述信息;銀行經(jīng)理可以查詢每日/月的存取款統(tǒng)計(jì)信息,銀行經(jīng)理和前臺(tái)服務(wù)員還可以查詢每個(gè)客戶的存取款記錄。
    1)請用結(jié)構(gòu)化分析方法,建立該系統(tǒng)的模型,畫出數(shù)據(jù)流圖的頂層、0層和一層圖(包括建立頂層和0層的數(shù)據(jù)字典,可以不寫加工說明)
    2)請用面向?qū)ο蠓椒?,識(shí)別該系統(tǒng)有哪些主要的類,并寫出類的主要屬性和操作
    二、根據(jù)所給源程序及該程序的可執(zhí)行程序,完成下列要求:
    a)畫出程序的控制流程圖;
    b)判斷該程序是否能夠達(dá)到100%條件組合覆蓋,為什么?
    c)給出測試用例,實(shí)現(xiàn)你所認(rèn)為的條件組合覆蓋。
    根據(jù)輸入的年份判斷是否為閏年。
    #include “stdafx.h”
    int isLeapYear(int year){
    int isLeapYear;
    if(year%4==0 && (year%100!=0 ||year%400==0))
    isLeapYear=1;
    else
    isLeapYear=0;
    return isLeapYear;
    }
    int _tmain(int argc, _TCHAR* argv[])
    {
    int year;
    scanf(“%d”,&year);
    int flag=isLeapYear(year);
    if(flag==1)
    printf(“true”);
    else
    printf(“false”);
    printf(“\n”);
    }