学生管理系统主要功能是对学生信息的添加、查询、删除、修改

1、创建项目

2、创建一个具体操作信息的包【bean】并创建用来保存学生信息的java类【Student】

2.1创建用来保存学生学号、姓名、年龄、地址信息的变量

  这些变量不允许被其他访问,需要被定义成私有的。

     //学生学号private int stuid;//学生姓名private String stuname;//学生年龄private int stuage;//学生地址private String stuaddress;

2.2创建访问这些私有变量可被访问的公共方法

  由于上面定义保存的学生信息变量都是私有的,就需要为这些私有变量提供可被访问的公共方法。我们对这些变量的操作是设置和获取。setXXXX(参数)—设置变量值,getXXXX()—获取变量值【获取变量不需要参数】
  直接右键 —> Source【AIt+Shift+S】 —> Generate Getters and Setters… —> Select All【全选】—> Generate

     public int getStuid() {return stuid;}public void setStuid(int stuid) {this.stuid=stuid;}public String getStuname() {return stuname;}public void setStuname(String stuname) {this.stuname=stuname;}public int getStuage() {return stuage;}public void setStuage(int stuage) {this.stuage=stuage;}public String getStuaddress() {return stuaddress;}public void setStuaddress(String stuaddress) {this.stuaddress=stuaddress;}

3、创建service包并创建学生信息业务访问类【StudentService】

  该类主要是对学生信息的操作【什么时候去添加、查询、修改、删除】,利用Switch语句

3.1创建具体业务操作方法

public void service(int setvice_code) {switch(setvice_code) {case 1:System.out.println("添加学生信息");break;case 2:System.out.println("查询所有学生信息");break;case 3:System.out.println("根据学号查询学生信息");break;case 4:System.out.println("根据学号修改学生信息");break;case 5:System.out.println("根据学号删除学生信息");break;case 6:System.out.println("删除所有学生信息");break;case 0:System.out.println("退出系统");break;}}

  参数【int setvice_code】是键盘输入的具体操作编号
  通过键盘输入的值就会执行相应的操作

输入是业务处理过程中的辅助操作,就需要把输入操作分离出来在具体访问类直接调用

4、创建util包并创建学生信息处理辅助类【StudentHelper】类

4.1得到从键盘输入int型整数值

  为了方便调用,将方法设静态的
  利用Scanner类实现从控制台输入的值

