JAVA程序设计作业题

上传人:公**** 文档编号:513611210 上传时间:2023-11-07 格式:DOC 页数:9 大小:147.50KB
返回 下载 相关 举报
JAVA程序设计作业题_第1页
第1页 / 共9页
JAVA程序设计作业题_第2页
第2页 / 共9页
JAVA程序设计作业题_第3页
第3页 / 共9页
JAVA程序设计作业题_第4页
第4页 / 共9页
JAVA程序设计作业题_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《JAVA程序设计作业题》由会员分享,可在线阅读,更多相关《JAVA程序设计作业题(9页珍藏版)》请在金锄头文库上搜索。

1、JAVA程序设计作业题要求在第7周的周末之前上交作业,其余时间不受理。作业以电子版的形式上交。可以交给助教或者老师,必须留学号,班级,姓名,联系电话,邮件地址信息。对于每个程序要有简单的文字说明。程序要求是可以运行的。编程的有效代码量(不包括注释,空行等)要达到6000行以上,否则没有成绩。以下是作业要求:1. 编写程序实现单链表,要提供插入,删除,排序,统计等功能,链表节点中的数据要求是整数。DONE2. 定义直线类,并提供判断两条直线是否相交等功能。DONE3. 编写程序实现将BASE64编码和解码功能,将UNICODE字符串“中国”编码为BASE64格式的数据,并解码。4. 打印所有3位

2、的水仙花数,水仙花数是指其各位数字的立方和等于其自身,例如153=1*1*1 + 5*5*5 + 3*3*35. 随机产生7个1至35之间(包括1和35)的不重复整数,并排序输出。6. 输出某个整数数组的最大值和最小值。7. 11/17的小数点后第1000位是几?8. 判断某字符串内容是否是合法的EMAIL地址。条件为必须包含唯一一个字符,该字符不是首字符也不是尾字符。9. 求fibonacci数列第100项的值。fibonacci数列的第一项的值为1,第二项的值也为1,第三项以后的值为其前两项的和。要求使用循环和递归的方法来实现。10. 【多线程,文件传输】编写程序实现文件服务功能。运行命令

3、:java FTServer java FTClient host put adir|afilejava FTClient host get例如:该命令实现将当前文件夹下面的a.txt文件上传到该命令实现将c:testb.pdf文件上传到运行该命令,在控制台输出该文件夹下的子文件(不包括子目录下的子文件),假定,在c:test文件夹下有文件a1.doc,a2.doc,b1.pdf,b2.pdf,以及子文件夹abc那么运行上面的命令,程序输出:1:a1.doc2:a2.doc3:b1.pdf4:b2.pdfplease input your choice: 比如用户输入数字2,那么将a2.doc

4、上传到服务器,然后退出,如果用户输入a那么将文件全部上传,当然,不用上传子文件夹下面的子文件,也就是说abc子文件夹下面的文件当然不用上传。如果输入q,那么退出上传过程。java FTClient host get这个命令实现将服务器上的文件下载,运行这个命令后,在控制台输出服务器共享文件夹下的文件列表,例如:1:s1.rar2:resume.doc3:jdk.rar4:jdk6.docplease input your choice:比如可以输入数字2,那么将文件resume.doc从服务器下载文件resume.doc到当前目录,如果输入a,那么下载全部共享文件到当前工作目录。如果输入q,那

5、么退出下载过程。java FTServer运行这个命令,将启动文件共享服务,启动这个程序后,该程序读当前目录下的配置文件,配置文件的名字为server.properties(server.xml)在该配置文件中有如下内容:share=d:abc上面的内容是将服务器上的d:abc文件夹提供文件共享服务,用户可以上传文件到该目录下,也可以从该目录下下载文件。通过配置文件来确定将服务器上的共享文件夹。要求服务器必须支持并发服务。大家可以选择使用线程池技术,也可以不用线程池。但是多用户并发访问功能必须提供。大家注意建模的合理性,可复用性,可扩展性。为将来把它作成具有GUI功能的程序作好准备。11. 【

