package Chlier;

import Util.Dates;
//客户端端
public class ChlierScorket {
public static void main(String[] args) {
System.out.println("************************************************");
System.out.println("<-----欢迎来到晖哥移动大厅----->");
Dates dates=new Dates();//dates对象
dates.mute();//方法调用
}
}


package Serever;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

import Util.MyTheread;

//服务器端
public class SereverScorket {
public static void main(String[] args) {
try {
//新建端口
ServerSocket socket=new ServerSocket(6666);
while (true) {
//通过while循环使监听重复使用
Socket accept = socket.accept();
System.out.println(“链接成功!”);//提示语句
MyTheread thread=new MyTheread(accept);//建立线程对象
Thread th=new Thread(thread);//线程类型转换
th.start();//开启线程
}
} catch (IOException e) {
e.printStackTrace();
}
}
}


package Util;

import java.io.Serializable;

//服务状态
public class Date implements Serializable{
//服务的属性
private Object obj;//传输对象状态
private boolean yesNo;//传输结果
private String lookUser;//传输内容
private String fangfa;

public Object getObj() {return obj;
}
public void setObj(Object obj) {this.obj = obj;
}
public boolean isYesNo() {return yesNo;
}
public void setYesNo(boolean yesNo) {this.yesNo = yesNo;
}
public String getLookUser() {return lookUser;
}
public void setLookUser(String lookUser) {this.lookUser = lookUser;
}
public String getFangfa() {return fangfa;
}
public void setFangfa(String fangfa) {this.fangfa = fangfa;
}

}


