云南农职 - 互联网技术学院 - 美和易思大一SCME JAVA高级结业考试机试试题
目录
一、语言和环境
- 实现语言:Java。
- 开发工具:eclipse。
- 使用技术:IO流+网络编程+多线程
二、实现功能
本系统要求实现易购商城的登录页面、首页面和购物车页面,具体实现功能如下:
1、文件复制功能(IO)
需求介绍:通过IO流技术点实现将文件从D盘根目录下复制到“D://java高级/answer”文件中;文件夹必须通过代码实现创建;
实现步骤:
(1)从FTP中下载“一剪梅.txt”文件,复制存放到D盘根目录下(D://)。

(2)创建FileCopyUtil类,使用IO流编写代码,通过代码实现文件的复制功能;
(3)使用代码在D盘下创建多级文件夹(D://java高级/answer; 注:无代码创建不计分);

(4)通过执行编写的代码块,将D盘下的“一剪梅.txt”文件复制到新创建好的“answer”文件夹中(注:无代码创建不计分);

2、消息接受站建设
需求介绍:分别编写客户端和服务端,客户端程序从控制台输入,敲击enter(回车)健发出消息,服务端接收消息并打印输出在服务端控制台;假如有100万个客户端同时发送消息给服务端,服务端需要从控制台打印输出100万条消息,为了提高效率,需要使用线程完成服务端代码;
实现步骤:
(1)通过ServerSocket创建服务端,端口号为8088;同时打印输出:“消息接受模式已启动”;

(2)使用while循环和多线程满足庞大客户量(客户端)所发出消息的接受,并以字符串打印输出在服务端控制台(注:需要注明是谁发出的消息,名字为:学生本人真实姓名;只需要一条信息即可,但必须通过多线程实现);

(3)通过new Socket("127.0.0.1",8088)创建客户端;实现从控制台发出消息,由于客户端每次只是发出一条消息,所以不需要使用线程,但需要在控制台打印输出(例如:您好,小王(注:你的真实名字)!您已连接成功!);

三、评分标准
| 题目一:文件复制功能 | ||
| 该评分标准如下: | ||
| 15 | 通过代码创建多级目录(D://java高级/answer) | |
| 35 | 创建FileCopyUtil类实现复制功能 | |
| 2 | 类名正确 | |
| 30 | 在类中添加main方法,启动完成文件的复制 | |
| 3 | 代码工整,命名规范 | |
| 小计 | 50分 | |
| 题目二:消息接受站建设 消息接受站平台建 消息接受站平台建设 消息接受站平台建设 | ||
| 该评分标准如下: | ||
| 20 | 客户端:正确创建客户端,并实现客户端的输入输出流 | |
| 30 | 服务端 | |
| 20 | 创建线程类,编写方法(输入流),转化为字符串并打印输出在控制台中 | |
| 8 | 创建服务端,在循环中启动多线程,实现消息的接受功能 | |
| 2 | 代码工整,命名规范 | |
| 小计 | 50分 | |
| 合计 | 100分 | |
四、实现代码
1、文件复制功能(IO)
package file.copy;
import java.io.File;
public class CreateFile {
	public static void main(String[] args) {
		//创建多级目录
		File file = new File("D://java高级/answer");
		file.mkdirs();
		if (file.exists()) {
			System.out.println("文件已创建!");
		}
	}
}
package file.copy;
import java.io.File;
public class FileCopy {
	public static void main(String[] args) {
		//调用复制文件的方法
		FileCopyUtil fileCopyUtil = new FileCopyUtil();
		fileCopyUtil.copyFile("D://一剪梅.txt", "D://java高级/answer/一剪梅.txt");
	}
}
package file.copy;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCopyUtil {
	//文件输入流
	private FileInputStream inputStream;
	//文件输出流
	private FileOutputStream outputStream;
	//文件的内容长度
	private static int length;
	/**
	 * 复制文件的方法
	 * @param beginFile 起始文件的路径(被复制的文件地址)
	 * @param endFile   目标文件的路径(被粘贴文件的质地)
	 */
	public void copyFile(String beginFile,String endFile) {
		if (beginFile!=null&&endFile!=null) {
			try {
				//根据文件路径创建输入输出流对象
				inputStream=new FileInputStream(beginFile);
				outputStream=new FileOutputStream(endFile);
				try {
					//根据输入流对象获取需要复制的文件长度
					length = inputStream.available();
					//声明字节数据并定义空间大小
					byte[] by=new byte[length];
					//使用输入流将数据以字节的形式储存在by字节数组
					inputStream.read(by);
					//使用输出流将数据输出到目标文件(endFile)
					outputStream.write(by);
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}finally {
					try {
						inputStream.close();
						outputStream.close();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}
2、消息接受站建设
package message;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketServer {
	public static void main(String[] args) throws IOException {
		ServerSocket server = new ServerSocket(8088);
		System.out.println("消息接受模式已启动...");
		//定义初始上线人数为0
		while (true) {
			Socket socket = server.accept();
			//线程启动
			new Thread(new ServerThread(socket)).start();
		}
	}
}
package message;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
public class ServerThread implements Runnable{
	public Socket socket;
	public ServerThread(Socket socket) {
		super();
		this.socket = socket;
	}
	@Override
	public void run() {
		// TODO Auto-generated method stub
		try {
			BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
			while (true) {
				String readLine = bufferedReader.readLine();
				System.out.println(readLine);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
package message;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketServer {
	public static void main(String[] args) throws IOException {
		ServerSocket server = new ServerSocket(8088);
		System.out.println("消息接受模式已启动...");
		//定义初始上线人数为0
		while (true) {
			Socket socket = server.accept();
			//线程启动
			new Thread(new ServerThread(socket)).start();
		}
	}
}
云南农职 - 互联网技术学院 - 美和易思大一SCME JAVA高级结业考试机试试题的更多相关文章
- 美和易思 · 「云农职互联网技术学院」HTML+CSS 做西普尼金表官网
		假期作业,好久没碰了,代码写得很烂......写博客纯属记录! 源代码下载地址:https://download.csdn.net/download/weixin_44893902/12805555 ... 
- 云南农业职业技术学院 - 互联网技术学院 - 美和易思《MYSQL 高级查询与编程》 综合机试试卷
		数据库及试题文档下载:https://download.csdn.net/download/weixin_44893902/14503097 目录 题目:电商平台 mysql 数据库系统管理 一. 语 ... 
- HTML5 +Java基础 大一结业认证考试试题 - 云南农业职业技术学院 - 互联网技术学院 - 美和易思校企合作专业
		第1题 [单选题][0.33分][概念理解] 关于java中的逻辑运算符,下列说法正确的是 逻辑运算符||.&&.!都是用于连接两个关系表达式</p> 当&&am ... 
- Java高级大一结业认证考试试题 - 云南农业职业技术学院 - 互联网技术学院 - 美和易思校企合作专业
		第1题 .关于XML的文档结构描述错误的是 一个基本的XML文档通常由序言和文档元素两部分组成 XML文档中的序言可以包括XML声明.处理指令和注释 XML文档中的元素以树形结构排列 XML文档的声 ... 
- 「物流跟踪管理系统」 · Java Swing + MySQL JDBC开发,美和易思结业考试机试试题
		目录 文档说明: 一.语言和环境 二.技术要求 三.功能要求 四.数据库设计 五.具体要求及推荐实现步骤 六.注意事项 实现代码: 一.数据库 二.Java Swing com.ynavc.Bean ... 
- 美和易思 - JAVA开发&移动互联网 阶段性教学效果检测考试机试试题【题目:维护洗衣店消费项数据】
		一. 语言和环境 1. 实现语言:Java 语言. 2. 环境要求:Eclipse 或 Myeclipse+MySQL. 二. 功能需求 利用 Java Swing 和 JDBC 技术维护洗衣店消费项 ... 
- 云南农业职业技术学院 / 互联网技术学院官网 HTML5+CSS3
		HTML学完后写了,有小组成员参与开发,我只写了主页,那就只贴主页的代码出来了. 作为初学者,代码写得不太好,写博客纯属记录!有问题望指导! 码云开源仓库地址:https://gitee.com/yn ... 
- 《MYSQL高级查询与编程》综合机试试卷 - 云南农职美和易思
		题目:银行mysql数据库系统管理 目录 题目:银行mysql数据库系统管理 一.语言和环境 二.题目(100分): 功能需求: 要求: 三.提交方式 四.评分标准: 五.实现代码: 创建表结构: 插 ... 
- 云南农职《JavaScript交互式网页设计》 综合机试试卷①——实现购物车的结算
		一.语言和环境 实现语言:javascript.html.css. 开发环境:HBuilder. 二.题目2(100分) 1.功能需求: 马上过节了,电商网站要进行促销活动,需要实现该商城购物车的商品 ... 
随机推荐
- 【swift】长按事件绑定,平移滑动事件+坐标获取
			为何把这两个事件归类在一起? 我后来才明白,iOS有一个手势事件(UiGestureRecognizer) 事件里有7个功能,不过我只试过前两个,也就是标题的这两个(长按.平移滑动) UILongPr ... 
- go channel 概述
			精髓 将资源读进内存-->共享内存,一个个进程/线程进行处理,这是常见模式.go channel 是一种直接在进程/线程之间传递资源的方式,即以通信来共享内存.这便是go的精髓. 扩展-一些名词 ... 
- malloc() vs new
			Following are the differences between malloc() and operator new. (1)new calls constructors, while ma ... 
- MyBatis(1):实现MyBatis程序
			一,MyBatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ... 
- Linux 易错小结
			修改文件夹(递归修改)权限 chmod -R 777 /html Linux查看进程的4种方法 第一种: ps aux ps命令用于报告当前系统的进程状态.可以搭配kill指令随时中断.删除不必要的程 ... 
- HashMap、ConcurrentHashMap对比
			1.hashmap的put的原理,hashmap的扩容及计算槽的算法,线程安全的hashtable.ConcurrentHashMap的区别是什么 1.1 hashMap的put原理 什么时候变成红黑 ... 
- python中的虚拟环境(在jupyter和pycharm中的使用)
			1.通过anaconda新建虚拟环境 创建虚拟环境:conda create -n your_env_name python=3.6 激活虚拟环境:activate your_env_name(虚拟环 ... 
- 联盛德 HLK-W806 (八): 4线SPI驱动SSD1306/SSD1315 128x64 OLED液晶屏
			目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ... 
- 30个类手写Spring核心原理之AOP代码织入(5)
			本文节选自<Spring 5核心原理> 前面我们已经完成了Spring IoC.DI.MVC三大核心模块的功能,并保证了功能可用.接下来要完成Spring的另一个核心模块-AOP,这也是最 ... 
- < 转>Java 反射机制浅析
			一.什么是反射: 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力.这一概念的提出很快引发了计算机科学领 域关于应用反射性的研究.它首先被程序 ... 
