华南理工大学Java语言程序设计课堂作业答案(8)

2019-01-07 18:13

2. 对比Java提供的Stack, 两者有啥区别 3. 使用Stack栈实现\行编辑器\

设立一个输入行冲区, 接受用户逐行的输入, 处理后回显正确的信息

逐行处理过程如下:

有两个特殊字符用来修改该行的错误信息, '#'表示之前一个字符错误, 请删除, '@'表示之前字符全部错误, 请删除前面的全部

示例:

whli##ilr#e(s#*s) -> while(*s)

outcha@putchar(*s=#++); -> putchar(*s++);

MyStack.java package mystack;

/**

* @author 电子商务一班 俞国峰 200930671251 */

public class MyStack {

//currentSize用来记录当前栈中元素个数 private int currentSize; private Object[] Mylist;

//构造函数,创建空栈 public MyStack() {

Mylist = new Object[10]; currentSize = 0;

}

//当数组长度不够时,增加数组长度(每次增加一倍) public void enLargeSize() { }

Object[] tempList = new Object[Mylist.length * 2];

System.arraycopy(Mylist, 0, tempList, 0, Mylist.length); Mylist = tempList;

//判断栈是否为空

public boolean empty() { }

return currentSize == 0;

//入栈

public void push(Object o) { if (currentSize >= Mylist.length) { enLargeSize(); } }

//出栈,返回栈顶元素 public Object pop() { }

//获取栈顶元素

public Object peek() { if (currentSize == 0) { }

}

return null; if (currentSize == 0) { return null; }

currentSize--;

if (currentSize + 1 >= Mylist.length) { enLargeSize(); }

return Mylist[currentSize + 1]; Mylist[currentSize] = new Object(); Mylist[currentSize] = o; currentSize++;

return Mylist[currentSize - 1];

//获取栈大小,返回栈中元素个数 public int getSize() { }

return currentSize;

//清空栈

public void clearAll() { }

//重载toString(),以字符串形式返回栈中元素 @Override

public String toString() {

Mylist = new Object[10]; currentSize = 0;

}

}

String tempString = \

for (int i = 0; i < currentSize; i++) { tempString += Mylist[i].toString(); }

return tempString;

testMyStack.java package mystack;

/**

* @author 电子商务一班 俞国峰 200930671251 */

import java.util.*;

public class testMyStack {

public static void main(String[] args) {

MyStack msk = new MyStack();

Scanner sc = new Scanner(System.in); String input = \

System.out.println(\

\\nYou

may

enter

in:

enter 'exit' or 'EXIT' to exit!\ System.out.println(\example: outcha@putchar(*s=#++);\

System.out.println(\

while (!(input = sc.next()).equalsIgnoreCase(\ char[] charr = input.toCharArray();

System.out.print(\

for (int i = 0; i < charr.length; i++) {

System.out.print(charr[i]); switch (charr[i]) { case '#':

msk.pop(); break;

case '@': msk.clearAll(); break;

}

}

}

}

}

default :

msk.push(charr[i]); break;

System.out.println(\

System.out.print(\

homework11 多线程和网络通信 2011-05-07 21:59

1. 实现UDP模式的客户端和服务器端通信

2. 使用两个线程: 一个线程负责发送消息, 一个线程负责收取并发送消息,两线程间使用LinkedList共享数据

Server.java

package _yu_guo_feng; /*

* @author 电子商务一班 俞国峰 200930671251 *

* 功能:c/s结构,实现基于UDP的聊天功能(包括用户上线提醒,群聊,私聊) * 说明:先开启服务器,再接入客户端(可接入1至多个) * 未完善:服务器多开异常处理,下线提醒 */

import java.awt.*; import javax.swing.*; import java.io.*; import java.net.*;

import java.text.*; import java.util.*;

public class Server extends JFrame {

private static final long serialVersionUID = 3497147855119919874L; private JTextArea jta; //保存当前用户

private LinkedList sclient;

private DatagramSocket socket;

private DatagramPacket sendPacket, recevicedPacket; private byte[] buf;

//日期处理

private SimpleDateFormat sdf;

public static void main(String[] args) { }

new Server();

public Server() {

String

introduction

QQ 730

=

寝室版

\ + \欢迎使用 腾讯=================\\n\

+ \+ \使用说明:\\n\+ \运行服务器\\n\+ \接入客户端(可接入多个)\\n\

+ \功能:上线提醒、群聊和私聊\\n\ + \作者:电子商务一班——俞国峰——200930671251========\\n\ + \

try {

socket = new DatagramSocket(8888); } catch (SocketException e) { e.printStackTrace();

jta = new JTextArea(introduction);

this.setIconImage((new ImageIcon(\this.setTitle(\腾讯QQ 730寝室版——服务器\this.add(jta, BorderLayout.CENTER); this.setSize(400, 300); this.setResizable(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocationRelativeTo(null); this.setVisible(true);

sclient = new LinkedList(); //指定时间表示模式

sdf = new SimpleDateFormat(\


华南理工大学Java语言程序设计课堂作业答案(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(第三版)新视野大学英语读写教程1答案前六单元

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: