终于考试结束了
第四季的学习早在7月12号就结束了,当时是边看视频边敲代码,连续看完了第三季和第四季所有的27个视频,看的倒是挺爽的.
第四季结束要考试,所以要复习,留下的只有代码和及其少量的注释,悲剧的是我发现代码看不懂了,并且离看完视频已经有10天了,记忆已经很模糊,错过了最好的总结时间,java是自己选的,学java是认真的,不能随便对待吧,所以20多篇代码从新自己敲一遍,消化里面的知识,翻JAVA API中文文档,写笔记.
中午联系助教调试代码,叫我不要在基础知识上浪费太多时间,如果在基础知识上纠结过久会浪费太多的时间,这个我觉得很有道理.
目前第四季结束后的考试已经通过,准备考试第五季的学习,这次会在视频后抽出一定时间总结消化知识,并且注意不要太钻牛角尖,注意进度和时间的问题.
package javastudy;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
public class Test {
public static void main(String[] args) throws ClassNotFoundException, SQLException, IOException
{
showMenu();
System.out.println("请输入操作序号:");
Scanner scan=new Scanner(System.in);
int choise=scan.nextInt();
while(choise!=5)
{
switch (choise)
{
case 1:
/*
本来想要一个个的scan,并且伴随后就stu.ar=scan.next的,但是这样代码重复率太高
所以直接先扫面完成,再进行实例化.
Student stu=new Student();
*/
/*
定义各个参数
*/
String name;
String gender;
int age;
String teleNo;
System.out.println("请输入姓名:");
name=scan.next();
System.out.println("请输入性别:");
gender=scan.next();
System.out.println("请输入年龄:");
age=scan.nextInt();
System.out.println("请输入电话号码:");
teleNo=scan.next();
/*
根据上面的参数实例化
*/
Student stu=new Student(name, gender, age, teleNo);
Save(stu);
System.out.println();
break;
case 2:
System.out.println("请输入要删除的学生的姓名:");
String Student=scan.next();
delete(Student);
break;
case 3:
System.out.println("查询学生信息");
show();
break;
case 4:
System.out.println("请输入学生姓名:");
String student=scan.next();
export(student);
break;
default:
System.out.println("输入不正确,请重新输入!");
break;
}
showMenu();
System.out.println("请输入操作序号:");
choise=scan.nextInt();
}
System.out.println("再见!欢迎再次使用本系统。");
scan.close();
}
static void showMenu()
{
System.out.println("**************************************");
System.out.println("* 欢迎使用新趋势学生信息管理系统V1.0 *");
System.out.println("* *");
System.out.println("* 请选择你要执行的命令: *");
System.out.println("* *");
System.out.println("* 1.输入学生信息 2.删除学生信息 *");
System.out.println("* 3.查询学生信息 4.导出学生信息 *");
System.out.println("* 5.退出系统 *");
System.out.println("**************************************");
}
static void Save(Student student) throws ClassNotFoundException, SQLException
{
System.out.println("这里是Save函数");
Connection con=getconn();
Statement st=con.createStatement();
String str="insert into studinformation values ('" + student.name +"','"+ student.gender +"',"+ student.age +",'"+ student.teleNo +"')";
System.out.println(str);
st.executeUpdate(str);
con.close();
}
//******************************删除学生的函数*********************************
static void delete(String student) throws ClassNotFoundException, SQLException
{
Connection con=getconn();
Statement st=con.createStatement();
ResultSet rst=st.executeQuery("select * from studinformation where name='"+student+"'");
/*
判断是否有学生存在,如果没有就输出提示并退出函数.否则进行删除.
*/
if(rst.next()==false)
{
System.out.println("提示:你输入的学生不存在。");
return;
}else
{
String str="delete from studinformation where name='"+ student+"'";
System.out.println(str);
st.executeUpdate(str);
}
con.close();
}
//******************************删除学生的函数*********************************
//******************************显示学生信息*********************************
static void show() throws ClassNotFoundException, SQLException
{
Connection con=getconn();
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from studinformation");
//*********打印表头
while(rs.next())
{
for(int i=1;i<=rs.getMetaData().getColumnCount();i++)
{
System.out.print(rs.getString(i)+"\t");
// System.out.println(i);
}
System.out.println();
}
con.close();
}
//******************************显示学生信息*********************************
//******************************输出学生信息到文件*********************************
static void export(String student) throws IOException, ClassNotFoundException, SQLException
{
// System.out.println("这里是export函数");
FileWriter fw=new FileWriter("d:\\234.txt");
PrintWriter pw=new PrintWriter(fw);
Connection con=getconn();
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from studinformation where name='"+student+"'");
while(rs.next())
{
for(int i=1;i<rs.getMetaData().getColumnCount();i++)
{
pw.append(rs.getString(i)+"\t");
}
pw.println();
}
st.close();
pw.close();
fw.close();
st.close();
con.close();
}
//******************************输出学生信息到文件*********************************
public static Connection getconn() throws SQLException, ClassNotFoundException
{
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/student?&useSSL=true", "root", "123456");
return conn;
}
}
Student class代码
public class Student
{
String name;
String gender;
int age;
String teleNo;
public Student()
{
}
public Student(String name,String gender,int age,String teleNo)
{
this.name=name;
this.gender=gender;
this.age=age;
this.teleNo=teleNo;
}
}
考试题目
测试案例题
一.在mysql中建立一下表格
student(id,name,sex,age,telephone)
二.程序中输出主菜单
- 欢迎使用新趋势学生信息管理系统V1.0 *
- *
- 请选择你要执行的命令: *
- *
- 1.输入学生信息 2.删除学生信息 *
- 3.查询学生信息 4.导出学生信息 *
5.退出系统 *
三.请输入你的选择:
1.如果用户输入1
依次提示
(1)请输入姓名
(2)请输入性别
(3)请输入年龄
(4)请输入电话号码
将接收到的信息存入到数据库中
然后继续显示主菜单√
2.如果用户输入2
提示
请输入要删除的学生的姓名:
接收到姓名后,如果该姓名不存在,提示:你输入的学生不存在。
否则将该学生删除掉。
然后继续显示主菜单
3 .如果用户输入3
则将所有学生信息列出来
然后继续显示主菜单
4 .如果用户输入4
则将所有学生信息写入到一个文本文件d:\data.txt中
然后继续显示主菜单
5.如果用户输入5
显示:再见!欢迎再次使用本系统。
===========================================================
提示:
1.将主菜单的显示放在一个方法中,叫做showMenu();
2.如何让程序不退出,循环接收用户的命令输入
ShowMenu();
Scanner scan=new Scanner(System.in);
int choice=scan.nextInt();
while(choice!=5){
switch(choice){
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
}
choice=scan.nextInt();
}
3.保存学生信息,编写一个方法
public void save(Student student)
4.删除学生信息,编写一个方法
public void delete(String name)
5.显示学生信息,编写一个方法
public void show(Student student)
6.导出数据,编写一个方法
public void export(String fileName)
7.因为各处都要获取数据库连接,编写一个获取数据库连接的方法
public Connection getConn()