精华内容
下载资源
问答
  • java源代码分享
    千次阅读
    2021-03-04 02:18:22

    导读

    正文

    本文实例为大家分享了java学生信息管理系统的具体代码,实现学生信息: 增加 int[] a=new int[9] 、删除 、查找、更改,供大家参考,具体内容如下

    /*学生信息管理系统,实现学生信息:

    *增加 int[] a=new int[9]

    *删除

    *查找

    *更改

    */

    import java.util.Scanner;//导入java输入流

    import java.lang.*;

    import java.io.*;

    class Student

    {

    private static Student[] s=new Student[2];

    int n=0;

    private String name;

    private int num;

    private String classAge;

    public void judge()throws IOException

    {

    int i;

    char ch;

    String str;

    Scanner In=new Scanner(System.in);

    if(n==0)

    {

    System.out.print("你还没有录入任何学生,是否录入(Y/N):");

    str=In.next();

    ch=str.charAt(0);

    while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n')

    {

    System.out.print("输入有误,请重新输入:");

    str=In.next();

    ch=str.charAt(0);

    }

    if(ch=='Y'||ch=='y')

    {

    this.add();

    }

    if(ch=='N'||ch=='n')

    {

    this.menu();

    }

    }

    }

    public void menu()throws IOException//定义菜单函数

    {

    int a;//定义switch语句变量

    Scanner in=new Scanner(System.in);//实例化输入流对象

    System.out.println("*********学生信息管理系统功能表*********");

    System.out.println("***** 1.增加 *****");

    System.out.println("***** 2.显示 *****");

    System.out.println("***** 3.修改 *****");

    System.out.println("***** 4.删除 *****");

    System.out.println("***** 5.查看 *****");

    System.out.println("***** 0.退出 *****");

    System.out.println("****************************************");

    System.out.print("请选择(0~5):");

    a=in.nextInt();

    while(a<0||a>5)

    {

    System.out.print("输入超出范围,请重新输入:");

    a=in.nextInt();

    }

    switch(a)

    {

    case 1:this.add();break;

    case 2:this.show();break;

    case 3:this.modif();break;

    case 4:this.delete();break;

    case 5:this.look();break;

    case 0:System.exit(0);break;

    }

    }

    public void add()throws IOException//定义增加函数

    {

    String str,str1,str2;

    int i,num1,t=1;

    char ch,ch1;

    FileWriter fw=new FileWriter("F://javaFile//student.txt",true);

    fw.write(" 录入的学生信息列表\r\n\r\n学号 姓名 班级\r\n");

    Scanner In=new Scanner(System.in);

    while(t==1)

    {

    System.out.print("请输入学生学号:");

    num1=In.nextInt();

    for(i=0;i

    {

    while(s[i].num==num1)

    {

    System.out.println("已存在此学号,请重新输入");

    System.out.print("请输入学号:");

    num1=In.nextInt();

    }

    }

    s[n].num=num1;

    str2=String.valueOf(num1);

    fw.write(str2+" ");

    System.out.println();

    System.out.print("请输入学生姓名:");

    s[n].name=In.next();

    fw.write(s[n].name+" ");

    System.out.println();

    System.out.print("请输入学生班级:");

    s[n].classAge=In.next();

    fw.write(s[n].classAge+"\r\n");

    ++n;

    fw.close();

    System.out.println();

    System.out.print("是否继续添加(Y/N)");

    str=In.next();

    ch=str.charAt(0);

    while(ch!='N'&&ch!='n'&&ch!='Y'&&ch!='y')

    {

    System.out.print("输入有误,请重新输入:");

    str=In.next();

    ch=str.charAt(0);

    }

    if(ch=='N'||ch=='n')

    {

    break;

    }

    }

    System.out.println();

    System.out.print("是否返回主菜单(Y/N)");

    str1=In.next();

    ch1=str1.charAt(0);

    while(ch1!='Y'&&ch1!='y'&&ch1!='N'&&ch1!='n')

    {

    System.out.print("输入有误,请重新输入:");

    str1=In.next();

    ch1=str1.charAt(0);

    }

    if(ch1=='Y'||ch1=='y')

    {

    this.menu();

    }

    if(ch1=='N'||ch1=='n')

    {

    System.out.println("正在退出...谢谢使用!");

    System.exit(0);

    }

    }

    public void show()throws IOException

    {

    int i;

    this.judge();

    System.out.println("本次操作共录入"+n+"位学生!");

    System.out.println("你录入的学生信息如下:");

    System.out.println();

    System.out.println("学号\t\t姓名\t班级");

    for(i=0;i

    {

    System.out.println(s[i].num+" "+s[i].name+" "+s[i].classAge);

    }

    System.out.println("系统返回主菜单!");

    this.menu();

    }

    public void delete()throws IOException//删除信息功能实现 注:本功能暂时不具备可扩展性

    {

    this.judge();

    int j=0,t=0,k=0,num1;

    char ch;

    String str;

    Scanner pin=new Scanner(System.in);

    System.out.print("请输入要删除的学号:");

    num1=pin.nextInt();

    for(j=0;j

    {

    if(s[j].num==num1)

    {

    k=1;

    t=j;

    }

    }

    if(k==0)

    {

    System.out.println("对不起!你要删除的学号不存在!");

    System.out.println("系统将返回主菜单!");

    this.menu();

    }

    if(k==1)

    {

    System.out.println("你要删除的学生信息如下:");//打印管理员要删除的学生信息

    System.out.println("学号\t姓名\t班级");//本功能暂时不备扩展性

    System.out.println(s[t].num+" "+s[t].name+" "+s[t].classAge);

    System.out.println();

    System.out.print("你确定要删除(Y/N):");

    str=pin.next();

    ch=str.charAt(0);

    while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n')

    {

    System.out.print("输入有误,请重新输入:");

    str=pin.next();

    ch=str.charAt(0);

    }

    if(ch=='N'||ch=='n')

    {

    System.out.println();

    System.out.println("系统返回主菜单!");

    this.menu();

    }

    if(ch=='Y'||ch=='y')

    {

    for(j=t;j

    {

    s[j]=s[j+1];

    }

    n--;

    System.out.println("数据成功删除!");

    System.out.println("系统返回主菜单!");

    this.menu();

    }

    }

    }

    public void look()throws IOException

    {

    FileReader fr=new FileReader("F://javaFile//student.txt");

    int a;

    while((a=fr.read())!=-1)

    {

    System.out.print((char)a);

    }

    fr.close();

    System.out.println("系统返回主菜单!");

    System.out.println();

    this.menu();

    }

    public void modif()throws IOException

    {

    this.judge();

    int j=0,num2,num3,moi,c=1;

    char ch;

    String str,str2;

    Scanner pin=new Scanner(System.in);

    System.out.print("请输入要修改的学号:");

    num2=pin.nextInt();

    for(j=0;j

    {

    if(s[j].num==num2)

    {

    k=1;

    t=j;

    }

    }

    if(k==0)

    {

    System.out.println("对不起!你要修改的学号不存在!");

    System.out.println("系统将返回主菜单!");

    this.menu();

    }

    if(k==1)

    {

    System.out.println("你要修改的学生信息如下:");//打印管理员要删除的学生信息

    System.out.println("学号\t姓名\t班级");//本功能暂时不备扩展性

    System.out.println(s[t].num+" "+s[t].name+" "+s[t].classAge);

    System.out.println();

    System.out.print("你确定要修改(Y/N):");

    str=pin.next();

    ch=str.charAt(0);

    while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n')

    {

    System.out.print("输入有误,请重新输入:");

    str=pin.next();

    ch=str.charAt(0);

    }

    if(ch=='N'||ch=='n')

    {

    System.out.println();

    System.out.println("系统返回主菜单!");

    this.menu();

    }

    while(c==1)

    {

    if(ch=='Y'||ch=='y')

    {

    System.out.println("****************************************");

    System.out.println("***** 1.修改学号 *****");

    System.out.println("***** 2.修改班级 *****");

    System.out.println("***** 3.修改姓名 *****");

    System.out.println("****************************************");

    System.out.print("请选择:");

    moi=pin.nextInt();

    switch(moi)

    {

    case 1:System.out.print("请输入新的学号:");num3=pin.nextInt();s[t].num=num3;break;

    case 2:System.out.print("请输入新的班级:");str1=pin.next();s[t].classAge=str1;break;

    case 3:System.out.print("请输入新的姓名:");str2=pin.next();s[t].name=str2;break;

    }

    System.out.println("数据已成功修改!");

    }

    System.out.print("是否继续修改(Y/N)");

    str=pin.next();

    ch=str.charAt(0);

    System.out.println();

    while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n')

    {

    System.out.print("输入有误,请重新输入:");

    str=pin.next();

    ch=str.charAt(0);

    }

    if(ch=='N'||ch=='n')

    {

    break;

    }

    }

    }

    System.out.println();

    System.out.println("系统返回主菜单!");

    this.menu();

    }

    public static void main(String[] args)throws IOException

    {

    Student stu=new Student();

    for(int i=0;i<2;i++)

    {

    s[i]=new Student();

    }

    stu.menu();

    }

    }

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

    相关

    总结

    以上是编程之家为你收集整理的java学生信息管理系统源代码全部内容,希望文章能够帮你解决java学生信息管理系统源代码所遇到的程序开发问题。

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

    更多相关内容
  • poi操作excel java源代码分享
  • java web课程设计资源分享系统源代码java web课程设计资源分享系统源代码java web课程设计资源分享系统源代码java web课程设计资源分享系统源代码java web课程设计资源分享系统源代码java web课程设计资源分享系统...
  • 主要介绍了Java获取任意http网页源代码的方法,可实现获取网页代码以及去除HTML标签的代码功能,涉及Java正则操作相关实现技巧,需要的朋友可以参考下
  • 5款不同的用JAVA写的新闻发布系统,包括源代码,很全面,很好,分享给大家,希望能给大家带来帮助。 5款不同的用JAVA写的新闻发布系统,包括源代码,很全面,很好,分享给大家,希望能给大家带来帮助。
  • JAVA开发必备,java-jdk源代码免费分享,谁用谁知道,JAVA开发必备,java-jdk源代码免费分享,谁用谁知道,JAVA开发必备,java-jdk源代码免费分享,谁用谁知道
  • Java学生信息管理系统源码,源代码系统。 Java学生信息管理系统源码包! 值得下载看看!资源免费,大家分享!! java
  • Java编程达人分享:中国象棋游戏源代码,看看界面,是不是相当不错,作者:yaoyun,CSDN达人写的Java象棋游戏,编译环境:JDK1.7 Eclipse3.7 呵呵,可能比较老的环境了。  注:程序中用到了一个字体太大了,删除了...
  • 这是配套的源代码,在IDEA中打开即可,Java语言编写。用swing编写的图形界面。
  • 主要介绍了python实现JAVA源代码从ANSI到UTF-8的批量转换方法,涉及Python针对文件操作与编码转换的相关技巧,需要的朋友可以参考下
  • java+swing+mysql图书管理系统(附完整源代码
  • 标题:java课程设计简易计算器源代码 JAVA 源代码有解析 免费分享 先言 这是我挺久以前课程设计java写的计算器,只能实现基本的功能,我现在分享出来希望能帮助到别人。写得其实挺一般的,见谅见谅。有课程设计任务...

    标题:java课程设计(简易计算器)源代码 JAVA 源代码有解析 免费分享

    先言

    这是我挺久以前课程设计java写的计算器,只能实现基本的功能,我现在分享出来希望能帮助到别人。写得其实挺一般的,见谅见谅。有课程设计任务的学弟学妹也是写计算器的可以看看参考参考。源代码里我写有挺多解析的,能帮助理解。

    功能描述:

    参考 Windows操作系统提供的计算器设计一个实用的计算器,要求除了具有普通的计算功能外,还具有保存计算过程的功能。
    ①单击计算器上的数字按钮(0、1、2、3、4、5、6、7、8、9)可以设置参与计算的运算数。
    ②单击计算器上的运算符按钮(+、—、*、/)可以选择运算符号。
    ③单击计算器上的函数按钮可以计算出相应的函数值。
    ④单击计算器上的等号(=)按钮显示计算结果。
    ⑤在一个文本框中显示当前的计算过程,在一个文本区中显示以往的计算过程。
    ⑥单击“保存”按钮可以将文本区中显示的全部计算过程保存到文件:单击“复制”按钮可以将文本区中选中的文本复制到剪贴板单击“清除”技钮可以清除文本区中的全部内容。

    注意事项:

    一.
    总体包含11个Java源文件。Work.java ; ShuziButton.java ; SymbolButton.java ;
    OperateNumber.java ; OperateSymbol.java ; OperateBack.java ; OperateClear.java ;OperateEquality.java ;OperateDot.java ;
    OperateZhengFu.java ; OperateSin.java
    二.各个源文件实现功能

    1. Work.java负责计算器主窗口的创建。含有main方法。从该类开始执行。同样也负责(退格,=,归零,. ,+/-,sin)按钮创建。
    2. SymbolButton.java 负责(+,-,*,/)四个运算符号按钮的创建。
    3. ShuziButton.java 负责0-9数字按钮的创建。
    4. OperateNumber.java 负责用户点击数字(0-9)按钮时的事件处理。
    5. OperateSymbol.java 负责用户点击(+,-,*,/)按钮时的事件处理。
    6. OperateBack.java 负责用户点击(退格)按钮时的事件处理。
    7. OperatClear.java 负责用户点击(归零)按钮时的事件处理。
    8. OperateEquality 负责用户点击(=)按钮十五的事件处理。
    9. OperateDot.java 负责用户点击( . )按钮时的事件处理。
    10. OperateZhengFu.java 负责用户点击(+/-)按钮时的事件处理。
    11. OperateSin.java.java 负责用户点击(Sin)按钮时的事件处理。

    三:涉及的知识点
    12. 基本数据类型与数组。
    13. 运算符,表达式和语句。
    14. 类与对象。
    15. 子类与继承。
    16. 接口与实现。
    17. 内部类与异常类。
    18. 常用String类。
    19. 组件及事件处理。
    20. 输入与输出流。
    21. Linked List类的基本用法。

    直接先看效果:

    效果

    全部源文件都是放在 keshe这个包里面,直接用的话建这个包再复制源文件代码进去就行或者自己重新写 package代码用自己建的包名。

    源码:

    1.work.java

     package keshe;
    
    import java.util.LinkedList;
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.*;
    
    public class Work extends JFrame implements ActionListener {
       JButton sin,Backspace,Equals,Zero,Flex,zhengfu;
       JButton saveButton,clearButton,copyButton;
       JTextField resultDisplay;  //当前输入与运算结果显示。
       JTextField processShow;   //  当前计算过程显示。
       JTextArea  stepShow;     //计算步骤显示。
       LinkedList<String>list;  //存放第一个数,操作符号与第二个数。
       ShuziButton shuziButton[];  
       SymbolButton symbolButton[];
       OperateNumber operateNumber;    //处理ActionEvent事件。
       OperateSymbol operateSymbol;    
       OperateBack   operateBack;       
       OperateClear  operateClear;     
       OperateEquality operateEquality;  
       OperateDot   operateDot;         
       OperateZhengFu operateZhengFu;
       OperateSin    operateSin;     
       public Work() {    //构造方法
    	   setTitle("五彩缤纷的计算——XXX");
    	   setVisible(true);    //窗口可见。
    	   setBounds(120,60,600,300);     //窗口的初始位置与长与宽;
    	   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//点击关闭后结束窗口所在的应用程序。
    	   JPanel panelZuo,panelYou;  //面板
    	   list=new LinkedList<String>();
    	   resultDisplay=new JTextField(10);
    	   resultDisplay.setHorizontalAlignment(JTextField.RIGHT);  //对齐方式
    	   resultDisplay.setFont(new Font("TimesRoman",Font.BOLD,16));//字体样式,字体格式 ,字体大小
    	   resultDisplay.setForeground(Color.green);    //字体颜色
    	   resultDisplay.setBackground(Color.white); //背景色
    	   resultDisplay.setEditable(false); //选项不可用
    	   resultDisplay.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));//显示半个边框
    	   processShow=new JTextField();
    	   processShow.setHorizontalAlignment(JTextField.CENTER);  //对齐方式
    	   processShow.setFont(new Font("Arial",Font.BOLD,16));//字体样式,字体格式 ,字体大小
    	   processShow.setBackground(Color.green);
    	   processShow.setEditable(false); //选项不可用
    	   stepShow=new JTextArea();
    	   stepShow.setEditable(false); //选项不可用
    	   stepShow.setFont(new Font("宋体",Font.PLAIN,16));
    	   stepShow.setForeground(Color.blue);   //字体颜色
    	   shuziButton=new ShuziButton[10];
    	   operateNumber = new OperateNumber(list,resultDisplay,processShow);
    	   for(int i=0;i<=9;i++) {
    		   shuziButton[i]=new ShuziButton(i); 
    		   shuziButton[i].setFont(new Font("Arial",Font.BOLD,20)); //数字样式,格式,大小
    		   shuziButton[i].addActionListener(operateNumber);  //shuziButton将operateNumber注册为自己的监视器		   
    	   }
    	   symbolButton=new SymbolButton[4];
    	   operateSymbol=new OperateSymbol(list,resultDisplay,processShow,stepShow);
    	   String fuhao1[]= {"+","-","*","/"};
    	   for(int i=0;i<4;i++) {
    		   symbolButton[i]=new SymbolButton(fuhao1[i]);
    		   symbolButton[i].setFont(new Font("Arial",Font.BOLD,20));
    		   symbolButton[i].addActionListener(operateSymbol);  //symbolButton将operateSymbol注册为自己的监视器	
    	   }
    	   Flex=new JButton(".");
    	   operateDot=new OperateDot(list,resultDisplay,processShow);
    	   Flex.addActionListener(operateDot);
    	   zhengfu=new JButton("+/-");
    	   operateZhengFu=new OperateZhengFu(list,resultDisplay,processShow);
    	   zhengfu.addActionListener(operateZhengFu);
    	   Zero=new JButton("归零");
    	   operateClear=new OperateClear(list,resultDisplay,processShow);
    	   Zero.addActionListener(operateClear);
    	   Backspace=new JButton("退格");
    	   operateBack=new OperateBack(list,resultDisplay,processShow);
    	   Backspace.addActionListener(operateBack);
    	   Equals=new JButton("=");
    	   operateEquality=new OperateEquality(list,resultDisplay,processShow,stepShow); 
    	   Equals.addActionListener(operateEquality);
    	   sin=new JButton("sin");
    	   operateSin=new OperateSin(list,resultDisplay,processShow,stepShow);
    	   sin.addActionListener(operateSin);
    	   Zero.setForeground(Color.green);          //颜色
    	   Backspace.setForeground(Color.cyan);
    	   Equals.setForeground(Color.magenta);
    	   Flex.setForeground(Color.gray);
    	   zhengfu.setForeground(Color.red);
    	   sin.setForeground(Color.pink);
    	   panelZuo=new JPanel();
    	   panelYou=new JPanel();   
    	   panelZuo.setLayout(new BorderLayout());        //panelZuo使用BorderLayout布局。
    	   JPanel centerZuo=new JPanel();         //建一个放在panelZuo中间部分的centerZuo容器放数字与符号。
    	   panelZuo.add(resultDisplay,BorderLayout.NORTH);     //运算结果放在panelZuo容器的北边。   
    	   panelZuo.add(centerZuo,BorderLayout.CENTER);
    	   centerZuo.setLayout(new GridLayout(5,4));            //centerZuo使用GridLayout布局;
    	   centerZuo.add(symbolButton[0]);
    	   centerZuo.add(symbolButton[1]);
    	   centerZuo.add(symbolButton[2]);
    	   centerZuo.add(symbolButton[3]);
    	   centerZuo.add(shuziButton[1]);
    	   centerZuo.add(shuziButton[2]);
    	   centerZuo.add(shuziButton[3]);
    	   centerZuo.add(zhengfu);
    	   centerZuo.add(shuziButton[4]);
    	   centerZuo.add(shuziButton[5]);
    	   centerZuo.add(shuziButton[6]);
    	   centerZuo.add(sin);
    	   centerZuo.add(shuziButton[7]);
    	   centerZuo.add(shuziButton[8]);
    	   centerZuo.add(shuziButton[9]);
    	   centerZuo.add(Backspace);
    	   centerZuo.add(shuziButton[0]);
    	   centerZuo.add(Flex);
    	   centerZuo.add(Equals);
    	   centerZuo.add(Zero);
    	   panelYou.setLayout(new BorderLayout());      //panelYou使用BorderLayout布局。
    	   panelYou.add(processShow,BorderLayout.NORTH);          //  运算过程放在panelYou的北边.
    	   saveButton=new JButton("保存");
    	   copyButton=new JButton("复制");
    	   clearButton=new JButton("清除");
    	   saveButton.setForeground(Color.blue);    //颜色
    	   copyButton.setForeground(Color.red);
    	   clearButton.setForeground(Color.gray);
    	   saveButton.setToolTipText("保存计算过程到文件里");          //设置鼠标停留在saveButton上时显示的信息;
    	   copyButton.setToolTipText("复制选中计算过程");       //设置鼠标停留在copyButton上时显示的信息;
    	   clearButton.setToolTipText("清除计算过程");         //设置鼠标停留在clearButton上时显示的信息;
    	   saveButton.addActionListener(this);
    	   clearButton.addActionListener(this);
    	   copyButton.addActionListener(this);
    	   panelYou.add(new JScrollPane(stepShow),BorderLayout.CENTER);//滚动窗格
    	   JPanel  southYou=new JPanel();                 //建一个放在panelYou南边的southYou容器存放3个文字按钮。
    	   southYou.add(saveButton);   //放入按钮
    	   southYou.add(copyButton);
    	   southYou.add(clearButton);
    	   panelYou.add(southYou,BorderLayout.SOUTH);//将southYou放在panelYou南边。
    	   JSplitPane split=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,panelZuo,panelYou);//界面一分为二;
    	   add(split,BorderLayout.CENTER);
    	   validate();
          }
    	  public void actionPerformed(ActionEvent e) {
    		  if(e.getSource()==copyButton) {     //如果按下复制按钮
    			  stepShow.copy();        //实现复制
    		  }
    		  if(e.getSource()==clearButton) {  //如果按下清除按钮
    			  stepShow.setText(null);   //实现清除
    		  }
    		  if(e.getSource()==saveButton){   //如果按下保存按钮
    			  JFileChooser chooser=new JFileChooser();  //文件选择器
    			  int state = chooser.showSaveDialog(null);  //显示文件保存对话框
    			  File file = chooser.getSelectedFile();  //输入要保存的文件名;
    			  if(file!=null&&state==JFileChooser.APPROVE_OPTION) {   //若选好了文件.
    				  try {
    					  String baoCun=stepShow.getText(); //将运算步骤文本赋值给baoCun;
    					  StringReader read = new StringReader(baoCun); //生成字符流。
    					  BufferedReader in=new BufferedReader(read);  //生成缓冲输入流。
    					  FileWriter out=new FileWriter(file); //根据选好的文件,生成FileWriter对象;
    					  BufferedWriter out1=new BufferedWriter(out);  //生成缓冲输出流;
    					  String str=null;
    					  while((str=in.readLine())!=null) {  //判断是否有字符
    						  out1.write(str);  //把内容写到文件中
    						  out1.newLine();    //新的一行					  
    					  }
    					  in.close();  //关闭文件;
    					  out1.close();	  
    				  }catch(IOException el){
    					  
    				  }
    				  
    			  }		  			  
    		  }
    		  
    	  } 
    	public static void main(String args[]) {
    		 new Work();
    	 }
       }
       
    

    2.OperateBack.java

    package keshe;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.LinkedList;
    import javax.swing.JTextField;
    
    public class OperateBack implements ActionListener{
    	   LinkedList<String>  list;
    	   JTextField resultDisplay;   //当前输入与运算结果显示
    	   JTextField processShow;    //显示当前计算过程
    	   OperateBack(LinkedList<String> list1,JTextField one,JTextField two) {      //构造方法
    		   list=list1;
    		   resultDisplay=one;
    		   processShow=two;   
    	   }
    	   public void actionPerformed(ActionEvent e) {
    		   if(list.size()==1) {
    			   String shu =(String) list.getFirst();  //获取第一个元素
    			   if(shu.length()>=1) {   //判断第一个运算数有几位数
    				   shu=shu.substring(0,shu.length()-1);  //提取字符串(不要最后一位数)
    				   list.set(0, shu);     //替换				   
    				   resultDisplay.setText(""+shu); 
    				   processShow.setText(""+shu);				   
    			   }else {       //只有一位数
    				   list.removeLast();      //移除第一位数
    				   resultDisplay.setText("0"); 
    				   processShow.setText("0");				   
    			   }
    		   }else if(list.size()==3) {
    			   String shu2 =(String) list.getLast();  //获取第二个运算数字
    			   if(shu2.length()>=1) {   //判断第一个运算数有几位数
    				   shu2=shu2.substring(0,shu2.length()-1);  //提取字符串(不要最后一位数)
    				   list.set(2, shu2);     //替换				   
    				   resultDisplay.setText(""+shu2); 
    				   processShow.setText(""+shu2);				   
    			   }else {       //只有一位数
    				   list.removeLast();      //移除第二运算位数
    				   resultDisplay.setText("0"); 
    				   processShow.setText("0");				   
    			   }
    		   }
    	   }
    
    }
    

    3.OperateClear.java

    package keshe;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.LinkedList;
    import javax.swing.JTextField;
    
    public class OperateClear implements ActionListener {
    	LinkedList<String>  list;
    	   JTextField resultDisplay;    //当前输入与运算结果显示
    	   JTextField processShow;        //显示当前计算过程
    	   OperateClear(LinkedList<String> list1,JTextField one,JTextField two) {      //构造方法
    		   list=list1;
    		   resultDisplay=one;
    		   processShow=two;   
    	   }
    	   public void actionPerformed(ActionEvent e) {
    		   resultDisplay.setText("0");
    		   list.clear();               //全部清除
    		   processShow.setText(null);
    		   
    		   
    	   }
    }
    

    4.OperateDot.java

    package keshe;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.LinkedList;
    import javax.swing.JTextField;
    public class OperateDot implements ActionListener{
    	   LinkedList<String>  list;
    	   JTextField resultDisplay;      //当前输入与运算结果显示
    	   JTextField processShow;              //显示当前计算过程
    	   OperateDot(LinkedList<String> list1,JTextField one,JTextField two) {      //构造方法
    		   list=list1;
    		   resultDisplay=one;
    		   processShow=two; 
    	   }
    	   public void actionPerformed(ActionEvent e) {
    		   String dot = e.getActionCommand();  //获取小数点
    		   if(list.size()==1)  {
    			   String a = list.getFirst();    //获取第一个元素
    			   String b = null ;
    			   if(a.indexOf(dot)==-1) {     //判断是否出现dot
    				   b=a.concat(dot);    //把小数点拼接在数字后面
    				   list.set(0, b);         //替换
    			   }else {
    				   b=a;
    			   }
    			   resultDisplay.setText(b);
    			   processShow.setText(""+list.get(0));
    		    }else if (list.size()==3 ) {
    		       String a = list.getLast();    //获取第3个元素
    			   String b = null ;
    			   if(a.indexOf(dot)==-1) {     //判断是否出现dot
    				   b=a.concat(dot);    //把小数点拼接在数字后面
    				   list.set(2, b);         //替换
    			   }else {
    				    b=a;
    				   }
    			   resultDisplay.setText(b);
    			   processShow.setText(""+list.get(0)+""+list.get(1)+""+list.get(2));	
    		    }
    	   }
    
    }
    

    5.OperateEquality.java

    package keshe;
    import  java.awt.event.ActionEvent;
    import  java.awt.event.ActionListener;
    import java.util.LinkedList;
    import javax.swing.JTextField;
    import javax.swing.JTextArea;
    public class OperateEquality implements ActionListener{
    	   LinkedList<String>  list;
    	   JTextField resultDisplay;   //当前输入与运算结果显示
    	   JTextField processShow;     //显示当前计算过程
    	   JTextArea stepShow;       // 显示计算步骤整体过程
    	   OperateEquality(LinkedList<String> list1,JTextField one,JTextField two,JTextArea three) {      //构造方法
    		   list=list1;
    		   resultDisplay=one;
    		   processShow=two; 
    		   stepShow=three;
    	   }
    	   public void actionPerformed(ActionEvent e) {
    		   if(list.size()==1)  {
    			   String a = list.getFirst();    //获取第一个元素
    			   resultDisplay.setText(a);
    			   processShow.setText(list.get(0));
    		    }
    		   if(list.size()==2)  {
    			   String a = list.getFirst();    //获取第一个元素
    			   
    			   resultDisplay.setText(a);
    			   processShow.setText(list.get(0));
    		    }
    		    else if(list.size()==3) { 
    		    	String a = list.getFirst();  //获取第一个元素
    		    	String b = list.get(1);      //获取第二个元素
    		    	String c = list.getLast();   //获取最后一个元素
    		    	try {
    		    		double d1 = Double.parseDouble(a);
    		    		double d2 = Double.parseDouble(c);   //数据类型转换
    		    		double result = 0;
    		    		if(b.equals("+")) {
    		    			result = d1 + d2 ;
    		    		}else if(b.equals("-")) {
    		    			result = d1 - d2;
    		    		}else if(b.equals("*")) {
    		    			result = d1*d2;
    		    		}else if(b.equals("/")) {
    		    			result = d1/d2;
    		    		}
    		    		String step = ""+a+""+b+""+c+"="+result;
    		    		resultDisplay.setText(""+result);
    		    		processShow.setText(step);
    		    		stepShow.append(""+step+"\n");
    		    		list.set(0, ""+result);   //将第一个元素为结果
    		    		list.removeLast();   //清除第二个运算数
    		    		list.removeLast();      //清除符号
    		    	}catch (Exception ee) {
    		    		
    		      }			   
    		    }
    	   }
    }
    

    6.OperateNumber.java

    package keshe;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.LinkedList;
    import javax.swing.JTextField;
    public class OperateNumber implements ActionListener {
       LinkedList<String>  list;
       JTextField resultDisplay;        //当前输入与运算结果显示
       JTextField processShow;         //显示当前计算过程
       OperateNumber(LinkedList<String> list1,JTextField one,JTextField two) {      //构造方法
    	   list=list1;
    	   resultDisplay=one;
    	   processShow=two;   
       }
    	public void actionPerformed(ActionEvent e) {
    		ShuziButton s=(ShuziButton)e.getSource();  //获得点击的ShuziButton
    		if(list.size()==0) {    //如果链表个数为零
    			int number=s.getNumber();    
    			list.add(""+number);  //向list添加元素
    			resultDisplay.setText(""+number);  //将resultDisplay对象上的文字设置成number
    		}else if(list.size()==1) {
    			int number=s.getNumber();
    			String a = list.getFirst();	//取得链表第一个元素
    			String b = a.concat(""+number);  //字符串拼接。
    			list.set(0, b);     //替换指定下标元素;
    			resultDisplay.setText(b);
    			processShow.setText(""+list.get(0));        //以上为储存输入的第一个运算数。
    		}else if(list.size()==2) {
    			int number=s.getNumber();
    			list.add(""+number);    //向列表添加新元素;
    			resultDisplay.setText(""+number);
    			processShow.setText(""+list.get(0)+""+list.get(1)+""+list.get(2));
    		}else if(list.size()==3) {
    			int number=s.getNumber();
    			String a = list.getFirst();	//取得链表第三个元素
    			String b = a.concat(""+number);  //字符串拼接。
    			list.set(2, b);     //替换指定下标元素;
    			resultDisplay.setText(b);
    			processShow.setText(""+list.get(0)+""+list.get(1)+""+list.get(2));        //以上为储存输入的第二个运算数
    		}		
    	}
    	
    }
    

    7.OperateSin.java

    package keshe;
    import  java.awt.event.ActionEvent;
    import  java.awt.event.ActionListener;
    import java.util.LinkedList;
    import javax.swing.JTextField;
    import javax.swing.JTextArea;
    public class OperateSin implements ActionListener{
    	   LinkedList<String>  list;
    	   JTextField resultDisplay;      //当前输入与运算结果显示
    	   JTextField processShow;    //显示当前计算过程
    	   JTextArea stepShow;        // 显示计算步骤整体过程
    	   OperateSin(LinkedList<String> list1,JTextField one,JTextField two,JTextArea three) {      //构造方法
    		   list=list1;
    		   resultDisplay=one;
    		   processShow=two; 
    		   stepShow=three;
    	   }
    	   public void actionPerformed(ActionEvent e) {
    		   if(list.size()==1||list.size()==2) {
    			   String a = list.getFirst();     //获取第一个元素
    			   try {
    				   double b = Double.parseDouble(a);  //数据类型转换
    				   double c = Math.sin(b);
    				   String d = String.valueOf(c) ;  //数据类型转换
    				   list.set(0, d);   //替换第一个元素
    				   String step = "sin("+a+")="+c;   //整个过程
    				   resultDisplay.setText(d);
    				   processShow.setText(step);
    				   stepShow.append(""+step+"\n");
    			     }catch(Exception ee) {
    		      }	 
    			 }else if(list.size()==3) {
    			    String a = list.getLast();     //获取最后一个元素
    			    try {
    				   double b = Double.parseDouble(a);  //数据类型转换
    				   double c = Math.sin(b);
    				   String d = String.valueOf(c) ;  //数据类型转换
    				   list.set(0, d);   //替换第一个元素
    				   String step = "sin("+a+")="+c;   //整个过程
    				   resultDisplay.setText(d);
    				   processShow.setText(step);
    				   stepShow.append(""+step+"\n");
    				   list.removeLast();   //移掉第2个运算数
    				   list.removeLast();	  // 移掉运算符号  
    			     }catch(Exception ee) {		
    			    	 
    			      }
    			    }
    			 }
    		   }
    	   
    

    8.OperateSymbol.java

    package keshe;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.LinkedList;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    
    public class OperateSymbol implements ActionListener{
    	   LinkedList<String>  list;
    	   JTextField resultDisplay;        //当前输入与运算结果显示
    	   JTextField processShow;        //显示当前计算过程
    	   JTextArea   stepShow;             // 显示计算步骤整体过程
    	   OperateSymbol(LinkedList<String> list1,JTextField one,JTextField two,JTextArea three) {      //构造方法
    		   list=list1;
    		   resultDisplay=one;
    		   processShow=two; 
    		   stepShow=three;
    	   }
    	   public void actionPerformed(ActionEvent e) {
    		   SymbolButton a=(SymbolButton)e.getSource();
    		   if(list.size()==1) {
    			   String fuhao = a.getFuHao1();
    			   list.add(fuhao);           //添加元素
    			   processShow.setText(""+list.get(0)+""+list.get(1));	
    		   }else if(list.size()==2) {
    			   String fuhao = a.getFuHao1();
    			   list.set(1, fuhao);        //替换指定下标元素;
    			   processShow.setText(""+list.get(0)+""+list.get(1));  //以上为储存第一个运算符号
    		   }else if(list.size()==3) {
    			String num1 = list.getFirst();   //获取第一个数字
    			String num2 = list.getLast();    //获取第二个数字
    			String fuHao = list.get(1);     // 获取运算符号
    			String processStep = num1+""+fuHao+""+num2;
    			try {
    				double n1 = Double.parseDouble(num1);   //字符串转换数据 
    				double n2 = Double.parseDouble(num2);  
    				double result = 0 ;
    		        if(fuHao.equals("+")) {   
    		        	result = n1+n2;
    		        }else if(fuHao.equals("-")) {
    		        	result = n1-n2;
    		        }else if(fuHao.equals("*")) {
    		        	result = n1*n2;
    		        }else if(fuHao.equals("/")) {
    		        	result = n1/n2;
    		        }
    		        String fuhao = a.getFuHao1();
    		        list.clear();  //清除
    		        list.add(""+result);  //把计算结果换成第一个运算数
    		        list.add(fuhao);
    		        String step = processStep+"="+""+list.get(1);
    		        resultDisplay.setText(""+result);      
    		 	    processShow.setText(step);
    		 	    stepShow.append(""+processStep+"="+result+"\n");
    		        
    		      }catch(Exception ee) {				
    			}			
    		 }
    	}
    }
    

    9.OperateZhengFu.java

    package keshe;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.LinkedList;
    import javax.swing.JTextField;
    public class OperateZhengFu implements ActionListener{
    	   LinkedList<String>  list;
    	   JTextField resultDisplay;   //当前输入与运算结果显示
    	   JTextField processShow;      //显示当前计算过程
    	   OperateZhengFu(LinkedList<String> list1,JTextField one,JTextField two) {      //构造方法
    		   list=list1;
    		   resultDisplay=one;
    		   processShow=two; 
    	   }
    	   public void actionPerformed(ActionEvent e) {
    		   if(list.size()==1) {
    			   String a = list.getFirst();  //  获取第一个元素;
    			   try {
    				   double b = Double.parseDouble(a);   //数据类型转换;
    				   b=-1*b;   //换成异号
    				   String c = String.valueOf(b);   //数据类型又换成Sring型
    				   list.set(0, c);
    				   resultDisplay.setText(c);
    				   processShow.setText(""+list.get(0));
    			   }catch(Exception  ee) {
    		    }
    		   }else if(list.size()==3) {
    			   String a = list.getFirst();  //  获取第一个元素;
    			   try {
    				   double b = Double.parseDouble(a);   //数据类型转换;
    				   b=-1*b;   //换成异号
    				   String c = String.valueOf(b);   //数据类型又换成Sring型
    				   list.set(2, c);
    				   resultDisplay.setText(c);
    				   processShow.setText(""+list.get(0)+""+list.get(1)+""+list.get(2));
    			   }catch(Exception  ee) {
    			   }
    		   }
    	   }
    }
    

    10.ShuziButton.java

    package keshe;
    
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class ShuziButton extends JButton{
    	int number;
    	public ShuziButton(int number) {
    		super(""+number);
    		this.number=number;
    		setForeground(Color.orange);
    	}
        public int getNumber() {
        	return number;       //返回数字。
        }
    }
    

    11.SymbolButton.java

    package keshe;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class SymbolButton extends JButton {
    	String fuHao1;
    	public SymbolButton(String s) {
    		super(s);
    		fuHao1=s;
    		setForeground(Color.blue);
    	}
        public String getFuHao1() {
        	return fuHao1;  // 返回符号
        }
    }
    

    总结

    全部源码就上面全部了,写完的话高分可能拿不到,但是过是没问题的。有要UML图的可以留言~~

    要UML图的可以私信我,发邮箱。急的也可以去这下载:https://download.csdn.net/download/luo1831251387/15770017

    展开全文
  • JAVA源代码50个大分享
  • 摘要:Java源码,图形操作,图片加水印 一个Java写的图片添加水印的模块源代码,貌似以前发过,现在重新再发一个,每个创作者的思路都不一样,因此看看别人写的代码可以开拓一下思路,Java图片加水印源码分享给大家。
  • java电商源代码

    2018-02-08 23:33:06
    java电商源代码,合适中级水平的人看,在这里分享给大家
  • 再次分享一个Java贪吃蛇游戏源代码,包括了doc文档,详细介绍了编写贪吃蛇游戏所需要的类的用途,是学习Java小游戏编写的良好范例。这个版本运行于j2me环境。贪吃蛇的活动场所、蛇、蛋(食物)、蛇的运行方向都定义...
  • Java编程思想源代码及课后练习代码,因为自己从网上找起来特别麻烦,所以找到后分享下,希望能帮到需要的人吧,只是这个这个资源分为啥不能是零啊
  • 基于Java Web的图书销售管理系统 项目描述 本系统是基于jsp的网上图书销售,有比较符合初学者的简单而又不单一的界面,也有繁琐而又不过于抽象的后台数据处理。包含分类的登录用户(用户与管理员权限与界面不一)...
  • Java刚入手,编一个小游戏,与大家分享
  • Java SSM 高速公路收费系统【优质毕业设计分享】包括:程序源代码,数据库,完美运行,配置环境有说明。
  • 简易微信发红包源代码.zip

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 100,681
精华内容 40,272
关键字:

java源代码分享