欧美亚洲综合图区在线|天天射天天干国产成卜|99久久免费国产精精品|国产的欧美一区二区三区|日韩中文字幕无码不卡专区|亚麻成人aV极品一区二区|国产成人AV区一区二区三|成人免费一区二区三区视频网站

當(dāng)前位置:首頁 > 網(wǎng)站建設(shè) > 正文內(nèi)容

Java課程設(shè)計(jì)報告模板及范文(Java課程設(shè)計(jì)實(shí)驗(yàn)報告模板)

網(wǎng)站建設(shè)2年前 (2023-01-24)1222

今天給各位分享Java課程設(shè)計(jì)報告模板及范文的知識,其中也會對Java課程設(shè)計(jì)實(shí)驗(yàn)報告模板進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!

本文目錄一覽:

《Java》期末課程設(shè)計(jì)

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class QuestionOne {

/**

* 編程將從鍵盤輸入文本中的子字符串“word”替換為字符串“world”, 并刪除所有的子字符串“this”。

* 序程要求:程序中要包含有注釋,對于使用的變量和方法的功能要加以說明。

*/

public static void main(String[] args) {

BufferedReader reader = new BufferedReader(new InputStreamReader(

System.in));

String message = null; // 存儲用戶輸入的字符串

try {

while ((message = reader.readLine()) != null) {

// 打印處理前的字符串

System.out.println("輸入的字符串為:" + message);

// 把 word 替換為 world

message = message.replaceAll("word", "world");

// 把 this 替換為 空

message = message.replaceAll("this", "");

// 打印處理后的字符串

System.out.println("處理后為:" + message);

}

} catch (Exception e) {

e.printStackTrace();

System.out.println("出現(xiàn)異常,程序退出!");

}

}

}

求《java課程設(shè)計(jì)》制作

可以使用百度Hi告知我

有時間可以解決你的問題

類似的要求也可以告知我

誰教教我怎么寫JAVA的課程設(shè)計(jì)論文

目 錄

一、概要設(shè)計(jì)……………………………………………………………3

二、程序整體設(shè)計(jì)說明…………………………………………….…..4

三、程序部分源代碼及注釋…………………………………………….9

四、測試結(jié)果………………………………………………………….24

五、設(shè)計(jì)心得…………………………………………………………25

六、致 謝…………………………………………………………25

七、參考文獻(xiàn)…………………………………………………………25

【摘 要】該程序是一個圖形界面的java文檔編輯器,其界面主要采用了awt包, 程序?qū)崿F(xiàn)了文本編輯器的基本功能有:新建文件、打開文件、文件保存、文件另存為、剪切、復(fù)制、粘貼、刪除、查找/替換、改變字體大小,另外還利用Time類的schedule方法實(shí)現(xiàn)了文件的定時自動更新功能,并創(chuàng)建備份文件,由于該編輯器是用的awt包,所以在技術(shù)上沒有實(shí)現(xiàn)將Java的關(guān)鍵字以不同顏色顯示功能。

【關(guān)鍵字】java 編輯器

一、概要設(shè)計(jì)

Java程序編輯器是:圖形界面、線程、流與文件等技術(shù)的綜合應(yīng)用。

圖形界面的實(shí)現(xiàn):考慮到簡單、實(shí)用、高效等特點(diǎn),就選擇了AWT來完成實(shí)現(xiàn),在選擇組件上,文本編輯區(qū)就選用了TaxtArea作為主要的部件。

線程實(shí)現(xiàn)文件自動保存:在相關(guān)的參考書上查閱到在Time類中有一個schedule方法可以在后臺自動完成一定的功能,而且調(diào)用起來相當(dāng)簡單,于是就用了Time類中的schedule方法來實(shí)現(xiàn)文件自動保存及備份功能。

文件操作的實(shí)現(xiàn):利用了字符文件流FileReader和FileWriter類來實(shí)現(xiàn)。

由于Java的特性,可能用任何一個編輯器來編輯,于是就將Windows中的記事本作為模仿對象,根據(jù)實(shí)現(xiàn)情況刪減了其中的一些功能,如自動換行,設(shè)置字體,打印等功能。

在設(shè)計(jì)類的時候,考慮到簡單明了,就用了兩個類,一個主類和一個默認(rèn)屬性類作為程序的整體框架,所有的對象和方法都是在默認(rèn)屬性類中創(chuàng)建和實(shí)現(xiàn)的,以及為各組件注冊事件監(jiān)聽程序也是在默認(rèn)屬性類中實(shí)現(xiàn)的。主類完成對象的實(shí)例化及顯示。這們設(shè)計(jì)的優(yōu)點(diǎn)是:條理清晰,容易理解,容易修改。這樣設(shè)計(jì)的缺點(diǎn)是:不利于共享類中的方法。

二、程序整體設(shè)計(jì)說明