package Util;
//导入包区
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
//功能类
public class Dates {
//属性区
//socket客户端端口
private Socket socket;
//is输入流
private ObjectInputStream ois;
//os输出流
private ObjectOutputStream oos;
//建立date对象
Date date=new Date();
//用户键盘录入
Scanner input=new Scanner (System.in);
//初始化功能
public void inte(){
try {
//连接断开
socket=new Socket(“localhost”, 6666);
//建立io流,使io传输的数据为object类型的数据(可序列化数据)
oos=new ObjectOutputStream(socket.getOutputStream());
ois=new ObjectInputStream(socket.getInputStream());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//菜单功能
public void mute(){
//定义布尔值变量,
boolean yeNo=false;
do {
System.out.println("——————1.开卡\t2.查询\t3.缴费\t4.退出——————");
System.out.println("=请输入服务项=");
String num=input.next();
//通过用户输入的数字进行对应的赋值
if(num.equals(“1”)){
date.setFangfa(“kaika”);
}if(num.equals(“2”)){
date.setFangfa(“lookUser”);
}if(num.equals(“3”)){
date.setFangfa(“andMoeny”);
}
//通过用户输入对应值进行对应的选项
if(num.equals(“1”)){
inte();//方法调用
newId();//方法调用
yeNo=false;//改变布尔值
}else if(num.equals(“2”)){
inte();//方法调用
lookUser();//方法调用
yeNo=false;//改变布尔值
}else if(num.equals(“3”)){
inte();//方法调用
andMoeny();//方法调用
yeNo=false;//改变布尔值
}else if(num.equals(“4”)){
System.out.println(“您已退出,欢迎下次使用!”);
yeNo=false;//改变布尔值
}else{
System.out.println(“您的输入有误,请重新输入!”);
yeNo=true;//改变布尔值
}
} while (yeNo);
}
//开卡
public void newId(){
//获取相应的信息
System.out.println(“请输入您的姓名”);
String name=input.next();
System.out.println(“请输入您的身份证号”);
String UserId=input.next();
User user=new User();
//通过用户输入的身份证号进行判定,如果是进行赋值,如果不是进行调用方法
if(UserId.length()==16){
user.setName(name);
user.setUserId(UserId);
}else{
System.out.println(“您的身份证号有误,请重试!”);
newId();
}
date.setObj(user);//对象赋值
try {
oos.writeObject(date);//通过输出流进行对象发送到服务端
Date dates = (Date) ois.readObject();//读取服务端返回的数据(date类型)
if(dates.isYesNo()){//判断对象的结果
System.out.println(“开卡成功,送您100元话费哦!”);
System.out.println(“您的电话号码是:”+dates.getFangfa());
mute();//调用方法
}else{
System.out.println(“开卡失败!”);
mute();//调用方法
}
ois.close();//刷新关闭流
oos.flush();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//查询
public void lookUser(){
//获取对应的数据
System.out.println(“请输入您的电话号码”);
String UserId=input.next();
User user=new User();
if(UserId.length()==11){//判读电话长度
user.setUserId(UserId);//长度符合要求进行赋值
date.setObj(user);
}else{
System.out.println(“您的电话号码有误,请重试!”);
mute();
}
try {
//向服务端进行发送数据
oos.writeObject(date);
Date dates = (Date) ois.readObject();//读取服务端返回的数据(date类型)
String lookUser = dates.getLookUser();
System.out.println(lookUser);
mute();
ois.close();//关闭刷新流
oos.flush();
oos.close();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public void andMoeny(){
//获取对应数据
System.out.println(“请输入您的电话号码”);
String UserId=input.next();
User user=new User();
System.out.println("************************"+UserId);
if(UserId.length()==11){//判读电话长度
user.setUserId(UserId);
System.out.println(“请输入您的缴费金额:”);
int moeny=input.nextInt();//获取缴费金额
user.setMoeny(moeny);//将数据写入对象
date.setObj(user);
try {
oos.writeObject(date);//将数据对象法送到服务端
oos.flush();
Date dates = (Date) ois.readObject();//读取服务端返回的数据(date)
String obj = (String) dates.getObj();
if(dates.isYesNo()){//判断是否是,并输出内容
System.out.println(obj);
mute();
}else{
System.out.println(obj);
mute();
}
oos.close();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}else{
System.out.println(“您的电话号码有误,请重试!”);
newId();
}

}

}


package Util;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;

import java.util.Iterator;
import java.util.Random;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

//线程类
public class MyTheread implements Runnable {
//线程中存在的属性
private ObjectInputStream ois;//输入流
private ObjectOutputStream oos;//输出流
private Socket socket;//端口
private Element root ;//根节点
private Document document;
private User user ;//user 对象
private boolean yesNo=true;//布尔变量
Date date21=new Date();//date 对象
private String Id;

public MyTheread(Socket socket) {this.socket = socket;
}
public ObjectInputStream getOis() {return ois;
}
public void setOis(ObjectInputStream ois) {this.ois = ois;
}
public ObjectOutputStream getOos() {return oos;
}
public void setOos(ObjectOutputStream oos) {this.oos = oos;
}
public Socket getSocket() {return socket;
}
public void setSocket(Socket socket) {this.socket = socket;
}
public Document getDocument() {return document;
}
public void setDocuemnt(Document document) {this.document = document;
}//线程
public void run() {try {//对io流进行赋值oos=new ObjectOutputStream(socket.getOutputStream());ois=new ObjectInputStream(socket.getInputStream());//读取客户端发送的数据(date)date21 = (Date) ois.readObject();user = (User) date21.getObj();//数据转换if(date21.getFangfa().equals("kaika")){//判断用户发送的状态readXML();//调用方法Date dates=new Date();//date对象if(yesNo){date21.setYesNo(true);//对对象赋值date21.setFangfa(Id);oos.writeObject(date21);//向客户端法送数据oos.close();//关闭流}else{oos.writeObject(date21);//向客户端法送数据oos.close();//关闭流}}else if(date21.getFangfa().equals("lookUser")){//判断用户发送的状态lookXML();//调用方法Date dates=new Date();if(yesNo){//查询失败oos.writeObject(date21);//向客户端发送数据oos.close();}else{//查询成功oos.writeObject(date21);oos.close();}}else if(date21.getFangfa().equals("andMoeny")){//判断用户发送的状态lookXML();//调用方法Date dates=new Date();if(yesNo){Date date0=new Date();String no="充值失败!";date0.setYesNo(false);//对对象进行赋值date0.setObj(no);oos.writeObject(date0);//将对象数据发送到客户端}else{Date date0=new Date();String no="充值成功!";date0.setYesNo(true);//对对象进行赋值date0.setObj(no);oos.writeObject(date0);//将对象数据发送到客户端}}ois.close();} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}
}
//读取文件
public void readXML(){SAXReader read=new SAXReader();//解析器try {document=read.read(new File("User.xml"));//读取指定XML文件root = document.getRootElement();//获取根节点Iterator it = root.elementIterator();Element next = null;while (it.hasNext()) {//获取说有的子标签next = (Element) it.next();if(user.getName().endsWith(next.attributeValue("name"))){//判断System.out.println("开卡失败!");yesNo=false;}}if(yesNo){System.out.println("开卡成功!");writeXML();}} catch (DocumentException e) {e.printStackTrace();}
}
//查询文件
public void lookXML(){boolean useryes=false;SAXReader read=new SAXReader();//解析器try {Element next = null;document=read.read(new File("User.xml"));//读取指定的XML文件root = document.getRootElement();//获取所有的根节点Iterator it = root.elementIterator();while (it.hasNext()) {next = (Element) it.next();//获取所有的子节点Iterator it2= next.elementIterator();while (it2.hasNext()) {Element next2 = (Element) it2.next();//获取所有的孙节点System.out.println(user.getUserId());if(next2.getText().equals(user.getUserId())){System.out.println("查询成功!");String moeny1=next.element("moeny").getText();date21.setLookUser(moeny1);//对对象进行赋值if(date21.getFangfa().equals("andMoeny")){int moeny = user.getMoeny();Element eleme = next.element("moeny");String moeny2=next.element("moeny").getText();Integer of = Integer.valueOf(moeny2);//将string类型数据进行转换为int类型数据int moenyss=of;int moenys5=moenyss+moeny;eleme.setText(moenys5+"");//将数据写入对象OutputFormat formants=OutputFormat.createPrettyPrint();//编写XML文件添加的格式XMLWriter writer=new XMLWriter(new OutputStreamWriter(new FileOutputStream("User.xml")),formants);writer.write(document);//保存到XML文件writer.close();//关闭流}yesNo=false;}}if(yesNo){System.out.println("查询失败,请输入正确的号码!");date21.setLookUser("请输入正确的号码!");yesNo=true;}}} catch (DocumentException e) {e.printStackTrace();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
}
//保存文件
public void writeXML(){Element eleme = root.addElement("userName");//添加指定标签名的子节点eleme.addAttribute("name", user.getName());//添加指定属性内容Element foot=eleme.addElement("userId");//添加指定标签的孙节点Random radom=new Random();//获取电话号码int int1 = radom.nextInt(999999999);int int2 = radom.nextInt(9);Id="1"+int2+int1;foot.addText("1"+int2+int1);Element foot2=eleme.addElement("moeny");//添加指定内容的孙节点foot2.addText("100");//添加孙节点的文本内容OutputFormat format=OutputFormat.createPrettyPrint();//指定格式try {XMLWriter writer=new XMLWriter(new OutputStreamWriter(new FileOutputStream("User.xml")),format);//XML文件转换器writer.write(document);//保存到XML文件writer.close();//关闭流} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
}

}


package Util;

import java.io.Serializable;

//用户类
public class User implements Serializable{
private String name;//用户姓名
private String UserId;//用户身份证号
private int moeny;//用户年龄

public User() {
}
public User(String name, String userId, int moeny) {this.name = name;UserId = userId;this.moeny = moeny;
}public String getName() {return name;
}
public void setName(String name) {this.name = name;
}
public String getUserId() {return UserId;
}
public void setUserId(String userId) {UserId = userId;
}
public int getMoeny() {return moeny;
}
public void setMoeny(int moeny) {this.moeny = moeny;
}

}

java项目---------------------------嗖嗖移动大厅相关推荐

  1. java项目嗖嗖移动业务大厅项目报告_晋江市撰写节能评估报告的报告机构立项范本-文瑞...

    文瑞承接可行性研究报告.项目建议书.立项报告.资金申请报告.项目申请报告.项目实施方案.节能报告.评估报告.商业计划书.投标书等各类文案以及各行业甲.乙.丙级工程资质.晋江市撰写节能评估报告的报告机构 ...

  2. java项目嗖嗖移动业务大厅项目报告_Java就业指导课程

    Java就业指导 想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,面试者在面试之前到底需要准备哪些东西呢?本文陈列的这些内容既可以作为个人简历中的内容,也可以作为面试的时候跟面试官聊的东 ...

  3. JAVA项目-嗖嗖移动

    /*** 移动卡类*/ public class MobileCard {private String cardNumber; //卡号private String userName; //用户名pr ...

  4. java计算机毕业设计政务大厅管理系统源码+数据库+系统+部署+lw文档

    java计算机毕业设计政务大厅管理系统源码+数据库+系统+部署+lw文档 java计算机毕业设计政务大厅管理系统源码+数据库+系统+部署+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  5. java项目-第21期基于ssm在线电影票购买系统

    java项目-第21期基于ssm在线电影票购买系统 1.项目简述 功能: 分为管理员后台和普通用户前台电影购买 前台电影系统:首页.电影展示.大厅安排.支付模拟.电影院位置 管理员用户:包括电影类别管 ...

  6. java计算机毕业设计政务大厅管理系统源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计政务大厅管理系统源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计政务大厅管理系统源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构:B/S ...

  7. github javaguide_GitHub上收获Star数排名前10的Java项目

    1. CS-Notes star:92.1k 介绍:技术面试必备基础知识.Leetcode.计算机操作系统.计算机网络.系统设计.Java.Python.C++ :地址:https://cyc2018 ...

  8. 新建eclipse的java项目报错处理

    新建eclipse的java项目报错处理:选中报错的项目文件夹→右击选择属性(ALT+Enter)→java构建路径→库→双击"构建路径上的JAR和类文件夹"下面的项→选择备用JR ...

  9. Java开发环境的搭建以及使用eclipse从头一步步创建java项目

    原文:出自本人的Linux博客http://blog.csdn.net/unix21/article/details/18813173 一.Java 开发环境的搭建 这里主要说windows环境下怎么 ...

  10. eclipse中java项目转换为web项目

    2019独角兽企业重金招聘Python工程师标准>>> 经常在eclipse中导入web项目时,出现转不了项目类型的问题,导入后就是一个java项目,有过很多次经历,今天也有同事遇到 ...

最新文章

  1. piczoom兼容性问题_浏览器不兼容原因及解决办法
  2. linux开机出现一下错误Give root password for maintenance (or type Control-D to continue):
  3. 【英语学习】【Daily English】U04 Neighborhood L01 Anything else around?
  4. 微博开放第三方协议 媒体机构能重掌话语权吗?
  5. ADO:用代码调用存储过程
  6. Linux gtk开发教程,使用GTK+和Glade快速开发Linux图形界面
  7. 使用Profile创建第一个Grails+Angular2应用
  8. BX+CX+loop
  9. Vue移动端rotate强制横屏
  10. blob/text column 'content' used in key specification without a key length
  11. PIAO网址PIAO
  12. 业务流程管理(BPM)系统的九大必备特点
  13. seagull基本概念
  14. 【马红“名师+”研修共同体】“课” 展风采,“研”无止境----教学交流活动(二)
  15. python修改key名_python修改字典键(key)的方法
  16. echarts 时间曲线图_web前端显示设备实时温度,ECharts实现温度折线图,实时动态温度曲线图生成...
  17. java integer long 转换_long(Long)与int(Integer)之间的转换
  18. mac版python3.7安装教程_M是什么意思_M的翻译_音标_读音_用法_例句_爱词霸在线词典...
  19. pdf怎么样编辑标注工具
  20. C#22GDI+图形图像处理技术

热门文章

  1. Oracle 10g 的后台进程
  2. 一个学生成绩管理系统c语言,一个学生成绩管理系统C语言源代码
  3. mysql临时表更新_MySql 临时表
  4. APP开发流程都有哪些?
  5. 阿里云免费企业邮箱申请链接入口支持50账号数
  6. 计算机u口保护,U盘写保护怎么办?
  7. 视频会议服务器维护,视频会议系统一般故障与应对措施
  8. 移植tas5707功放芯片驱动注意事项
  9. sensor gyro_3d not found
  10. 断网重启路由器就好_电脑断网重启路由器就好了怎么回事