华北科技学院计算机系综合性实验
实 验 报 告
课程名称 Java程序设计B
实验学期 2011 至 2012 学年 第 1 学期
学生所在系部 计算机学院
年级 2009 专业班级 网络B093
学生姓名 学号
任课教师
实验成绩
计算机系制
《Java程序设计B》课程综合性实验报告
开课实验室:基础实验室 2011 年 11 月 16 日
一、实验内容
实验题目:记事本应用程序设计
要求:1.分析WINDOWS“记事本程序”各主要菜单项的功能,画出详细的程序流程图
2.设计完整的UI,并实现“文件”菜单中“新建”“打开”“保存”“另存为”“退出”等 主要菜单项功能
3.将各主要菜单项的程序流程图及主要代码写入实验报告
二、实验过程
1、写出程序的程序流程图,主要是各个功能的程序流程图
新建 打开
N
Y
N YY N
保存 另存
N Y
退出
Y N
2、根据程序流程图写出各个方法,新建,打开,保存,另存,退出。
三、实验结果
(应先列出测试数据,要写明实验的现象,实验数据的处理等。对于实验结果的表述,一般有三种方法:文字叙述(根据实验目的将实验结果系统化、条理化,用准确的专业术语客观地描述实验现象和结果,要有时间顺序以及各项指标在时间上的关系),图表(用表格或坐标图的方式使实验结果突出、清晰,便于相互比较,尤其适合于分组较多,且各组观察指标一致的实验,使组间异同一目了然;每一图表应有表目和计量单位,应说明一定的中心问题),屏幕截图(实验结果也可以是屏幕截图,充分表明实验的实际情况)。在实验报告中,可任选其中一种或几种方法并用,以获得最佳效果。)
1、记事本界面布局
2、功能描述
a、新建:若记事本内容经过修改则提示保存;否则直接初始化记事本
b、打开:选择打开的文件,将文件内容读出,写入记事本
c、保存:若为第一次保存,调用另存函数;否则将文件内容存为新的记事本内容
d、另存:选择另存路径,将记事本内容写入文件
e、退出:若未保存或经过修改,则提示保存,调用保存函数,再退出;否则直接退出
四、讨论与分析
1、实验纠错:
a、实验中,出现打开对话框出现两次的情况,即文件选择之后又弹出对话框,需要再选择一次,但是程序中并未出现两次调用。重新建立工程之后才解决这个错误,不过仍然不知道错误出现在哪里。
实验中,大括号的对应非常重要,应该一一对应,不然很多地方都会报错。应该注意括号的范围。
b、文件都是保存在当前目录下。之前的程序没有保存在当前目录,有些功能就有错,如保存功能不能实现等等。所以后来都换成当前目录打开,保存。
2、实验结果:
实验结果与预期基本一致能实现新建,打开,保存,另存,退出功能。但是功能很混乱,还有很多功能没有实现或者没有考虑到。如,打开就没有再判断是否修改过文件,提示保存。
单个运行各功能问题不大,但连续运行就会出现很多不够严谨的地方。
五、附录:关键代码
以下是记事本程序的主要功能代码:
String str = new String //设了一个全局变量str保存每次功能结束后记事本的内容,便于比较记事本内容是否经过修改。
新建功能:
void New_actionPerformed(ActionEvent e) {
if (! (jTextArea1.getText().equals(str))) {
int i = JOptionPane.showConfirmDialog(null, "文件已经更改,想保存文件吗?", "记事本",
JOptionPane.YES_NO_OPTION);
if (i == JOptionPane.YES_OPTION) {
exit_actionPerformed(e);
}
else if (i == JOptionPane.NO_OPTION) {
jTextArea1.setText("");
this.setTitle("无标题--记事本");
}
}
else {
jTextArea1.setText("");
this.setTitle("无标题--记事本");
}
}
打开功能 :
void open_actionPerformed(ActionEvent e) {
JFileChooser jfc = new JFileChooser(".");
// JFileChooser jfc = null;
File curFile;
int ret = jfc.showOpenDialog(null);
if (ret == jfc.APPROVE_OPTION) {
curFile = jfc.getSelectedFile();
String name = curFile.getName();
this.setTitle(name);
try {
FileReader fr = new FileReader(curFile);
BufferedReader bf = new BufferedReader(fr);
String s = bf.readLine();
jTextArea1.setText(s + "\n");
while (s != null) {
s = bf.readLine();
jTextArea1.getText();
if (s != null) {
jTextArea1.setText(jTextArea1.getText() + "\n" + s);
}
}
}
catch (Exception ex1) {
}
}
str = jTextArea1.getText();
}
保存功能:
void save_actionPerformed(ActionEvent e) {
JFileChooser jfc = new JFileChooser(".");
File file = new File(this.getTitle());
if (! (file.exists())) {
save_as_actionPerformed(e);
}
else {
FileWriter fw = null;
try {
fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(jTextArea1.getText());
if (bw != null) {
bw.close();
}
}
catch (Exception ex) {
}
}
str = jTextArea1.getText();
}
另存功能:
void save_as_actionPerformed(ActionEvent e) {
JFileChooser jfc = new JFileChooser(".");
int ret = jfc.showSaveDialog(this);
if (ret == jfc.APPROVE_OPTION) {
File file = jfc.getSelectedFile();
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter(file));
String buff = jTextArea1.getText();
bw.write(buff);
if (bw != null) {
bw.close();
}
}
catch (Exception ex2) {
}
String name = file.getName();
this.setTitle(name);
}
else {
jTextArea1.setText(jTextArea1.getText());
}
str = jTextArea1.getText();
}
退出功能:
//File | Exit action performed
public void exit_actionPerformed(ActionEvent e) {
String s = new String();
s = jTextArea1.getText();
if (s.equals(str)) {
System.exit(0);
}
else {
int i = JOptionPane.showConfirmDialog(null, "文件已经更改,想保存文件吗?", "记事本",
JOptionPane.YES_NO_OPTION);
if (i == 0) {
save_actionPerformed(e);
}
else {
System.exit(0);
}
}
}
学生实验报告册(理工类)课程名称:JAVA程序设计实验专业班级:M11计算机科学与技术II学生学号:学生姓名:所属院部:XX学院指…
JAVA程序设计实验报告院系专业班级11计算机01班姓名任课教师XXX实验题目JAVA简单记事本程序设计目录目录1一引言211课程…
Java语言基础实验指导报告书20xx20xx年秋季学期使用班级姓名计算机科学与技术学院实验一Java编程开发环境一实验学时1学时…
Java程序设计实验指导报告书目录实验1熟悉Java开发环境2实验2简单的输入输出处理3实验3类的练习6实验4Java图形用户界面…
Java项目开发实训总结设计人:浦江峰班级和班内序号:1132304112项目选题意义:在民营企业、中小型公司高速蓬勃发展的今天,…
Java项目开发实训总结设计人:杨莉莉班级和班内序号:软件11128号项目选题意义:今年来,随着网络的普及,越来越多的企业借用网络…
Java程序设计实训报告实训名称仓库管理系统实训专业计算机应用班级计算机10A1学号姓名指导教师侯丽敏20xx年12月8日实训成绩…
1Java程序设计实训报告班级学号姓名指导教师成绩2实训内容题目1用java语言设计一个关于ATM机的程序并实现相应的功能解题思路…
学生实验报告册(理工类)课程名称:JAVA程序设计实验专业班级:M11计算机科学与技术II学生学号:学生姓名:所属院部:XX学院指…
Java实训设计报告项目名称万年历记事本专业计算机网络技术班级0922学号姓名石家庄科技信息职业学院信息工程系20xx年5月30日…