转载文章源地址:
Java基础阶段综合练习 https://www.cnblogs.com/hd976521/archive/2017/02/10/6387514.html
(转载过来,以备后用 O(∩_∩)O)
package com.模拟练习题一;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
/**
* 1.键盘输入10个数,放到数组中
a. 去除该数组中大于10的数
b. 将该数组中的数字写入到本地文件number.txt中
* @author Administrator
*
*/
public class Demo01 {
public static void main(String[] args) throws IOException {
//键盘输入10个数数组
int[] arr = getArr();
//去除大于10的
int[] arr1 = remove(arr);
//写入
BufferedWriter bw = new BufferedWriter(new FileWriter("number.txt"));
for (int i : arr1) {
bw.write(i+" ");
}
bw.close();
}
private static int[] remove(int[] arr) {
ArrayList list = new ArrayList<>();
for (int i = 0; i < arr.length; i++) {
if(arr[i]>10){
list.add(arr[i]);
}
}
int[] arr1 = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
arr1[i] = list.get(i);
}
return arr1;
}
private static int[] getArr() {
System.out.println("请输入10个整数:");
Scanner sc = new Scanner(System.in);
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
arr[i] =sc.nextInt();
}
return arr;
}
}
复制代码
复制代码
package com.模拟练习题一;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 2.map中有如下数据(电话号=套餐价格)
[13265477888=168,15241698745=11,13699989898=20,1898686666=120]
在ip为127.0.0.1数据库名为stdb,连接数据库的用户名和密码为:admin和123456中有一个numinfo表相关字段为(id,iphonenum,tomoney)(15分)
(1)将map中的手机号码取出来打印到控制台上(3分)
(2)判断map中所有的手机号在numinfo表中是否存在存在则输出"该主机已登录"如果不存在将该号码及对应的套餐价格存入到numinfo表中.(12分)
(map中的数据不需要修改)
* @author Administrator
*
*/
public class Demo02 {
public static void main(String[] args) throws Exception {
Map map = new LinkedHashMap<>();
map.put("13265477888", 168);
map.put("15241698745", 11);
map.put("13699989898", 20);
map.put("18986886666", 120);
System.out.println(map);
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mybase", "root", "123456");
PreparedStatement pstmt=null;
ResultSet rs =null;
for(String phone : map.keySet()){
Integer values = map.get(phone);
String sql = "select * from numinfo where iphonenum=?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, phone);
rs = pstmt.executeQuery();
if(rs.next()){
System.out.println("以登录");
}else{
String sql1 = "insert into numinfo(iphonenum,tomoney) values (?,?)";
pstmt = con.prepareStatement(sql1);
pstmt.setString(1, phone);
pstmt.setInt(2, values);
int row = pstmt.executeUpdate();
if(row!=0){
System.out.println("注册成功");
}
}
}
con.close();
rs.close();
pstmt.close();
}
}
复制代码
复制代码
package com.模拟练习题二;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 1.产生10个1-100的随机数,并放到一个数组中
(1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台。
(2)把数组中小于10的数字放到一个map集合中,并打印到控制台。
(3)把数组中的数字放到当前文件夹的number.txt文件中
*/
public class Demo01 {
public static void main(String[] args) throws IOException {
int[] arr = getRomdon();
List list = new ArrayList<>();
Map map = new HashMap<>();
BufferedWriter bw = new BufferedWriter(new FileWriter("number.txt"));
for (int i = 0; i < arr.length; i++) {
if(arr[i] >= 10){
list.add(arr[i]);
}else{
map.put(i, arr[i]);
}
bw.write(arr[i]+" ");
}
System.out.println(list);
System.out.println(map);
bw.close();
}
private static int[] getRomdon() {
// TODO Auto-generated method stub
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
int num = (int) (Math.random()*100+1);
arr[i]=num;
}
return arr;
}
}
复制代码
复制代码
package com.模拟练习题二;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* 2.数据库题:
用jdbc链接数据库stu,该数据中有一个表为student,
表中数据如下:
id name sex score
1 李少荣 女 80
2 邵凯 男 75
3 周强 男 95
4 王晓婷 女 55
5 张秀花 女 68
6 顾会 女 50
7 赵天一 男 32
(1)查找60分以上的学生信息
(2)将男生且名字是两个数的成绩改成100。
*
*/
public class Demo02 {
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybase","root","123456");
// query(con);
update(con);
}
private static void update(Connection con) throws SQLException {
// TODO Auto-generated method stub
String sql = "update student set score=100 where name like'__' and sex='男'";
PreparedStatement pstmt = con.prepareStatement(sql);
int row = pstmt.executeUpdate(sql);
System.out.println(row);
}
private static void query(Connection con) throws SQLException {
// TODO Auto-generated method stub
String sql = "select * from student where score>60";
PreparedStatement pstmt = con.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
int count = rs.getMetaData().getColumnCount();
while(rs.next()){
for (int i = 1; i <= count; i++) {
System.out.print(rs.getString(i));
if(i=1 && num<=12){
if(num>=3 && num<=5){
System.out.println("春季");
}
if(num>=6 && num<=8){
System.out.println("夏季");
}
if(num>=9 && num<=11){
System.out.println("秋季");
}
if(num==12 || num<=2){
System.out.println("冬季");
}
}else
System.out.println("你输入的月份不存在");
}
}
复制代码
复制代码
package com.模拟练习题三;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* 2.向list集合添加姓名{张三,李四,王五,二丫,钱六,孙七},将二丫替换为王小丫,写入到"D:\\stuinfo.txt"
* @author Administrator
*
*/
public class Demo02 {
public static void main(String[] args) throws IOException {
List list = new ArrayList<>();
Collections.addAll(list, "张三","李四","王五","二丫","钱六","孙七");
BufferedWriter bw = new BufferedWriter(new FileWriter("stuinfo.txt"));
for (int i = 0; i < list.size(); i++) {
//判断集合中的元素有没有等于"二丫"的改成王二牙
if(list.get(i).equals("二丫")){
list.set(i, "王二丫");
//改过后写入文件中
bw.write(list.get(i)+" ");
//跳出本次循环,不然会被写入两次,if外还在循环写入
continue;
}
bw.write(list.get(i)+" ");
}
//释放资源
bw.close();
}
}
复制代码
复制代码
package com.模拟练习题三;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* 3.一个数据库stu,用户名为admin 密码为123456 已存在一个表中有五个学生的信息,姓名,性别,年龄,分数.
id name sex score
1 李少荣 女 80
2 邵凯 男 75
3 周强 男 95
4 王晓婷 女 55
5 张秀花 女 68
6 顾会 女 50
7 赵天一 男 32
(1)查询女性,成绩80以上
(2)将姓张的男同学的的成绩改为100
(3)查询年龄大于20的女性,显示姓名,性别,年龄
* @author Administrator
*
*/
public class Demo03 {
public static void main(String[] args) throws Exception {
//加载驱动类
Class.forName("com.mysql.jdbc.Driver");
//接连数据库
Connection con =DriverManager.getConnection("jdbc:mysql://localhost:3306/mybase", "root", "123456");
// query(con);
// update(con);
queryse(con);
}
private static void queryse(Connection con) throws SQLException {
String sql = "select * from student where score>50 and sex='女'";
PreparedStatement pstmt = con.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
System.out.println(rs.getString("name")+","+rs.getString("sex")+","+rs.getString("score"));
}
}
private static void update(Connection con) throws SQLException {
// TODO Auto-generated method stub
String sql ="update student set score=100 where name like'赵%' and sex='男'";
PreparedStatement pstmt = con.prepareStatement(sql);
int row = pstmt.executeUpdate();
System.out.println(row);
}
private static void query(Connection con) throws SQLException {
// TODO Auto-generated method stub
String sql = "select * from student where score>80 and sex='女'";
PreparedStatement pstmt = con.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
int count = rs.getMetaData().getColumnCount();
while(rs.next()){
for (int i = 1; i <= count; i++) {
System.out.print(rs.getString(i));
if(i list = new ArrayList<>();
Collections.addAll(list, "张柏芝","刘德华","张亮","张靓颖","杨颖","黄晓明");
writer(list);
read(list);
}
private static void read(List list) throws IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new FileReader("a.txt"));
String line = br.readLine();
System.out.println(line);
br.close();
}
private static void writer(List list) throws IOException {
BufferedWriter bw = new BufferedWriter(new FileWriter("a.txt"));
// TODO Auto-generated method stub
for (int i = 0; i < list.size(); i++) {
if(list.get(i).substring(0, 1).equals("张")){
bw.write(list.get(i)+" ");
}
}
bw.close();
}
}
复制代码
复制代码
package com.模拟练习题六;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
/**
* 1.将用户在控制台上输出的5个数字按照大小顺序存入到D:\\xx.txt中,并读出显示在控制台上
* @author Administrator
*
*/
public class Demo01 {
public static void main(String[] args) throws IOException {
//固定数组大小
int[] arr = new int[5];
//键盘输入
Scanner sc = new Scanner(System.in);
//循环输入
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
}
//冒泡排序
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-1-i; j++) {
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
//从缓冲区写入
BufferedWriter bw = new BufferedWriter(new FileWriter("xx.txt"));
for (int i : arr) {
bw.write(i+" ");
}
bw.close();
}
}
复制代码
复制代码
package com.模拟练习题六;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 2.现在有一个map集合如下:
{1="张三丰",2="周芷若",3="汪峰",4="灭绝师太"}
要求:
1.将map集合中的所有信息显示到控制台上
2.向该map集合中插入一个编码为5姓名为李晓红的信息
3.移除该map中的编号为1的信息
4.将map集合中编号为2的姓名信息修改为"周林"
* @author Administrator
*
*/
public class Demo02 {
public static void main(String[] args) {
Map map = new LinkedHashMap<>();
map.put(1, "张三丰");
map.put(2, "周芷若");
map.put(3, "汪峰");
map.put(4, "灭绝师太");
System.out.println(map);
map.put(5, "李小红");
map.remove(1);
map.put(2, "周林");
System.out.println(map);
}
}
复制代码
复制代码
package com.模拟练习题六;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Scanner;
/**
* 3.在ip为127.0.0.1的主机上有一个MySql的数据库,数据库名为db1.
连接数据库的用户名和密码为root和123,该数据库中有一个表格为user,
表中的数据如下:
id username password
1 abc 123
2 def 456
3 ghi 789
请使用JDBC技术完成一个登录的案例(在控制台输入用户名和密码)登陆成功在控制台显示登录成功
* @author Administrator
*
*/
public class Demo03 {
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybase", "root", "123456");
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = sc.nextLine();
System.out.println("请输入密码:");
String pass = sc.nextLine();
String sql = "select * from user where username=? and password=?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setString(2, pass);
ResultSet rs = pstmt.executeQuery();
if(rs.next()){
System.out.println("登录成功");
}else{
System.out.println("用户名密码错误");
}
}
}
复制代码
复制代码
package com.模拟练习题七;
/**
* 2.有100份礼品,两人同时发送,当剩下的礼品小于10份的时候则不再送出,利用多线程模拟该过程并将线程的名称打印出来.
* @author Administrator
*
*/
public class Demo02 {
public static void main(String[] args) {
pack p = new pack();
new Thread(p,"线程A").start();
new Thread(p,"线程B").start();
}
}
class pack implements Runnable{
static int number = 100;
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
synchronized (this) {
//小于0 聊天线程依次return
if(number<=10){
return;
}
try {
//获取线程名字数
String name = Thread.currentThread().getName();
//判断是不是这个线程
if(name.equals("线程A")){
System.out.println(name+"发出了第"+(100-number+1)+"个,还有"+--number);
}
//睡眠30毫秒
Thread.sleep(30);
if(name.equals("线程B")){
System.out.println(name+"发出了第"+(100-number+1)+"个,还有"+--number);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
复制代码
复制代码
package com.模拟练习题七;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
/**
*
*3.取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,
* 输出格式为:a(2)b(1)k(2)...
* @author Administrator
*
*/
public class Demo03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//键盘接收有个字符串
String str = sc.nextLine();
//装换为字符数组
char[] ch = str.toCharArray();
//包含加1 不包含为1
Map map = new HashMap<>();
for (char c : ch) {
map.put(c, !map.containsKey(c)? 1:map.get(c)+1);
}
//打印格式
for(Character ch1 : map.keySet()){
System.out.println(ch1+"("+map.get(ch1)+")");
}
}
}
复制代码
复制代码
package com.模拟练习题八;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
/**
* 3.从键盘接受多个int型的整数,直到用户输入end结束
要求:把所有的整数按倒序写到D:\\number.txt中
* @author Administrator
*
*/
public class Demo03 {
public static void main(String[] args) throws IOException {
ArrayList list = getScaaner();
System.out.println(list);
//冒泡排序
for (int i = 0; i < list.size()-1; i++) {
for (int j = 0; j < list.size()-1-i; j++) {
int one = list.get(j);
int two = list.get(j+1);
if(one getScaaner() {
System.out.println("请输入整数");
Scanner sc = new Scanner(System.in);
//建一个集合用来接收键盘输入的字符串
ArrayList list = new ArrayList<>();
//用正则判断输入的是否是整数+号表示多个的意思
String regex = "[0-9]+";
while(true){
//如果输入的数是end就结束
String num = sc.next();
if((num).equals("end")){
System.out.println("结束");
return list;
}else if(num.matches(regex)){
list.add(Integer.parseInt(num));
}else{
System.out.println("输入的不是整数");
}
}
/*System.out.println("请输入整数:");
Scanner sc = new Scanner(System.in);
ArrayList list = new ArrayList<>();
while(true){
String num = sc.next();
if(num.equals("end")){
return list;
}else{
list.add(Integer.parseInt(num));
}
}*/
}
}
复制代码
复制代码
package com.模拟练习题八;
import java.util.Scanner;
/*
* 1.编写一个校验用户名的程序,检测键盘录入的用户名是否合法
要求:用户名必须是6-10位之间的字母并且不能以数字开头
*/
public class Demo01 {
public static void main(String[] args) {
//键盘接收一条字符串
String str = new Scanner(System.in).nextLine();
//正则表达式 前面开头是a-zA-Z ,{5,9}个
String regex = "[a-zA-Z][a-zA-Z0-9]{5,9}";
//判断是否符合正则表达式
if(str.matches(regex)){
System.out.println("输入的是正确的");
}else{
System.out.println("格式错误");
}
//第二种方法
que(str);
}
private static void que(String str) {
//字符串装换为字符数组
char[] ch = str.toCharArray();
//控制6-10个数
if(ch.length>=6 && ch.length<=10){
//判断是否是数字开头
if(ch[0]>='0' && ch[0]<='9'){
System.out.println("格式错误");
}else{
//从1元素开始 判断是否是符合0-9a-zA-Z
for (int i = 1; i < ch.length; i++) {
if((ch[i]>='a' && ch[i]<='z') || (ch[i]>='A' && ch[i]<='Z') ||(ch[i]>='0' && ch[i]<='9')){
}else{
//发现不符合的直接return
System.out.println("格式错误");
return;
}
}
System.out.println("格式正确");
}
}
}
}
复制代码
复制代码
package com.模拟练习题九;
/**
* 1.将"goOd gooD stUdy dAy dAy up"每个单词的首字母转换成大写其余还是小写字母
* (不许直接输出good good study day day up 要用代码实现)
* @author Administrator
*
*/
public class Demo01 {
public static void main(String[] args) {
String string = "goOd gooD stUdy dAy dAy up";
//字符串转换为字符串数组
String[] str = string.split(" +");
//接收每一个字符数组中的元素 拼接
String strend="";
for (int i = 0; i < str.length; i++) {
String end = str[i];
//首字母大写 其他字母小写
end = end.substring(0, 1).toUpperCase().concat(end.substring(1, end.length()).toLowerCase());
strend+=end+" ";
}
System.out.println(strend);
}
}
复制代码
复制代码
package com.模拟练习题九;
/**
* 2.有100个限量版的水杯,但是只能通过实体店和官网才能进行购买,并且分别统计卖了多少。
* 请用线程进行模拟并设置线程名称用来代表售出途径,再将信息打印出来。
比如(实体店卖出第1个,总共剩余n个..)
* @author Administrator
*
*/
public class Demo02 {
public static void main(String[] args) {
Shuibei s = new Shuibei();
new Thread(s,"实体店").start();
new Thread(s,"官网店").start();
}
}
class Shuibei implements Runnable{
//总量100
static int number =100;
//计数器
int sums = 0;
int sumg = 0;
@Override
public void run() {
//无限循环
while(true){
//同步代码块
synchronized (this) {
if(number<0){
return;
}
try {
//睡眠30毫秒
Thread.sleep(30);
String name = Thread.currentThread().getName();
if(name.equals("实体店")){
sums++;
System.out.println(name+"卖出了第"+(100-number+1)+"还剩下"+--number);
}
if(name.equals("官网店")){
sumg++;
System.out.println(name+"卖出了第"+(100-number+1)+"还剩下"+--number);
}
if(number==0){
System.out.println(sums);
System.out.println(sumg);
//number--一条线程进回来了,条件减一 不给第二条线程进来
number--;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
复制代码
复制代码
package com.模拟练习题九;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/**
* 3.有一个Map集合里面存储的是学生的姓名和年龄,内容如下
* {张三丰=21, 灭绝师太=38, 柳岩=28, 刘德华=40, 老鬼=36, 王二麻子=38}
a.将里面的元素用两种遍历方式打印到控制台上
b.将老鬼的年龄改成66
c.将年龄大于24的学生姓名,存入到D:\\student.txt中
* @author Administrator
*
*/
public class Demo3 {
public static void main(String[] args) throws IOException {
Map map = new HashMap<>();
map.put("张三丰", 21);
map.put("灭绝师太", 38);
map.put("柳岩", 28);
map.put("刘德华", 40);
map.put("老鬼", 36);
map.put("王二麻子", 38);
System.out.println(map);
map.put("老鬼", 66);
BufferedWriter bw = new BufferedWriter(new FileWriter("student.txt"));
for(String name : map.keySet()){
if(map.get(name)>24){
bw.write(name+" ");
}
}
bw.close();
}
}
复制代码
复制代码
package com.模拟练习题十;
/**
* 1.有一个字符串"woaijavahajajavavahajavaaiwo"删除该字符串中所有的"java"并且统计删除了多少个“java”
* @author Administrator
*/
public class Demo01 {
public static void main(String[] args) {
String strone = "woaijavahajajavavahajavaaiwo";
String strjava = "java";
int index = 0;
int count=0;
//记录第一次出现java的位置,直到没有结束循环
while((index = strone.indexOf(strjava))!=-1){
//把出现成java的字符串给去除掉
strone = strone.substring(0,index).concat(strone.substring(index+strjava.length()));
count++;
}
System.out.println(strone);
System.out.println(count);
}
}
复制代码
复制代码
package com.模拟练习题十;
/**
* 2.有一辆班车除司机外只能承载80个人,假设前中后三个车门都能上车,如果坐满则不能再上车。
* 请用线程模拟上车过程并且在控制台打印出是从哪个车门上车以及剩下的座位数。比如:
* (前门上车---还剩N个座...)
*/
public class Demo02 {
public static void main(String[] args) {
Bus b = new Bus();
new Thread(b,"前门").start();
new Thread(b,"中门").start();
new Thread(b,"后门").start();
}
}
class Bus implements Runnable{
static int person=80;
@Override
public void run() {
while(true){
synchronized (this) {
try {
if(person<=0){
return;
}
Thread.sleep(30);
String name = Thread.currentThread().getName();
if(name.equals("前门")){
System.out.println(name+"上了第"+(80-person+1)+"还有"+--person+"个座");
}
if(name.equals("中门")){
System.out.println(name+"上了第"+(80-person+1)+"还有"+--person+"个座");
}
if(name.equals("后门")){
System.out.println(name+"上了第"+(80-person+1)+"还有"+--person+"个座");
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
复制代码
复制代码
package com.模拟练习题十一;
import java.util.Scanner;
/**
* 1.输入一个字符串,分别统计出其中英文字母、空格、数字和其它字符的数量
* 正则表达式
* 英文 "[a-zA-Z]"
* 空格 "\\s"
* 数字 "[0-9]"
*/
public class Demo01 {
public static void main(String[] args) {
System.out.println("请输入字符串:");
Scanner sc = new Scanner(System.in);
String string = sc.nextLine();
//转换为字符串
char[] ch = string.toCharArray();
String hanzi="[\u4e00-\u9fa5]";
String shuzi = "[0-9]";
String zifu = "[a-zA-Z]";
String kongge = "\\s";
//计数器
int hanzi1= 0;
int shuzi1 = 0;
int zifu1 = 0;
int kongge1 = 0;
int qita=0;
//遍历
for (char c : ch) {
if((c+"").matches(hanzi)){
hanzi1++;
}else if((c+"").matches(shuzi)){
shuzi1++;
}else if ((c+"").matches(zifu)){
zifu1++;
}else if((c+"").matches(kongge)){
kongge1++;
}else{
qita++;
}
}
System.out.println("数字:"+shuzi1+" 字母:"+zifu1+" 空格:"+kongge1+" 其他:"+qita+" 汉字:"+hanzi1);
}
}
复制代码
复制代码
package com.模拟练习题十一;
import java.util.ArrayList;
/**
* 2.定义一个实体类有姓名、学号、成绩(int类型)三个属性
(1)在创建对象时给这些属性进行显示初始化
(2)将学生的信息(姓名、学号、成绩)存入到适当的集合,并且根据学生成绩按照降序打印到控制台
//遍历集合 拿出成绩 比较 >>冒泡排序
* @author Administrator
*
*/
public class Demo02 {
public static void main(String[] args) {
Student stu = new Student("张三",1,80);
Student stu1 = new Student("李四",2,60);
Student stu2 = new Student("王五",3,77);
Student stu3 = new Student("赵六",4,90);
ArrayList list = new ArrayList<>();
list.add(stu);
list.add(stu1);
list.add(stu2);
list.add(stu3);
//冒泡排序
for (int i = 0; i < list.size()-1; i++) {
for (int j = 0; j < list.size()-1-i; j++) {
//建立对象接收集合中的Student
Student s = list.get(j);
Student s1 = list.get(j+1);
//比较成绩
if(s.getScore()>s1.getScore()){
list.set(j, s1);
list.set(j+1, s);
}
}
}
for(Student st : list){
System.out.println(st);
}
}
}
class Student{
private String name;
private int id;
private int score;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public Student(String name, int id, int score) {
super();
this.name = name;
this.id = id;
this.score = score;
}
public Student() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Student [name=" + name + ", id=" + id + ", score=" + score + "]";
}
}
复制代码
复制代码
package com.模拟练习题十一;
/**
* 3.同时开启两个线程,共同输出1-100之间的所有数字,并且将输出奇数的线程名称打印出来
* if(i%2!=0){
* syso
* }
* @author Administrator
*
*/
public class Demo03 {
public static void main(String[] args) {
Qishu q = new Qishu();
new Thread(q).start();
new Thread(q).start();
}
}
class Qishu implements Runnable{
@Override
public void run() {
//1-100
for (int i = 1; i < 100; i++) {
synchronized (this) {
try {
Thread.sleep(30);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String name = Thread.currentThread().getName();
//抢到执行的前程输出
if(i%2!=0){
System.out.println(name+".."+i);
}
}
}
}
}
复制代码
复制代码
package com.模拟练习题十二;
import java.util.Scanner;
/**
* 1.从控制台接受一串字符串(8分)
(1)将该字符串转换成字符数组(2分) toCharArray();
(2)将该字符数组下标为偶数的字符打印倒控制台(3分) if(i%2==0)
(3)将该字符数组的第一个元素与最后一个元素互换(3分) 加一个交换的属性
* @author Administrator
*
*/
public class Demo01 {
public static void main(String[] args) {
System.out.println("请输入一个字符串");
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
char[] ch = str.toCharArray();
for (char c : ch) {
System.out.print(c+" ");
}
System.out.println();
for (int i = 0; i < ch.length; i++) {
if(i%2==0){
System.out.print(ch[i]+" ");
}
}
System.out.println();
char c = ch[0];
ch[0] = ch[ch.length-1];
ch[ch.length-1] = c;
for (char c1 : ch) {
System.out.print(c1+" ");
}
}
}
复制代码
复制代码
package com.模拟练习题十二;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 2.按一下要求完成相应功能(12分) (不能用DBUtils等工具类)
(1)设计一个工具类,定义一个方法名为getConnection的方法用来获取连接,相关的参数需要用形式参数的形式传入进去(4分)
(2)有一个student如下
id name age score
1 zs 18 98
2 ls 24 89
3 wwk 32 100
4 anni 25 54
将该表中每一条记录都封装成一个Student对象,(用a中的getConnection方法来获取连接
其中数据库名称,用户名和密码可以自定义)不能直接给Student赋值(不如:Student = new Student("2s",18.98)),要获取数据库
里面相应的内容,然后赋值给Student对象(4分)
(3)将(2)中得到的Student对象存到list集合中并且用两种方式遍历出来(4分)
(4)实现添加Student对象的方法
public static int addStudent(Student student) {
//要求传递一个Student对象,先判断该对象有没有,没有的话,添加,提示添加成功,有的话打印添加失败,并返回-1
}
(5)实现修改Student对象的方法
public static int updateStudent(Student student) {
//要求传递一个Student对象,先根据该对象id查询是否存在,有的话,进行修改操作,并提示修改成功,返回1,没有的话打印修改失败,并返回-1
}
(6)实现删除Student对象的方法
public static int deleteStudentById(String id) {
//根据id删除Student对象,删除成功返回1,删除失败返回-1
}
(7)实现获取所有Student对象的以下方法
public static List getAllStudent1(){
}
public static List