2.1、程序框架圖

2.2、程序中所用類說明

(1)用戶自定義類

類名:EditInstantiation

作用:實(shí)例化對象

繼承的父類:WindowAdapter

主要成員變量:

Frame myFrm // 定義主窗體

TextArea myText // 定義文本編輯區(qū)

Dialog myDlgFind,myDlgFindont //查找及設(shè)置字體對話框

TextField TFfind, TFreplace, TffontSize

//查找對話框和字體窗體中的文本行

Button BfontOK, Bfind, Breplace, Bnext, Bcancel //定義和創(chuàng)建各按鈕

Label Lf, Lr, Ls //定義和創(chuàng)建各標(biāo)簽

MenuBar Mbbar //定義和創(chuàng)建主菜單

Menu Mfile,Medit,Mformation,Mhelp //定義和創(chuàng)建主菜單中的選項(xiàng)

Toolkit toolKit

Clipboard myCB //剪切板對象

FileDialog myFDlg //定義文件對話框

Choice ChfontName //定義和創(chuàng)建字體選擇框

private int VIindex = 1; //構(gòu)成文件名后綴變量

private String VSsubFixStr=".java"; //構(gòu)成文件名擴(kuò)展名變量

private String VSmyFileName = "Document1",VSmyBFileName;

//文件名及備份文件名變量

private File VFmyFile=new File(VSmyFileName+VIindex+".java");

//文件名變量

private int VIsearchPosition=0; //查找位置指針

private Timer VTtime; //實(shí)例化一個Time類

private int VImin=1; // schedule方法中的一個時間參數(shù)

private int VItype=JOptionPane.INFORMATION_MESSAGE;

//提示對話框類型

private String VStitle; //提示對話框標(biāo)題

private String VSmessage; //提示對話框信息

private boolean VBchanged = true; //改變字體的一個標(biāo)識

private int VIfontSizeMin = 8, VIfontSizeMax = 40, VIfontSizeChangedStep = 2; //設(shè)置字體大小及步長

主要成員方法:

public void init() //初始化各部件菜單的定義和事件的監(jiān)聽

public void displayEdit ()//顯示窗體及調(diào)用Time中的schedule方法

public void windowClosing () //關(guān)閉窗體

public void save //保存文件方法

a.內(nèi)部類類名:KeyEvents

作用:實(shí)現(xiàn)菜單的事件的響應(yīng)功能

繼承的父類:KeyAdapter

主要成員變量:無

成員方法:actionPerformed()、keyPressed()

b.內(nèi)部類類名:FindKeyEvent

作用:實(shí)現(xiàn)查找中各部件事件的響應(yīng)功能

繼承的父類:無

主要成員變量:無

成員方法:actionPerformed ()

c.內(nèi)部類類名:fontEvent

作用:實(shí)現(xiàn)字體中各部件事件的響應(yīng)功能

繼承的父類:無

主要成員變量:無

成員方法:ItemListener(),ActionListener()

(2)用戶自定義類與Java類的繼承關(guān)系圖如下:

自定義類 Java 類

線程使用說明

2.3、實(shí)現(xiàn)接口方法

本程序用到的方法有:schedule其方法描述如下:

schedule(事件,啟動時間,間隔時間);

2.4、線程應(yīng)用

本程序?yàn)槲谋揪庉嬈鳎瑸閷?shí)現(xiàn)自動更新,應(yīng)用到了線程,每隔1分鐘對文件進(jìn)行自動更新

2.5、異常處理說明

(1)打開文件時的異常處理

需要處理的異常:IOException

處理方法:捕獲異常后,顯示捕獲的異常

(2)保存文件時的異常處理

需要處理的異常:IOException

處理方法:捕獲異常后,顯示捕獲的異常

2.6、程序運(yùn)行效果及存在的問題

(1)程序運(yùn)行主要界面如下:

a、主界面

b、打開文件對話框

c、保存文件對話框

d、另存為文件對話框

e、查找/替換對話框

f.字體對話框

2.7.程序尚還存在的問題

我花費(fèi)了近一個多星期的時間,查閱了許多相關(guān)的資料,終于把這個Java編輯器,程序基本實(shí)現(xiàn)了該課程設(shè)計(jì)的基本要求。但由于自己水平有限,使得程序還有不是很完善,首先,最重要的一點(diǎn)是該設(shè)計(jì)的最重要的功能自動改變java關(guān)鍵字的顏色沒有實(shí)現(xiàn)。

三、程序部分源代碼及注釋

//****************************************************

// class name :Edit

// implements :none

// extends :none

// attribute :public

// founction :entrance of the class

//*****************************************************

