背景:苦逼大二上学期必修了Java,结果濒临退休的59岁恶魔boss冷酷无情,喝了点假酒下手没轻没重,java实验报告直接给了我们一本书,就是这本《java语言与程序设计实验指导与习题解答》,要求是把1-17章的基础训练到编程题全写了(不写习题解析的题)(别的java老师一般就布置几个实验题让我们写实验报告,毕竟只有8个学时的实验课)
一.实验指导书(非常不错,优点是很经典,缺点是跨度过大,前面的基础练习水的跟狗一样,后面的编程题难的我叫爸爸,而且部分函数已经被淘汰或者更换了,可能会带来一些麻烦。如果从上Java课第一天开始跟着写还是不错的,可惜神仙bossJava课快上完了才给)
二.完成代码见网盘
https://pan.baidu.com/s/118ah4USGw3HWLDbHCBlHAA(含pdf实验指导书)
代码仅供参考,请不要直接搬运(尤其是和我一个班的,不然要一起死liao,记得图片用自己的,要么就干脆不贴图)
建议在自己电脑上跑一遍。
-----------------------------------------------------------------------------------
2018.12.29补充:
https://pan.baidu.com/s/1Bg7hkNIXatzmtwac-7Uk1A
上面这个我重新排版了,弄了高亮看着舒服很多,(不方便复制,因为复制后会给出行号,嘿嘿嘿)弄了目录方便索引,贴了原题目,文档大小12.23MB.....
(16章最后一问,Telnet那题我没弄了,最后弄了个客户端的图片直接交实验报告了,所以那题我的运行结果没有参考价值)
--------------------------------------------------------------------------------------
三.其他
-------------------------------------------------------------------------------------
1.README:
整体环境 Java:eclipse8+jdk1.8 数据库:mysql5.6(我是用wamp一键搭的)
需要导入的包和类——第17章需要导入com.mysql.cj.jdbc.Driver类,它在mysql-connector包里。
做法:详见https://blog.csdn.net/CSUstudent007/article/details/85204827
插入图片——
做法:如果用的JFrame,那直接把图片拖到你在的项目的根目录下面,如下所示:
这里的path是我的图片路径,可以看到我的Test13类是在Experition项目里的,所以图片直接拉到此项目的根目录下就行。如下所示:
如果是用Applet,那么可以调用getImage()来调用图片,其中的参数getCodeBase()获得其二进制返回的url,+图片编号,来以此调用图片,具体图片插入为:
文件打开项目Experition的src文件,找到test3(包,选择你自己的包),然后把图片拉到这里。
跑APPLET——
做法:
eclipse直接一手alt+shift+x +a运行,或者右键run+applet,IDEA直接点运行。
ps:注明一点,继承applet的类必须是public主类。
------------------------------------------------------------------------------------------------
修改和补充
有同学发现applet的音频文件播放不了,之前我也播放不出声音,后来发现其实是我音频文件放错了地方(应该要放在bin目录下)
具体见:
applet无法播放出声音的问题:https://blog.csdn.net/CSUstudent007/article/details/85245525
-------------------------------------------------------------------------------------------------
在命令行上运行代码——
做法:
1.进入项目Experition的src文件夹的包目录里,复制该路径,如此所示:E:\Java eclipse\Experition\src\test3
2.打开命令行,cd 该路径,先javac Client.java编译,再java Client.class 进行运行,后面输入的为命令行参数,比如:
java Client 123321 即输入了一个“123321”的字符串传给了main函数
ps:
在命令行运行项目时,记得要删掉在代码最上面的导入包,比如:把package test3;给注释掉保存后再javac编译和运行
也可以不删package test照样在cmd运行,具体做法见百度,但注释掉是最简单的办法。
关于文件输入输出:
创建.dat二进制文件:新建个txt然后把它后缀给改了,当然前提是你要让文件不隐藏后缀名,具体做法见百度。
所有的额外文件,比如123.txt,321.dat,各种图片,都是可直接放在项目的根目录下(比如Experition),然后重命名后按编号+后缀调用。具体做法参见上面的调用图片做法。
---------------------------------------------------------------------------------------------------------------------------
2.关于第十七章的JDBC编程:
---------------------------------------------------------------------------------------------
2018.12.29 2.1补充:
有人问我为什么代码跑不了,我一问才知道他连mysql数据库都没装......(下过wamp的,bin目录的mysql就是你要的mysql)
连不上数据库解决办法:
连不上数据库的可能:如果报错说与mysql的时间域匹配不上导致连接失败:https://blog.csdn.net/CSUstudent007/article/details/85211014
还有可能是需要配置数据源:https://blog.csdn.net/CSUstudent007/article/details/85207336(有时候你的mysql已经自动配好数据源了,可以不用管这一步)
ps:mysql版本要与你的驱动匹配,一般mysql5.6及以下都是没问题的。
----------------------------------------------------------------------------
2.2这本习题书上的第17章用的是JDBC-ODBC桥连,但从jdk1.8开始,Oracle已经把JDBC-ODBC删了,所以你按照17章的代码跑下来一般是全屏error。
解决方法是:驱动程序改成com.mysql.cj.jdbc.Driver。或者下载jdk1.7及以下版本后,在eclipse选中项目打开properties更改jdk版本。网址见下行:
https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html
2.3 我在写第十七章JDBC时碰到的错误:
2.31关于乱码的:https://blog.csdn.net/CSUstudent007/article/details/85211014
2.32书上代码有误,基础训练1的executeUpdate里他写的createString是错的,少了个右括号,真心坑的一匹。
3.关于第16章java网络编程
3.1它所有用到的DataOutputStream和DataInputStream都是有问题的,因为你可以发现当你输入din.readLine()时,这个语句直接被编译器给划掉了(说明这个库的这个函数已经被删掉淘汰了),所以建议改用为字节流的读入和输出。如下所示:
16章最后一题关于telnet的:win10只能安装telnet客户端,但我们需要的是telnet服务器。
所以要从这个官网下载:http://www.goodtechsys.com/downloadstelnetnt2000.asp
且需要导入org.apache.commons.net.telnet.TelnetClient,即org.apache.commons.net包
镜像下载地址:http://commons.apache.org/proper/commons-net/download_net.cgi
下载common-net-3.6.jar包后通过properities导入到你在用的项目中。
然后你还要把apache服务器导入到eclipse上面去,做法请自行百度。
4.未完待续,后面的会逐渐补充(等我写完汇编实验orz),有问题可以留言。
补充:之前很多链接我都不小心放上了我的编辑文章的链接,只能我自己观看(现已修改)。。。给大家带来了麻烦,不好意思orz