面向对象-快递e栈
这是面向对象的一个基本的任务,个人认为没有什么难点,主要在于对于功能的要求要足够清晰;在设置属性时不用追求一步到位,尚且做到走一步算一步,需要一步写一步就好(个人见解——菜鸟一个,多多指教!)。
##涉及知识点
1.存储:数组
2.“单号”查询:下标的应用
3.身份的判断:if语句
##一些细节
1.快递的取出是随机的,所以需要做标记,有快递的就有内容,没有快递的,我自己统一用0来进行标记`
##代码在此,欢迎斧正!
public class 快递E栈 {
public static void main(String[] args) {
//int shenfen = 0;
int kuaidiyuan = 1;
int yonghu = 2;
//用来统计存放了几个快递,留后面查找所有快递信息时用
int count = 0;
//int danhao = 0;//快递单号,用以判断快递是否存在
//公司名称
char gongsiming;
//能存放1000个快递,每个可存放2条信息
int[] kuaidi = new int[1000];
String[] gs =new String[1000];
for(int i=0;i<kuaidi.length;i++) {
//这里是做个标记,没存快递的就是空位,都标记为0,存了的话就有内容了就不是0
kuaidi[i] = 0;
}
//身份上的区别
while(true) {
System.out.println("请输入您的身份:1-快递员,2-用户");
Scanner input = new Scanner(System.in);
int shenfen = input.nextInt();
if(shenfen == 1) {
System.out.println("请选择操作:1-存快递,2-删除快递,3-修改快递信息,4-查看所有快递");
Scanner input1 = new Scanner(System.in);
int caozuo = input1.nextInt();
//身份上区别开来后,开始对不同操作分开编程
if(caozuo == 1) {//括号到52行
System.out.println("请输入快递单号");
Scanner input2 = new Scanner(System.in);
int danhao = input2.nextInt();
System.out.println("请输入公司名称");
Scanner input3 = new Scanner(System.in);
String gongsi = input3.next();//相当于复习:用String来接收字符串,这条格式我前面经常忘!
//接受完单号和公司名称后,记录进数组中
//给一个for循环,把快递单号和公司名称分别存到各自数组中
for(int i=0;i<kuaidi.length;i++) {
if(kuaidi[i] == 0) {
kuaidi[i] = danhao;
gs[i] = gongsi;
System.out.print("快递已存入,取件码是:");
System.out.println(i);
count++;
break;
}
}
}
if(caozuo == 2) {
System.out.println("请输入要删除的快递单号:");
Scanner input4 = new Scanner(System.in);
int danhaochazhao = input4.nextInt();
//再设置一个for循环来进行查找
for(int i=0;i<kuaidi.length;i++) {
if (kuaidi[i] == danhaochazhao) {//找到了,就把他删除
kuaidi[i] = 0;
gs[i] = "无";
System.out.println("删除成功");
break;
}
if(i == kuaidi.length-1) {
System.out.println("未找到快递");//找不到,就输出提示语
}
}
}
//修改快递信息
if(caozuo == 3) {
System.out.println("请输入要修改的快递单号:");
Scanner input7 = new Scanner(System.in);
int daigaidanhao = input7.nextInt();
System.out.println("请输入新的快递单号:");
Scanner input8 = new Scanner(System.in);
int xindanhao = input8.nextInt();
System.out.println("请输入新的公司名称:");
Scanner input9 = new Scanner(System.in);
String xingongsi = input9.next();
//设置一个for循环先把待改单号找到,再来修改
for(int i=0;i<kuaidi.length;i++) {
if(kuaidi[i] == daigaidanhao) {
kuaidi[i] = xindanhao;
gs[i] = xingongsi;
System.out.println("修改成功");
break;
}
}
}
//查看所有快递
if(caozuo == 4) {
System.out.println("所有快递信息如下:");
System.out.print("快递单号");
System.out.print(" ");
System.out.print("公司名称");
System.out.print(" ");
System.out.println("取件码");
//来一个for看存了几个
for(int i=0;i<count;i++) {
System.out.print(kuaidi[i]);
System.out.print(" ");
System.out.print(" ");
System.out.print(gs[i]);
System.out.print(" ");
System.out.print(" ");
System.out.println(i);
}
}
}//身份为1时的操作至此止
if(shenfen == 2) {
System.out.println("请输入取件码:");
Scanner input13 = new Scanner(System.in);
int qujianma = input13.nextInt();
System.out.println("取件成功");
}
}
}