6、与数据库的交互】加载数据到数据库,分别把一个文本文件,XML文件,EXCEL文件,来自于某个网络计算机的内容加载到数据库中。数据可以是一个文本文件,比如a.txt,内容如下将这个文件中的内容加载到某个数据库的student表中该表的建表语句是:create table(id varchar(9) not null, name varchar(50) not null, age integer not null, java integer not null, email varchar(20) not null, primary key(id);关于字段的解释不给出了,大家看英文单词就明白什么意

7、思.需要自己去选择一个数据库,上机环境中安装了mysql, 实在不会用的话,可以使用access数据库。比如students.xml001张三002李四最后,加载的数据甚至可以是从网络中的其它主机发送过来的数据。加载过程中,可以添加任意的数据处理功能(系统的灵活性,扩展性要注意)比如:1,求平均成绩 2,打印输出不及格的同学的名字 3,给不及格的同学发送补考通知。大家要自己去网上下载JavaMail,现成的程序包,里面有MAIL API处理数据库使用JDBC技术,处理EXCEL文件使用POI,或者JXLexcel文件自己去做一个,用来测试。JAVA处理XML可以使用JDK自带的类库,也可以使用

8、JDOM等其他工具类。12. 【swing类 GUI编程】编写交通信号灯的程序.要求, 设计信号灯组件. 该组件提供信号的红,绿,黄三种信号显示输出.在窗口中应该有启动按钮,停止按钮. 并且有时间设置功能. 设置三种状态的显示时间.可供参考的类有:java.awt包中CanvasButtonTextFieldFrame有能力的同学还可以实现支持信号灯的点击事件, 例如,用鼠标点击红灯, 那么红灯立刻亮,然后再进入到定时三种信号的转换输出.13. 对一个文本文件(只包含英文字母和标点符号),写出基于霍夫曼编码的压缩和解压缩程序。【done】14. (队列)要实现两个通用的队列,这两个队列支持下面

9、两个操作:boolean offer(Object value); /返回 true,如果插入成功Object poll(); /返回第一个对象,或者返回空 ,如果队列为空注意,本次作业中实现的队列和标准的队列略有不同。本次作业中的队列有如下两个性质: 1.任何提供给offer的空值都应该被舍弃掉,而不是添加到队列的后面,并且offer应该返回false表示插入失败。 2.如果要插入的值已经在队列中存在了,那么这个值就不应该再次被插入到队列中去,并且offer应该返回false。在第一个类中,你应该使用一个链表去实现这个队列,并且这个队列可以增长到任何需要的大小。在第二个类中,需要用一个数组去

10、实现这个队列,在本次作业中这个队列的大小应该为10,并且不会改变。为了实现第一个队列,你需要使用一个通用的Node类,用来存储链表中的节点。在第二个类中,数组大小是固定的,不应该被改变。在你的主函数中,测试的时候是使用的String来测试的,可以将String输入到这个队列中,然后打印在队头的String,插入一个空值(通过命令null),或者是退出程序(命令quit)。任何其他的String都应该被放到队尾,通过调用offer方法。15. 分隔符匹配【DOWN】背景编译器经常需要检查程序的语法错误,但是缺失一个符号的情况频繁出现,比如花括号或者注释符的缺失等等,会导致编译器忽略上百行的代码而

11、找不到真正的语法错误。 这种情况下检查分隔符是否匹配的程序将是一个有用的工具,也就是说,每一个右花括号,方括号,圆括号都必须匹配一个左花括号,方括号,圆括号。比如,序列() 是合法的,但是() 就是错误的. 很明显为此写一个很大的程序是不值得的,不过有这么一个工具确实会使检验变得容易很多。描述可以用栈来实现一个简单的算法。 申请一个空栈,依次从文件中读字符直到文件结尾。如果这个字符是开的(即起始的,如左括号),将其压入栈中,如果是闭的(即结束的,如右括号),则查看栈是否为空,如果为空,则报错。否则看栈项元素是否与其匹配,如果不匹配,报错。否则,弹出栈底元素。读到文件结尾的时候,如果栈不为空,则

12、报错。 除了括号的匹配,还有考虑注释符(“/*/”)的匹配。如果出现一个“/*”,接下来的所有字符全被忽略,直到“*/”出现。如果文件结束的时候也没有出现“*/”,报错。程序处理的部分内容如下图所示任务为了完成此次任务,你需要自定义Stack类,除了进栈出栈等操作,还要封装分隔符的匹配功能。可以通过数组或者链表来实现。从命令行参数得到文件名,即预检验的文件名,然后使用此文件名调用delimiterMatching函数。16. 稳定排序VS不稳定排序前提: 应该已经掌握如下技能 Sorting 了解冒泡,选择,插入,希尔排序 Complexity 基本的渐进分析 目标: 加深对基本排序算法的理解

13、及复杂度的分析. 结果: 成功完成此次任务学生的收获如下. 进一步了解冒泡,选择,插入,希尔排序 进一步熟悉排序算法的复杂度分析 了解稳定排序与非稳定排序间的区别背景稳定排序指的是无论给定的初始数据如何,其进行的操作都是一样的。而不稳定排序则相反,它十分依赖初始数据。这样,稳定排序在最好情况,最坏情况,及平均情况下的复杂度是一样的,而不稳定排序在最坏情况和平均情况下的复杂度却相差甚远. 描述此任务需要说明稳定排序与不稳定排序在运行时间上的不同. 此次任务你需要先实现上面提到的四种排序,函数名称分别为Bubblesort, Insertionsort, Selestsort,Shellsort. 为了测试这四种算法的复杂度,你需要自己初始化预排序的数据。分别考虑这四种算法的最好情况,最坏情况和平均情况。对于稳定排序,这三种情况应该是一样的,对于不稳定排序则不同。你需要在main函数中重复的生成初始数据来表现稳定与不稳定排序间的区别。 任务实现上面提到的四个排序算法。并提供测试数据。 17 拼写校验前提: 应该已经掌握如下技能 Hash table 了解哈希表的结构,哈希函数的概念,以及相关操作。 String 基本的字符串处理技能 。 Inheritance 对现有的数据结构在特定的方面进行强化。 目标:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号