如何运行java程序(运行java程序步骤)

  • 时间:
  • 1845人关注

这是一篇关于java相关的编程问答内容,被767位程序员关注,内容涉及到java、程序运行、程序步骤、运行java程序步骤等,由牛元明 编辑补充,一起来看下大家的回答。

码农之家
精选回答2:Java实现ATM取款机程序

11小时58分钟前回答

本文实例为大家分享了Java实现ATM取款机程序的具体代码,供大家参考,具体内容如下

对象说明:

功能:该程序的功能为实现模拟银行ATM自动取款机取款,存款,查询余额,转账等功能,只是完成了基本的功能。

思路:第一、登录判断,密码限制三次,使用for循环。第二、成功登录,选择相应的功能,使用switch语句。第四、实现功能的反复循环操作,因为次数不确定,使用while结构。第五、对每个功能模块进行填充完善。

代码展示:

import java.util.Scanner;

public class BankATM {
 public static void main(String[] args) {
 Scanner input = new Scanner(System.in);

 String cardNum = "6228123123"; // 卡号
 int pwd = 888888; // 密码
 boolean flag = true; // 声明布尔类型变量
 double surplus = 1000;// 余额

 // 界面
 System.out.println("---------欢迎使用工商银行ATM机---------");

 /** 用于进行登录的次数限制止 **/
 for (int i = 1; i <= 3; i++) {
  System.out.println("请插入您的银行卡:");
  String inputCard = input.next();
  System.out.println("请输入您的密码:");
  int inputPwd = input.nextInt();

  // 验证账号和密码
  if (inputCard.equals(cardNum) && inputPwd == pwd) {
  flag = true;
  break;
  } else {
  if (i <= 2) {
   System.out.println("对不起,密码输入不正确,你还有" + (3 - i) + "次机会!");
  } else {
   System.out.println("对不起,您的卡已被锁定!");
   break;
  }
  flag = false;
  }
 }

 /** 登录成功后选择功能 */
 if (flag) {
  char answer = 'y';
  while (answer == 'y') {
  System.out.println("请选择功能:1.取款 2.存款 3.查询余额 4.转账 5.退出");
  int choice = input.nextInt();
  switch (choice) {
  case 1:
   // 执行取款操作
   System.out.println("--->取款");
   System.out.println("请输入取款金额:");
   double getMoney = input.nextDouble();
   if (getMoney > 0) {
   if (getMoney <= surplus) {
    if (getMoney % 100 == 0) {
    System.out.println("请取走您的钞票!余额为¥" + (surplus - getMoney));
    } else {
    System.out.println("对不起,不能取零钱!");
    }
   } else {
    System.out.println("对不起,余额不足!");
   }
   } else {
   System.out.println("请输入正确的金额:");
   }

   break;
  case 2:
   // 执行存款操作
   System.out.println("--->存款");
   System.out.println("请把钞票整理后放入存钞口:");
   double saveMoney = input.nextDouble();
   if (saveMoney > 0 && saveMoney <= 10000) {
   if (saveMoney % 100 == 0) {
    surplus += saveMoney;
    System.out.println("存款成功!余额为¥" + surplus);
   } else {

    double backMoney = saveMoney % 100;
    surplus = saveMoney + surplus - backMoney;
    System.out.println("存款成功!余额为¥" + surplus);
    System.out.println("请取走零钱¥" + backMoney);
   }
   } else if (saveMoney > 10000) {
   System.out.println("一次最多存入一万元,请分批存入!");
   } else {
   System.out.println("存入的钞票是假钞,无效没收!");
   }
   break;
  case 3:
   // 执行查询余额
   System.out.println("--->查询余额");
   System.out.println("您卡上的余额是:" + surplus);
   break;
  case 4:
   // 执行转账操作
   System.out.println("--->转账");
   System.out.println("请输入转账金额:");
   double goMoney = input.nextDouble(); // 转账金额
   if (goMoney > 0) {
   if (goMoney <= surplus) {
    System.out.println("转账成功!余额为¥" + (surplus - goMoney));
   } else {
    System.out.println("对不起,请确保卡上有足够的余额!");
   }

   } else {
   System.out.println("转账失败!请输入正确的金额:");
   }
   break;
  case 5:
   // 执行退出操作
   // System.out.println("--->退出");
   System.out.println("谢谢您的使用!");
   return;
  default:
   System.out.println("对不起,您选择的功能有误!");
   break;
  }// switch end
  System.out.println("继续吗?y/n");
  answer = input.next().charAt(0);

  } // while end
  System.out.println("谢谢您的使用!");

 }

 }
}

