試題五 下題是一個(gè)“加法計(jì)算器”應(yīng)用程序,其界面及運(yùn)行情況如下,請(qǐng)?zhí)羁铡?/P>
在該界面中,“被加數(shù)”、“加數(shù)”以及“和數(shù)”等文字稱為標(biāo)簽(Label),相應(yīng)的三個(gè)輸入輸出數(shù)據(jù)框稱為文本框(TextBox),此外還有三個(gè)命令按鈕(CommandButton)。用戶在被加數(shù)和加數(shù)相應(yīng)的文本框內(nèi)輸入數(shù)據(jù),再單擊“加法”按鈕,便能在“和數(shù)”對(duì)應(yīng)的框中看到相加的結(jié)果。當(dāng)用戶單擊“清除”按鈕時(shí),就會(huì)清除各文本框中的數(shù)據(jù)。當(dāng)用戶單擊“關(guān)閉”按鈕時(shí)就會(huì)關(guān)閉該窗口并退出應(yīng)用程序。在文本框中輸入數(shù)據(jù)時(shí),用戶可以進(jìn)行一般的插入、修改和刪除操作。
各個(gè)對(duì)象、有關(guān)的屬性名以及需要修改的屬性值設(shè)計(jì)如下:
對(duì)象 屬性名 屬性值
窗體 (名稱) frmAdder
Caption (1)
標(biāo)簽1 Caption 被加數(shù)
標(biāo)簽2 Caption 加數(shù)
標(biāo)簽3 Caption 和數(shù)
文本框1 (名稱) txt1
Text (空)
文本框2 (名稱) txt2
Text (空)
文本框3 (名稱) txt3
Text (空)
按鈕1 (名稱) (2)
Caption 加法
按鈕2 (名稱) cmdClear
Caption 清除
按鈕3 (名稱) cmdClose
Caption 關(guān)閉
為該窗體中各個(gè)命令按鈕的單擊事件編寫(xiě)程序代碼:
Private Sub cmdAdd_Click()
txt3.text=Str$( (3) ) '加法運(yùn)算獲得和數(shù)
End Sub
Private Sub (4) ()
txt1.Text="" '空字符串賦值給文本框txt1的內(nèi)容
txt2.Text=""
txt3.Text=""
End Sub
Private Sub cmdClose_Click()
(5) '退出應(yīng)用程序
End Sub
試題六 (試題六和試題七選做一題)
閱讀下列函數(shù)說(shuō)明和C函數(shù),將應(yīng)填入 n 處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。
[程序說(shuō)明]
本程序從正文文件text.in中讀入一篇英文短文,統(tǒng)計(jì)該短文中不同單詞及出現(xiàn)次數(shù),并按詞典編輯順序?qū)卧~及出現(xiàn)次數(shù)輸出到正文文件word.out中。
程序用一棵有序二叉樹(shù)存儲(chǔ)這些單詞及其出現(xiàn)的次數(shù),邊讀入邊建立,然后中序遍歷該二叉樹(shù),將遍歷經(jīng)過(guò)的二叉樹(shù)上的結(jié)點(diǎn)的內(nèi)容輸出。
# include
# include
# include
# include
# define INF "text.in"
# define OUTF "word.out"
typedef struct treenode {
char *word;
int count;
struct treenode *left, *right;
} BNODE;
int getword(FILE *fpt, char *word)
{ char c;
c=fgetc(fpt);
if ( c == EOF)
return 0;
while(!(tolower(c) >= 'a' && tolower(c) <= 'z'))
{ c=fgetc(fpt);
if ( c == EOF)
return 0;
} /* 跳過(guò)單詞間的所有非字母字符 */
while(tolower(c) >= 'a' && tolower(c) <= 'z')
{ *word++ = c;
c = fgetc(fpt);
}
*word = '\0';
return 1;
}
void binary_tree(BNODE **t, char *word)
{ BNODE *ptr, *p; int compres;
p = NULL; (1) ;
while (ptr) /* 尋找插入位置 */
{ compres=strcmp(word, (2) ); /* 保存當(dāng)前比較結(jié)果 */
if (!compres)
{ (3) ; return; }
else
{ (4) ;
ptr = compres>0 ? ptr->right : ptr->left;
}
}
ptr = (BNODE *)malloc(sizeof(BNODE));
ptr->left = ptr->right = NULL;
ptr->word = (char *)malloc(strlen(word)+1);
strcpy(ptr->word, word);
ptr->count = 1;
if (p == NULL)
(5) ;
else if (compres > 0)
p->right = ptr;
else
p->left = ptr;
}
void midorder(FILE *fpt, BNODE *t)
{ if ( t == NULL )
return;
midorder(fpt, t->left);
fprintf(fpt, "%s %d\n", t->word, t->count);
midorder(fpt, t->right);
}
void main()
{ FILE *fpt; char word[40];
BNODE *root=NULL;
if ((fpt=fopen(INF, "r")) == NULL)
{ printf("Can't open file %s\n", INF);
return;
}
while(getword(fpt, word) == 1)
binary_tree( &root, word );
fclose(fpt);
fpt = fopen(OUTF, "w");
if (fpt == NULL)
{ printf("Can't open file %s\n", OUTF);
return;
}
midorder(fpt, root);
fclose(fpt);
}
相關(guān)推薦:計(jì)算機(jī)軟考程序員備考:程序設(shè)計(jì)知識(shí)點(diǎn)匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |