Java课程设计报告

上传人:仙*** 文档编号:30674802 上传时间:2021-10-11 格式:DOC 页数:29 大小:281KB
返回 下载 相关 举报
Java课程设计报告_第1页
第1页 / 共29页
Java课程设计报告_第2页
第2页 / 共29页
Java课程设计报告_第3页
第3页 / 共29页
点击查看更多>>
资源描述
湖湖 南南 农农 业业 大大 学学Java 课程设计报告课程设计报告计算器软件设计计算器软件设计学生姓名:学生姓名: 学学 号:号: 年级专业:年级专业:指导老师:指导老师: 学学 院:院:1目目 录录1. 前言前言22概要设计概要设计3 2.1 开发环境开发环境3 2.2 计算器功能计算器功能3 2.3 界面设计界面设计3 2.4 类类 UML 图图43. 详细设计详细设计4 3.1 使用的使用的 JAVA 类的说明类的说明4 3.2 类的主要方法类的主要方法53.2.1 处理按了运算符后的计算处理按了运算符后的计算53.2.2 处理输入字符处理输入字符63.2.3 进制的转换进制的转换63.2.4 设计总体认识设计总体认识73.2.5 程序流程图程序流程图8 4. 运行结果运行结果85. 测试分析测试分析9 5.1 程序运行情况程序运行情况9 5.2 程序异常处理程序异常处理96. 源程序源程序9参考文献参考文献27致致 谢谢272摘要:摘要:该程序是一个图形界面的简单的 java 计算器,具有良好的界面,使用人员能快捷简单地进行操作。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。可以进行简单的四则运算(加、减、乘、除,以及开平方)但仅限于十进制下,还可以进行(八进制,十进制,十六进制)之间的相互转换,八进制最多可以输入 19 位数,十进制最多可以输入 18 位数,十六进制最多可以输入 14 位数,backspace 表示退格, clear 表示初始化,sqrt 表示开平方,界面为灰白对称。关键字:关键字:java、计算器类、方法、事件1 前言前言随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。文本编辑器是个人计算机最司空见惯的应用程序了,在学习了 Java语言之后,我决定使用 Java 语言编写一个简单的计算器,可以实现简单的运算功能,满足日常基本的工作学习和娱乐需要。Java 是由 Sun 公司开发的新一代纯面向对象的网络编程语言。其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。正因为如此,Java 已成为当今 Internet上最流行、最受欢迎的一种程序开发语言。Java 开发小组把 Java 按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。Java 基本版本叫 Java 2 标准版(Java 2 Standard Edition,J2SE),它包含建立 Java 应用程序或者是 Applet 所需的应用程序编程接口(API) 。Java 2 移动版(The Java 2 Mobile Edition,J2ME)包含创建无线 Java 应用程序的 API。还有 Java 2 企业版(The Java 2 Enterprise,J2EE)是 J2SE 的增强版本,包含建立多层架构应用程序 API。Java 语言是由 C+语言发展起而来的,是一种彻底的面向对象的程序设计语言。作为一种纯面向对象的程序设计语言,它非常适合大型软件的开发。Java 语言去掉了 C+语言的一些容易引起错误的特性。Java 语言的特点有:面向对象、跨平台、安全性、多线程和图形功能强。32 概要设计概要设计2.1 开发环境开发环境 开发平台:Microsoft Windows XP Professional Service Pack 2 开发工具:JBuilder 2007 + JDK 1.6.0_022.2 计算器功能计算器功能功能 1:按下数字键在液晶平上会显示数字,这时计算器最基本的功能。 功能 2:在任何时候按下“”键,计算器文本框上的数字置反号。 功能 3:第一次按下“运算”键,再按下数字键,将重新输入第二个数字。再次按下“运 算”键,将算出前两个数字运算的结果,然后按下数字,将又重新输入新的数字。 功能 4:输入数字后,按下“等于”键,将仍输出原来的数 输入运算符和第二个数字后再按下“=”键,将得到二者运算的结果,然后又重复功能 3 和功能 4 。 功能 5:按下清除“C”键,数据被全部清楚。2.32.3 界面设计界面设计图 2.3 计算器面板42.4 类类 UML 图图ArrayStackChar UML 图如图 2.3A 所示:ArrayStackDouble UML 图如图 2.3B 所示图 2.4A 图 2.4B3 详细设计详细设计3.1 计算器使用的计算器使用的 Java 类的说明类的说明类名: This_number_too_big作用: 自定义的异常类,用来处理计算结果溢出 继承的父类: Exception 类 实现的接口: 没有 class This_number_too_big extends Exception /自定义的一个结果溢出异常类5类名: Jsp2003 作用: 主类。继承的父类: Frame 类实现的接口: ItemListener 类,ActionListener 类class Jsp2003 extends Frame implements ItemListener,ActionListener public int number=0,length=18; /number 是用来记录输入的数字个数, /length 是用来设置在不同进制下允许输入的最多数字位数,默认为十进 制 public char mark=n; /设置运算符号为没有即为n,它的值是+-*/ public double data=0; /设置运算数据为零 public char ch; /用来临时存放所按按钮的第一个字符 public boolean Refresh=false; /设置 lab 是否要在输入数据的时候刷新,初始为否 程序的设计参考了 Sun Java 网站里的大量实例,比如 Layout 的使用、Event 的处理、Components 的添加与应用等等。其中:public class NewCalc extends JFrame implements ActionListener语句实现了 ActionListener 接口,因此可以调用 addActionListener(this)方法对按钮进行点击监听,在下面的 public void actionPerformed(ActionEvent e)方法里面对各个点击事件进行处理。3.2 类的主要方法3.2.1 处理按了运算符后的计算: public void js() throws This_number_too_big if (mark=n) mark=ch; / data=Double.parseDouble(lab.getText();Refresh=true; else 6switch (mark) case +: data+=Double.parseDouble(lab.getText(); break; case -: data-=Double.parseDouble(lab.getText(); break; case *: data*=Double.parseDouble(lab.getText(); break; case /: data/=Double.parseDouble(lab.getText(); break; lab.setText(Double.toString(data); mark=ch; Refresh=true; number=lab.getText().length();/ System.out.println(lab.getText();if (dataDouble.MAX_VALUE) throw new This_number_too_big(); 3.2.2 处理输入字符:if(Refresh=true) lab.setText(0); number=0; Refresh=false; if(lab.getText().charAt(0)=0& lab.getText().length()=1) lab.setText(Character.toString(ch); number+; else if(numberlength) number+;lab.setText(lab.getText()+ch); 3.2.3 八进制或十六进制转换成十进制 I:public String goto_10(String s,long l) /参数 s: 是要转换的字符串,由于输入的控制,保证了字符串的合法性; /参数 l: 使用来设置是将 8 进制还是 16 进制转换成 10 进制,它的有7效值为 8 或 16; String str=s; /用来转换的字符串 long j=l; /表示进制 long lg=0,jing=1;/lg 用来记录权乘和,jing 用来记录位权 char cha;/临时记录要转换的字符 for(int i=1;i=str.length();i+) cha=str.charAt(str.length()-i); switch(cha) case 1: lg=lg+1*jing;break; case 2: lg=lg+2*jing;break; case 3: lg=lg+3*jing;break; case 4: lg=lg+4*jing;break; case 5: lg=lg+5*jing;break; case 6: lg=lg+6*jing;break; case 7: lg=lg+7*jing;break; case 8: lg=lg+8*jing;break; case 9: lg=lg+9*jing;break; case A: lg=lg+10*jing;break; case B: lg=lg+11*jing;break; case C: lg=lg+12*jing;break; case D: lg=lg+13*jing;break; case E: lg=lg+14*jing;break; case F: lg=lg+15*jing;break; jing*=j; /位权升一级,为下次使用做好准备 return Long.toString(lg); /end String goto_10() method 83.2.4 设计的总体认识 JAVA 设计的摘要 JAVA 设计的目录结构 JAVA 设计的概要和详细设计 JAVA 设计的版权意识 JAVA 设计需要编译的环境 JAVA 设计的实用性3.2.5 程序流程图程序流程图计算结果显示接受用户输入是否再次计算退出是否处理异常图 3 绘制计算器方法 PAD 图开始选择你要计算运行的进制 10.8.16十六进制八进制默认十进制进制转换刷新94 运行结果运行结果图 4 计算结果显示5 测试分析测试分析5.1 程序运行情况程序运行情况: 程序正常的响应按钮事件,输入的数值长度受变量 length 的限定,进行混合四则运算的时候,结果如果不是很大,可以正常显示,但如果结果很大,就可能采用科学记数方式,这样带来了进制转换时的麻烦,需要特殊的处理科学记数里的 E ,当结果太大的时候,有可能超出可能表示的最大值, (结果溢出) ,这个时候就要对结果进行必要的异常处理,我在输出结果的方法内设置 if 语句,如果结果大于某一个值就抛出一个 This_number_too_big 类型的类,再使用try-catch,捕捉输出结果的方法抛出的异常对象。然后进行,重制归零的处理。 5.2 程序异常处理程序异常处理: 当结果超出 Double.MAX_VALUE 时,将抛出一个 This_number_too_big 类的异常对象,这个是我自定义的一个异常类它继承自 Exception 类,然后使用 try-catch 去捕捉这个异常,异常的处理如下: try 10 js(); catch(This_number_too_big e) lab.setText(0); number=0; mark=n; Refresh=false; System.out.println(The number is too big); /如果出现异常则初始化效果如同 clear 键 6 6 程序清单:程序清单:import java.awt.*;import java.awt.event.*;class This_number_too_big extends Exception / 自定义的一个结果溢出异常类/ ActionLintsner 是所有监听器的父类,其它监听器可以监听的事件都可以被它捕获/ ItemListener 用于捕获带有 item 的组件产生的事件,如ComboBox,CheckBox,RadioButton,ToggleButtonclass hejiang extends Frame implements ItemListener, ActionListener public hejiang() addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dispose();System.exit(0); / 给窗口注册一个事件监听器,当你点了窗口右上方的叉号时,此方法被调用);static hejiang mainFrame = new hejiang(); / 创建一个 mainFramestatic Label lab1 = new Label(0);static Label lab = new Label(0);static Panel pnl1 = new Panel(new GridLayout(4, 3, 3, 3); / 创建新的面板.布局管理11static Panel pnl2 = new Panel(new GridLayout(4, 1, 3, 3);static Panel pnl3 = new Panel(new GridLayout(1, 2, 3, 3);static Panel pnl4 = new Panel(new GridLayout(6, 1, 3, 3);static Button bt9 = new Button(9);static Button bt8 = new Button(8);static Button bt7 = new Button(7);static Button bt6 = new Button(6);static Button bt5 = new Button(5);static Button bt4 = new Button(4);static Button bt3 = new Button(3);static Button bt2 = new Button(2);static Button bt1 = new Button(1);static Button bt0 = new Button(0);static Button btdot = new Button(.);static Button btequ = new Button(=);static Button btadd = new Button(+);static Button btsub = new Button(-);static Button btmul = new Button(*);static Button btdev = new Button(/);static Button btA = new Button(A);static Button btB = new Button(B);static Button btC = new Button(C);static Button btD = new Button(D);static Button btE = new Button(E);static Button btF = new Button(F);static Checkbox ckb8 = new Checkbox(八进制);static Checkbox ckb10 = new Checkbox(十进制);static Checkbox ckb16 = new Checkbox(十六进制);static Button btc = new Button(clear);static Button btt = new Button(backspace);public int number = 0, length = 18;/ number 是用来记录输入的数字个数,length 是用来设置在不同进制下允许输入的最多数字位数,默认为十进制public char mark = n; / 设置运算符号为没有即为n ,它的值是+ - * /public double data = 0; / 设置运算数据为零public char ch; / 用来临时存放所按按钮的第一个字符public boolean Refresh = false;/ 设置 lab 是否要在输入数据的时候刷新,初始为否public static void main(String args) System.out.println(Starting hejiang.);lab.setAlignment(Label.RIGHT); / 对齐方式lab.setBackground(Color.lightGray); / 背景色12lab.setForeground(Color.BLUE); / 前景色lab.setFont(new Font(Serief, Font.BOLD, 18);/ 字体设置lab.setBounds(14, 33, 216, 40);lab1.setAlignment(Label.RIGHT); / 对齐方式lab1.setBackground(Color.lightGray); / 背景色lab1.setForeground(Color.BLUE); / 前景色lab1.setFont(new Font(Serief, Font.BOLD, 18);/ 字体设置lab1.setBounds(14, 75, 216, 40);mainFrame.add(lab);mainFrame.add(lab1);CheckboxGroup grp = new CheckboxGroup();ckb8.setCheckboxGroup(grp);ckb10.setCheckboxGroup(grp);ckb16.setCheckboxGroup(grp);ckb8.setBounds(14, 115, 55, 25); / setBounds()方法是可以设定控件的大小和位置ckb10.setBounds(69, 115, 55, 25);ckb16.setBounds(124, 115, 65, 25);ckb8.setState(false);ckb10.setState(true);ckb16.setState(false);mainFrame.add(ckb8);mainFrame.add(ckb10);mainFrame.add(ckb16);pnl1.setBounds(18, 180, 120, 150);pnl2.setBounds(144, 180, 40, 150);pnl3.setBounds(14, 140, 170, 36);pnl4.setBounds(190, 140, 40, 190);pnl1.add(bt7);pnl1.add(bt8);pnl1.add(bt9);pnl1.add(bt4);pnl1.add(bt5);pnl1.add(bt6);pnl1.add(bt1);pnl1.add(bt2);pnl1.add(bt3);pnl1.add(bt0);pnl1.add(btdot);pnl1.add(btequ);pnl2.add(btadd);pnl2.add(btsub);pnl2.add(btmul);pnl2.add(btdev);13pnl3.add(btt);pnl3.add(btc);pnl4.add(btA);pnl4.add(btB);pnl4.add(btC);pnl4.add(btD);pnl4.add(btE);pnl4.add(btF);btA.enable(false);btB.enable(false);btC.enable(false);btD.enable(false);btE.enable(false);btF.enable(false);mainFrame.add(pnl1);mainFrame.add(pnl2);mainFrame.add(pnl3);mainFrame.add(pnl4);mainFrame.setResizable(false); / 窗口可以最小化和关闭,但是不能被任意改变大小mainFrame.setLayout(null);mainFrame.setSize(240, 350);mainFrame.setTitle(小型计算器);mainFrame.setVisible(true); / 组件可见ckb8.addItemListener(mainFrame);ckb10.addItemListener(mainFrame);ckb16.addItemListener(mainFrame);/ 把事件聆听者向各个组键注册bt1.addActionListener(mainFrame);bt2.addActionListener(mainFrame);bt3.addActionListener(mainFrame);bt4.addActionListener(mainFrame);bt5.addActionListener(mainFrame);bt6.addActionListener(mainFrame);bt7.addActionListener(mainFrame);bt8.addActionListener(mainFrame);bt9.addActionListener(mainFrame);bt0.addActionListener(mainFrame);btadd.addActionListener(mainFrame);btsub.addActionListener(mainFrame);btmul.addActionListener(mainFrame);btdev.addActionListener(mainFrame);btt.addActionListener(mainFrame);btc.addActionListener(mainFrame);14btdot.addActionListener(mainFrame);btequ.addActionListener(mainFrame);btA.addActionListener(mainFrame);btB.addActionListener(mainFrame);btC.addActionListener(mainFrame);btD.addActionListener(mainFrame);btE.addActionListener(mainFrame);btF.addActionListener(mainFrame);/ end main() mothed/ checkbox 事件的处理public void itemStateChanged(ItemEvent e) mark = n;Refresh = false;/ 规定当进制转换时以前输入的运算符失效if (ckb8.getState() = true) btA.enable(false);btB.enable(false);btC.enable(false);btD.enable(false);btE.enable(false);btF.enable(false);bt9.enable(false);bt8.enable(false);btdot.enable(false);btadd.enable(false);btmul.enable(false);btsub.enable(false);btdev.enable(false);btequ.enable(false);/ 在八进制的情况下对有些按件的管理if (length = 18) lab.setText(goto10_8(lab.getText();number = lab.getText().length();if (length = 14) lab.setText(goto_10(lab.getText(), 16L);lab.setText(goto10_8(lab.getText();number = lab.getText().length();/ 将其他进制转换成八进制length = 19;/ 在八进制下允许输入数字个数最多为 19 位15if (ckb10.getState() = true) btA.enable(false);btB.enable(false);btC.enable(false);btD.enable(false);btE.enable(false);btF.enable(false);bt9.enable(true);bt8.enable(true);btdot.enable(true);btadd.enable(true);btmul.enable(true);btsub.enable(true);btdev.enable(true);btequ.enable(true);/ 在十进制的情况下对有些控件的管理if (length = 19) lab.setText(goto_10(lab.getText(), 8L);number = lab.getText().length();if (length = 14) lab.setText(goto_10(lab.getText(), 16L);number = lab.getText().length();if (length = 19) lab1.setText(goto_10(lab1.getText(), 8L);number = lab1.getText().length();if (length = 14) lab1.setText(goto_10(lab1.getText(), 16L);number = lab1.getText().length();length = 18;if (ckb16.getState() = true) btA.enable(true);btB.enable(true);btC.enable(true);btD.enable(true);btE.enable(true);btF.enable(true);bt9.enable(true);bt8.enable(true);btdot.enable(false);16btadd.enable(false);btmul.enable(false);btsub.enable(false);btdev.enable(false);btequ.enable(false);/ 在十六进制的情况下对有些按件的管理if (length = 18) lab.setText(goto10_16(lab.getText();number = lab.getText().length();if (length = 19) lab.setText(goto_10(lab.getText(), 8L);lab.setText(goto10_16(lab.getText();number = lab.getText().length();/ 将其他进制转换成十六进制length = 14;/ 在十六进制下允许输入数字个数最多为 14 位/ end itemStateChanged(ItemEvent e) method/ 按钮事件的处理public void actionPerformed(ActionEvent m) / 鼠标点激就触发事件监听Button btn = (Button) m.getSource();ch = btn.getLabel().charAt(0);deposit(ch);switch (ch) case c: lab.setText(0);number = 0;mark = n;Refresh = false;break;/ 初始化case 1:enter();break;case 2:enter();break;case 3:enter();17break;case 4:enter();break;case 5:enter();break;case 6:enter();break;case 7:enter();break;case 8:enter();break;case 9:enter();break;case 0: if (Refresh = true) lab.setText(0);number = 0;Refresh = false;if (lab.getText().charAt(0) = 0 & lab.getText().length() = 1)break;if (number length) number+;lab.setText(lab.getText() + ch); elsebreak;break;case A:enter();break;case B:enter();break;case C:enter();break;18case D:enter();break;case E:enter();break;case F:enter();break;case .: if (Refresh = true) lab.setText(0);number = 0;Refresh = false;if (lab.getText().indexOf(.) = -1) number+;lab.setText(lab.getText() + ch); elsebreak;break;case b: if (number = 0)break;else if (-number = 0) lab.setText(0);number = 0; else if (number != 1)lab.setText(lab.getText().substring(0, number);elselab.setText(Character.toString(lab.getText().charAt(0);break;case +:try js(); catch (This_number_too_big e) 19lab.setText(0);number = 0;mark = n;Refresh = false;System.out.println(The number is too big);break;/ 如果出现异常则初始化效果如同 clear 键case -:try js(); catch (This_number_too_big e) lab.setText(0);number = 0;mark = n;Refresh = false;System.out.println(The number is too big);break;/ 如果出现异常则初始化效果如同 clear 键case *:try js(); catch (This_number_too_big e) lab.setText(0);number = 0;mark = n;Refresh = false;System.out.println(The number is too big);break;/ 如果出现异常则初始化效果如同 clear 键case /:try js(); catch (This_number_too_big e) lab.setText(0);number = 0;mark = n;Refresh = false;System.out.println(The number is too big);break;/ 如果出现异常则初始化效果如同 clear 键20case =:try js(); catch (This_number_too_big e) lab.setText(0);number = 0;mark = n;Refresh = false;System.out.println(The number is too big);break;/ 如果出现异常则初始化效果如同 clear 键/ end actionPerformed(ActionEvent e) method/ 八进制或十六进制转换成十进制 Ipublic String goto_10(String s, long l)/ 参数 s: 是要转换的字符串,由于输入的控制,保证了字符串的合法性;/ 参数 l: 使用来设置是将 8 进制还是 16 进制转换成 10 进制,它的有效值为 8 或 16;String str = s; / 用来转换的字符串long j = l; / 表示进制long lg = 0, jing = 1;/ lg 用来记录权乘和,jing 用来记录位权char cha;/ 临时记录要转换的字符for (int i = 1; i = 16) ch = lg % 16;k = (int) ch;switch (k) case 10:st = A + st;break;case 11:st = B + st;break;case 12:st = C + st;break;case 13:st = D + st;break;case 14:st = E + st;break;case 15:st = F + st;break;default:st = Long.toString(ch) + st;lg = lg / 16;k = (int) lg;switch (k) case 10:st = A + st;break;case 11:st = B + st;23break;case 12:st = C + st;break;case 13:st = D + st;break;case 14:st = E + st;break;case 15:st = F + st;break;default:st = Long.toString(lg) + st;return st;/ end goto10_16() method/ 十进制转换成八进制?public String goto10_8(String s)/ 参数 s: 是要转换的字符串,由于输入的控制,保证了字符串的合法性;String str = s;if (str.charAt(0) = -) / 如果有负号则出去负号str = str.substring(1, str.length() - 1);if (str.indexOf(E) != -1)/ 如果是科学计数值则出去小数点和 E后面的数str = str.charAt(0) + str.substring(2, str.indexOf(E);if (str.indexOf(.) != -1)/ 如果有小数点则出去小数点及小数点后面的内容str = str.substring(0, str.indexOf(.);lg = Long.parseLong(str);while (lg = j) ch = lg % j;st = Long.toString(ch) + st;lg = lg / j;st = Long.toString(lg) + st;return st;/ end goto10_8() method/ 输入字符public void enter() if (Refresh = true)24/ 如果已经设置了 运算符则在下一次输入数据的时候要把以前 lab 的内容清除掉lab.setText(0);number = 0;Refresh = false;if (lab.getText().charAt(0) = 0 & lab.getText().length() = 1)/ 如果 lab 的内容为 0 则,lab 的内容将被所输入的字符代替,否则直接在 lab 的内容后面加上所输入的字符lab.setText(Character.toString(ch);number+; else if (number Double.MAX_VALUE)/ 如果 data 超过 double 类型的最大值则抛出自定义的一个异常类throw new This_number_too_big();/ end js() methodpublic void answer() throws This_number_too_big / 指定由 method抛出异常if (mark = n) else switch (mark) case +:data += Double.parseDouble(lab.getText();break;case -:data -= Double.parseDouble(lab.getText();break;case *:data *= Double.parseDouble(lab.getText();break;case /:data /= Double.parseDouble(lab.getText();break;lab.setText(Double.toString(data);mark = n;if (data Double.MAX_VALUE) / 如果 data 超过 double 类型的最大值则抛出自定义的一个异常类throw new This_number_too_big();26Refresh = false;number = lab.getText().length();/ end answer() methodString display=;private void deposit(char code)switch (code) case c:display=;break;/ 初始化case +:display=display+code;break;case -:display=display+code;break;case *:display=display+code;break;case /:display=display+code;break;case 1:display=display+code;break;case 2:display=display+code;break;case 3:display=display+code;break;case 4:display=display+code;break;case 5:display=display+code;break;case 6:display=display+code;break;case 7:display=display+code;break;case 8:27display=display+code;break;case 9:display=display+code;break;case A:display=display+code;break;case B:display=display+code;break;case C: display=display+code; break;case D: display=display+code;break;case E:display=display+code;break;case F:display=display+code;break;lab1.setText(display);/ end class hejiang参考文献林良信 Java JDK 6 学习笔记 刘浦迎 谢春 java 程序设计实用教程 科学出版社 张白一 崔尚林 面向对象程序设计java 西安电子科技大学出版社潘浩 李芙玲 Java 程序设计 清华大学出版社致致 谢谢经过一个学期的 JAVA 学习,对 JAVA 编程有了一定的认识,在做这个课程设计的时候,刚开始感觉自己无从下手,不知道该怎么开始,很茫然。最终利用网络资源和查阅图书馆的书籍,在傅老师和同学的指导和讨论下,经过一段时间终于完成了这个设计。当程序运行结束看到弹出的计算器的界面时,感到很欣慰,虽然只是一个小小的东西,但却是自己起步的成就,从中学到了很多书本知识不能体现的东西,对 JAVA 的学习有了一定的兴趣。也通过这次的程序设计感觉到自己平时对于编程实际操作的贫乏,没有把书本上的知识真正的掌握牢固。28
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!