学生管理系统
08月05日 星期三
定义方法的作用:
1、分而治之
2、实现代码的重用
形参:形参的本质是变量,目的是为了接受实参的值。
- 实参的作用是给形参变量赋什么样的值。实参可以是变量或常量,形参只能是变量。
- 形参和实参之间,在传参时,保证个数一致,类型一致,顺序一致。
- 如果一个方法返回一个类型,在调用方法时,可以建立一个返回类型变量,接受方法返回的值。
- 如果一个方法要返回一个类型,就意味着无论任何时候都必须有值的返回。
抽象:就是把一样的抽取出来。
变量:
局部:
局部变量声明在方法、构造方法或者语句块中;
局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁(不能跨方法使用);
访问修饰符不能用于局部变量;
局部变量只在声明它的方法、构造方法或者语句块中可见;
局部变量是在栈上分配的。
局部变量没有默认值,所以局部变量量被声明后,必须经过初始化,才可以使用。全局变量:
在整个类中都可以用。
break与return的区别:
- break只能用在循环和switch中,一般表示提前结束循环,循环结束后,继续执行循环之外的代码。
- return表示跳出方法,一旦执行了return,就会终止该方法中所有的代码执行。
package homeWork0805;
import javax.swing.JOptionPane;
public class landing2 {
public static void main(String[] args) {
JOptionPane.showMessageDialog(null, "欢迎来到学生管理系统!");
boolean islogin = login();
if(islogin == true){
JOptionPane.showMessageDialog(null, "登陆成功");
while (true) {
String x = JOptionPane.showInputDialog("选着:\n1.添加\n2.删除\n3.查找\n4.显示\n5.修改\n6.排序\n7.退出");
int xuanzhe = Integer.parseInt(x);
switch (xuanzhe) {
case 1:
add();
break;
case 2:
del();
break;
case 3:
save();
break;
case 4:
show();
break;
case 5:
change();
break;
case 6:
sort();
break;
case 7:
System.exit(0);
break;
default:
JOptionPane.showMessageDialog(null, "请输入:1-7");
break;
}
}
}
}
static int studentNum = 0;
static String [] number = new String[20];
static String [] name= new String[20];
static int [] grade= new int[20];
//把代码的下标找出来
private static int findByNameID(){
int index = -1;
String N = JOptionPane.showInputDialog("请输入你找的姓名!");
for (int i = 0; i < studentNum; i++) {
if (name[i].equals(N) ) {
index = i;
return index;
}
}JOptionPane.showMessageDialog(null, "用户不存在!");
return index;
}
//添加
private static void add() {
number[studentNum] = JOptionPane.showInputDialog("请输入学号");
name[studentNum] = JOptionPane.showInputDialog("请输入名字");
String x = JOptionPane.showInputDialog("请输入分数");
grade[studentNum] = Integer.parseInt(x);
studentNum++;
return;
}
//删除
private static void del() {
int index = findByNameID();
if (index != -1) {
for (int j = index; j < studentNum-1; j++) {
name[j] = name[j+1];
number[j] = number[j+1];
grade[j] = grade[j+1];
}studentNum--;
}
show();
}
//查询
private static void save() {
int index = findByNameID();
if (index != -1) {
JOptionPane.showMessageDialog(null, "此人是:"+name[index]+"学号:"+number[index]+"成绩:"+grade[index]+"下标:"+index);
}
}
//显示
private static void show() {
// TODO Auto-generated method stub
String str = "学号 名字 成绩\n";
for (int i = 0; i < studentNum; i++) {
str += number[i]+" "+name[i]+" "+grade[i]+"\n";
}
JOptionPane.showMessageDialog(null, str);
}
//修改
private static void change() {
int index = findByNameID();
if (index != -1) {
name[index] = JOptionPane.showInputDialog(name[index]+"姓名修改成:");
String x1 = JOptionPane.showInputDialog(grade[index]+"成绩修改成:");
grade[index] = Integer.parseInt(x1);
number[index] = JOptionPane.showInputDialog(number[index]+"学号修改成:");
}
show();
}
//排序
private static void sort() {
int y = JOptionPane.showConfirmDialog(null, "是否需想依照成绩排序?");
if (y == 0) {
for (int i = 0; i < studentNum; i++) {
for (int j = i+1; j < studentNum; j++) {
if(grade[i]<grade[j]){
int temp1=grade[i];
grade[i]=grade[j];
grade[j]=temp1;
String temp2=name[i];
name[i] = name[j];
name[j] = temp2;
String temp3 = number[i];
number[i] = number[j];
number[j] = temp3;
}
}
}
int f = JOptionPane.showConfirmDialog(null, "是否显示剩下学生?");
if (f == 0) {
show();
}
}
}
private static boolean login() {
for (int i = 0; i < 3; i++) {
String x = JOptionPane.showInputDialog("输入用户名!");
String y = JOptionPane.showInputDialog("请输入密码!");
if (x.equals("123")&&y.equals("123")) {
return true;
}
}JOptionPane.showMessageDialog(null, "非法用户。");
return false;
}
}