-
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源代码分享
2011-08-30 14:06:13poi操作excel java源代码分享 -
java web课程设计资源分享系统源代码.zip
2022-06-08 14:54:48java web课程设计资源分享系统源代码java web课程设计资源分享系统源代码java web课程设计资源分享系统源代码java web课程设计资源分享系统源代码。java web课程设计资源分享系统源代码java web课程设计资源分享系统... -
Java获取任意http网页源代码的方法
2020-08-29 07:31:16主要介绍了Java获取任意http网页源代码的方法,可实现获取网页代码以及去除HTML标签的代码功能,涉及Java正则操作相关实现技巧,需要的朋友可以参考下 -
5款新闻发布系统(JSP+JAVA源代码)
2019-03-09 05:22:375款不同的用JAVA写的新闻发布系统,包括源代码,很全面,很好,分享给大家,希望能给大家带来帮助。 5款不同的用JAVA写的新闻发布系统,包括源代码,很全面,很好,分享给大家,希望能给大家带来帮助。 -
java-jdk源代码免费分享 src.zip
2017-09-22 17:22:33JAVA开发必备,java-jdk源代码免费分享,谁用谁知道,JAVA开发必备,java-jdk源代码免费分享,谁用谁知道,JAVA开发必备,java-jdk源代码免费分享,谁用谁知道 -
Java学生信息管理系统源码,源代码系统
2019-04-23 14:32:43Java学生信息管理系统源码,源代码系统。 Java学生信息管理系统源码包! 值得下载看看!资源免费,大家分享!! java -
Java编程达人分享:中国象棋游戏源代码.rar
2019-07-10 18:49:11Java编程达人分享:中国象棋游戏源代码,看看界面,是不是相当不错,作者:yaoyun,CSDN达人写的Java象棋游戏,编译环境:JDK1.7 Eclipse3.7 呵呵,可能比较老的环境了。 注:程序中用到了一个字体太大了,删除了... -
编译原理词法分析实验报告配套源代码.zip
2021-08-12 12:48:46这是配套的源代码,在IDEA中打开即可,Java语言编写。用swing编写的图形界面。 -
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
2020-09-03 11:10:15主要介绍了python实现JAVA源代码从ANSI到UTF-8的批量转换方法,涉及Python针对文件操作与编码转换的相关技巧,需要的朋友可以参考下 -
java+swing+mysql图书管理系统(附完整源代码)..pdf
2021-08-10 19:47:35java+swing+mysql图书管理系统(附完整源代码) -
java课程设计(简易计算器)源代码 JAVA 源代码有解析 免费分享
2020-12-07 14:13:48标题: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
二.各个源文件实现功能- Work.java负责计算器主窗口的创建。含有main方法。从该类开始执行。同样也负责(退格,=,归零,. ,+/-,sin)按钮创建。
- SymbolButton.java 负责(+,-,*,/)四个运算符号按钮的创建。
- ShuziButton.java 负责0-9数字按钮的创建。
- OperateNumber.java 负责用户点击数字(0-9)按钮时的事件处理。
- OperateSymbol.java 负责用户点击(+,-,*,/)按钮时的事件处理。
- OperateBack.java 负责用户点击(退格)按钮时的事件处理。
- OperatClear.java 负责用户点击(归零)按钮时的事件处理。
- OperateEquality 负责用户点击(=)按钮十五的事件处理。
- OperateDot.java 负责用户点击( . )按钮时的事件处理。
- OperateZhengFu.java 负责用户点击(+/-)按钮时的事件处理。
- 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个大分享.rar
2013-11-26 11:13:02JAVA源代码50个大分享 -
Java图片添加水印的模块含源代码
2021-03-16 06:46:33摘要:Java源码,图形操作,图片加水印 一个Java写的图片添加水印的模块源代码,貌似以前发过,现在重新再发一个,每个创作者的思路都不一样,因此看看别人写的代码可以开拓一下思路,Java图片加水印源码分享给大家。 -
java电商源代码
2018-02-08 23:33:06java电商源代码,合适中级水平的人看,在这里分享给大家 -
Java贪吃蛇小游戏源代码.rar
2019-07-10 18:48:56再次分享一个Java贪吃蛇游戏源代码,包括了doc文档,详细介绍了编写贪吃蛇游戏所需要的类的用途,是学习Java小游戏编写的良好范例。这个版本运行于j2me环境。贪吃蛇的活动场所、蛇、蛋(食物)、蛇的运行方向都定义... -
Java编程思想源代码及课后练习代码
2018-04-11 20:32:33Java编程思想源代码及课后练习代码,因为自己从网上找起来特别麻烦,所以找到后分享下,希望能帮到需要的人吧,只是这个这个资源分为啥不能是零啊 -
基于Java Web的图书销售管理系统(源代码+课程设计报告)
2019-12-30 19:57:58基于Java Web的图书销售管理系统 项目描述 本系统是基于jsp的网上图书销售,有比较符合初学者的简单而又不单一的界面,也有繁琐而又不过于抽象的后台数据处理。包含分类的登录用户(用户与管理员权限与界面不一)... -
Java拼图游戏(Java源代码)
2008-10-26 15:38:57Java刚入手,编一个小游戏,与大家分享! -
Java SSM 高速公路收费系统【优质毕业设计分享】
2021-08-05 16:29:01Java SSM 高速公路收费系统【优质毕业设计分享】包括:程序源代码,数据库,完美运行,配置环境有说明。 -
简易微信发红包源代码.zip
2021-03-31 20:35:22简易微信发红包源代码.zip