以上是我编的一个程序,一切功能都可以实现,但就上在我实现删除功能之后再调用添加功能时就有点问题,但实现其他功能再调用添加功能就没问题了,请各位帮解决一下,谢谢~~~~~~~
以上是我编的一个程序,一切功能都可以实现,但就上在我实现删除功能之后再调用添加功能时就有点问题,但实现其他功能再调用添加功能就没问题了,请各位帮解决一下,谢谢~~~~~~~
玛雅,我的姐姐呀!你写的程序太好看了!我帮你把它贴出来!
import javax.swing.*;
class IndexIterm{ //数据类
String name;
String number;
String grade;
String scorse;
}
class method{ //方法类
IndexIterm tel[] = new IndexIterm[30000]; //定义一个大小30000的数组
int m=0; //全局变量
public int menu(){ //菜单函数
String a=JOptionPane.showInputDialog("1、添加新内容\n"+"2、查询一项记录\n"
+"3、删除一项记录\n"+"4、修改一项记录\n"+"5、输出\n"+"0、退出");
int b=Integer.parseInt(a);
return b;
}
public void init(){//初始化函数,为tel分配内存空间
for(int i=0;i<tel.length;i++){
tel[i]=new IndexIterm();
}
}
public void add(){//添加函数
//第一次调用时,m=0
String n=JOptionPane.showInputDialog("你想输入多少个记录?");
int y=Integer.parseInt(n);
for(int i=0;i<y;i++){//以y为上限,确定每次输入一定的记录
String name=JOptionPane.showInputDialog("请输入姓名");
tel[m].name=name;
String number=JOptionPane.showInputDialog("请输入学号");
tel[m].number=number;
String a=JOptionPane.showInputDialog("请输入学位级别(1-研究生,2-本科生)");
int b=Integer.parseInt(a);
if(b==1){//研究生成绩输入
tel[m].grade="研究生";
String scr=JOptionPane.showInputDialog("请输入成绩(0--100)");
int c=Integer.parseInt(scr);
if(c>=90&&c<=100)
tel[m].scorse="优秀";
else if(c>=80)
tel[m].scorse="良好";
else if(c>=70)
tel[m].scorse="中等";
else if(c>=60)
tel[m].scorse="合格";
else if(c>=0&&c<=60)
tel[m].scorse="不合格";
}
else if(b==2){//本科生成绩输入
tel[m].grade="本科生";
String scr=JOptionPane.showInputDialog("请输入成绩(0--100)");
int c=Integer.parseInt(scr);
if(c>=85&&c<=100)
tel[m].scorse="优秀";
else if(c>=75)
tel[m].scorse="良好";
else if(c>=65)
tel[m].scorse="中等";
else if(c>=50)
tel[m].scorse="合格";
else if(c>=0&&c<=60)
tel[m].scorse="不合格";
}
m++;
}
}
public void index(){//查询函数
String output1="";
JTextArea outputArea=new JTextArea(15,27);
JScrollPane out=new JScrollPane(outputArea);
output1+="学号"+"\t"+"姓名"+"\t"+"学位级别"+"\t"+"成绩\n";
String dt=JOptionPane.showInputDialog("1、按学号查询\n"+"2、按名字查询\n"+"0、退出删除");
int a=Integer.parseInt(dt);
if(a==1){//按学号查询
String number=JOptionPane.showInputDialog("请输入学号");
for(int i=0;i<m;i++){
boolean t=number.equals(tel[i].number); //输入number与tel[i].number比较
if(t==true){//成功匹配
output1+=tel[i].number+"\t"+tel[i].name+"\t"+tel[i].grade+"\t"+tel[i].scorse+"\n";
outputArea.setText(output1);
JOptionPane.showMessageDialog(null,out,"查询结果",JOptionPane.PLAIN_MESSAGE);//输入查询结果
}
}
}
if(a==2){//按名字查询
String name=JOptionPane.showInputDialog("请输入姓名");
for(int i=0;i<m;i++){
boolean t=name.equals(tel[i].name); //输入name与tel[i].name比较
if(t==true){//匹配成功
output1+=tel[i].number+"\t"+tel[i].name+"\t"+tel[i].grade+"\t"+tel[i].scorse+"\n";
outputArea.setText(output1);
JOptionPane.showMessageDialog(null,out,"查询结果",JOptionPane.PLAIN_MESSAGE);//输出查询结果
}
}
}
if(a==0){//退出查询
JOptionPane.showMessageDialog(null,"你将推出查询操作!","重要提示",JOptionPane.WARNING_MESSAGE);
}
}
public void detele(){//删除函数
String output3="";
JTextArea outputArea=new JTextArea(15,27);
JScrollPane out=new JScrollPane(outputArea);
output3+="学号"+"\t"+"姓名"+"\t"+"学位级别"+"\t"+"成绩\n";
String dt=JOptionPane.showInputDialog("1、按学号删除项\n"+"2、按名字删除项\n"+"0、退出删除");
int a=Integer.parseInt(dt);
if(a==1){//按学号查询
String number=JOptionPane.showInputDialog("请输入要删除项的学号");
for(int i=0;i<m;i++){
boolean t=number.equals(tel[i].number);//输入学号与tel[i].number比较
if(t==true){//比较相等
output3+=tel[i].number+"\t"+tel[i].name+"\t"+tel[i].grade+"\t"+tel[i].scorse+"\n";//临时存储该项记录
for(int k=i;k<m;k++){
tel[k]=tel[k+1];//后面的记录项均前移一位
}
}
}
m--;
outputArea.setText(output3);
JOptionPane.showMessageDialog(null,out,"你所删除的项",JOptionPane.PLAIN_MESSAGE);//输出删除的记录
}
if(a==2){//按名字删除
String name=JOptionPane.showInputDialog("请输入要删除项的名字");
for(int i=0;i<m;i++){
boolean t=name.equals(tel[i].name);
if(t==true){
output3+=tel[i].number+"\t"+tel[i].name+"\t"+tel[i].grade+"\t"+tel[i].scorse+"\n";
for(int k=i;k<m;k++){
tel[k]=tel[k+1];
}
}
}
m--;
outputArea.setText(output3);
JOptionPane.showMessageDialog(null,out,"你所删除的项",JOptionPane.PLAIN_MESSAGE);
}
if(a==0){//退出删除
JOptionPane.showMessageDialog(null,"你将退出删除操作!","重要提示",JOptionPane.WARNING_MESSAGE);
}
}
public void repair(){//修改函数,修改学位级别时,成绩也要重新输入
String output2="";
JTextArea outputArea=new JTextArea(15,27);
JScrollPane out=new JScrollPane(outputArea);
output2+="学号"+"\t"+"姓名"+"\t"+"学位级别"+"\t"+"成绩\n";
String dt=JOptionPane.showInputDialog("1、修改学号\n"+"2、修改名字\n"+"3、修改学位级别\n"
+"4、修改成绩\n"+"0、退出");
int a=Integer.parseInt(dt);
if(a==1){//修改学号
String num=JOptionPane.showInputDialog("请输入要修改的学号");
for(int i=0;i<m;i++){
boolean t=num.equals(tel[i].number);//匹配
if(t==true){//匹配成功
String number=JOptionPane.showInputDialog("请输入修改后的学号");
tel[i].number=number;//修改
output2+=tel[i].number+"\t"+tel[i].name+"\t"+tel[i].grade+"\t"+tel[i].scorse+"\n";
outputArea.setText(output2);
JOptionPane.showMessageDialog(null,out,"你所修改的项",JOptionPane.PLAIN_MESSAGE);
}
}
}
if(a==2){//修改名字
String nam=JOptionPane.showInputDialog("请输入要修改的姓名");
for(int i=0;i<m;i++){
boolean t=nam.equals(tel[i].name);// 匹配
if(t==true){//匹配成功
String name=JOptionPane.showInputDialog("请输入姓名");
tel[i].name=name;//修改
output2+=tel[i].number+"\t"+tel[i].name+"\t"+tel[i].grade+"\t"+tel[i].scorse+"\n";
outputArea.setText(output2);
JOptionPane.showMessageDialog(null,out,"你所修改的项",JOptionPane.PLAIN_MESSAGE);
}
}
}
if(a==3){//修改学位级别
int i;
String dt1=JOptionPane.showInputDialog("1、通过学号来修改\n"+"2、通过名字来修改\n"+"0、退出");
int abc=Integer.parseInt(dt1);
if(abc==1){//按学号来修改学位级别
String num=JOptionPane.showInputDialog("请输入学号");
for( i=0;i<m;i++){
boolean t=num.equals(tel[i].number);
if(t==true){
String gd=JOptionPane.showInputDialog("请输入学位级别(1-研究生,2-本科生)");
int b=Integer.parseInt(gd);
if(b==1){//研究生重新输入成绩
tel[i].grade="研究生";
String scr=JOptionPane.showInputDialog("请输入成绩(0--100)");
int c=Integer.parseInt(scr);
if(c>=90&&c<=100)
tel[i].scorse="优秀";
else if(c>=80)
tel[m].scorse="良好";
else if(c>=70)
tel[i].scorse="中等";
else if(c>=60)
tel[i].scorse="合格";
else if(c>=0&&c<=60)
tel[i].scorse="不合格";
output2+=tel[i].number+"\t"+tel[i].name+"\t"+tel[i].grade+"\t"+tel[i].scorse+"\n";
outputArea.setText(output2);
JOptionPane.showMessageDialog(null,out,"你所修改的项",JOptionPane.PLAIN_MESSAGE);//输出修改记录
}
if(b==2){//本科生重新输入成绩
tel[i].grade="本科生";
String scr=JOptionPane.showInputDialog("请输入成绩(0--100)");
int c=Integer.parseInt(scr);
if(c>=85&&c<=100)
tel[i].scorse="优秀";
else if(c>=75)
tel[i].scorse="良好";
else if(c>=65)
tel[i].scorse="中等";
else if(c>=50)
tel[i].scorse="合格";
else if(c>=0&&c<=60)
tel[i].scorse="不合格";
output2+=tel[i].number+"\t"+tel[i].name+"\t"+tel[i].grade+"\t"+tel[i].scorse+"\n";
outputArea.setText(output2);
JOptionPane.showMessageDialog(null,out,"你所修改的项",JOptionPane.PLAIN_MESSAGE);
}
}
}
}
if(abc==2){//按名字来修改学位
String nam=JOptionPane.showInputDialog("请输入名字");
for( i=0;i<m;i++){
boolean t=nam.equals(tel[i].name);//与输入name匹配
if(t==true){//匹配成功
String gd=JOptionPane.showInputDialog("请输入学位级别(1-研究生,2-本科生)");
int b=Integer.parseInt(gd);
if(b==1){//研究生重新输入成绩
tel[i].grade="研究生";
String scr=JOptionPane.showInputDialog("请输入成绩(0--100)");
int c=Integer.parseInt(scr);
if(c>=90&&c<=100)
tel[i].scorse="优秀";
else if(c>=80)
tel[i].scorse="良好";
else if(c>=70)
tel[i].scorse="中等";
else if(c>=60)
tel[i].scorse="合格";
else if(c>=0&&c<=60)
tel[i].scorse="不合格";
output2+=tel[i].number+"\t"+tel[i].name+"\t"+tel[i].grade+"\t"+tel[i].scorse+"\n";
outputArea.setText(output2);
JOptionPane.showMessageDialog(null,out,"你所修改的项",JOptionPane.PLAIN_MESSAGE);
}
if(b==2){//本科生重新输入成绩
tel[i].grade="本科生";
String scr=JOptionPane.showInputDialog("请输入成绩(0--100)");
int c=Integer.parseInt(scr);
if(c>=85&&c<=100)
tel[i].scorse="优秀";
else if(c>=75)
tel[i].scorse="良好";
else if(c>=65)
tel[i].scorse="中等";
else if(c>=50)
tel[i].scorse="合格";
else if(c>=0&&c<=60)
tel[i].scorse="不合格";
output2+=tel[i].number+"\t"+tel[i].name+"\t"+tel[i].grade+"\t"+tel[i].scorse+"\n";
outputArea.setText(output2);
JOptionPane.showMessageDialog(null,out,"你所修改的项",JOptionPane.PLAIN_MESSAGE);
}
}
}
}
if(abc==0){//退出学位级别修改
JOptionPane.showMessageDialog(null,"你将退出学位级别修改","重要提示",JOptionPane.WARNING_MESSAGE);
}
}
if(a==4){//修改成绩
int i;
String dt1=JOptionPane.showInputDialog("1、通过学号来修改\n"+"2、通过名字来修改\n"+"0、退出");
int abc=Integer.parseInt(dt1);
if(abc==1){//通过学号修改
String num=JOptionPane.showInputDialog("请输入学号");
for( i=0;i<m;i++){
boolean t=num.equals(tel[i].number);//找到相应位置
if(t==true){
boolean k=tel[i].grade.equals("研究生");//判断学位级别
if(k==true){//研究生修改成绩
String scr=JOptionPane.showInputDialog("请输入成绩(0--100)");
int c=Integer.parseInt(scr);
if(c>=90&&c<=100)
tel[i].scorse="优秀";
else if(c>=80)
tel[i].scorse="良好";
else if(c>=70)
tel[i].scorse="中等";
else if(c>=60)
tel[i].scorse="合格";
else if(c>=0&&c<=60)
tel[i].scorse="不合格";
output2+=tel[i].number+"\t"+tel[i].name+"\t"+tel[i].grade+"\t"+tel[i].scorse+"\n";
outputArea.setText(output2);
JOptionPane.showMessageDialog(null,out,"你所修改的项",JOptionPane.PLAIN_MESSAGE);
}
else{//本科生修改成绩
String scr=JOptionPane.showInputDialog("请输入成绩(0--100)");
int c=Integer.parseInt(scr);
if(c>=85&&c<=100)
tel[i].scorse="优秀";
else if(c>=75)
tel[i].scorse="良好";
else if(c>=65)
tel[i].scorse="中等";
else if(c>=50)
tel[i].scorse="合格";
else if(c>=0&&c<=60)
tel[i].scorse="不合格";
output2+=tel[i].number+"\t"+tel[i].name+"\t"+tel[i].grade+"\t"+tel[i].scorse+"\n";
outputArea.setText(output2);
JOptionPane.showMessageDialog(null,out,"你所修改的项",JOptionPane.PLAIN_MESSAGE);
}
}
}
}
if(abc==2){//通过名字修改成绩
String nam=JOptionPane.showInputDialog("请输入名字");
for( i=0;i<m;i++){
boolean t=nam.equals(tel[i].name);//通过 name判断位置
if(t==true){
boolean k=tel[i].grade.equals("研究生");
if(k==true){//研究生
String scr=JOptionPane.showInputDialog("请输入成绩(0--100)");
int c=Integer.parseInt(scr);
if(c>=90&&c<=100)
tel[i].scorse="优秀";
else if(c>=80)
tel[i].scorse="良好";
else if(c>=70)
tel[i].scorse="中等";
else if(c>=60)
tel[i].scorse="合格";
else if(c>=0&&c<=60)
tel[i].scorse="不合格";
output2+=tel[i].number+"\t"+tel[i].name+"\t"+tel[i].grade+"\t"+tel[i].scorse+"\n";
outputArea.setText(output2);
JOptionPane.showMessageDialog(null,out,"你所修改的项",JOptionPane.PLAIN_MESSAGE);
}
else{//本科生
String scr=JOptionPane.showInputDialog("请输入成绩(0--100)");
int c=Integer.parseInt(scr);
if(c>=85&&c<=100)
tel[i].scorse="优秀";
else if(c>=75)
tel[i].scorse="良好";
else if(c>=65)
tel[i].scorse="中等";
else if(c>=50)
tel[i].scorse="合格";
else if(c>=0&&c<=60)
tel[i].scorse="不合格";
output2+=tel[i].number+"\t"+tel[i].name+"\t"+tel[i].grade+"\t"+tel[i].scorse+"\n";
outputArea.setText(output2);
JOptionPane.showMessageDialog(null,out,"你所修改的项",JOptionPane.PLAIN_MESSAGE);
}
}
}
}
if(abc==0){//退出成绩修改
JOptionPane.showMessageDialog(null,"你将退出成绩修改","重要提示",JOptionPane.WARNING_MESSAGE);
}
}
if(a==0){//退出修改
JOptionPane.showMessageDialog(null,"你将退出修改程序","重要提示",JOptionPane.WARNING_MESSAGE);
}
}
public void print(){//打印清单
String output="";
output+="学号"+"\t"+"姓名"+"\t"+"学位级别"+"\t"+"成绩\n";
JTextArea outputArea=new JTextArea(15,27);
JScrollPane out=new JScrollPane(outputArea);
for(int j=0;j<m;j++){
output+=tel[j].number+"\t"+tel[j].name+"\t"+ tel[j].grade+"\t"+tel[j].scorse+"\n";
}
outputArea.setText(output);
JOptionPane.showMessageDialog(null,out,"输出清单",JOptionPane.PLAIN_MESSAGE);
}
}
public class examResult{
public static void main(String[] args){
method pt=new method();//定义方法类对象pt
pt.init();//调用初始化函数
int i=pt.menu();//调用菜单
for(int k=0;;k++){
if(i==1){
pt.add();
i=pt.menu();
}
if(i==2){
pt.index();
i=pt.menu();
}
if(i==3){
pt.detele();
i=pt.menu();
}
if(i==4){
pt.repair();
i=pt.menu();
}
if(i==5){
pt.print();
i=pt.menu();
}
if(i==0){
JOptionPane.showMessageDialog(null,"谢谢使用!","实验结果",JOptionPane.PLAIN_MESSAGE);
break;
}
}
System.exit(0);
}
}