public static int getIntValue(String tipinfo) {System.out.println(tipinfo);Scanner input=new Scanner(System.in);int code=input.nextInt();//保存得到一个int值的变量return code;}
方法里的参数是String类型,是为了得到int值给用户一个提示信息,声明当前要干什么

4.2给用户提供一个操作菜单方法

  用户不知道输入的值要执行什么样的操作,所以给用户提供一个操作菜单方法。

public static void getMenu() {System.out.println("---简单的学生管理系统---");System.out.println("1=添加学生信息,2=查询所有学生信息,3=根据学号查询学生信息,4=根据学号修改学生信息5=根据学号删除学生信息,6=删除所有学生信息,0=退出学生系统");}

5、创建运行类包【main】并创建主方法的java类【StudentMain】

5.1调用为用户提供的操作菜单方法

StudentHelper.getMenu();

5.2调用具体业务处理【service】方法

  (1)定义setvice_code的int型变量将getIntValue(“请输入对应的编号”)从键盘获取的值保存
  (2)调用service方法将setvice_code作为参数
  但此时代码只能运行一遍

5.3使这个程序持续跑

  加一个while循环就实现了这个程序持续跑

     while(true) {StudentHelper.getMenu();int setvice_code=StudentHelper.getIntValue("请输入对应的编号");StudentService studentService=new StudentService();studentService.service(setvice_code);                    }

5.1实现退出方法

system.exit(int status);
system.exit(int status);是退出方法,将0作为参数

  因为当用户输入0时,退出程序。
  将此方法写入具体业务处理方法中。
如下:

     case 0:System.out.println("退出系统");System.exit(0);break;

  结构已经搭建完毕,接下来写相对应的操作。

6、完成具体操作动作 - 添加

6.1写添加学生信息方法

为了避免具体操作方法service方法代码过多,我们把具体操作动作分离出来,在service方法里对应的位置一调用即可。

  因为具体操作动作不允许其他方法,因此要设置为私有的

private void insertStudent(Student student) {}

  我们需要一个学生对象作为参数,业务层要调用数据访问层。所以接下来要提供一个数据访问层。

6.2创建数据访问类

  创建dao包【data access Object】并创建StudentDao类

6.3添加学生信息数据访问方法

  添加就两种结果,成功或失败所以设置参数为boolean型

  要把学生信息添加到集合中

如下

 //保存信息的具体集合private static ArrayList studentList=new ArrayList();//添加学生信息的数据访问方法public boolean insert(Student student) {return studentList.add(student);}

6.4在StudentService调用insert方法

  insert方法表示添加成功或失败,利用if语句判断,if成功则输出成功;slse失败则输出失败

 //添加学生信息的具体业务处理方法private void insertStudent(Student student) {StudentDao studao=new StudentDao();boolean flag=studao.insert(student);if(flag) {System.out.println("学生信息添加成功");}else {System.out.println("学生信息添加失败");}}

6.5把添加写入具体处理方法相对应的编号下

 case 1:System.out.println("添加学生信息");insertStudent(Student student);break;

6.6需要一个学生信息

6.7在辅助类下得到一个学生信息

 //键盘输入一个学生信息public static Student getInputStudent() {Student student=null;//Student对象没有先给一个null//得到学生学号int stuid=getIntValue("--请输入学生学号--");//得到学生姓名此时没有这个方法,需要先创建一个,如下:String stuname=getStringValue("--请输入学生姓名--");//得到学生年龄int stuage=getIntValue("--请输入学生年龄--");//得到学生地址String stuaddress=getStringValue("--请输入学生地址--");//把这四个方法存储在学生对象里student=new Student();//调用学生set方法,将所需要的参数传入student.setStuid(stuid);student.setStuname(stuname);student.setStuage(stuage);student.setStuaddress(stuaddress);//返回学生对象return student;}

  学生姓名是String类型的,没有这个方法,此时把getIntValue整数值方法改为一个String【getStringValue】方法

 public static String getStringValue(String tipinfo) {String info=null;System.out.println(tipinfo);Scanner input=new Scanner(System.in);info=input.nextLine();info=info.trim();return info;

6.8在具体业务操作方法下调用

     case 1:System.out.println("添加学生信息");insertStudent(StudentHelper.getInputStudent());break;

  添加完成

7、查询所有学生信息具体业务方法

7.1在业务访问类添加查询所有方法

 //查询所有学生信息的具体业务处理方法private void selectAllStudent() {}

7.2调用数据访问层保存数据的集合

     StudentDao studao=new StudentDao();ArrayList studentList=studao.selectAll();

7.3遍历集合

  首先判断集合是否有元素,如果有,则遍历;没有则输出没有记录
  利用增强for循环遍历集合,因为数据应是学生对象,而现在有Object对象,要强制类型转换将Object转换成Student对象。

     if(studentList.size()>0) {System.out.println("--------------");for(Object obj:studentList) {Student stu=(Student)obj;System.out.println(" "+stu.getStuid()+" "+stu.getStuname()+" "+stu.getStuage()+" "+stu.getStuaddress());System.out.println("----------------");}}else {System.out.println("---没有记录---");}

7.4在数据访问层添加selectAll方法

 public ArrayList selectAll() {return studentList;}

7.5在case :2下调用selectAllStudent()方法

 selectAllStudent();

8、根据学号查询学生信息的具体业务处理方法

8.1在业务访问层添加根据学号查询学生信息方法

//根据学号查询学生信息的具体业务处理方法private void selectStudentByStuid(int stuid) {}

8.2调用数据访问层selectByStuid方法

     StudentDao studao=new StudentDao();Student student=studao.selectByStuid(stuid);

8.3在数据访问层创建selectByStuid方法

//根据学号查询学生信息的数据方法public Student selectByStuid(int stuid) {Student student=null;for(Object obj:studentList) {Student stu=(Student)obj;if(stu.getStuid()==stuid) {student=stu;break;}}return student;}
需要一个学生id的参数
将student赋予null是为了对比学号
利用增强for循环遍历对比学号
将Objenc对象转为学生对象
如果学生id等于输入的id则成功
将stu交给student加上break然后return

8.4 完善selectStudentByStuid方法

//根据学号查询学生信息的具体业务处理方法private void selectStudentByStuid(int stuid) {StudentDao studao=new StudentDao();Student student=studao.selectByStuid(stuid);if(student!=null) {System.out.println(" "+student.getStuid()+" "+student.getStuname()+" "+student.getStuage()+" "+student.getStuaddress());System.out.println("----------------");}else {System.out.println("---没有记录---");}}
如果通过id获取到的对象不为空,则输出获取到的对象

8.5 在case :3中调用

selectStudentByStuid(StudentHelper.getIntValue("请输入要查询的学生学号"));

9、根据学号修改学生信息

9.1 在业务访问层添加根据学号修改学生信息方法

 //根据学号修改学生信息的具体业务处理方法private void updateStudentByStuid(int stuid) {StudentDao studao=new StudentDao();Student student=studao.selectByStuid(stuid);if(student!=null) {Student newStudent=StudentHelper.getInputStudent();boolean flag=studao.updateByStuid(student,newStudent);if(flag) {System.out.println("修改成功");}else {System.out.println("修改失败");}}else{System.out.println("----没有记录----");}}

  首先通过selectByStuid方法获取id,如果获取到的对象不为空则获取一个新对象
  在数据访问类写updateByStuid(student,newStudent);方法,这个方法用来替换学生对象
  如果替换成功,打印出修改成功。反之修改失败。

9.2 在数据访问类写updateByStuid(student,newStudent);方法

//根据学号修改学生信息数据访问数据方法public boolean updateByStuid(Student student,Student newStudent) {Object obj=studentList.set(studentList.indexOf(student), newStudent);if(obj!=null) {return true;}return false;}

  利用集合set方法用来替换,set方法第一个参数是指定位置的元素,第二个参数是指定的元素。如果替换成功即obj不为空,返回true,反之return false;

9.3 在case 4:中调用

updateStudentByStuid(StudentHelper.getIntValue("请输入要修改的学生学号"));

10、根据学号删除学生信息

10.1 在业务访问层添加根据学号删除学生信息方法

//根据学号删除学生信息的具体业务处理方法private void deleteStudentByStuid(int stuid) {StudentDao studao=new StudentDao();Student student=studao.selectByStuid(stuid);if(student!=null) {boolean flag=studao.deleteByStuid(student);if(flag) {System.out.println("删除成功");}else {System.out.println("删除失败");}}else {System.out.println("---没有记录---");}}

  首先通过id获取一个学生对象
  如果这个对象不为空,调用deleteByStuid方法删除这个对象
  有两种结果,删除成功或失败
  如果删除成功,返回true输出删除成功
  或者输出删除失败

10.2 在数据访问类写deleteByStuid(student);方法

 //根据学号删除学生信息数据访问方法public boolean deleteByStuid(Student student) {return studentList.remove(student);}

  通过remove(Object o)方法从列表中删除指定元素的第一个出现(如果存在)。
  是boolean类型,返回true/false

10.3 在case 5:中调用

     deleteStudentByStuid(StudentHelper.getIntValue("请输入要删除学生的学号"));

11、删除所有学生信息

11.1 在业务访问层添加删除所有学生信息方法

 //删除所有学生信息的具体业务处理方法private void deleteAll() {StudentDao studao=new StudentDao();boolean flag=studao.deleteAll();if(flag) {System.out.println("删除所有信息成功");}else {System.out.println("删除所有信息失败");}}

  调用deleteAll方法,此方法清空集合并返回true,如果没清空返回false

11.2 在数据访问类写deleteByStuid(student);方法

 //删除所有学生信息数据访问方法public boolean deleteAll() {studentList.clear();if(studentList.isEmpty()) {return true;}return false;}

  调用集合clear()方法清空集合就相当于把学生信息全部删除,学生信息保存在集合中。判断集合是否为空,利用isEmpty()方法判断。如果为空返回true,反之返回false。

11.3 在case 6:中调用

deleteAll();

12、对输入值进行异常处理

  如果用户不小心输入的值是错误的,例如需要一个整数值却不小心加了一个字符,或者输入一个7等等。我们就需要对输入的异常进行异常处理操作。

12.1 对整数值进行异常操作

  (1)将代码放入try{}语句块中
  (2)给catch语句块输出一条信息提示。
  (3)提示后就需要用户重新输入,直接调用getIntValue(tipinfo)方法。
  (4)此时无返回值,在try{}语句块外定义code并赋值为0;
  (5)将try{}语句块中定义code直接变为赋值。
  (6)然后将return code;放到异常处理外。

 //键盘输入得到一个整数值public static int getIntValue(String tipinfo) {int code=0;try {System.out.println(tipinfo);Scanner input=new Scanner(System.in);code=input.nextInt();}catch(Exception e) {System.out.println("输入有误,请重新输入");code=getIntValue(tipinfo);}return code;}

12.2 对从键盘得到一个String进行异常操作

  字符为空就为异常
  (1)定义info为null
  (2)此时如果输入的info值为null或者长度小于等于0
  (3)利用throw手动引发异常
  (4)进行try{}catch{}操作
  (5)将代码包裹在try{}语句块中
  (6)给catch语句块输出一条信息提示。
  (7)提示后就需要用户重新输入,直接调用getStringValue(tipinfo)方法。
  (8)在输入字符串后去除空格,利用trim()方法。

 //从键盘得到一个Stringpublic static String getStringValue(String tipinfo) {String info=null;try {System.out.println(tipinfo);Scanner input=new Scanner(System.in);info=input.nextLine();info=info.trim();if(info==null ||info.length()<=0) {throw new Exception("String不能为空");}}catch(Exception e) {System.out.println("不能为空,请重新输入");info=getStringValue(tipinfo);}return info;}

12.3 输入对应编号错误

  给switch语句后面加default语句

此学生信息管理系统缺点是利用集合保存数据,程序一关闭数据就会消失,不能保存。下面是第二版本的学生管理系统,利用IO流保存的数据

简单的学生管理系统优化版

源代码如下:

package com.jindi.bean;
/*** 保存学生信息的java类*/
public class Student {//学生学号private int stuid;//学生姓名private String stuname;//学生年龄private int stuage;//学生地址private String stuaddress;//由于上面定义保存学生信息的变量是私有的//我们就需要为这些私有的变量提供可被访问的公共方法//setXXXX(参数)---设置变量值//getXXXX()---获取变量值public int getStuid() {return stuid;}public void setStuid(int stuid) {this.stuid=stuid;}public String getStuname() {return stuname;}public void setStuname(String stuname) {this.stuname=stuname;}public int getStuage() {return stuage;}public void setStuage(int stuage) {this.stuage=stuage;}public String getStuaddress() {return stuaddress;}public void setStuaddress(String stuaddress) {this.stuaddress=stuaddress;}
}
package com.jindi.dao;import java.util.ArrayList;
import com.jindi.bean.Student;/*** 提供学生信息的数据访问类*/
public class StudentDao {//保存信息的具体集合private static ArrayList studentList=new ArrayList();//添加学生信息的数据访问方法public boolean insert(Student student) {return studentList.add(student);}//查询所有学生信息的数据访问方法public ArrayList selectAll() {return studentList;}//根据学号查询学生信息的数据方法public Student selectByStuid(int stuid) {Student student=null;for(Object obj:studentList) {Student stu=(Student)obj;if(stu.getStuid()==stuid) {student=stu;break;}}return student;}//根据学号修改学生信息数据访问数据方法public boolean updateByStuid(Student student,Student newStudent) {Object obj=studentList.set(studentList.indexOf(student), newStudent);if(obj!=null) {return true;}return false;}//根据学号删除学生信息数据访问方法public boolean deleteByStuid(Student student) {return studentList.remove(student);}//删除所有学生信息数据访问方法public boolean deleteAll() {studentList.clear();if(studentList.isEmpty()) {return true;}return false;}
}
package com.jindi.service;import java.util.ArrayList;import com.jindi.bean.Student;
import com.jindi.dao.StudentDao;
import com.jindi.util.StudentHelper;
/*** 学生信息的业务访问类* @author wemme**/
public class StudentService {//添加学生信息的具体业务处理方法private void insertStudent(Student student) {StudentDao studao=new StudentDao();boolean flag=studao.insert(student);if(flag) {System.out.println("学生信息添加成功");}else {System.out.println("学生信息添加失败");}}//查询所有学生信息的具体业务处理方法private void selectAllStudent() {StudentDao studao=new StudentDao();ArrayList studentList=studao.selectAll();if(studentList.size()>0) {System.out.println("--------------");for(Object obj:studentList) {Student stu=(Student)obj;System.out.println(" "+stu.getStuid()+" "+stu.getStuname()+" "+stu.getStuage()+" "+stu.getStuaddress());System.out.println("----------------");}}else {System.out.println("---没有记录---");}}//根据学号查询学生信息的具体业务处理方法private void selectStudentByStuid(int stuid) {StudentDao studao=new StudentDao();Student student=studao.selectByStuid(stuid);if(student!=null) {System.out.println(" "+student.getStuid()+" "+student.getStuname()+" "+student.getStuage()+" "+student.getStuaddress());System.out.println("----------------");}else {System.out.println("---没有记录---");}}//根据学号修改学生信息的具体业务处理方法private void updateStudentByStuid(int stuid) {StudentDao studao=new StudentDao();Student student=studao.selectByStuid(stuid);if(student!=null) {Student newStudent=StudentHelper.getInputStudent();boolean flag=studao.updateByStuid(student,newStudent);if(flag) {System.out.println("修改成功");}else {System.out.println("修改失败");}}else{System.out.println("----没有记录----");}}//根据学号删除学生信息的具体业务处理方法private void deleteStudentByStuid(int stuid) {StudentDao studao=new StudentDao();Student student=studao.selectByStuid(stuid);if(student!=null) {boolean flag=studao.deleteByStuid(student);if(flag) {System.out.println("删除成功");}else {System.out.println("删除失败");}}else {System.out.println("---没有记录---");}}//删除所有学生信息的具体业务处理方法private void deleteAll() {StudentDao studao=new StudentDao();boolean flag=studao.deleteAll();if(flag) {System.out.println("删除所有信息成功");}else {System.out.println("删除所有信息失败");}}/*** 具体业务处理方法* 【根据键盘输入操作具体编号】*/public void service(int setvice_code) {switch(setvice_code) {case 1:System.out.println("添加学生信息");insertStudent(StudentHelper.getInputStudent());break;case 2:System.out.println("查询所有学生信息");selectAllStudent();break;case 3:System.out.println("根据学号查询学生信息");selectStudentByStuid(StudentHelper.getIntValue("请输入要查询的学生学号"));break;case 4:System.out.println("根据学号修改学生信息");updateStudentByStuid(StudentHelper.getIntValue("请输入要修改的学生学号"));break;case 5:System.out.println("根据学号删除学生信息");deleteStudentByStuid(StudentHelper.getIntValue("请输入要删除学生的学号"));break;case 6:System.out.println("删除所有学生信息");deleteAll();break;case 0:System.out.println("退出系统");System.exit(0);break;default:System.out.println("请输入正确编号");break;}}
}
package com.jindi.util;import java.util.Scanner;import com.jindi.bean.Student;
/*** 学生信息处理帮助类* @author wemme**/
public class StudentHelper {public static void getMenu() {System.out.println("---简单的学生管理系统---");System.out.println("1=添加学生信息,2=查询所有学生信息,3=根据学号查询学生信息,4=根据学号修改学生信息5=根据学号删除学生信息,6=删除所有学生信息,0=退出学生系统");}//键盘输入得到一个整数值public static int getIntValue(String tipinfo) {int code=0;try {System.out.println(tipinfo);Scanner input=new Scanner(System.in);code=input.nextInt();}catch(Exception e) {System.out.println("输入有误,请重新输入");code=getIntValue(tipinfo);}return code;}//从键盘得到一个Stringpublic static String getStringValue(String tipinfo) {String info=null;try {System.out.println(tipinfo);Scanner input=new Scanner(System.in);info=input.nextLine();info=info.trim();if(info==null ||info.length()<=0) {throw new Exception("String不能为空");}}catch(Exception e) {System.out.println("不能为空,请重新输入");info=getStringValue(tipinfo);}return info;}//键盘输入一个学生信息public static Student getInputStudent() {Student student=null;//得到学生学号int stuid=getIntValue("--请输入学生学号--");//得到学生姓名String stuname=getStringValue("--请输入学生姓名--");//得到学生年龄int stuage=getIntValue("--请输入学生年龄--");//得到学生地址String stuaddress=getStringValue("--请输入学生地址--");student=new Student();student.setStuid(stuid);student.setStuname(stuname);student.setStuage(stuage);student.setStuaddress(stuaddress);return student;}
}
package com.jindi.main;import com.jindi.service.StudentService;
import com.jindi.util.StudentHelper;public class StudentMain {public static void main(String[] args) {while(true) {StudentHelper.getMenu();int setvice_code=StudentHelper.getIntValue("请输入对应的编号");StudentService studentService=new StudentService();studentService.service(setvice_code);                  }}
}

运行结果:


简单的学生管理系统详解(附源码)相关推荐

  1. 【Vue 实战项目】后台管理系统登录页详解附源码

    提示:前端查漏补缺,仅代表个人观点. 文章目录 一.先看效果图 二.实战步骤 1. 创建项目 2. 引入库 3. 登录页关键代码 三.页面源代码 总结 提示:项目源代码除了登录页面还有动态路由 一.先 ...

  2. python开发技术详解pdf下载_python开发技术详解附源码-python开发技术详解电子书pdf下载高清去水印版-精品下载...

    Python开发技术详解适合Python爱好者.大中专院校的学生.社会培训班的学生以及用Python语言进行系统管理.GUI开发.Web开发.数据库编程.网络编程的人员使用. 内容提要 Python是 ...

  3. java反射源码_java反射技术详解附源码

    在学校学习Java时,由于学的不扎实,也没经历过太多实战项目,所以很多重要的知识点瞟一眼就过去了,比如现在要讲的反射,当时直接就忽略掉了,可现在发现很多地方需要反射,不得不重新学习一下,上学欠了太多债 ...

  4. python嗅探工具详解附源码(使用socket,带tkinter界面)

    python嗅探工具详解(带tkinter界面) 点击详见原理 点击详见原理 TCP/IP协议号补充 必备基础知识 IP数据包格式 详见点此 TCP报文格式 详见点此 struct模块 在Python ...

  5. Linux下stream内存带宽测试参数和示例详解附源码(总结)

    目录 一.简介 二.使用简介 2.1 测试内容简介 2.2 编译参数简介 2.3 具体参数示例 三.源码下载及使用 四.其他相关知识链接 FIO测试硬盘性能参数和实例总结 一.简介 本文通过实例详细讲 ...

  6. dom操作获取盒子宽高位置的三种方法,offset/scroll/client三大家族使用详解(附源码及注释)

    结论:页面body的高度==视口的高度+滚动条滚动的距离. 这是一个恒等式,看完本篇博客,你将了解offset/scroll/clent三大事件获取宽高位置的具体含义,运用所学内容可以推导出这样的恒等 ...

  7. C# OpenCV EmguCV实现扫描文本图像倾斜矫正 实现详解(附源码)

    一.扫描文本倾斜矫正 实现步骤可以参考如下链接: https://blog.csdn.net/stq054188/article/details/120031667?spm=1001.2014.300 ...

  8. c#串口通讯详解(附源码)

    串口通讯 串口通讯是计算机传输数据的一种通讯方式,只不过是以比特位来传输数据的 串口通讯的相关参数 波特率: 波特率的大小代表每秒钟可以传输多少个二进制位,如波特率是9600,能每秒传输9600二进制 ...

  9. 「兔了个兔」CSS如此之美,看我如何实现可爱兔兔LOADING页面(万字详解附源码)

  10. 小程序获取城市行政区号_微信小程序 省市区选择器实例详解(附源码下载)

    微信小程序 省市区选择器: 最近学习微信小程序,为了检验自己的学习效果,自己做一个小示例,网上搜索下类似的实例,发现这个更好,大家看下. 一.区域间手势滑动切换,标题栏高亮随之切换 思路是:拿当前的c ...

最新文章

  1. zabbix专题:第三章 Zabbix Agent客户端安装详解
  2. UA Stat PhD Qualify Problems for Finite Sample Space Probability
  3. qt 无法定位程序输入点*******于动态链接库*****.dll上
  4. c语言实现天气预报步骤,天气预报是怎么预测天气的?天气预报制定需要哪些步骤...
  5. 简述python中怎样导入模块_12 python中模块和包如何导入
  6. 我的编程能力从什么时候开始突飞猛进
  7. python中max函数用法_Python中max函数用法实例分析
  8. 几位无人驾驶领域的杰出科学家
  9. Java一键生成图表
  10. IntelliJ Idea学习笔记004--- idea修改格式化代码快捷键_顺带一个激活地址_以及常用快捷键
  11. skip-gram模型介绍及代码
  12. JAVA多线程共享变量的可见性
  13. 微信 oauth授权2
  14. matlab linux 中文显示问题解决办法
  15. VS2017 CUDA编程学习实例1:CUDA实现向量点乘
  16. 北大计算机复试被刷经历,为什么那么多高分被刷?复试真的有黑幕吗?
  17. 虚拟机kali挂主机代理
  18. 程序员颈椎疼调整办法
  19. 在WSL上编译并运行全志XR806的完全体demo
  20. 如何优化我的世界服务器,我的世界服务器怎么优化 服务器优化建议

热门文章

  1. excel保存快捷键_这应该算是Windows电脑中最强的几组快捷键!
  2. html中的form是空标签么,关于html 中form表单的内标签和使用
  3. java中的时间片概念_java中常用的时间处理类TimeUtil
  4. 缺少 mysql 扩展_解决phpmyadmin中缺少mysqli扩展问题的方法
  5. js能调用c语言吗,HTML页面,测试JS对C函数的调用
  6. 小农民在深山树林里发现古墓_“快来!快来!这边有一个洞!”秦岭多古墓,难不成还真碰到了?...
  7. oracle叶子节点函数,oracle tree计算叶子节点到根节点的乘积
  8. 第五周-第08章节-Python3.5-内置模块详解之shutil模块
  9. PostgreSQL和MySQL
  10. Wannafly挑战赛28A(模拟,题意文字游戏)