简单的学生管理系统详解(附源码)
学生管理系统主要功能是对学生信息的添加、查询、删除、修改
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); }}
}
运行结果:
简单的学生管理系统详解(附源码)相关推荐
- 【Vue 实战项目】后台管理系统登录页详解附源码
提示:前端查漏补缺,仅代表个人观点. 文章目录 一.先看效果图 二.实战步骤 1. 创建项目 2. 引入库 3. 登录页关键代码 三.页面源代码 总结 提示:项目源代码除了登录页面还有动态路由 一.先 ...
- python开发技术详解pdf下载_python开发技术详解附源码-python开发技术详解电子书pdf下载高清去水印版-精品下载...
Python开发技术详解适合Python爱好者.大中专院校的学生.社会培训班的学生以及用Python语言进行系统管理.GUI开发.Web开发.数据库编程.网络编程的人员使用. 内容提要 Python是 ...
- java反射源码_java反射技术详解附源码
在学校学习Java时,由于学的不扎实,也没经历过太多实战项目,所以很多重要的知识点瞟一眼就过去了,比如现在要讲的反射,当时直接就忽略掉了,可现在发现很多地方需要反射,不得不重新学习一下,上学欠了太多债 ...
- python嗅探工具详解附源码(使用socket,带tkinter界面)
python嗅探工具详解(带tkinter界面) 点击详见原理 点击详见原理 TCP/IP协议号补充 必备基础知识 IP数据包格式 详见点此 TCP报文格式 详见点此 struct模块 在Python ...
- Linux下stream内存带宽测试参数和示例详解附源码(总结)
目录 一.简介 二.使用简介 2.1 测试内容简介 2.2 编译参数简介 2.3 具体参数示例 三.源码下载及使用 四.其他相关知识链接 FIO测试硬盘性能参数和实例总结 一.简介 本文通过实例详细讲 ...
- dom操作获取盒子宽高位置的三种方法,offset/scroll/client三大家族使用详解(附源码及注释)
结论:页面body的高度==视口的高度+滚动条滚动的距离. 这是一个恒等式,看完本篇博客,你将了解offset/scroll/clent三大事件获取宽高位置的具体含义,运用所学内容可以推导出这样的恒等 ...
- C# OpenCV EmguCV实现扫描文本图像倾斜矫正 实现详解(附源码)
一.扫描文本倾斜矫正 实现步骤可以参考如下链接: https://blog.csdn.net/stq054188/article/details/120031667?spm=1001.2014.300 ...
- c#串口通讯详解(附源码)
串口通讯 串口通讯是计算机传输数据的一种通讯方式,只不过是以比特位来传输数据的 串口通讯的相关参数 波特率: 波特率的大小代表每秒钟可以传输多少个二进制位,如波特率是9600,能每秒传输9600二进制 ...
- 「兔了个兔」CSS如此之美,看我如何实现可爱兔兔LOADING页面(万字详解附源码)
- 小程序获取城市行政区号_微信小程序 省市区选择器实例详解(附源码下载)
微信小程序 省市区选择器: 最近学习微信小程序,为了检验自己的学习效果,自己做一个小示例,网上搜索下类似的实例,发现这个更好,大家看下. 一.区域间手势滑动切换,标题栏高亮随之切换 思路是:拿当前的c ...
最新文章
- zabbix专题:第三章 Zabbix Agent客户端安装详解
- UA Stat PhD Qualify Problems for Finite Sample Space Probability
- qt 无法定位程序输入点*******于动态链接库*****.dll上
- c语言实现天气预报步骤,天气预报是怎么预测天气的?天气预报制定需要哪些步骤...
- 简述python中怎样导入模块_12 python中模块和包如何导入
- 我的编程能力从什么时候开始突飞猛进
- python中max函数用法_Python中max函数用法实例分析
- 几位无人驾驶领域的杰出科学家
- Java一键生成图表
- IntelliJ Idea学习笔记004--- idea修改格式化代码快捷键_顺带一个激活地址_以及常用快捷键
- skip-gram模型介绍及代码
- JAVA多线程共享变量的可见性
- 微信 oauth授权2
- matlab linux 中文显示问题解决办法
- VS2017 CUDA编程学习实例1:CUDA实现向量点乘
- 北大计算机复试被刷经历,为什么那么多高分被刷?复试真的有黑幕吗?
- 虚拟机kali挂主机代理
- 程序员颈椎疼调整办法
- 在WSL上编译并运行全志XR806的完全体demo
- 如何优化我的世界服务器,我的世界服务器怎么优化 服务器优化建议
热门文章
- excel保存快捷键_这应该算是Windows电脑中最强的几组快捷键!
- html中的form是空标签么,关于html 中form表单的内标签和使用
- java中的时间片概念_java中常用的时间处理类TimeUtil
- 缺少 mysql 扩展_解决phpmyadmin中缺少mysqli扩展问题的方法
- js能调用c语言吗,HTML页面,测试JS对C函数的调用
- 小农民在深山树林里发现古墓_“快来!快来!这边有一个洞!”秦岭多古墓,难不成还真碰到了?...
- oracle叶子节点函数,oracle tree计算叶子节点到根节点的乘积
- 第五周-第08章节-Python3.5-内置模块详解之shutil模块
- PostgreSQL和MySQL
- Wannafly挑战赛28A(模拟,题意文字游戏)