public class Edit{ //主類

public static void main(String args[]){

EditInstantiation myEdit= new EditInstantiation();

myEdit.init(); //初始化

myEdit.displayEdit(); //顯示窗體

}

//****************************************************

// class name :EditInstantiation

// implements :none

// extends :WindowAdapter

// attribute :default

// founction :EditInstantiation of the main class

//*****************************************************

class EditInstantiation extends WindowAdapter{ //默認(rèn)屬性類

//define sources 定義各部件

Frame myFrm=new Frame("我的編輯器"); //定義窗體

TextArea myText=new TextArea(); //定義窗體

Dialog myDlgFind=new Dialog(myFrm,"查找",true); //定義查找對話框

Dialog myDlgFindont=new Dialog(myFrm,"字體",true); //定義字體對話框

TextField TFfind=new TextField(30);//定義查找對話中的查找輸入框

TextField TFreplace=new TextField(30); //定義查找對話中的替換輸入框

TextField TFfontSize,TFfontDemo;//定義字體大小文本框和示例框

Choice CHfontName;//定義字體大小選擇框

List LTfontSize; //定義字體大小標(biāo)簽

Button BfontOK,BfontCancel; //定義字體大小對話中的確定及取消按鈕

Button Bfind=new Button("查找");//定義查找對話中的查找按鈕

Button Breplace=new Button("替換");//定義查找對話中的替換及取消按鈕

Button Bnext=new Button("下一個");//定義查找對話中的下一個及取消按鈕

Button Bcancel=new Button("取消");//定義查找對話中的確定及取消按鈕

Label Lf=new Label("查找內(nèi)容:");

Label Lr=new Label("替換為: ");

Label Ls=new Label("字體大?。?);

FileDialog myFDlg;

Clipboard myCB=Toolkit.getDefaultToolkit().getSystemClipboard(); //剪切板對象

Menu Mfile,Medit,Mformation,Mhelp;

MenuBar MBbar;

//define varities //定義各變量

private int VIindex = 1;

private String VSsubFixStr=".java";

private String VSmyFileName = "Document1",VSmyBFileName;

private File VFmyFile=new File(VSmyFileName+VIindex+".java");

private int VIsearchPosition=0;

private Timer VTtime;

private int VImin=1; // parameter in time schedul

private int VItype=JOptionPane.INFORMATION_MESSAGE;

private String VStitle;

private String VSmessage;

// flag of the changeing

private boolean VBchanged = true;

// the scope of the font

private int VIfontSizeMin = 8, VIfontSizeMax = 40, VIfontSizeChangedStep = 2;

//************************************************

//founction name:init()

//parameter :none

//attribute :public

//founction :initia all compont

//************************************************

public void init(){ //初始化各部件

//------------------ set menu ------------------

MBbar=new MenuBar();

myFrm.setMenuBar(MBbar);

Mfile=new Menu("文件");

Medit=new Menu("編輯");

Mformation=new Menu("格式");

Mhelp=new Menu("幫助");

MBbar.add(Mfile);

MBbar.add(Medit);

MBbar.add(Mformation);

MBbar.add(Mhelp);

//文件菜單 add File menu

Mfile.add(new MenuItem("新建",new MenuShortcut(KeyEvent.VK_N)));

Mfile.add(new MenuItem("打開",new MenuShortcut(KeyEvent.VK_O)));

Mfile.add(new MenuItem("保存",new MenuShortcut(KeyEvent.VK_S)));

Mfile.add(new MenuItem("另存為"));

Mfile.addSeparator();//分隔線

Mfile.add(new MenuItem("退出",new MenuShortcut(KeyEvent.VK_E)));

//編輯菜單 add Edit menu

Medit.add(new MenuItem("剪切"));//,new MenuShortcut(KeyEvent.VK_X)));

Medit.add(new MenuItem("復(fù)制"));//new MenuShortcut(KeyEvent.VK_C)));

Medit.add(new MenuItem("粘貼"));//new MenuShortcut(KeyEvent.VK_V)));

Medit.add(new MenuItem("刪除"));//new MenuShortcut(KeyEvent.VK_D)));

Medit.addSeparator();//分隔線

Medit.add(new MenuItem("查找/替換",new MenuShortcut(KeyEvent.VK_F)));

Medit.addSeparator();//分隔線

Medit.add(new MenuItem("全選",new MenuShortcut(KeyEvent.VK_A)));

//格式菜單 add Formation menu

Mformation.add(new MenuItem("字體",new MenuShortcut(KeyEvent.VK_U)));

//幫助菜單 add Formation menu

Mhelp.add(new MenuItem("關(guān)于作者"));

//----------------- menu add end -------------------------

//add Menu Action Listener

Mfile.addActionListener(new KeyEvents());

Medit.addActionListener(new KeyEvents());

Mformation.addActionListener(new KeyEvents());

Mhelp.addActionListener(new FindKeyEvent());

//--------------------------- Find dialog-----------------

myDlgFind.setSize(350,115);

myDlgFind.setLocation(250,150);

myDlgFind.setLayout(new FlowLayout(FlowLayout.CENTER));

myDlgFind.setBackground(Color.LIGHT_GRAY);

Bfind.setEnabled(false);

Breplace.setEnabled(false);

Bnext.setEnabled(false);

myDlgFind.add(Lf);

myDlgFind.add(TFfind);

myDlgFind.add(Lr);

myDlgFind.add(TFreplace);

myDlgFind.add(Bfind);

myDlgFind.add(Breplace);

myDlgFind.add(Bnext);

myDlgFind.add(Bcancel);

myDlgFind.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

myDlgFind.setVisible(false);

}});//為查找對話框窗體注冊事件監(jiān)聽

TFfind.addKeyListener(new KeyEvents());//注冊事件監(jiān)聽

Bfind.addActionListener(new FindKeyEvent());

Breplace.addActionListener(new FindKeyEvent());

Bcancel.addActionListener(new FindKeyEvent());

Bnext.addActionListener(new FindKeyEvent());

//--------------- end add action listener ------------

//================set font dialog ==============

//font size text field

TFfontSize = new TextField("8",14);

TFfontSize.selectAll();

//font size list field

LTfontSize = new java.awt.List(5, false);

LTfontSize.addItemListener(new fontEvent());

for(int i = VIfontSizeMin; i = VIfontSizeMax; i = i + VIfontSizeChangedStep)

LTfontSize.add(i + "");//添加字體大小

LTfontSize.select(0);

//two Button Ok Cancel

BfontOK = new Button("確定");

BfontOK.addActionListener(new fontEvent());

BfontCancel = new Button("取消");

BfontCancel.addActionListener(new fontEvent());

//a TextField for demo the font

TFfontDemo = new TextField("Java awt",37);

TFfontDemo.setEditable(false);

// my font dialog設(shè)置字體對話框

myDlgFindont.setLayout(new FlowLayout(FlowLayout.LEFT));

myDlgFindont.setBackground(Color.LIGHT_GRAY);

myDlgFindont.add(Ls);

myDlgFindont.add(TFfontSize);

myDlgFindont.add(BfontOK);

myDlgFindont.add(BfontCancel);

myDlgFindont.add(LTfontSize);

myDlgFindont.add(TFfontDemo);

myDlgFindont.setSize(300,200);

myDlgFindont.setLocation(300,200);

myDlgFindont.setResizable(false);

myDlgFindont.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

myDlgFindont.show(false);

}

}); //為字體對話框窗體注冊事件監(jiān)聽

