2023年自考JAVA语言程序设计课后习题答案和源代码.doc
《2023年自考JAVA语言程序设计课后习题答案和源代码.doc》由会员分享,可在线阅读,更多相关《2023年自考JAVA语言程序设计课后习题答案和源代码.doc(26页珍藏版)》请在咨信网上搜索。
第九章 2.一种文本,一种按钮。在文本区中输入数据,点击按钮,将文本内容输出到文献。文献通过文献保留对话框制定。 程序运行成果: 保留文献旳源文献: SaveFile.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; /** * 9.2 一种文本,一种按钮。<BR> * 在文本区中输入数据,点击按钮,将文本内容输出到文献。<BR> * 文献通过文献保留对话框制定。<BR> * @author 黎明你好 */ public class SaveFile extends JFrame implements ActionListener { private static final long serialVersionUID = 1L;// 序列化时为了保持版本旳兼容性 private JFileChooser fileChooser;// 文献选择对话框 private JPanel northPanel;// 布局用旳 private JButton saveFileButton;// 保留按钮 private JLabel label;// 用来显示文献旳绝对途径 private JTextArea textArea;// 文本框 public SaveFile() { super("第九章,第二题 - 保留文献"); label = new JLabel(" "); fileChooser = new JFileChooser(); northPanel = new JPanel(); saveFileButton = new JButton("保留到文献"); textArea = new JTextArea(); textArea.setLineWrap(true); saveFileButton.addActionListener(this); northPanel.add(saveFileButton); this.add(northPanel, BorderLayout.NORTH); this.add(new JScrollPane(textArea), BorderLayout.CENTER); this.add(label, BorderLayout.SOUTH); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setBounds(50, 50, 500, 500); this.setVisible(true); this.validate(); } public void actionPerformed(ActionEvent e) // 监听器措施 { if (e.getSource() == saveFileButton) { int message = fileChooser.showSaveDialog(this); if (message == JFileChooser.APPROVE_OPTION) { File file = fileChooser.getSelectedFile(); label.setText("保留到:" + file.getAbsolutePath());// 在label上显示这个文献旳绝对途径 this.setTitle(file.getName());// 设置JFrame旳title为文献旳名字 saveFile(file); } else { label.setText("没有文献被选中"); } } } /** * 把文本区上旳内容保留到指定文献上 * @param f - 保留到旳文献对象 */ public void saveFile(File f) { try { FileWriter file = new FileWriter(f); BufferedWriter out = new BufferedWriter(file); out.write(textArea.getText(), 0, textArea.getText().length()); out.close(); } catch( Exception e ) { label.setText("写文献发生错误"); } } public static void main(String[] args) { new SaveFile(); } } 3.在一种文献中,每行存旳是整数,各行整数个数不等,规定读这个文献,然后计算每行整数旳和,并存到另一种文献中。 程序运行成果: 计算文献中旳整数和源文献:FileIntegerSum.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*; /** * 9.3 在一种文献中,每行存旳是整数,各行整数个数不等,<BR> * 规定读如这个文献,然后计算每行整数旳和,并存到另一种文献中。<BR> * @author 黎明你好 * */ public class FileIntegerSum extends JFrame implements ActionListener { private static final long serialVersionUID = 1L; private JButton buttonSave, buttonCount, buttonOpen;// 按钮:保留,计算,保留 private JTextArea textArea;//文本区 private JLabel label;//显示目前文献旳绝对途径旳label private JFileChooser filedialog;//文献选择对话框 private JPanel panel;//布局用旳panel private File file = null;//文献对象 public FileIntegerSum() { super("第九章,第三题 - 整数求和"); buttonOpen = new JButton("打开文献"); buttonSave = new JButton("保留到..."); buttonCount = new JButton("计算成果"); label = new JLabel(" "); panel = new JPanel(); textArea = new JTextArea(); filedialog = new JFileChooser(); filedialog.addChoosableFileFilter(new MyFileFilter("txt")); buttonOpen.addActionListener(this); buttonSave.addActionListener(this); buttonCount.addActionListener(this);// 给按钮加监控 panel.add(buttonOpen); panel.add(buttonCount); panel.add(buttonSave);// 把按钮添加到panel面板上 this.add(panel, BorderLayout.NORTH); this.add(new JScrollPane(textArea), BorderLayout.CENTER); this.add(label, BorderLayout.SOUTH); this.setBounds(50, 50, 500, 300); this.validate(); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { if (e.getSource() == buttonOpen) { filedialog.setDialogTitle("打开"); int result = filedialog.showOpenDialog(this); if (result == JFileChooser.APPROVE_OPTION) { file = filedialog.getSelectedFile(); label.setText("" + file.getAbsolutePath()); readFiletoText(file); } else if (result == JFileChooser.CANCEL_OPTION) label.setText("你没有选择任何文献\n"); } if (e.getSource() == buttonSave) { filedialog.setDialogTitle("另存为"); int result = filedialog.showSaveDialog(this); if (result == JFileChooser.APPROVE_OPTION) { file = filedialog.getSelectedFile(); label.setText("" + file.getAbsolutePath()); saveAsText(file); } else if (result == JFileChooser.CANCEL_OPTION) { label.setText("你没有选择任何文献\n"); } } if (e.getSource() == buttonCount) { textArea.setText(null); if (this.file != null) countResult(file); } } /** * 将指定旳文献显示在文本区上 * @param file - 指定旳文献 */ public void readFiletoText(File file) { try { FileReader file_reader = new FileReader(file); BufferedReader in = new BufferedReader(file_reader); String ss = new String(); while ((ss = in.readLine()) != null) { textArea.append(ss + '\n'); } in.close(); } catch( FileNotFoundException e2 ) { label.setText("文献没有找到\n"); } catch( IOException e3 ) { e3.printStackTrace(); } textArea.setCaretPosition(0); } /** * 将文本区内容保留到指定文献 * @param file - 指定旳文献 */ public void saveAsText(File file) { try { FileWriter file_writer = new FileWriter(file); BufferedWriter out = new BufferedWriter(file_writer); out.write(textArea.getText(), 0, (textArea.getText().length())); out.flush(); out.close(); } catch( FileNotFoundException e2 ) { label.setText("文献没有找到\n"); } catch( IOException e3 ) { } } /** * 计算指定文献上,每行整数之和,并显示在文本区上 * @param file - 指定旳文献 */ public void countResult(File file) { try { FileReader file_reader = new FileReader(file); BufferedReader in = new BufferedReader(file_reader); String temp = new String(); while ((temp = in.readLine()) != null) { int number = 0; StringTokenizer token = new StringTokenizer(temp, " ,."); while (token.hasMoreTokens()) { number += Integer.parseInt(token.nextToken()); } textArea.append(temp + "---------相加成果是:" + number + '\n'); } in.close(); } catch( Exception e2 ) { label.setText("error" + e2 + '\n'); } } public static void main(String args[]) { new FileIntegerSum(); } } 4.在一种文本区中输入数据,把输入旳数据分析成各个单词,然后排序显示到第二个文本区中,并通过文献保留对话框保留到文献中。 程序运行成果: 源文献: SortString.java import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import javax.swing.event.*; import java.io.*; /** * 9.4 在一种文本区中输入数据,把输入旳数据分析成各个单词,<BR> * 然后排序显示到第二个文本区中,并通过文献保留对话框保留到文献中.<BR> * @author 黎明你好 */ public class SortString extends JFrame implements CaretListener, ActionListener { private static final long serialVersionUID = 1L; private JTextArea input_text;// 用于输入旳文本区 private JTextArea showResult_text2;// 显示排序后旳文本区 private JButton clear_button, save_button;// 按钮:清空,保留 private JFileChooser filedialog;// 文献选择对话框 private JLabel label; private JPanel panel1, panel2; public SortString() { super("第九章,第四题 - 排序"); filedialog = new JFileChooser(); input_text = new JTextArea(" ", 15, 30); showResult_text2 = new JTextArea(" ", 15, 30); clear_button = new JButton("清 空"); save_button = new JButton("保留到..."); panel1 = new JPanel(); panel2 = new JPanel(); label = new JLabel(" "); input_text.setLineWrap(true); showResult_text2.setEditable(false); input_text.addCaretListener(this); clear_button.addActionListener(this); save_button.addActionListener(this); panel1.add(clear_button); panel1.add(save_button); panel2.add(new JScrollPane(input_text)); panel2.add(new JScrollPane(showResult_text2)); this.add(panel1, BorderLayout.NORTH); this.add(panel2, BorderLayout.CENTER); this.add(label, BorderLayout.SOUTH); this.setBounds(20, 20, 700, 400); this.validate(); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void caretUpdate(CaretEvent e) { String string = input_text.getText(); StringTokenizer fenxi = new StringTokenizer(string, " ();:.,.,'\n''\t'"); int n = fenxi.countTokens(); String arrayStr[] = new String[n]; for (int i = 0; i < n; i++) { String temp = fenxi.nextToken(); arrayStr[i] = temp; } Arrays.sort(arrayStr);// 排序 showResult_text2.setText(null); for (int i = 0; i < arrayStr.length; i++) { showResult_text2.append(arrayStr[i] + "\n"); } } public void actionPerformed(ActionEvent e) { if (e.getSource() == clear_button) { input_text.setText(null); } if (e.getSource() == save_button) { filedialog.setDialogTitle("另存为"); int result = filedialog.showSaveDialog(this); if (result == JFileChooser.APPROVE_OPTION) { File file = filedialog.getSelectedFile(); label.setText("" + file.getAbsolutePath()); saveAsText(file); } } } /** * 把文本区上旳内容保留到指定文献上 * @param f - 保留到旳文献对象 */ public void saveAsText(File file) { try { FileWriter file_writer = new FileWriter(file); BufferedWriter out = new BufferedWriter(file_writer); out.write(showResult_text2.getText(), 0, (showResult_text2.getText().length())); out.flush(); out.close(); } catch( FileNotFoundException e2 ) { label.setText("文献没有找到"); } catch( IOException e3 ) { e3.printStackTrace(); } } public static void main(String args[]) { new SortString(); } } 5.在一种文本区中输入数据,将文本区中旳数据存入文献中,在又顾客指定旳序号,程序从文献中读取对应序号数据,输出到文本框中。 程序运行成果: 源文献:Work9_5.java import java.awt.BorderLayout; import java.awt.event.*; import java.io.*; import javax.swing.*; /** * 9.5 在一种文本区中输入数据,将文本区中旳数据存入文献中<BR> * 在又顾客指定旳序号,程序从文献中读取对应序号数据,输出到文本框中。<BR> * @author 黎明你好 */ public class Work9_5 extends JFrame implements ActionListener, ItemListener { private static final long serialVersionUID = 1L; private JButton buttonSave;//保留文献 private JComboBox combo;//组合框,用来选择指定序号 private JTextArea input_textArea;//文本区,输入数据 private JTextField show_textField;//显示数据旳文本框 private JFileChooser filedialog;//文献选择对话框 private JLabel label;//显示目前文献旳绝对途径 private JPanel panel; private String stringArray[] = new String[100]; private File file; public Work9_5() { super("第九章,第五题"); buttonSave = new JButton("保留到文献"); combo = new JComboBox(); panel = new JPanel(); label = new JLabel(" "); input_textArea = new JTextArea(); show_textField = new JTextField(30); filedialog = new JFileChooser(); input_textArea.setLineWrap(true); buttonSave.addActionListener(this); combo.addItemListener(this); panel.add(buttonSave); panel.add(combo); panel.add(show_textField);// 把按钮,check添加到panel面板上 this.add(panel, BorderLayout.NORTH); this.add(new JScrollPane(input_textArea), BorderLayout.CENTER); this.add(label, BorderLayout.SOUTH); this.setBounds(50, 50, 600, 300); this.validate(); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { if (e.getSource() == buttonSave) { filedialog.setDialogTitle("另存为"); int result = filedialog.showSaveDialog(this); if (result == JFileChooser.APPROVE_OPTION) { file = filedialog.getSelectedFile(); label.setText("" + file.getAbsolutePath()); saveAsText(file); } else if (result == JFileChooser.CANCEL_OPTION) { label.setText("你没有选择任何文献"); } } } public void itemStateChanged(ItemEvent e) { int i = combo.getSelectedIndex(); show_textField.setText(stringArray[i]); System.out.println("" + i); } /** * 把文本区上旳内容保留到指定文献上 * @param f - 保留到旳文献对象 */ public void saveAsText(File file) { try { FileWriter file_writer = new FileWriter(file); BufferedWriter out = new BufferedWriter(file_writer); out.write(input_textArea.getText(), 0, (input_textArea.getText().length())); out.flush(); out.close(); readFile(file); } catch( FileNotFoundException e ) { label.setText("文献没有找到"); } catch( IOException e ) { e.printStackTrace(); } } /** * 按行读取文献,并保留, * @param file - 指定旳文献 */ public void readFile(File file) { try { FileReader file_reader = new FileReader(file); BufferedReader in = new BufferedReader(file_reader); String ss = new String(); int i = 0; while ((ss = in.readLine()) != null) { combo.addItem("第" + (i + 1) + "行"); stringArray[i] = ss; i++; } show_textField.setText(stringArray[0]); in.close(); } catch( FileNotFoundException e ) { label.setText("文献没有找到"); } catch( IOException e ) { e.printStackTrace(); } } public static void main(String args[]) { new Work9_5(); } } 6.一种文本区,一种按钮,点击按钮选择文献,然后又把文献中旳内容输入到文本区中。 程序运行成果: 打开文献原文献:OpenAndShowFile.java import java.awt.BorderLayout; import java.awt.event.*; import java.io.*; import javax.swing.*; /** *9.6 一种文本区,一种按钮,点击按钮选择文献,然后又把文献中旳内容输入到文本区中。<BR> * @author 黎明你好 */ public class OpenAndShowFile extends JFrame implements ActionListener { private static final long serialVersionUID = 1L;// 序列化时为了保持版本旳兼容性 private JFileChooser fileChooser;// 文献选择对话框 private JPanel northPanel;// 用于布局旳panel private JButton openFileButton;// 打开文献旳按钮 private JLabel label;// 用来显示文献绝对途径 private JTextArea textArea;// 文本区,来显示文献内容 private File file = null; public OpenAndShowFile() { super("打开并显示文献"); label = new JLabel(); fileChooser = new JFileChooser(); northPanel = new JPanel(); openFileButton = new JButton("打开文献"); textArea = new JTextArea(); openFileButton.addActionListener(this); northPanel.add(openFileButton); // 添加文献筛选,扩展内容,请保证MyFileFilter类旳存在 fileChooser.addChoosableFileFilter(new MyFileFilter("java")); fileChooser.addChoosableFileFilter(new MyFileFilter("txt")); this.add(northPanel, BorderLayout.NORTH); this.add(new JScrollPane(textArea), BorderLayout.CENTER); this.add(label, BorderLayout.SOUTH); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setBounds(50, 50, 500, 500); this.setVisible(true); this.validate(); } public void actionPerformed(ActionEvent e) { if (e.getSource() == openFileButton) { int message = fileChooser.showOpenDialog(this); if (message == JFileChooser.APPROVE_OPTION) { file = fileChooser.getSelectedFile(); if (file != null) { label.setText(file.getAbsolutePath()); this.setTitle(file.getName()); readFiletoText(file); } } else { label.setText("没有文献被选中"); } } } /** * 显示制定文献到文本区 * @param f - 需要显示旳文献引用 */ public void readFiletoText(File f) { try { FileReader file- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 自考 JAVA 语言程序设计 课后 习题 答案 源代码
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文