效果截图:

Java实现ATM取款机程序

Java实现ATM取款机程序

Java实现ATM取款机程序

Java实现ATM取款机程序

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

展开问题
码农之家
精选回答3:java基于C/S模式实现聊天程序(服务器)

9小时18分钟前回答

上篇介绍了java基于C/S模式实现聊天程序的客户端写法,这一篇介绍服务器的写法。

服务器的功能是:接收来自客户端的消息,然后将消息转发给当前连接的所有用户。这里一个困扰我许久的地方是如何存储所有用户的地址(套接字),找了许久我找到了一种变长数组的数据结构Vector,用size()来获取长度,用add()来添加元素,这样就容易多了,解决了服务器最大的问题。

服务器我定义了一个启动服务器的按钮,通过此按钮可以启动服务器的监听线程,我把服务器的创建放在了监听线程中。
服务器主要由两个线程组成:监听和消息处理。

监听线程:建立服务器的套接字,接收来自客户端的连接,每当有客户端连接到服务器时,服务器都要把该客户端的套接字添加到变长数组socketsss中,并且要给每个用户都创建单独的线程。

消息处理线程:在输入流中读取来自客户端的UTF字符串,然后遍历Vector数组socketsss,将UTF字符串写入到对每一个用户的输出流中。

服务器的功能就是这些了,这样就能实现基本的聊天室功能了,感觉最难的地方就是消息转发了,不过最后找到了合适的方法也解决了。只有当自己动手去写了才会发现自己有什么地方的不足,比如,设置关闭按钮的响应时,在弹出的对话框中点什么都关闭,后来发现是前面窗体设置关闭没有改成无操作;还有就是刚开始服务器只能接收处理一组消息,第二组就出问题了,是因为我以为把监听写到线程中就可以无限调用了,还是要把他放到循环中去。总之,纸上得来终觉浅绝知此事要躬行,凡事动手去做比看书理解要深刻,学编程还是要多动动手。

界面展示:

java基于C/S模式实现聊天程序(服务器)

package server;

import java.awt.*;
import java.io.*;
import java.net.*;
import java.util.*;
import java.awt.event.*;

import javax.swing.*;

public class Server extends JFrame {

 JTextArea textShow;
 JButton start;
 Vector socketsss = new Vector();//这里用到了变长对象数组,用来存储来自客户端的socket对象
 ServerSocket server = null;
 Socket clients;

 Server() { // 服务器的构造函数,并且初始化
 init();
 setVisible(true);
 setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
 setBounds(450, 150, 340, 455);
 setTitle("好好学习天天向上聊天室服务器");
 setResizable(false);
 }

