操作系統課程設計報告
課程名稱:銀行家算法
學校:計算機科學與工程學院
指導老師:姜紅
學生:王
班級級別:網絡工程080610127
完成時間:2065 438+00 65438+2月25日。
操作系統課程設計報告
課程名稱:銀行家算法
學校:計算機科學與工程學院
指導老師:姜紅
學生:王
班級級別:網絡工程080610127
目錄
1,項目內容、要求和分組概述2
2.概要設計2
2.1開發工具和環境2
2.2任務和需求分析2
2.3功能模塊設計2
2.4工作原則3
3.具體實現3
3.1類設計3
3.2模塊和實現代碼介紹3
4、運行調試和分析討論4
5、設計經驗和總結6
6.參考文獻7
附錄:(源程序)7
1.項目內容、要求和分組的壹般介紹。
項目內容和要求:
這個實驗的目標是制作壹個可以進行四則簡單運算(加、減、乘、除)的計算器。
小組的具體分工如下表所示:
組長錢江波
成員子項目名稱的具體要求
錢江波形模塊的組合和測試找出了程序的錯誤並進行修正。
小全的數字鍵的註冊會將數字鍵註冊給監聽器,使其正常工作。
劉大輝窗口設計計算器界面的創建與分配
李曉陽小組其余成員的工作是完成這個程序。
詹剛剛寫了壹個具體的計算方法,加入了運算符號和功能代碼。
2.輪廓設計
2.1開發工具和環境
文本編輯器:記事本;
操作環境:命令提示符(DOS環境)。
2.2任務和需求分析
設計壹個簡單的計算器程序,實現簡單的運算(加減乘除)。具體任務如下:
1)計算器窗口界面布局設計;
2)各種計算函數的算法分析;
3)編程實現特定的計算功能;
4)運行測試程序,調試並糾正運行錯誤。
5)調試正確,運行並測試具體算法功能。
2.3功能模塊設計
計算器的模塊設計如下:
2.4工作原理
單擊相應的數字鍵,該數字將顯示在顯示的文檔中。要進行相應的運算,先輸入第壹個計算數,再輸入運算符,再輸入第二個計算數,點擊“=”按鈕即可得到計算結果。同時也有歸零功能。點擊此按鈕,在顯示欄中歸零。
3.具體實施
3.1類設計
班級名稱:季酸七
功能:功能代碼,窗口布局設置
公共類計算器擴展WindowAdapter
{}
WindowAdapter實現WindowListener的類,並實現WindowListener。
frame . addwindowlistener(new window adapter(){ });———————————————————————————
類名:WindowDestroyer
功能:用於退出窗口操作。
關鍵代碼:
類close實現ActionListener {
public void action performed(action event e){
system . exit(0);
}
3.2模塊和實現代碼介紹
框架fm =新框架(“簡易計算器”);
for(int I = 0;我& lt= 16;i++) {
b[i] =新建按鈕(ss[I]);
}
for(int I = 0;我& lt= 15;i++) {
p2 . add(b[I]);
}//創建壹個按鈕並將其添加到P2
b[16]。set background(color . yellow);
txt = new TextField(15);
txt . set editable(false);
for(int I = 0;我& lt= 16;i++) {
b[i]。addActionListener(new button listener());…… }
註意:該方法主要設置窗口、面板和按鈕。定義每個鍵(定義每個鍵要實現什麽功能),排列,在監聽器上註冊每個鍵。
———————————————————————————
txt . settext(txt . gettext()+BTN . get label());
If (btn.getLabel() == "歸零")
txt . settext(" ");
註意:這段代碼會在每次輸入時將文本清空。
———————————————————————————
ClassClose實現操作偵聽器{//Exit。
public void action performed(action event e){
system . exit(0);
}
註意:這個方法實現了窗口的關閉。
4.運行調試及分析討論
調試並運行4*5操作,操作過程如下:
1)在命令提示符下運行計算器程序,如下所示:
2)顯示計算器界面,輸入第壹個運算值“4”,如下圖:
3)輸入運算符“*”,如下所示:
4)輸入第二個操作值“5”,如下圖所示:
5)點擊計算器按鈕“=”獲得計算結果。如下圖所示:
5、設計經驗和總結
通過這個課程設計,我們知道java也可以協同工作。雖然最後的整合過程很麻煩,但是整合之後我們發現課本被翻了很多遍,很多以前不知道的東西突然變得清晰起來。我們還引用了很多沒用過的句子塊,大部分都是在網上找的,然後我們自己集成到代碼裏,然後實現了我們想要的功能。
編程是壹個困難的過程。很多函數語句需要上網或者查別的書來查用法。課本上的東西對我們來說是遠遠不夠的,要把眼光放長遠。
這個課程設計讓我對JAVA中的很多東西有了更深刻的理解。以前要求自己理解,現在發現光用光能理解是不夠的。能理解不代表妳能!妳要真正親身經歷過才會知道。
這周的課程設計是這學期最累的壹周,但是我們的努力終於有了回報。雖然我們的計算器可能還有很多問題,但至少可以正常運行四則運算,基本滿足我們的預期要求。所以,這壹周也是我最充實的壹周。
6.參考
[1]杜春濤,面向對象程序設計-—Java語言,中國鐵道出版社。
[2]丁·,JAVA語言實用教程,北京郵電大學出版社。
[3]www.baidu.com
附錄:(源程序)
導入Java . awt . *;
導入Java . awt . event . *;
public class jisuanqi擴展WindowAdapter {
Panel p 1 = new Panel();
Panel p2 = new Panel();
面板p3 =新面板();
TextField txt
私有按鈕[] b =新建按鈕[17];
Private stringss [] = {"7 "," 8 "," 9 "," 4 "," 5 "," 6 "," 1 "," 2 "," 3 "," * ","零","
靜態雙a;
靜態字符串s,str//定義變量來創建對象
公共靜態void main(String args[]) {
(新計算器())。frame();
}
公共void框架(){
框架fm =新框架(“簡易計算器”);
for(int I = 0;我& lt= 16;i++) {
b[i] =新建按鈕(ss[I]);
}
for(int I = 0;我& lt= 15;i++) {
p2 . add(b[I]);
}//創建壹個按鈕並將其添加到P2
b[16]。set background(color . yellow);
txt = new TextField(15);
txt . set editable(false);
for(int I = 0;我& lt= 16;i++) {
b[i]。addActionListener(new button listener());//添加偵聽器
}
b[16]。addActionListener(new close());
fm.addWindowListener(這個);
FM . set background(color . red);
p 1 . set layout(new BorderLayout());
p1.add(txt," North ");
p2.setLayout(new GridLayout(4,4));
P3 . set layout(new BorderLayout());
P3 . add(b[16]);
fm.add(p1,"北");
fm.add(p2,“居中”);
fm.add(p3,“南”);
FM . pack();
fm.setVisible(真);//都是窗口設置,添加相關組件和監聽器。
}
public void window closing(window event e){
system . exit(0);//退出系統
}
類buttonlistener實現ActionListener {
//寫監聽器事件,按鍵得到結果。
public void action performed(action event e){
Button BTN =(Button)e . getsource();
if(BTN . get label()= = " = " {
吉蘇安();
str = string . value of(a);
txt . settext(str);
s =
} else if(BTN . get label()= = "+" {
吉蘇安();
txt . settext(" ");
s = "+";
} else if(BTN . get label()= = "-" {
吉蘇安();
txt . settext(" ");
s = "-";
} else if (btn.getLabel() == "/") {
吉蘇安();
txt . settext(" ");
s = "/";
} else if (btn.getLabel() == "*") {
吉蘇安();
txt . settext(" ");
s = " *
}否則{
txt . settext(txt . gettext()+BTN . get label());
If (btn.getLabel() == "歸零")
txt . settext(" ");
}
}
public void Ji suman(){//寫壹個具體的計算方法。
if (s == "+")
a+= double . parse double(txt . gettext());
else if (s == "-")
a-= double . parse double(txt . gettext());
else if (s == "* ")
a* = double . parse double(txt . gettext());
else if (s == "/")
a/= double . parse double(txt . gettext());
其他
a = double . parse double(txt . gettext());
}
}
}
ClassClose實現操作偵聽器{//Exit。
public void action performed(action event e){
system . exit(0);
}
}