java畢業(yè)論文范文5篇(3)
java畢業(yè)論文范文篇四:
摘要
本文圍繞Java編程語(yǔ)言在網(wǎng)絡(luò)編程方面的具體應(yīng)用,論述了使用面向?qū)ο蠓椒ǎ瑢?duì)計(jì)算器程序進(jìn)行需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì),最后使用Java編程實(shí)現(xiàn)的全過(guò)程。
java語(yǔ)言,是目前比較流行的編程語(yǔ)言。經(jīng)過(guò)10多年的發(fā)展,java已經(jīng)滲透到全球每個(gè)角落。在當(dāng)今這個(gè)網(wǎng)絡(luò)的時(shí)代,java語(yǔ)言在網(wǎng)絡(luò)編程方面的優(yōu)勢(shì)使得網(wǎng)絡(luò)編程有了更好的選擇。Java語(yǔ)言最令人矚目的特點(diǎn)是具有跨平臺(tái)性,使其不受平臺(tái)不同的影響,并得到了廣泛的應(yīng)用。
設(shè)計(jì)內(nèi)容:設(shè)計(jì)GUI界面的計(jì)算器。用戶可以通過(guò)鼠標(biāo)依次輸入?yún)⒓佑?jì)算的數(shù)值,進(jìn)行加、減、乘、除等混合運(yùn)算。
設(shè)計(jì)要求:
1.系統(tǒng)界面的上面是數(shù)字輸入對(duì)話框,用來(lái)顯示所輸入的數(shù)字和運(yùn)行的結(jié)果。
2.系統(tǒng)界面下面的左側(cè)是記憶 + - * /。
3. 系統(tǒng)界面下面的中部是數(shù)字輸入按鈕,用來(lái)輸入數(shù)字。
4.系統(tǒng)界面下面的右側(cè)是運(yùn)算符號(hào)按鈕,用來(lái)實(shí)現(xiàn)具體的運(yùn)算。
關(guān)鍵字:java面向?qū)ο?計(jì)算器 網(wǎng)絡(luò)編程
第一章 概述
1.1 設(shè)計(jì)目的
計(jì)算器是日常生活中十分便捷有效的工具,能實(shí)現(xiàn)加、減、乘、除、開(kāi)方、求倒數(shù)等簡(jiǎn)單運(yùn)算的功能。本論文采用java編程語(yǔ)言實(shí)現(xiàn)計(jì)算器功能。該計(jì)算器大大的降低了數(shù)字計(jì)算的難度并且提高了計(jì)算的準(zhǔn)確度和精確度。使用簡(jiǎn)單,適合廣大工作人員和中小學(xué)生使用。
1.2 計(jì)算器系統(tǒng)概述
標(biāo)準(zhǔn)計(jì)算器的界面采用“圖形界面程序設(shè)計(jì)(GUI)”。GUI為用戶和應(yīng)用程序之間的交互提供了直觀、方便的交流方式。用戶使用鼠標(biāo)、鍵盤(pán)操作圖形界面上的按鈕、菜單等元素湘計(jì)算機(jī)系統(tǒng)發(fā)送命令,系統(tǒng)運(yùn)行的結(jié)果以圖形的方式顯示給用戶。
編寫(xiě)java計(jì)算器主要使用了Swing組件和AWT布局類(lèi)。Swing組件主要包括按鈕、標(biāo)簽、文本輸入類(lèi)、等組件,AWT主要運(yùn)用了其中的布局管理器。
1.2.1 Swing組件
Swing組件的按鈕用JButton類(lèi)表示,計(jì)算器的界面主要由JButton按鈕組成,以響應(yīng)用戶的操作;
Swing中的標(biāo)簽用JLabel類(lèi)表示,標(biāo)簽上可以顯示圖標(biāo)和文本;
Swing的文本輸入類(lèi)包括文本框JTextField、文本區(qū)JTextArea和密碼框JPasswordField。
本計(jì)算器中僅僅使用了文本框JTextField,用于文本數(shù)字的顯示。
1.2.2 AWT組件
布局管理器管理組件如何放置在容器中,AWT中最常用的四種布局類(lèi):FlowLayout、BorderLayout、GridLayout、CardLayout。本項(xiàng)目主要采用了GridLayout布局。
1.3功能模塊設(shè)計(jì)
★標(biāo)準(zhǔn)計(jì)算器。
以下是標(biāo)準(zhǔn)計(jì)算器的各項(xiàng)功能:
(1)加法:
兩個(gè)及兩個(gè)以上數(shù)據(jù)進(jìn)行加法操作,可以為小數(shù)形式。
(2)減法:
兩個(gè)及兩個(gè)以上數(shù)據(jù)進(jìn)行減法操作,可以為負(fù)數(shù)形式。
(3)乘法:
兩個(gè)及兩個(gè)以上數(shù)據(jù)進(jìn)行乘法操作。
(4)除法:
兩個(gè)及兩個(gè)以上數(shù)據(jù)進(jìn)行除法操作。
(5)開(kāi)平方:
對(duì)任意數(shù)開(kāi)平方,可以為小數(shù)(不能為負(fù)數(shù))。
(6)求倒數(shù):
對(duì)任意數(shù)求倒數(shù),0除外。
(7)求百分?jǐn)?shù):
對(duì)任意一個(gè)數(shù)進(jìn)行百分號(hào)操作。
1.4 系統(tǒng)功能圖。
標(biāo)準(zhǔn)計(jì)算器
求倒數(shù)
開(kāi)平方
求百分號(hào)
加法
減法
乘法
除法
圖1.1 計(jì)算器系統(tǒng)功能圖
第二章 項(xiàng)目設(shè)計(jì)說(shuō)明
2.1標(biāo)準(zhǔn)計(jì)算器設(shè)計(jì)界面
圖2.1 計(jì)算器設(shè)計(jì)界面
2.2標(biāo)準(zhǔn)計(jì)算器設(shè)計(jì)主要代碼
標(biāo)準(zhǔn)計(jì)算器主要由一個(gè)菜單欄、一個(gè)文本框、27個(gè)按鈕組成。
2.2.1整體框架代碼
JFrame f = new JFrame("標(biāo)準(zhǔn)計(jì)算器");
f.setLocation(400, 300);
Container contentPane = f.getContentPane();
2.2.2 菜單欄代碼
圖2.2 菜單欄
JMenuBar mBar = new JMenuBar();
mBar.setOpaque(true);
mEdit = new JMenu("編輯(E)");
mEdit.setMnemonic(KeyEvent.VK_E);
mCopy = new JMenuItem("復(fù)制(C)");
mEdit.add(mCopy);
mPaste = new JMenuItem("粘貼(P)");
mEdit.add(mPaste);
mView = new JMenu("查看(V)");
mView.setMnemonic(KeyEvent.VK_V);
mView.add(new JMenuItem("標(biāo)準(zhǔn)型"));
mView.add(new JMenuItem("科學(xué)型"));
mView.addSeparator();
mView.add(new JMenuItem("查看分組"));
mHelp = new JMenu("幫助(H)");
mHelp.setMnemonic(KeyEvent.VK_H);
mHelp.add(new JMenuItem("幫助主題"));
mHelp.addSeparator();
mHelp.add(new JMenuItem("關(guān)于計(jì)算器"));
mBar.add(mEdit);
mBar.add(mView);
mBar.add(mHelp);
f.setJMenuBar(mBar);
contentPane.setLayout(new BorderLayout());
2.2.3 文本框代碼
圖2.3 文本框
JPanel pTop = new JPanel();
tResult = new JTextField("0.",26);
tResult.setHorizontalAlignment(JTextField.RIGHT);
tResult.setEditable(false);
pTop.add(tResult);
contentPane.add(pTop,BorderLayout.NORTH);
2.2.4 計(jì)算器各功能鍵代碼
圖2.4 各功能鍵圖
bOther = new JButton("MC");
bOther.addActionListener(this);
bOther.setForeground(Color.red); //字體顏色
bOther.setMargin(new Insets(3,2,3,2));//按鈕邊框和標(biāo)簽之間的空白
pLeft.add(bOther);
bOther = new JButton("MR");
bOther.addActionListener(this);
bOther.setForeground(Color.red);
bOther.setMargin(new Insets(3,2,3,2));
pLeft.add(bOther);
bOther = new JButton("MS");
bOther.addActionListener(this);
bOther.setForeground(Color.red);
bOther.setMargin(new Insets(3,2,3,2));
pLeft.add(bOther);
bOther = new JButton("M+");
bOther.addActionListener(this);
bOther.setForeground(Color.red);
bOther.setMargin(new Insets(3,2,3,2));
pLeft.add(bOther);
pBottom.add(pLeft,BorderLayout.WEST);
JPanel pRight = new JPanel();
pRight.setLayout(new BorderLayout());
JPanel pUp = new JPanel();
pUp.setLayout(new GridLayout(1,3,3,0));
bOther = new JButton("BackSpace");
bOther.addActionListener(this);
bOther.setForeground(Color.red);
bOther.setMargin(new Insets(3,0,3,5));
pUp.add(bOther);
bOther = new JButton("CE");
bOther.addActionListener(this);
bOther.setForeground(Color.red);
pUp.add(bOther);
bOther = new JButton("C");
bOther.addActionListener(this);
bOther.setForeground(Color.red);
pUp.add(bOther);
2.2.5 數(shù)字鍵及運(yùn)算符號(hào)代碼
圖2.5 數(shù)字鍵圖
JPanel pDown = new JPanel();
pDown.setLayout(new GridLayout(4,5,3,2));
bNumber = new JButton("7");
bNumber.setForeground(Color.blue);
bNumber.addActionListener(this);
bNumber.setMargin(new Insets(3,3,3,3));
pDown.add(bNumber);
(注:其他數(shù)字鍵、運(yùn)算符號(hào)鍵與“7”定義相同。)
第三章 程序運(yùn)行效果
3.1加法運(yùn)算
本計(jì)算器可以實(shí)現(xiàn)多個(gè)運(yùn)算數(shù)相加,例如:1+2+3+4
計(jì)算結(jié)果為10,所有數(shù)據(jù)均為double類(lèi)型。
3.2減法運(yùn)算
本計(jì)算器可以實(shí)現(xiàn)多個(gè)運(yùn)算數(shù)相減(正負(fù)數(shù)),例如:6-5-3-1
計(jì)算結(jié)果為-3,數(shù)據(jù)類(lèi)型為double類(lèi)型。
3.3乘法運(yùn)算
本計(jì)算器可以實(shí)現(xiàn)多個(gè)運(yùn)算數(shù)相乘,例如2*3*4*5
運(yùn)算結(jié)果為120,數(shù)據(jù)類(lèi)型為double類(lèi)型。
3.4除法運(yùn)算
本計(jì)算器可以實(shí)現(xiàn)多個(gè)運(yùn)算數(shù)相除(除數(shù)不為0)例如:15/3/5/2
運(yùn)算結(jié)果為0.5,數(shù)據(jù)類(lèi)型為double類(lèi)型
當(dāng)除數(shù)為0時(shí),計(jì)算器自動(dòng)報(bào)錯(cuò),例如:15/0
3.5開(kāi)方運(yùn)算
當(dāng)被開(kāi)方數(shù)為非負(fù)數(shù)時(shí),計(jì)算器自動(dòng)開(kāi)方,例如:25開(kāi)方
運(yùn)算結(jié)果為5.
3.6求倒數(shù)運(yùn)算
當(dāng)按下求倒數(shù)鍵時(shí),計(jì)算器自動(dòng)為運(yùn)算數(shù)求其倒數(shù)。例如:5的倒數(shù)
運(yùn)算結(jié)果為0.2.
第四章 項(xiàng)目重難點(diǎn)分析
4.1重難點(diǎn)分析
Java計(jì)算器中整體框架的建立,按鈕的設(shè)置,整體布局在操作過(guò)程中都是很順暢的。計(jì)算器的關(guān)鍵步驟也是重點(diǎn)是實(shí)現(xiàn)計(jì)算器的計(jì)算方法。
實(shí)現(xiàn)兩個(gè)數(shù)的加減乘除等運(yùn)算是比較簡(jiǎn)單的,但是一個(gè)計(jì)算器需要做到的是實(shí)現(xiàn)多個(gè)運(yùn)算數(shù)的運(yùn)算。此時(shí)就用到了我在項(xiàng)目一開(kāi)始定義的兩個(gè)數(shù)據(jù)
每執(zhí)行一次運(yùn)算操作就把運(yùn)算結(jié)果賦值給操作數(shù)1 “op1”,并判斷下一步操作是“=”或者“其他運(yùn)算符”,決定下一步計(jì)算器的操作。
4.2程序中存在的問(wèn)題
(1)菜單欄中雖然設(shè)置了編輯、查看、幫助等選項(xiàng),但是項(xiàng)目中并沒(méi)有實(shí)際的功能。
(2)程序中設(shè)置了內(nèi)存的有關(guān)操作但是并沒(méi)有達(dá)到其預(yù)期的功能。
(3)百分號(hào)的實(shí)際功能并沒(méi)有實(shí)現(xiàn)。
(4)當(dāng)被開(kāi)方數(shù)是負(fù)數(shù)時(shí),計(jì)算器并不能給出錯(cuò)誤提示。
[參考文獻(xiàn)]
《Java編程實(shí)用技術(shù)與案例 》 譯作者:楊紹方
《軟件工程Java語(yǔ)言實(shí)現(xiàn)SoftwareEngineeringwithJava》StephenR.Schach譯者:袁兆山等
程序員天堂( 英文網(wǎng)站 大量的程序, 庫(kù), 包) http://www.programmersheavean.com
java畢業(yè)論文范文篇五:
一、引言
加深對(duì)《Java2面向?qū)ο蟪绦蛟O(shè)計(jì)》課程所學(xué)知識(shí)的理解,進(jìn)一步鞏固 Java語(yǔ)言的語(yǔ)法規(guī)則。分析系統(tǒng)的可行性,讓系統(tǒng)有一個(gè)明確的方向,使開(kāi)發(fā)更具合理性,并能分析出系統(tǒng)的具體流程,為后面的開(kāi)發(fā)做好鋪墊。明確本次課程設(shè)計(jì)所要用到的技術(shù)點(diǎn)并到網(wǎng)上搜索以及查閱相關(guān)的書(shū)籍來(lái)搜集資料。通過(guò)編寫(xiě)一個(gè)基于JAVA的應(yīng)用系統(tǒng)綜合實(shí)例,來(lái)掌握J(rèn)ava語(yǔ)言編程技巧。并學(xué)會(huì)編制結(jié)構(gòu)清晰、風(fēng)格良好的、數(shù)據(jù)結(jié)構(gòu)適當(dāng)?shù)腏ava語(yǔ)言程序,從而具備解決綜合性實(shí)際問(wèn)題的能力
二、課題內(nèi)容
用Java設(shè)計(jì)一個(gè)職工信息管理系統(tǒng),并實(shí)現(xiàn)相關(guān)功能。
三、系統(tǒng)程序要求
1、設(shè)計(jì)一個(gè)職工信息管理系統(tǒng)
2、要求包括職工信息包括職工號(hào)、姓名、性別、年齡、學(xué)歷、工資、
住 址、電話(職工號(hào)不重復(fù))
3、本系統(tǒng)功能描述:
職工信息錄入功能(職工信息用文本保存);
職工信息瀏覽功能;
查詢功能(至少一種查詢方式):
按工資查詢, 按學(xué)歷查詢
4、職工信息刪除、修改功能(這兩個(gè)功能任選)。
四、程序設(shè)計(jì)思想
該課題要求是輸入職工信息,對(duì)職工信息進(jìn)行一系列的處理。既要輸入工號(hào)又要能查找到與之對(duì)應(yīng)的職工,還要對(duì)實(shí)現(xiàn)建立,顯示,查找,刪除,信息的保存。
因?yàn)榭紤]到信息管理信息的實(shí)用性,我額外添加了一個(gè)“讀文件”功能,使利用void read()方法來(lái)實(shí)現(xiàn)的。這個(gè)“讀文件模塊"!是我用來(lái)擴(kuò)充信息管理系統(tǒng)功能的!可以使系統(tǒng)在用戶不用輸入信息就能讀取先前已存在的職工信息文件。
根據(jù)課題要求,我是這樣設(shè)計(jì)的:首先對(duì)要實(shí)現(xiàn)的功能類(lèi)型分為三大類(lèi)——Public類(lèi)、方法類(lèi)、信息類(lèi);然后細(xì)分為六個(gè)方法——void caidan()、void creat()、void output()、void search()、void delete()、void read ()。這些類(lèi)和方法構(gòu)成了能夠?qū)崿F(xiàn)不同功能的模塊,很好地體現(xiàn)了面向?qū)ο蟮腏ava語(yǔ)言的編程模塊塊的思想。
我通過(guò)調(diào)用各功能模塊的幾個(gè)方法,隨后在各個(gè)method中具體實(shí)現(xiàn)相關(guān)的功能。當(dāng)然要利用throws IOException進(jìn)行一些異常處理,包括輸入異常和數(shù)據(jù)的異常。在數(shù)據(jù)的錄入與輸出的過(guò)程中涉及到文件的相關(guān)操作(包括打開(kāi)與關(guān)閉等)最后是系統(tǒng)的安全退出。大部分功能都是在具體的模塊中加以實(shí)現(xiàn)的。
如search方法實(shí)現(xiàn)查詢職工信息功能;caidan方法實(shí)現(xiàn)系統(tǒng)選擇菜單界面的輸出等相關(guān)功能;delete方法用于職工信息刪除;output方法用于職工信息的輸出及瀏覽等系列功能。
五、程序源代碼及其解析
package staff;//包
import java.io.*;
public class StaffInfomation {
public static void main(final String[] args) throws IOException
//throws IOException用來(lái)拋出io的錯(cuò)誤,文件讀寫(xiě)錯(cuò)誤, 主要涉及到j(luò)ava的安全機(jī)制
{
staffInfo staffOne[]=new staffInfo[100]; //定義100個(gè)類(lèi)數(shù)組
for(int j=0;j<100;j++) staffOne[j] = new staffInfo();
//建立這100個(gè)類(lèi)的對(duì)象
final ways staffTwo=new ways(); //建立這個(gè)方法類(lèi)的對(duì)象
staffTwo.caidan(staffOne);
staffTwo.creat(staffOne);
staffTwo.output(staffOne);
staffTwo.search(staffOne);
staffTwo.delete(staffOne);
//以上幾個(gè)方法分別對(duì)應(yīng)著:caidan菜單選擇、增加(建立)職工信息、輸出(預(yù)覽)、查詢、刪除這些功能,以數(shù)組類(lèi)為參數(shù)
}
}
class staffInfo
//職工信息類(lèi)換句話說(shuō)就相當(dāng)與c語(yǔ)言里面的結(jié)構(gòu)體,存放職工的信息
{
public String name;
public String num;
public String sex;
public String age;
public String record;
public String position;
public String wanges;
public String tel;
public String addr;
//把name、num、sex、age、record等聲明為全局變量,因?yàn)樗鼈冐灤┯谡麄€(gè)程序中,方便其它方法、類(lèi)調(diào)用它們
}
class ways //方法類(lèi),主要實(shí)現(xiàn)職工信息的建立,顯示,查找,刪除,信息的保存與讀取;這個(gè)類(lèi)是整個(gè)程序的操作類(lèi)。
{
public String recordkey;
public int i=0;//i用來(lái)存放職工的人數(shù)
public String filename="Infomation.txt";
BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
//此處是JAVA語(yǔ)言中輸入數(shù)據(jù)的基本格式,功能有如C中的scanf函數(shù)
void caidan(staffInfo staffOne[]) throws IOException
{
final BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
// 參看書(shū)34頁(yè),產(chǎn)生Buf對(duì)象;buf是BufferedReader類(lèi)的變量,此處將讀入字符串至buf
int choice;
do{
System.out.println("☆★☆★☆★☆★電子信息系40706班★賀 雪 設(shè)計(jì)★☆★☆★☆\n\n");
System.out.println("┏━━━━━━━━━━━━━━━━━━┓");
System.out.println("┃★ 職工管理系統(tǒng)主菜單界面 ★┃");
System.out.println("┣━━━━━━━━━━━━━━━━━━┫");
System.out.println("┃ ★?、?輸入職工信息 ★ ┃");
System.out.println("┃ ★ ②.預(yù)覽職工信息 ★ ┃");
System.out.println("┃ ★ ③.查找職工信息 ★ ┃");
System.out.println("┃ ★ ④.刪除職工信息 ★ ┃");
System.out.println("┃ ★?、?安全退出系統(tǒng) ★ ┃");
System.out.println("┃ ★ ⑥.讀取數(shù)據(jù) ★ ┃");
System.out.println("┗━━━━━━━━━━━━━━━━━━┛");
System.out.print(" 請(qǐng)輸入您的選擇(0--6):");
choice=Integer.parseInt(buf.readLine());
switch(choice)
{
case 1:creat(staffOne);break;
case 2:output(staffOne);break;
case 3:search(staffOne);break;
case 4:delete(staffOne);break;
case 5:save(staffOne);break;
case 6:read(staffOne);break;
}
}while(choice!=0);
}
void creat(staffInfo staffOne[]) throws IOException
//這個(gè)方法是實(shí)現(xiàn)“增加(建立)職工信息”;是建立信息模塊
{
final BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
System.out.print("\n請(qǐng)輸入職工信息(以0結(jié)束)\n");
System.out.print("姓名:\n\n");
staffOne[i].name=buf.readLine();
while(staffOne[i].name.compareTo("0")!=0)
//用數(shù)組staffOne[i]來(lái)暫存職工的序 號(hào),并用compareTo方 法確定判定是否應(yīng)該寫(xiě)入新信息
{
System.out.print("工號(hào):\n\n");
staffOne[i].num=buf.readLine();
System.out.print("性別:\n\n");
staffOne[i].sex=buf.readLine();
System.out.print("年齡:\n\n");
staffOne[i].age=buf.readLine();
System.out.print("學(xué)歷:\n\n");
staffOne[i].record=buf.readLine();
System.out.print("職位:\n\n");
staffOne[i].position=buf.readLine();
System.out.print("工資:\n\n");
staffOne[i].wanges=buf.readLine();
System.out.print("電話:\n\n");
staffOne[i].tel=buf.readLine();
System.out.print("住址:\n\n");
staffOne[i].addr=buf.readLine();
i++;
System.out.println("請(qǐng)輸入下一個(gè)職工信息:\n\n");
staffOne[i].name=buf.readLine();
}
}
void output(staffInfo staffOne[]) throws IOException
//這里是實(shí)現(xiàn)“輸出(預(yù)覽)職工信息”output的模塊
{
System.out.println("--------------------------------------");
System.out.println(" *員工信息表* );
System.out.println("------------------------------------");
System.out.println("姓名 工號(hào) 性別 年齡 學(xué)歷 職位 工資 電話號(hào)碼 住址");
System.out.println("---------------------------------");
if(i!=0)
{
for(int j=0;j<i;j++)
{
System.out.print(staffOne[j].name+" "+staffOne[j].num+" "+staffOne[j].sex+" ");
System.out.print(staffOne[j].age+" "+staffOne[j].record+" "+staffOne[j].position+" ");
System.out.print(staffOne[j].wanges+" "+staffOne[j].tel+" "+staffOne[j].addr+"\n");
}
System.out.println("------------------------------");
}
else System.out.println("沒(méi)有員工信息!");
}
void search(staffInfo staffOne[]) throws IOException
//這里是實(shí)現(xiàn)職工信息的查詢功能的模塊
{
final BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
System.out.println("\n請(qǐng)輸入您要查找的職工學(xué)歷:");
recordkey=buf.readLine();
boolean flg=true;
System.out.println("------------------------------------");
System.out.println(" *員工信息表* );
System.out.println("-----------------------------------");
System.out.println("姓名 工號(hào) 性別 年齡 學(xué)歷 職位 工資 電話號(hào)碼 住址");
System.out.println("---------------------------------------");
for(int j=0;j<i;j++)
{
if(recordkey.equals(staffOne[j].record))
//equals是字符串比較函數(shù)相等返回true
{
System.out.print(staffOne[j].name+" "+staffOne[j].num+" "+staffOne[j].sex+" ");
System.out.print(staffOne[j].age+" "+staffOne[j].record+" "+staffOne[j].position+" ");
System.out.print(staffOne[j].wanges+" "+staffOne[j].tel+" "+staffOne[j].addr+"\n");
flg=false;
}
}
if(flg)
System.out.println("對(duì)不起,查無(wú)此人!");
}
void delete(staffInfo staffOne[]) throws IOException
{
final BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
System.out.println("\n請(qǐng)輸入您要?jiǎng)h除的職工姓名:");
recordkey=buf.readLine();
boolean flg=true;
for(int j=0;j<i;j++)
{
//System.out.println("staffOne[j].name="+staffOne[j].name);
//System.out.println("recordkey="+recordkey);
//System.out.println("recordkey.equals(staffOne[j].name)="+recordkey.equals(staffOne[j].name));
if(recordkey.equals(staffOne[j].name))
{
for(int k=j;k<=i-1;k++)
//利用順序表的刪除算法,刪除值之后,再把后面的值往前移位,從而實(shí)現(xiàn)刪除
{
staffOne[k].name=staffOne[k+1].name ;
staffOne[k].num=staffOne[k+1].num ;
staffOne[k].sex=staffOne[k+1].sex ;
staffOne[k].age=staffOne[k+1].age ;
staffOne[k].record=staffOne[k+1].record ;
staffOne[k].position=staffOne[k+1].position ;
staffOne[k].wanges=staffOne[k+1].wanges ;
staffOne[k].tel=staffOne[k+1].tel ;
staffOne[k].addr=staffOne[k+1].addr ;
}
i--;//職工人數(shù)要減一
flg=false;
}
}
if(flg)
System.out.println("對(duì)不起,查無(wú)此人!。");
else System.out.println("已經(jīng)刪除!。");
}
void save(staffInfo staffOne[]) throws IOException
//數(shù)據(jù)的保存模塊, 把輸入的職工信息保存到相應(yīng)的文件里。
{
int k;
final FileWriter fw=new FileWriter(filename);
//調(diào)用構(gòu)造函數(shù)FileWriter()創(chuàng)建FileWriter類(lèi)的對(duì)象。
//文件的讀取(書(shū)216頁(yè)13-2-2)
fw.write( i+"\n");//把職工的人數(shù)保存到文件中以便下次讀取是使用
for( k=0;k<i;k++)//每個(gè)職工有9個(gè)信息字段,下面就是這9個(gè)信息段。
{
fw.write( staffOne[k].name+"\n");
fw.write( staffOne[k].num+"\n");
fw.write( staffOne[k].sex+"\n" );
fw.write( staffOne[k].age+"\n");
fw.write( staffOne[k].record+"\n");
fw.write( staffOne[k].position+"\n") ;
fw.write( staffOne[k].wanges+"\n");
fw.write( staffOne[k].tel+"\n");
fw.write( staffOne[k].addr+"\n");
}
fw.close();
System.out.println("\n 系統(tǒng)已經(jīng)安全退出!感謝您的使用!");
System.exit(0);
}
void read(staffInfo staffOne[]) throws IOException
//這是程序的“讀文件模塊"!是我自己添加進(jìn)去擴(kuò)充系統(tǒng)功能的!可以使系統(tǒng)不用輸入信息就能讀取先前已存在的職工信息文件。
{
final FileReader fr=new FileReader(filename);
final BufferedReader bfr=new BufferedReader(fr);
//關(guān)于文件的讀取不會(huì)的看看書(shū)216頁(yè)13-2-2
if((recordkey=bfr.readLine())!=null)
i=Integer.parseInt(recordkey);
for(int j=0;j<i;j++)
{
staffOne[j].name=bfr.readLine(); 這是程序的“讀文件模塊",
是我自己添加進(jìn)去擴(kuò)充系統(tǒng)功
staffOne[j].num=bfr.readLine(); 能的!可以使系統(tǒng)不用輸入信息
就能讀取先前已存在的職工信息
staffOne[j].sex=bfr.readLine(); 文件,從中讀取數(shù)據(jù)。利用了書(shū)
本P216頁(yè)13-2-2的文件相關(guān)知識(shí)
staffOne[j].age=bfr.readLine();
staffOne[j].record=bfr.readLine();
staffOne[j].position=bfr.readLine() ;
staffOne[j].wanges=bfr.readLine();
staffOne[j].tel=bfr.readLine();
staffOne[j].addr=bfr.readLine();
}
fr.close();
System.out.println("\n 數(shù)據(jù)已經(jīng)成功讀取!");
}
}
我自己感覺(jué)此次課程設(shè)計(jì)做得挺成功的,通過(guò)這一次,我學(xué)到了不少實(shí)際編程的知識(shí)。
在這次設(shè)計(jì)開(kāi)始的第一天開(kāi)始,我就開(kāi)始著手修改一個(gè)用“職工信息管理系統(tǒng)”的JAVA程序。這一過(guò)程太不順利,調(diào)試的時(shí)候都沒(méi)有成功。后來(lái)我請(qǐng)教一個(gè)學(xué)長(zhǎng),在他的指導(dǎo)下我不斷的發(fā)現(xiàn)錯(cuò)誤,并改正它們,功夫不負(fù)有心人人,我的程序最后運(yùn)行成功了。
這其中了不少的東西,磨礪了我的意志;同時(shí)還鞏固了以前所學(xué)的知識(shí),學(xué)到了不少書(shū)本上沒(méi)有的知識(shí);學(xué)到了很多java編程知識(shí),并學(xué)會(huì)了簡(jiǎn)單的使用eclipse來(lái)開(kāi)發(fā)java程序的一些使用技巧這次課程設(shè)計(jì)是對(duì)我本學(xué)期所學(xué)的知識(shí)的檢驗(yàn),由此我發(fā)現(xiàn)了不少的問(wèn)題??梢哉f(shuō)它給了我一次自我評(píng)估的機(jī)會(huì)。通過(guò)設(shè)計(jì)讓我知道了那些方面我還是有欠缺的,促使我花時(shí)間彌補(bǔ)。
臨近考試,時(shí)間太緊迫,致使程序?qū)崿F(xiàn)的功能在方法上也許不是很完美,但我以后會(huì)多向老師請(qǐng)教,自己也要加強(qiáng)對(duì)Java 的學(xué)習(xí)。努力進(jìn)一步提高自己的編程水平。
參考資料
1、《程序天下》
2、洪維恩、何嘉《java2面向?qū)ο蟪绦蛟O(shè)計(jì)》
3、Java天下-java、jsp編程論壇[黑咖啡屋]
4、黃旭等《java課程設(shè)計(jì)指導(dǎo)》
5、C編程設(shè)計(jì)(第三版) 譚浩強(qiáng)(著)
看了java畢業(yè)論文范文的人還看了:
3.大學(xué)計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)論文范文