 void init() { // 设置布局和事件监视器
 setLayout(new FlowLayout());
 getContentPane().setBackground(new Color(20, 85, 237));
 textShow = new JTextArea(21, 29);
 textShow.setBackground(new Color(45, 210, 209));
 start = new JButton("       启动服务器       ");
 start.setBackground(new Color(236, 134, 21));
 add(start);
 add(new JScrollPane(textShow));
 textShow.setEditable(false);
 start.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {  //在这里启动监听的线程
  Listen listen = new Listen();
  Thread go = new Thread(listen);
  go.start();
  }
 });

 addWindowListener(new WindowAdapter() { // 响应关闭按钮功能
  public void windowClosing(WindowEvent e) {
  int option = JOptionPane
   .showConfirmDialog(null, "亲爱的你真的要离开聊天室么?",
    " 好好学习天天向上聊天室", JOptionPane.YES_NO_OPTION,
    JOptionPane.QUESTION_MESSAGE);
  if (option == JOptionPane.YES_OPTION)
   System.exit(0);

  }
 });

 } // init()结束

 class ServerThread extends Thread { // 服务器消息处理的线程
 Socket socket;
 DataOutputStream out = null;
 DataInputStream in = null;
 String s = null;
 Vector sockets = new Vector();
 int j = 0;

 ServerThread(Socket t, Vector socketss) {
  socket = t;
  sockets = socketss;
  try { 
  in = new DataInputStream(socket.getInputStream());
  } catch (IOException e) {
  }
 }

 public void run() {
  while (true) {
  try {
   String r = in.readUTF();// 堵塞状态,除非读取到信息
   for (int j = 0; j < sockets.size(); j++) {
   out = new DataOutputStream(
    ((Socket) sockets.get(j)).getOutputStream()); // 对于每个数组内的socket对象都建立输出流
   out.writeUTF(r);
   }
  } catch (IOException e) {
   textShow.append("有一个逗比离开了\n");
   return;
  }
  }
 }
 }

 class Listen implements Runnable { // 服务器监听线程
 ServerSocket server;
 Socket clients;

 public void run() {
  while (true) {
  try {
   server = new ServerSocket(8888);
   textShow.append(new java.text.SimpleDateFormat(
    "yy-MM-dd HH:mm:ss").format(new Date())
    + "服务器已开启\n");
  } catch (IOException e1) {
   textShow.append("正在监听\n"); // ServerSocket对象不能重复创建
  }
  try {
   textShow.append(new java.text.SimpleDateFormat(
    "yy-MM-dd HH:mm:ss").format(new Date())
    + " 等待用户连接......\n");

   clients = server.accept();
   socketsss.add(clients);
   ServerThread handlers = new ServerThread(clients, socketsss);
   handlers.start(); // 为每个用户创建单独的消息处理线程
   textShow.append(new java.text.SimpleDateFormat(
    "yy-MM-dd HH:mm:ss").format(new Date())
    + "有用户连接,用户的地址:" + clients.getInetAddress() + "\n");
  } catch (IOException e1) {
   textShow.append(new java.text.SimpleDateFormat(
    "yy-MM-dd HH:mm:ss").format(new Date())
    + "正在等待逗比来临......\n");
  }
  }
 }
 }

 public static void main(String args[]) {
 Server server = new Server();
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家,关注码农之家公众号的更多精彩内容。

展开问题
码农之家
精选回答4:Java小程序计算圆周率代码

15小时48分钟前回答

下面我们来介绍两种Java编程中实现计算圆周率的方法。

方法一:割圆法

计算公式为:

π≈3*2^n*y_n

其中,n代表割圆次数,y_n代表圆中内嵌正6*n边形的边长

package 计算π的近似值; 
import java.util.Scanner; 
public class Example { 
public static void main(String[] args) { 
 Scanner scan=new Scanner(System.in); 
 System.out.println("请输入割圆次数:"); 
 int n=scan.nextInt(); 
 cut(n); 
} 
static void cut(int n){ 
 double y=1.0; 
 for(int i=0;i<=n;i++){ 
 double π=3*Math.pow(2, i)*y; 
 System.out.println("第"+i+"次切割,为正"+(6+6*i)+"边形,圆周率π≈"+π); 
 y=Math.sqrt(2-Math.sqrt(4-y*y)); 
 } 
} 
} 

输出结果:

请输入割圆次数:
12
第0次切割,为正6边形,圆周率π≈3.0
第1次切割,为正12边形,圆周率π≈3.1058285412302498
第2次切割,为正18边形,圆周率π≈3.132628613281237
第3次切割,为正24边形,圆周率π≈3.139350203046872
第4次切割,为正30边形,圆周率π≈3.14103195089053
第5次切割,为正36边形,圆周率π≈3.1414524722853443
第6次切割,为正42边形,圆周率π≈3.141557607911622
第7次切割,为正48边形,圆周率π≈3.141583892148936
第8次切割,为正54边形,圆周率π≈3.1415904632367617
第9次切割,为正60边形,圆周率π≈3.1415921060430483
第10次切割,为正66边形,圆周率π≈3.1415925165881546
第11次切割,为正72边形,圆周率π≈3.1415926186407894
第12次切割,为正78边形,圆周率π≈3.1415926453212157

方法二:无穷级数法

求圆周率π的级数公式为:

Π=2*(1/1+1/3+1/3*2/5+1/3+2/5+3/7+1/3+2/5+3/7+4/9+···)

package 计算π的近似值; 
import java.util.Scanner; 
public class Example1 { 
 public static void main(String[] args) { 
  Scanner scan=new Scanner(System.in); 
  System.out.println("请输入精度:"); 
  double z=scan.nextDouble(); 
  System.out.println("在精度为"+z+"的条件下,π约等于:\n"+jishuPI(z));  
 } 
 static double jishuPI(double z){ 
 double sum=2; 
 int n=1; 
 int m=3; 
 double t=2; 
 while(t>z){ 
  t=t*n/m; 
  sum=sum+t; 
  n++; 
  m+=2; 
 } 
 return sum; 
 } 
} 

输出为:

请输入精度:
1E-15
在精度为1.0E-15的条件下,π约等于:
3.141592653589792

总结

以上是圆周率π的计算方法的全部内容,希望对大家有所帮助!

展开问题
码农之家
精选回答5:java程序员好找工作吗

21小时14分钟前回答

现在的java程序员还是非常好找工作的,只要你技术过硬,高薪都不是问题,由于java的可移植性强的优点,如果你很精通的话,以后的就业前景还是很好的。从各大招聘网站上来看,java程序员不仅好找工作,薪资待遇这方面也是相当的优秀的。

1、java程序员的工作非常好找,但要按能力给钱,如果你能的技术特别的强,工资也会高,但因为做java技术的工作,对于技术的要求越来越多,所以对java程序员的要求也越来越多,需要掌握的技术也越来越多,需要不断的学习,来提升自己。

2、java程序员一般对于学历是不太有要求的,每个人都靠自己的技术能力挣钱,做java程序员最大的特点,就是要不断的学习新东西,所以只要你学习能力强,技术强,找工作是很容易的。

3、目前的互联网行业是相当的火爆的,有大量的Java开发岗位,所以目前Java程序员的就业机会相对还是比较多的。所以Java程序员在技术能力不错的情况下找个工作是很容易的。虽然Java开发岗位比较多,但是由于Java开发人才也比较多,所以岗位竞争压力还是比较大的,要想提升Java开发岗位的竞争力,还是需要提升自己。

展开问题

参考资料

  • 菜鸟成长之路:Java程序员职场全攻略

    菜鸟成长之路:Java程序员职场全攻略

    《菜鸟成长之路:Java程序员职场全攻略》 内容简介:以包罗万象的IT这个大江湖为背景,将Java职场中从入门前的学校菜鸟到成长为技术大牛的过程展现给读者,内容饱满但又不失趣味性。在《

    大小:51.4 MBJava职场

    立即下载
  • Java程序员职场全攻略:从小工到专家

    Java程序员职场全攻略:从小工到专家

    Java程序员职场全攻略 作者:吴亚峰著 ISBN:7121102463/9787121102462 出版时间:2010-2-1 丛编项:从小工到专家

    大小:39.38MBJava

    立即下载
  • java语言程序设计:基础篇(英文第8版)

    java语言程序设计:基础篇(英文第8版)

    《Java语言程序设计:基础篇》是机械工业出版社2011年11月10日出版的图书。 目录 Chapter 1 Introduction to Computers,Programs,and Java Chapter 2 Elementary Programming Chapter 3 Selections Chapter 4 Loops Chapter 5 Methods Chapter 6 Single-Dimensional Arrays Chapter 7 Multidimensional Array

    大小:10.6 MBjava语言

    立即下载
  • Java语言程序设计:进阶篇(第10版)

    Java语言程序设计:进阶篇(第10版)

    本书是Java语言的经典教材,中文版分为基础篇和进阶篇,讲解了介绍程序设计基础、面向对象程序设计、GUI程序设计、数据结构和算法、高级Java程序设计等内容

    大小:86.3 MBJava编程

    立即下载
  • Java程序设计教程(第2版)

    Java程序设计教程(第2版)

    本书讲解Java程序设计知识及其编程方法,包括Java语言的基础语法、结构化程序设计、面向对象程序设计、数组、字符串、向量、哈希表、泛型、枚举、异常处理、文件和数据流、图形用户界面设计、小应用程序、线程、编程规范、网络程序设计、多媒体和图形学程序设计以及数据库程序设计等。 本书的章节编排与内容以人们学习与认知过程为基础,与公司的实际需求相匹配。内容力求简明,每章都附有习题,而且在附录中包含了图、表、例程以及类和

    大小:16.4 KBJava

    立即下载
  • Java语言程序设计题解与上机指导

    Java语言程序设计题解与上机指导

    Java语言程序设计题解与上机指导 作者:邵丽萍,郭春芳,张后扬编著 清华大学 ISBN:7302101698/9787302101697 出版时间:2005-01-01 丛编项:高等院校计算机应用技术规划教材

    大小:14.92MBJava

    立即下载

更多回答

43小时26分钟前回答

200行Java代码编写一个计算器程序

发现了大学时候写的计算器小程序,还有个图形界面,能够图形化展示表达式语法树,哈哈;) 只有200行Java代码,不但能够计算加减乘除,还能够匹配小括号~ 代码点评: 从朴素的界面配色到简单易懂错误提示,无不体现了“用户体验”至上的设计理念;代码异常处理全面合理、滴水不漏,代码缩进优雅大方,变量命名直观易懂;再结合长度适中简单明了的注释,程序整体给人一种清新脱俗之感。背后不难看出作者对学习的热爱以及对设计的苛求,工匠精神可见一斑,真可谓是大学数据结构学以致用的典范! 实现代码如下所示: import java.awt.BorderLayout;import java.awt.Color;import java.awt.Graphics;import java.awt.Poi……

