java之集合练习,数据库基本操作练习

2、现在要开发一个班级管理系统,对学生信息进行管理;

班级里有学生,组长和班长几种学生;
学生信息包括:姓名、学号、年龄;
学生需要进行自我介绍的功能,组长能对学生进行单独辅导,而班长能给班级所有学生进行点名。
系统需要提供的功能有:
定义学生集合。
添加学生,需要输入学生信息,并选择学生类型(学生、组长、班长),加入到班级中。
显示所有学生。
删除学生,输入学号,从班级中删除该学生所有信息。
查询学生,输入学生学号,查询该学生后首先进行自我介绍,如果是组长调用辅导方法,如果是班长就给班级学生点名。

分析:
定义学生类,属性:姓名、学号、年龄,方法:自我介绍
组长类继承学生类,方法:辅导,重写自我介绍
班长类继承学生类,方法:点名,重写自我介绍
定义管理系统类,有学生集合属性
方法:创建学生、显示学生、删除学生

public class Student {
	// 学生信息包括:姓名、学号、年龄;学生需要进行自我介绍的功能
	private String name;
	private int num;
	private int age;
	public Student() {
		super();
	}
	public Student(String name, int num, int age) {
		super();
		this.name = name;
		this.num = num;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	@Override
	public String toString() {
		return "Student [name=" + name + ", num=" + num + ", age=" + age + "]";
	}
	public void zWJS(){
		System.out.println("大家好,我叫:"+getName()+",学号为:"+getNum()+"今年"+getAge()+"岁");
	}
}
public class ZuZhang extends Student {
	
	public ZuZhang() {
		super();
	}
	public ZuZhang(String name, int num, int age) {
		super(name, num, age);
	}
	@Override
	public void zWJS() {
		System.out.println("大家好,我是一名组长,我叫:"+getName()+",学号为:"+getNum()+"今年"+getAge()+"岁");
		fuDao();
	}
	public void fuDao(){
		System.out.println("组长"+getName()+"正在对学生进行单独辅导");
	}
}
public class BanZhang extends Student {
	
	public BanZhang() {
		super();
	}

	public BanZhang(String name, int num, int age) {
		super(name, num, age);
	}
	@Override
	public void zWJS() {
		System.out.println("大家好,我是一名班长,我叫:"+getName()+",学号为:"+getNum()+"今年"+getAge()+"岁");
		dianMing();
	}
	public void dianMing(){
		System.out.println("班长"+getName()+"正在给班级所有学生进行点名");
	}
}
public class StudentSystem {
	//单例设计模式
	private StudentSystem(){}
	private static StudentSystem instance = new StudentSystem();
	public static StudentSystem getInstance(){
		return instance;
	}
	//学生集合
	private List<Student> list = new ArrayList<Student>();
	private Scanner input = new Scanner(System.in);
	public void run() {
		while(true) {
			startMenu();
			try {
				String select = input.next();
				switch(select) {
				case "1":
					createStudent();
					break;
				case "2":
					showStudent();
					break;
				case "3":
					searchStudent();
					break;
				case "4":
					deleteStudent();
					break;
					default:
					System.out.println("输入有误!请重新输入:");
						break;
				}
			} catch (Exception e) {
				System.out.println("输入有误!请重新输入:");
			}
		}
	}
	// 开始菜单
		private void startMenu() {
			System.out.println("****************欢迎使用学生信息管理系统*************");
			System.out.println("请选择你需要的操作:");
			System.out.println("1. 添加学生信息");
			System.out.println("2. 显示所有学生信息");
			System.out.println("3. 查询学生信息");
			System.out.println("4. 删除学生信息");
		}
	//创建学生
	private void createStudent() {
		System.out.println("请输入学生的姓名:");
		String name = input.next();
		System.out.println("请输入学生的学号:");
		String numStr = input.next();
		System.out.println("请输入学生的年龄:");
		String ageStr = input.next();
		System.out.println("请选择学生的类型:");
		System.out.println("1. 学生    2. 组长    3.班长");
		String select = input.next();
		Student stu = null;
		if(select.equals("1")) {
			 stu = new Student();
		}else if(select.equals("2")) {
			 stu = new ZuZhang();
		}else if(select.equals("3")) {
			 stu = new BanZhang();
		}
		stu.setName(name);
		int num = 190400;
		int age = 18;
		try {
			num = Integer.parseInt(numStr);
			age = Integer.parseInt(ageStr);
		}catch(Exception e) {
			
		}
		stu.setNum(num);
		stu.setAge(age);
		list.add(stu);
	}
	//显示学生
	private void showStudent() {
		for (Student student : list) {
			student.zWJS();
		}
	}
	//查询学生
	private void searchStudent() {
		System.out.println("请输入学生的学号:");
		String str = input.next();
		int n = Integer.parseInt(str);
		for (Student student : list) {
			if((student.getNum()) == n) {
				student.zWJS();
			}
		}
	}
	//删除学生
	private void deleteStudent() {
		System.out.println("请输入学生的学号:");
		String str = input.next();
		int n = Integer.parseInt(str);
		for (Student student : list) {
			if(student.getNum() == n) {
				list.remove(student);
			}
		}
	}

}
public class Test {
	public static void main(String[] args) {
		StudentSystem system = StudentSystem.getInstance();
		system.run();
	}
	
}
public class Test {
	public static void main(String[] args) {
		ArrayList<Student> list = new ArrayList<Student>();
		list.add(new BanZhang("李博展", 190441, 23));
		list.add(new ZuZhang("郑露露",190405,24));
		list.add(new Student("廖雄", 190451, 22));
		list.add(new Student("苏晨", 190452, 21));
		list.add(new Student("沈成", 190454, 21));
		list.add(new Student("周明", 190448, 24));
		list.add(new Student("陈顺东", 190449, 22));
		for (Student student : list) {
			System.out.println(student);
		}
		for (int i = 0; i < list.size(); i++) {
			Student s =list.get(i);
			if(s.getNum() == 190451){
				list.remove(i);
			}
		}
		System.out.println("-------------");
		for (Student student : list) {
			System.out.println(student);
		}
		for (int i = 0; i < list.size(); i++) {
			if(list.get(i).getNum() == 190405){
				list.get(i).zWJS();
			}
		}
	}
}

1、写SQL语句,创建数据库和员工表(employee):

作业:
1、写SQL语句,创建数据库和员工表(employee):

