java对象数组练习
对象数组
对象数组的声明
1.先声明对象
package com.sk.arr;
/*** ClassName: Admin
* Description:
* date: 2021/11/25 8:06
** @author 斑马
*/
public class Admin {private String account;private String pwd;public Admin() {}//Alt+Shift+ s+ r//Alt+Shift+ s+ opublic Admin(String account, String pwd) {this.account = account;this.pwd = pwd;}
public String getAccount() {return account;}
public void setAccount(String account) {this.account = account;}
public String getPwd() {return pwd;}
public void setPwd(String pwd) {this.pwd = pwd;}
}
2.测试
package com.sk.arr;
/*** ClassName: AdminTest
* Description:
* date: 2021/11/25 8:16
** @author 斑马
*/
public class AdminTest {/** 对象数组和String,int等类型的数组,没有本质区别* 数组类型是什么,里边的数据就是什么* 严格来说String类型的数组也是对象数组* */Admin admins[]=new Admin[10];public void test(){//赋值//1.创建对象Admin ad=new Admin("zsf","123456");//2.给数组赋值admins[0]=ad;//取值Admin admin=admins[0];System.out.println(admin);//System.out.println(admin.getAccount()+"\t"+admin.getPwd());}/**添加数据*/public void addAdmin(Admin admin){for (int i=0;i
考试管理系统
一,需求分析
1.可以查看试题
2.可以添加试题
3.可以修改试题
4.可以删除试题
5.参加考试
二,实体类分析
1.Admin(管理员)
account 账户 pwd 密码 name昵称
2.试题(TestSubject)
id编号 题目subject 选项option 答案anser 类型type 是否自动判题 isAuto
三,分包
1.实体类 com.sk.entity
2.数据操作 com.sk.dao
3.显示层 com.sk.view
4.测试层 com.sk.test
四,代码实现
1.创建实体类
package com.sk.entity;
/*** ClassName: Admin
* Description:Admin(管理员)* account 账户 pwd 密码 name昵称
* date: 2021/11/25 14:30
** @author 斑马
*/
public class Admin {private String account;private String pwd;private String name;
public Admin() {}
public Admin(String account, String pwd, String name) {this.account = account;this.pwd = pwd;this.name = name;}
public String getAccount() {return account;}
public void setAccount(String account) {this.account = account;}
public String getPwd() {return pwd;}
public void setPwd(String pwd) {this.pwd = pwd;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
}
package com.sk.entity;
/*** ClassName: TestSubjest
* Description:
* date: 2021/11/25 14:56
*id编号 题目subject 选项option 答案anser 类型type 是否自动判题 isAuto* @author 斑马
*/
public class TestSubject {private int id;private String subject;private String option;private String anser;private String type;private int isAuto;//0.自动 1.手动
public TestSubject() {}
public TestSubject(int id, String subject, String option, String anser, String type, int isAuto) {this.id = id;this.subject = subject;this.option = option;this.anser = anser;this.type = type;this.isAuto = isAuto;}
public int getId() {return id;}
public void setId(int id) {this.id = id;}
public String getSubject() {return subject;}
public void setSubject(String subject) {this.subject = subject;}
public String getOption() {return option;}
public void setOption(String option) {this.option = option;}
public String getAnser() {return anser;}
public void setAnser(String anser) {this.anser = anser;}
public String getType() {return type;}
public void setType(String type) {this.type = type;}
public int getIsAuto() {return isAuto;}
public void setIsAuto(int isAuto) {this.isAuto = isAuto;}
}
2.实现登录注册
1)实现数据的操作AdminDao
package com.sk.dao;
import com.sk.entity.Admin;
/*** ClassName: AdminDao
* Description:
* date: 2021/11/25 15:01
*操作关于管理员的数据* @author 斑马
*/
public class AdminDao {//使用static可以实现不同对象之间的数据共享public static Admin[] admins=new Admin[10];/**登录*/public Admin login(String account,String pwd){for (int i=0;i
2)实现view层
package com.sk.view;
import com.sk.dao.AdminDao;
import com.sk.entity.Admin;
import java.util.Scanner;
/*** ClassName: AdminView
* Description:
* date: 2021/11/25 15:23
*管理员页面(视图)* @author 斑马
*/
public class AdminView {Scanner sc=new Scanner(System.in);AdminDao adminDao=new AdminDao();/**开始菜单*/public void start(){System.out.println("欢迎使用考试系统");System.out.println("1.登录");System.out.println("2.注册");System.out.println("请选择(其他选项退出):");int num=sc.nextInt();switch (num){case 1:login();break;case 2:addAdmin();break;default:System.out.println("欢迎下次使用!");}System.out.println("是否返回开始菜单?y/n");String str=sc.next();if(str.equals("y")){start();}else{System.out.println("欢迎下次使用!");}}public void addAdmin() {System.out.println("请输入账户:");String account=sc.next();System.out.println("请输入密码:");String pwd=sc.next();System.out.println("请输入昵称:");String name=sc.next();Admin ad=new Admin(account,pwd,name);adminDao.addAdmin(ad);System.out.println("注册成功!");}public void login() {System.out.println("请输入账户:");String account=sc.next();System.out.println("请输入密码:");String pwd=sc.next();Admin admin=adminDao.login(account,pwd);if(admin!=null){System.out.println("欢迎管理员:"+admin.getName()+"使用本系统!");menu();}else {System.out.println("用户名密码错误,登录失败!");}}public void menu(){System.out.println("1.查看所有试题");System.out.println("2.添加试题");System.out.println("3.修改试题");System.out.println("4.删除试题");System.out.println("5.参加测试");System.out.println("请选择:");int num=sc.nextInt();switch (num){case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;default:System.out.println("输入错误!请重新输入!");menu();}System.out.println("是否返回主菜单?y/n");String str=sc.next();if(str.equals("y")){menu();}}
}
3)测试
package com.sk.test;
import com.sk.dao.AdminDao;
import com.sk.entity.Admin;
import com.sk.view.AdminView;
/*** ClassName: Test
* Description:
* date: 2021/11/25 16:15
** @author 斑马
*/
public class Test {public static void main(String[] args) {Admin ad=new Admin("admin","admin","厨师长");AdminDao.admins[0]=ad;AdminView view=new AdminView();view.start();}
}
4)实现试题的功能
(1)实现dao
package com.sk.dao;
import com.sk.entity.TestSubject;
/*** ClassName: TestSubjectDao
* Description:
* date: 2021/11/25 17:00
** @author 斑马
*/
public class TestSubjectDao {public static TestSubject[] testSubjects=new TestSubject[50];//下边代码参考上午 讲的 Admin的增删改查,写完测试一下//完善TestSubjectView
/**查看*/public TestSubject[] showAll(){return testSubjects;}/**添加*/public void add(TestSubject t){for(int i=0;i
(2)实现view
package com.sk.view;
import com.sk.dao.TestSubjectDao;
import com.sk.entity.TestSubject;
import java.util.Scanner;
/*** ClassName: TestSubjectView
* Description:
* date: 2021/11/26 15:22
** @author 斑马
*/
public class TestSubjectView {Scanner sc=new Scanner(System.in);TestSubjectDao testSubjectDao=new TestSubjectDao();/**查看*/public void show(){TestSubject[] testSubjects=testSubjectDao.showAll();for(int i=0;i
(3)完善AdminView
public void menu(){System.out.println("1.查看所有试题");System.out.println("2.添加试题");System.out.println("3.修改试题");System.out.println("4.删除试题");System.out.println("5.参加测试");System.out.println("请选择:");int num=sc.nextInt();switch (num){case 1:testSubjectView.show();break;case 2:break;case 3:break;case 4:break;case 5:testSubjectView.test();break;default:System.out.println("输入错误!请重新输入!");menu();}System.out.println("是否返回主菜单?y/n");String str=sc.next();if(str.equals("y")){menu();}}
(4)完善测试类
package com.sk.test;
import com.sk.dao.AdminDao;
import com.sk.dao.TestSubjectDao;
import com.sk.entity.Admin;
import com.sk.entity.TestSubject;
import com.sk.view.AdminView;
/*** ClassName: Test
* Description:
* date: 2021/11/25 16:15
** @author 斑马
*/
public class Test {public static void main(String[] args) {Admin ad=new Admin("admin","admin","厨师长");AdminDao.admins[0]=ad;TestSubject t1=new TestSubject(1,"1+1=?","A 1 B 2 C 3 D 4","B","单选",0);TestSubject t2=new TestSubject(2,"2+1=?","A 1 B 2 C 3 D 4","C","单选",0);TestSubject t3=new TestSubject(3,"3+1=?","A 1 B 2 C 3 D 4","D","单选",0);TestSubject t4=new TestSubject(4,"4+1=?","A 1 B 2 C 3 D 5","D","单选",0);TestSubject t5=new TestSubject(5,"5+1=?","A 6 B 2 C 3 D 4","A","单选",0);TestSubject t6=new TestSubject(6,"6+1=?","A 7 B 2 C 3 D 4","A","单选",0);TestSubject t7=new TestSubject(7,"7+1=?","A 1 B 2 C 8 D 4","C","单选",0);TestSubjectDao.testSubjects[0]=t1;TestSubjectDao.testSubjects[1]=t2;TestSubjectDao.testSubjects[2]=t3;TestSubjectDao.testSubjects[3]=t4;TestSubjectDao.testSubjects[4]=t5;AdminView view=new AdminView();view.start();}
}
有些代码暂时没有写,大家可以参考上边的代码把其他功能给实现了
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