//=============end set font dialog

// =======set Edit frame設(shè)置編輯器窗休

myFrm.add(myText,BorderLayout.CENTER);

myFrm.setSize(500,400);

myFrm.setBackground(Color.lightGray);

myFrm.addWindowListener(this);

myFrm.setSize(500,400);

myFrm.setLocation(200,100);

myFrm.setTitle("Java編輯器");

}

//************************************************

//founction name:displayEdit()

//parameter :none

//attribute :public

//founction :initial and display the frame

//************************************************

public void displayEdit(){ //顯示窗體

myFrm.setVisible(true);

//---------------------- auto save ---------------------

VTtime = new Timer(true);

VTtime.schedule(new java.util.TimerTask(){

public void run(){

if(VSmyFileName!=null){

save(VSmyFileName+".java");

VSmyBFileName=VSmyFileName+".bak";

} //添加自動保存功能

save(VSmyBFileName);

}

}, VImin*60*1000,VImin*60*1000);

//parament 1 the task

//parament 2 when to start the task

//parament 3 set the interval time }

//****************************************************

// class name :KeyEvents

// implements :ActionListener

// extends :KeyAdapter

// attribute :default

// founction :implement the mouse and key action

//*****************************************************

class KeyEvents extends KeyAdapter implements ActionListener{

//********************************************************

//founction name:actionPerformed()

//parameter :none

//attribute :public

//return :void

//founction :realize the key action in the menu

//*********************************************************

public void actionPerformed(ActionEvent e){

//完成菜單事件的功能

// File Menu

if (e.getActionCommand()=="新建"){

//remind you

JFrame aFrame=new JFrame();

aFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JOptionPane optionPane=new JOptionPane();

String choices[]={"是","否","取消"};

int n=optionPane.showOptionDialog(aFrame,"文件正文已更改,是否保存更改","文本編輯器",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE,null,choices,choices[0]);

//保存文件后新建

if(n==0){//若文件存在,保存在原文件中,再新建文件

try{

if(VFmyFile.exists()){

save(VSmyFileName); // call the save founction

myText.setText("");

VIindex++;

}

else{//若文件不存在,則保存后再新建

myFDlg=new FileDialog(myFrm,"保存文件",FileDialog.SAVE);

myFDlg.setFile(VSmyFileName);

myFDlg.show();

VSmyFileName=myFDlg.getDirectory()+myFDlg.getFile();

save(VSmyFileName);

myText.setText("");

VIindex++;

}

}

catch(Exception ne){}

}

//不保存文件新建

if(n==1){

myText.setText("");

VIindex++;

}

//取消新建

if(n==0){return;}

}

//打開菜單 Open Menu

if (e.getActionCommand()=="打開") {

myFDlg=new FileDialog(myFrm,"打開",FileDialog.LOAD);

myFDlg.show();

if (myFDlg.getFile()!="") {

VFmyFile=new File(myFDlg.getDirectory()+myFDlg.getFile());

VSmyFileName=myFDlg.getDirectory()+myFDlg.getFile();

if( VFmyFile.exists()){

try{

FileReader fr=new FileReader(VFmyFile);

BufferedReader br=new BufferedReader(fr);

String text;

myText.setText("");

while ((text=br.readLine())!=null)

myText.append(text+"\r\n");

br.close();

fr.close();

}

catch(IOException ioe){

VStitle="提示";

VSmessage="打開文件出錯";

JOptionPane.showMessageDialog(myFrm,VSmessage,VStitle,VItype);

}

}

}

}

//保存菜單 Save Menu

if (e.getActionCommand()=="保存"){

myFDlg=new FileDialog(myFrm,"保存文件",FileDialog.SAVE);

myFDlg.setFile(VSmyFileName);

myFDlg.show();

VSmyFileName=myFDlg.getFile();

if(VSmyFileName!=null){

VSmyFileName=myFDlg.getDirectory()+myFDlg.getFile();

save(VSmyFileName);

}

}

//另存為菜單 SaveAs Menu

if (e.getActionCommand()=="另存為"){

myFDlg=new FileDialog(myFrm,"文件另存為",1);

myFDlg.setFile(VSmyFileName);

myFDlg.show();

VSmyFileName=myFDlg.getFile();

if(VSmyFileName!=null){

VSmyFileName=myFDlg.getDirectory()+myFDlg.getFile();

save(VSmyFileName);

}

}

//退出菜單 exit Menu

if (e.getActionCommand()=="退出")

System.exit(0);

//編輯 Edit Menu

if (e.getActionCommand()=="剪切"){

//Cut

String text =myText.getSelectedText();

StringSelection selection = new StringSelection(text);

myCB.setContents(selection, null);

myText.replaceRange("",myText.getSelectionStart(),myText.getSelectionEnd());

}

if (e.getActionCommand()=="復(fù)制"){

//copy

String text=myText.getSelectedText();

if(text!=null){

StringSelection selection=new StringSelect

急求 日歷記事本課程設(shè)計(jì)報告 java編寫

日歷記事本課程設(shè)計(jì)報告

java編寫

/*

說明:主程序

*/

import

java.util.Calendar;

import

javax.swing.*;

import

java.awt.*;

import

java.awt.event.*;

import

java.io.*;

import

java.util.Hashtable;

public

class

CalendarPad

extends

JFrame

implements

MouseListener

{

int

year,month,day;

Hashtable

hashtable;

File

file;

JTextField

showDay[];

JLabel

title[];

Calendar

日歷;

int

星期幾;

NotePad

notepad=null;

Month

負(fù)責(zé)改變月;

Year

負(fù)責(zé)改變年;

String

星期[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

JPanel

leftPanel,rightPanel;

public

CalendarPad(int

year,int

month,int

day)

{

leftPanel=new

JPanel();

//左邊日歷...........

JPanel

leftCenter=new

JPanel();

JPanel

leftNorth=new

JPanel();

leftCenter.setLayout(new

GridLayout(7,7));

rightPanel=new

JPanel();

this.year=year;

this.month=month;

this.day=day;

負(fù)責(zé)改變年=new

Year(this);

負(fù)責(zé)改變年.setYear(year);

負(fù)責(zé)改變月=new

Month(this);

負(fù)責(zé)改變月.setMonth(month);

title=new

JLabel[7];

showDay=new

JTextField[42];

for(int

j=0;j7;j++)

{

title[j]=new

JLabel();

title[j].setText(星期[j]);

title[j].setBorder(BorderFactory.createRaisedBevelBorder());

leftCenter.add(title[j]);

}

........

看下是不是收到了啊

額外人提問

急!Java 題庫維護(hù)系統(tǒng)課程報告

import?java.io.BufferedReader;

import?java.io.BufferedWriter;

import?java.io.File;

import?java.io.FileReader;

import?java.io.FileWriter;

import?java.io.IOException;

import?java.text.SimpleDateFormat;

import?java.util.ArrayList;

import?java.util.Date;

import?java.util.List;

import?java.util.Scanner;

public?class?Main?{

public?static?final?String?DATE_FORMAT?=?"MM月dd日";

private?static?final?Scanner?scanner?=?new?Scanner(System.in);

public?static?ListItem?itemList?=?null;

private?static?final?String?itemPath?=?"d:/item.txt";

public?static?int?total;

private?static?int?current=1;

public?static?void?main(String[]?args)?{

try?{

process();

}?catch?(IOException?e)?{

e.printStackTrace();

}

}

private?static?void?init()?throws?IOException?{

itemList?=?ItemReaderWriter.readItemsFromFile(itemPath);

total?=?itemList.size();

}

private?static?void?process()?throws?IOException?{

show();

String?c?=?getInput();

while?(!c.equals("a")??!c.equals("i")??!c.equals("d")??!c.equals("l"))?{

System.err.println("輸入錯誤!請輸入a/i/d/l");

process();

}

if?("a".equals(c))?{

aOperation();

}

else?if?("i".equals(c))?{

iOperation();

}

else?if?("d".equals(c))?{

dOperation();

}

else?if?("l".equals(c))?{

lOperation();

}

}

private?static?void?print(String...?msg)?{

if?(msg?!=?null??msg.length??0)?{

System.out.println(msg[0]);

}

else?{

System.out.println();

}

}

private?static?String?getDateNow()?{

SimpleDateFormat?sdf?=?new?SimpleDateFormat(DATE_FORMAT);

return?sdf.format(new?Date());

}

private?static?void?show()?{

print("/********************************************************/");

String?dateStr?=?getDateNow();

print("題庫維護(hù)系統(tǒng)???今天"+dateStr+"..........");

print("請選擇相關(guān)操作:");

print("1.添加題目??按鍵盤字符(a)");

print("2.導(dǎo)入題目??按鍵盤字符(i)");

print("3.刪除題目??按鍵盤字符(d)");

print("4.顯示題目??按鍵盤字符(l)");

print("/********************************************************/");

}

private?static?void?aOperation()?throws?IOException?{

init();

print("***********************************************************");

print("添加題目,題庫已有試題"+total+"條,當(dāng)前錄入第"+current+"條");

print("***********************************************************");

print("請輸入題目:");

String?title?=?(total+1)?+?"."?+?getInput();

print("請輸入選項(xiàng)A:");

String?a?=?"A."?+?getInput();

print("請輸入選項(xiàng)B:");

String?b?=?"B."?+?getInput();

print("請輸入選項(xiàng)C:");

String?c?=?"C."?+?getInput();

print("請輸入選項(xiàng)D:");

String?d?=?"D."?+?getInput();

Item?item?=?new?Item(title,a,b,c,d);

System.out.println(item);

ItemReaderWriter.writeToFile(item,?itemPath);

total?+=?1;

current?+=?1;

print("輸入成功,否繼續(xù)輸入?(y/n)");

String?s?=?getInput();

if?("y".equals(s))?{

aOperation();

}

else?{

process();

}

}

private?static?void?iOperation()?throws?IOException{

init();

print("請輸入需要導(dǎo)入題庫文件路徑:");

String?path?=?getInput();

File?f?=?new?File(path);

if?(!f.exists())?{

throw?new?IOException("不是一個有效的路徑!");

}

else?{

try?{

ItemReaderWriter.importToFile(itemPath,path,?total);

print("題庫導(dǎo)入成功!");

}?catch?(Exception?e)?{

System.err.println("題庫導(dǎo)入失?。??+?e.getMessage());

e.printStackTrace();

}

}

process();

}

private?static?void?dOperation()?throws?IOException?{

init();

print("***********************************************************");

print("刪除題目");

print("***********************************************************");

print("請輸入所需刪除題號:");

String?numStr?=?getInput();

int?num?=?0;

try?{

num?=?Integer.valueOf(numStr);

ItemReaderWriter.deleteByNum(itemPath,num);

print("刪除試題成功!");

}?catch?(NumberFormatException?e)?{

System.err.println("輸入的不是有效的題號!");

e.printStackTrace();

}?catch?(IOException?ee)?{

System.out.println("刪除題目失敗!"?+?ee);

ee.printStackTrace();

}

process();

}

private?static?void?lOperation()?throws?IOException?{

init();

print("***********************************************************");

if?(itemList?==?null?||?itemList.size()?==?0)?{

print("目前題庫中沒有題目!");

return;

}

print("目前題庫中共有"?+?itemList.size()?+?"道試題!");

for?(int?i=0;iitemList.size();i++)?{

Item?item?=?itemList.get(i);

print(item.getTitle());

print(item.getA());

print(item.getB());

print(item.getC());

print(item.getD());

print();

}

print("***********************************************************");

process();

}

private?static?String?getInput()?{

String?cstr?=?scanner.next();

while?(cstr?==?null?||?cstr.trim().length()?==?0)?{

print("請輸入內(nèi)容!");

cstr?=?scanner.next();

}

return?cstr;

}

}

final?class?ItemReaderWriter?{

//?假定題目的格式如下:

//?題目表述:

//?選項(xiàng)A:

//?選項(xiàng)B:

//?選項(xiàng)C:

//?選項(xiàng)D:

//?1道題有5行組成

public?static?ListItem?readItemsFromFile(String?filePath)?throws?IOException?{

File?f?=?new?File(filePath);

if?(!f.exists())?{

f.createNewFile();

}

ListItem?itemList?=?new?ArrayListItem();

BufferedReader?br?=?new?BufferedReader(new?FileReader(filePath));

String?line?=?null;

while?((line?=?br.readLine())?!=?null)?{

//?標(biāo)題

String?title?=?line;

//?選項(xiàng)A

String?a?=?line?=?br.readLine();

//?選項(xiàng)B

String?b?=?line?=?br.readLine();

//?選項(xiàng)C

String?c?=?line?=?br.readLine();

//?選項(xiàng)D

String?d?=?line?=?br.readLine();

Item?item?=?new?Item(title,a,b,c,d);

itemList.add(item);

//?空行,每題之間空一行

line?=?br.readLine();

}

return?itemList;

}

public?static?synchronized?void?writeToFile(Item?item,String?filePath)?throws?IOException?{

FileWriter?fw?=?new?FileWriter(filePath,true);

if?(Main.itemList?!=?null??Main.itemList.size()?=?0)?{

//?空行,題目之間空一行

fw.write("\n\n");

}

//?標(biāo)題

fw.write(item.getTitle());

fw.write("\n");

//?選項(xiàng)A

fw.write(item.getA());

fw.write("\n");

//?選項(xiàng)B

fw.write(item.getB());

fw.write("\n");

//?選項(xiàng)C

fw.write(item.getC());

fw.write("\n");

//?選項(xiàng)D

fw.write(item.getD());

fw.close();

}

public?static?void?importToFile(String?itemPath,String?filePath,int?total)?throws?IOException?{

BufferedReader?br?=?new?BufferedReader(new?FileReader(new?File(filePath)));

String?line?=?null;

while?((line?=?br.readLine())?!=?null)?{

//?標(biāo)題

String?title?=?line;

if?(title.matches("^\\d+.*$"))?{

title?=?title.replaceFirst("\\d+",?"");

title?=?(++total)?+?title;

}

//?選項(xiàng)A

String?a?=?line?=?br.readLine();

//?選項(xiàng)B

String?b?=?line?=?br.readLine();

//?選項(xiàng)C

String?c?=?line?=?br.readLine();

//?選項(xiàng)D

String?d?=?line?=?br.readLine();

Item?item?=?new?Item(title,a,b,c,d);

writeToFile(item,?itemPath);

//?讀取下一個空行

line?=?br.readLine();

}

br.close();

}

public?static?synchronized?void?deleteByNum(String?filePath,int?num)?throws?IOException?{

ListItem?itemList?=?readItemsFromFile(filePath);

boolean?find?=?false;

if?(itemList?!=?null??itemList.size()??0)?{

for?(Item?item?:?itemList)?{

if?(item.getTitle().startsWith(Integer.toString(num)))?{

find?=?true;

itemList.remove(item);

break;

}

}

}

else?{

System.out.println("題庫中沒有試題");

}

if?(find)?{

BufferedWriter?bw?=?new?BufferedWriter(new?FileWriter(new?File(filePath)));

for?(int?i=0;iitemList.size();i++)?{

Item?item?=?itemList.get(i);

//?標(biāo)題

String?title?=?item.getTitle();

title?=?title.replaceFirst("\\d+",?"");

title?=?(i+1)?+?title;

bw.write(title);

bw.write("\n");

//?選項(xiàng)A

bw.write(item.getA());

bw.write("\n");

//?選項(xiàng)B

bw.write(item.getB());

bw.write("\n");

//?選項(xiàng)C

bw.write(item.getC());

bw.write("\n");

//?選項(xiàng)D

bw.write(item.getD());

if?(i?!=?itemList.size()?-?1)?{

bw.write("\n\n");

}

}

bw.close();

}

}

}

class?Item?{

private?String?title;

private?String?a;

private?String?b;

private?String?c;

private?String?d;

public?Item()?{

}

public?Item(String?title,String?a,String?b,String?c,String?d)?{

this.title?=?title;

this.a?=?a;

this.b?=?b;

this.c?=?c;

this.d?=?d;

}

public?String?getTitle()?{

return?title;

}

public?void?setTitle(String?title)?{

this.title?=?title;

}

public?String?getA()?{

return?a;

}

public?void?setA(String?a)?{

this.a?=?a;

}

public?String?getB()?{

return?b;

}

public?void?setB(String?b)?{

this.b?=?b;

}

public?String?getC()?{

return?c;

}

public?void?setC(String?c)?{

this.c?=?c;

}

public?String?getD()?{

return?d;

}

public?void?setD(String?d)?{

this.d?=?d;

}

@Override

public?String?toString()?{

return?"Item?[title="?+?title?+?",?a="?+?a?+?",?b="?+?b?+?",?c="?+?c

+?",?d="?+?d?+?"]";

}

}

Java課程設(shè)計(jì)報告模板及范文的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于Java課程設(shè)計(jì)實(shí)驗(yàn)報告模板、Java課程設(shè)計(jì)報告模板及范文的信息別忘了在本站進(jìn)行查找喔。

掃描二維碼推送至手機(jī)訪問。

版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。

本文鏈接:http://m.landcheck.net/post/5382.html

“Java課程設(shè)計(jì)報告模板及范文(Java課程設(shè)計(jì)實(shí)驗(yàn)報告模板)” 的相關(guān)文章

網(wǎng)站優(yōu)化的作用(網(wǎng)站優(yōu)化的幾種方法)

網(wǎng)站優(yōu)化的作用(網(wǎng)站優(yōu)化的幾種方法)

本篇文章給大家談?wù)劸W(wǎng)站優(yōu)化的作用,以及網(wǎng)站優(yōu)化的幾種方法對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、網(wǎng)站優(yōu)化有什么用? 2、企業(yè)網(wǎng)站優(yōu)化的作用有哪些? 3、關(guān)于網(wǎng)站SEO優(yōu)化有哪些好處? 4、企業(yè)網(wǎng)站優(yōu)化的作用有哪些 5、網(wǎng)站優(yōu)化的目的是什么? 網(wǎng)站...

ps模板免費(fèi)素材下載(PS素材免費(fèi)下載)

ps模板免費(fèi)素材下載(PS素材免費(fèi)下載)

本篇文章給大家談?wù)刾s模板免費(fèi)素材下載,以及PS素材免費(fèi)下載對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、在哪里可以下載最新免費(fèi)的PS素材模板和相冊設(shè)計(jì)教程 2、PS有哪些免費(fèi)的素材網(wǎng)站? 3、哪里有PS免費(fèi)的PSD模板 在哪里可以下載最新免費(fèi)的PS素材模板和...

企業(yè)vi設(shè)計(jì)都包括什么(公司vi設(shè)計(jì)是什么)

企業(yè)vi設(shè)計(jì)都包括什么(公司vi設(shè)計(jì)是什么)

今天給各位分享企業(yè)vi設(shè)計(jì)都包括什么的知識,其中也會對公司vi設(shè)計(jì)是什么進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、企業(yè)VI設(shè)計(jì)包括哪些部分 2、VI設(shè)計(jì)包括哪些內(nèi)容? 3、企業(yè)VI設(shè)計(jì)全套方案包括哪些內(nèi)容 4、vi設(shè)計(jì)包括哪些內(nèi)容都有哪部分...

layui支持移動端嗎(layui適配移動端)

layui支持移動端嗎(layui適配移動端)

今天給各位分享layui支持移動端嗎的知識,其中也會對layui適配移動端進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、談開發(fā)和用戶體驗(yàn)(1) 2、前端最近流行的框架都有哪些? 3、layui框架有幾個核心文件 4、easyui,layui和...

dw網(wǎng)頁制作圖片居中代碼(dw設(shè)置圖片居中的代碼)

dw網(wǎng)頁制作圖片居中代碼(dw設(shè)置圖片居中的代碼)

今天給各位分享dw網(wǎng)頁制作圖片居中代碼的知識,其中也會對dw設(shè)置圖片居中的代碼進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、DW8如何讓表格內(nèi)的背景圖片居中顯示 2、dreamweaver怎么把圖片放在頁面的中間位置 3、DW里怎么能讓網(wǎng)頁打開自適...

網(wǎng)站設(shè)計(jì)與制作(網(wǎng)頁網(wǎng)站設(shè)計(jì)與制作)

網(wǎng)站設(shè)計(jì)與制作(網(wǎng)頁網(wǎng)站設(shè)計(jì)與制作)

今天給各位分享網(wǎng)站設(shè)計(jì)與制作的知識,其中也會對網(wǎng)頁網(wǎng)站設(shè)計(jì)與制作進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、網(wǎng)頁設(shè)計(jì)與制作 2、網(wǎng)頁設(shè)計(jì)與制作專業(yè)就業(yè)方向? 3、怎么學(xué)習(xí)網(wǎng)頁設(shè)計(jì)與制作 4、網(wǎng)頁設(shè)計(jì)與制作技術(shù)應(yīng)該注意點(diǎn)什么? 網(wǎng)頁設(shè)計(jì)與制作...