今天给各位分享Java课程设计报告模板及范文的知识,其中也会对Java课程设计实验报告模板进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、《Java》期末课程设计
- 2、求《java课程设计》制作
- 3、谁教教我怎么写JAVA的课程设计论文
- 4、跪求JAVA课程设计!!!
- 5、急求 日历记事本课程设计报告 java编写
- 6、急!Java 题库维护系统课程报告
《Java》期末课程设计
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("出现异常,程序退出!");
}
}
}
求《java课程设计》制作
可以使用百度Hi告知我
有时间可以解决你的问题
类似的要求也可以告知我
谁教教我怎么写JAVA的课程设计论文
目 录
一、概要设计……………………………………………………………3
二、程序整体设计说明…………………………………………….…..4
三、程序部分源代码及注释…………………………………………….9
四、测试结果………………………………………………………….24
五、设计心得…………………………………………………………25
六、致 谢…………………………………………………………25
七、参考文献…………………………………………………………25
【摘 要】该程序是一个图形界面的java文档编辑器,其界面主要采用了awt包, 程序实现了文本编辑器的基本功能有:新建文件、打开文件、文件保存、文件另存为、剪切、复制、粘贴、删除、查找/替换、改变字体大小,另外还利用Time类的schedule方法实现了文件的定时自动更新功能,并创建备份文件,由于该编辑器是用的awt包,所以在技术上没有实现将Java的关键字以不同颜色显示功能。
【关键字】java 编辑器
一、概要设计
Java程序编辑器是:图形界面、线程、流与文件等技术的综合应用。
图形界面的实现:考虑到简单、实用、高效等特点,就选择了AWT来完成实现,在选择组件上,文本编辑区就选用了TaxtArea作为主要的部件。
线程实现文件自动保存:在相关的参考书上查阅到在Time类中有一个schedule方法可以在后台自动完成一定的功能,而且调用起来相当简单,于是就用了Time类中的schedule方法来实现文件自动保存及备份功能。
文件操作的实现:利用了字符文件流FileReader和FileWriter类来实现。
由于Java的特性,可能用任何一个编辑器来编辑,于是就将Windows中的记事本作为模仿对象,根据实现情况删减了其中的一些功能,如自动换行,设置字体,打印等功能。
在设计类的时候,考虑到简单明了,就用了两个类,一个主类和一个默认属性类作为程序的整体框架,所有的对象和方法都是在默认属性类中创建和实现的,以及为各组件注册事件监听程序也是在默认属性类中实现的。主类完成对象的实例化及显示。这们设计的优点是:条理清晰,容易理解,容易修改。这样设计的缺点是:不利于共享类中的方法。
二、程序整体设计说明
2.1、程序框架图
2.2、程序中所用类说明
(1)用户自定义类
类名:EditInstantiation
作用:实例化对象
继承的父类:WindowAdapter
主要成员变量:
Frame myFrm // 定义主窗体
TextArea myText // 定义文本编辑区
Dialog myDlgFind,myDlgFindont //查找及设置字体对话框
TextField TFfind, TFreplace, TffontSize
//查找对话框和字体窗体中的文本行
Button BfontOK, Bfind, Breplace, Bnext, Bcancel //定义和创建各按钮
Label Lf, Lr, Ls //定义和创建各标签
MenuBar Mbbar //定义和创建主菜单
Menu Mfile,Medit,Mformation,Mhelp //定义和创建主菜单中的选项
Toolkit toolKit
Clipboard myCB //剪切板对象
FileDialog myFDlg //定义文件对话框
Choice ChfontName //定义和创建字体选择框
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; //实例化一个Time类
private int VImin=1; // schedule方法中的一个时间参数
private int VItype=JOptionPane.INFORMATION_MESSAGE;
//提示对话框类型
private String VStitle; //提示对话框标题
private String VSmessage; //提示对话框信息
private boolean VBchanged = true; //改变字体的一个标识
private int VIfontSizeMin = 8, VIfontSizeMax = 40, VIfontSizeChangedStep = 2; //设置字体大小及步长
主要成员方法:
public void init() //初始化各部件菜单的定义和事件的监听
public void displayEdit ()//显示窗体及调用Time中的schedule方法
public void windowClosing () //关闭窗体
public void save //保存文件方法
a.内部类类名:KeyEvents
作用:实现菜单的事件的响应功能
继承的父类:KeyAdapter
主要成员变量:无
成员方法:actionPerformed()、keyPressed()
b.内部类类名:FindKeyEvent
作用:实现查找中各部件事件的响应功能
继承的父类:无
主要成员变量:无
成员方法:actionPerformed ()
c.内部类类名:fontEvent
作用:实现字体中各部件事件的响应功能
继承的父类:无
主要成员变量:无
成员方法:ItemListener(),ActionListener()
(2)用户自定义类与Java类的继承关系图如下:
自定义类 Java 类
线程使用说明
2.3、实现接口方法
本程序用到的方法有:schedule其方法描述如下:
schedule(事件,启动时间,间隔时间);
2.4、线程应用
本程序为文本编辑器,为实现自动更新,应用到了线程,每隔1分钟对文件进行自动更新
2.5、异常处理说明
(1)打开文件时的异常处理
需要处理的异常:IOException
处理方法:捕获异常后,显示捕获的异常
(2)保存文件时的异常处理
需要处理的异常:IOException
处理方法:捕获异常后,显示捕获的异常
2.6、程序运行效果及存在的问题
(1)程序运行主要界面如下:
a、主界面
b、打开文件对话框
c、保存文件对话框
d、另存为文件对话框
e、查找/替换对话框
f.字体对话框
2.7.程序尚还存在的问题
我花费了近一个多星期的时间,查阅了许多相关的资料,终于把这个Java编辑器,程序基本实现了该课程设计的基本要求。但由于自己水平有限,使得程序还有不是很完善,首先,最重要的一点是该设计的最重要的功能自动改变java关键字的颜色没有实现。
三、程序部分源代码及注释
//****************************************************
// 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{ //默认属性类
//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; //定义字体大小标签
Button BfontOK,BfontCancel; //定义字体大小对话中的确定及取消按钮
Button Bfind=new Button("查找");//定义查找对话中的查找按钮
Button Breplace=new Button("替换");//定义查找对话中的替换及取消按钮
Button Bnext=new Button("下一个");//定义查找对话中的下一个及取消按钮
Button Bcancel=new Button("取消");//定义查找对话中的确定及取消按钮
Label Lf=new Label("查找内容:");
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("复制"));//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("关于作者"));
//----------------- 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);
}});//为查找对话框窗体注册事件监听
TFfind.addKeyListener(new KeyEvents());//注册事件监听
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设置字体对话框
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);
}
}); //为字体对话框窗体注册事件监听
//=============end set font dialog
// =======set Edit frame设置编辑器窗休
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()=="复制"){
//copy
String text=myText.getSelectedText();
if(text!=null){
StringSelection selection=new StringSelect
跪求JAVA课程设计!!!
平时不烧香,到尾来拜佛。有用吗?努力点,干我们这行的并不是吃软饭。
急求 日历记事本课程设计报告 java编写
日历记事本课程设计报告
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
负责改变月;
Year
负责改变年;
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;
负责改变年=new
Year(this);
负责改变年.setYear(year);
负责改变月=new
Month(this);
负责改变月.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 题库维护系统课程报告
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("题库维护系统 今天"+dateStr+"..........");
print("请选择相关操作:");
print("1.添加题目 按键盘字符(a)");
print("2.导入题目 按键盘字符(i)");
print("3.删除题目 按键盘字符(d)");
print("4.显示题目 按键盘字符(l)");
print("/********************************************************/");
}
private static void aOperation() throws IOException {
init();
print("***********************************************************");
print("添加题目,题库已有试题"+total+"条,当前录入第"+current+"条");
print("***********************************************************");
print("请输入题目:");
String title = (total+1) + "." + getInput();
print("请输入选项A:");
String a = "A." + getInput();
print("请输入选项B:");
String b = "B." + getInput();
print("请输入选项C:");
String c = "C." + getInput();
print("请输入选项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("输入成功,否继续输入?(y/n)");
String s = getInput();
if ("y".equals(s)) {
aOperation();
}
else {
process();
}
}
private static void iOperation() throws IOException{
init();
print("请输入需要导入题库文件路径:");
String path = getInput();
File f = new File(path);
if (!f.exists()) {
throw new IOException("不是一个有效的路径!");
}
else {
try {
ItemReaderWriter.importToFile(itemPath,path, total);
print("题库导入成功!");
} catch (Exception e) {
System.err.println("题库导入失败!" + 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("请输入内容!");
cstr = scanner.next();
}
return cstr;
}
}
final class ItemReaderWriter {
// 假定题目的格式如下:
// 题目表述:
// 选项A:
// 选项B:
// 选项C:
// 选项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) {
// 标题
String title = line;
// 选项A
String a = line = br.readLine();
// 选项B
String b = line = br.readLine();
// 选项C
String c = line = br.readLine();
// 选项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");
}
// 标题
fw.write(item.getTitle());
fw.write("\n");
// 选项A
fw.write(item.getA());
fw.write("\n");
// 选项B
fw.write(item.getB());
fw.write("\n");
// 选项C
fw.write(item.getC());
fw.write("\n");
// 选项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) {
// 标题
String title = line;
if (title.matches("^\\d+.*$")) {
title = title.replaceFirst("\\d+", "");
title = (++total) + title;
}
// 选项A
String a = line = br.readLine();
// 选项B
String b = line = br.readLine();
// 选项C
String c = line = br.readLine();
// 选项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);
// 标题
String title = item.getTitle();
title = title.replaceFirst("\\d+", "");
title = (i+1) + title;
bw.write(title);
bw.write("\n");
// 选项A
bw.write(item.getA());
bw.write("\n");
// 选项B
bw.write(item.getB());
bw.write("\n");
// 选项C
bw.write(item.getC());
bw.write("\n");
// 选项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课程设计报告模板及范文的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java课程设计实验报告模板、Java课程设计报告模板及范文的信息别忘了在本站进行查找喔。