11小时35分钟前回答

java实现简单TCP聊天程序

本文实例为大家分享了java实现TCP聊天程序的具体代码,供大家参考,具体内容如下 服务端代码: package com.test.server; import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket; public class Server { public static void main(String[] args) { new Server().startServer(); } public void startServer(){ try { //服务器在9990端口监听客户端的连接 ServerSocket ss = new ServerSocket(9999); System.out.println("server is listening..."); while(true){ //阻塞的accept方法,当一个客户端连接上,才会返回Socket对象 Socket s = ss.accept(); System.out.println("a client has connected!"); //开启线程处理通信 new CommunicateThread(s).start(); } } catch (IOE……

27小时44分钟前回答

在北京java程序员好找工作吗

java称霸编程语言榜首已经多年,可见java的市场需求之大。需求大,自然学习的人就多。java程序员很多,现在主要是java/c开发,差不多一半一半。 java程序员是否好找工作主要看你学的怎么样,如果学的好,很容易找。 毕业机构可以去看看,多接触一些也是好的,而且思路和就业渠道也开阔了。 建议看看几方面本书java编程思想,Struts,spring,hibernate以及javascript的书,这些都是基础。 1、还没听说学java找不到工作的,市场需求量仍然很大。只要你学好,就不怕没市场。你要是学不好,干什么都没市场。学语言可以一精多通。先学好一种语言,然后触类旁通,可以更快的学习其他语言。学多了,市场面更广……