  id  	name	age 	salary	dept
  1   	张三  	20  	3000  	市场部 
  2   	李四  	24  	4000  	市场部 
  3   	王五  	27  	2000  	技术部 
  4   	赵六  	28  	5000  	技术部 
  5   	周琪  	18  	6000  	维修部 
mysql -u root -p
root
create database home default character set utf8;
show databases;
use home;
create table employee(
id INT primary key  auto_increment,
name varchar(80) not null,
age int,
salary DOUBLE not null,
dept varchar(200) 
);
desc employee;

 2、在表中插入上面的数据
insert into employee values
(1, '张三',20,3000,'市场部'),
(2, '李四',24,4000,'市场部'),
(3, '王五',27,2000,'技术部'),
(4, '赵六',28,5000,'技术部'),
(5, '周琪',18,6000,'维修部');
select * from employee;
 3、更新id为2的工资,将工资加200
update employee set salary = salary + 200 where id = 2;
 4、删除年龄低于20的员工
delete from employee where age < 20;
 5、查询年龄超过24,工资小于5000的员工
select * from employee where age > 24 and salary < 5000;
 6、工资最高的两个员工
select * from employee order by salary desc limit 2;
 7、年龄最低 的一个员工
select * from employee order by age asc limit 1;
 8、所有姓周的员工
select * from employee where name like '周%';
 9、查询不同部门的人数
select dept,count(1) from employee group by dept;
 10、查询平均工资低于4000的部门
select dept from employee group by dept having avg(salary) < 4000;
 11、在插入15行数据,每5行一页,分页查询前4页数据
insert into employee values
(6, '老大',20,3200,'市场部'),
(7, '老二',24,4000,'维修部'),
(8, '老三',27,2200,'技术部'),
(9, '老四',28,5000,'技术部'),
(10, '老五',20,3200,'市场部'),
(11, '老六',24,4000,'技术部'),
(12, '老七',27,2000,'技术部'),
(13, '老八',28,5000,'维修部'),
(14, '小二',20,3200,'市场部'),
(15, '小三',24,4000,'市场部'),
(16, '小四',27,2200,'技术部'),
(17, '小五',28,5000,'维修部'),
(18, '小六',20,3300,'技术部'),
(19, '小七',24,4300,'市场部'),
(20, '小九',27,2500,'维修部'),
(21, '老幺',28,5000,'技术部'),
(22, '周琪',18,6100,'维修部');
select * from employee;
select * from employee limit 5;
select * from employee limit 5,5;
select * from employee limit 10,5;
select * from employee limit 15,5;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值