java课设选择了学生成绩管理系统,在此记录一下自己做课设的一些想法和问题。

文件源码放在:


https://gitee.com/feeling-cool/java-information-system

课设开始之前先查一下需要开发工具以及存储数据的方法,自己电脑上安装的是idea,那就决定用idea编写Java程序,存储数据的方法最初是觉得用文件系统管理,我觉得文件系统的操作相对于数据库的操作会更容易开始。但是看了一下课设说明书,发现必需使用数据库,数据库也可以充当服务器端用来存储数据。这样也就可以和课设题目对应上了。数据库就选择大家做课设都在用的MySQL,MySQL本身安装也比较简单,我就找网上的教程自己安装了一下。

安装完数据库,第一步当然是新建项目,但是这次要连接数据库,所以我们需要把idea和数据库连接上,这一步我花了点时间,因为我把数据库和idea连接之后,发现无法对数据库执行增删查改操作,查了一些的资料,大致确定自己是没有导入connect j 的jar包,需要去官网下载一下connect j 的jar包,将jar包导入idea,照着网上找到的方法,把jar包导入idea再试一下能不能对已经建好的表执行增删查改,发现已经可以正常执行操作,到此为止,课设最基本当然也是最核心的对数据库的增删查改操作可以基本确定如何编写。

一切准备就绪,我们先创建自己需要存储数据的表 studentinfo1数据名称和字段长度设为(name char(10),no int , python int ,java int ,db int)的格式,就是存储姓名,学号,python成绩,java成绩,数据库成绩的表。

课设正式开始,第一个类就写对数据库操作的类。

先写最重要的数据存储,第一步需要加载一下数据库的驱动,然后连接数据库,然后就要开始写重要的sql语句了,向预先建好的表studentinfo1插入数据,用到的sql语句就是insert into studentinfo1 values(xx,xx,xx,.....)如果你只是插入一行数据,那就可以把你想添加的数据写入括号后的值里,但是我们需要很多行不同的数据,所以把这个插入功能封装成函数,当插入时,调用函数,为函数传入不同的参数,实现插入多行不同的数据。因为我在建studentinfo1,采用的是(name char(10),no int , python int ,java int ,db int)的格式,所以我们插入的值也需要满足这样的类型,所以就在封装函数是设置形式参数为String a,int b,int c,int d,int e的格式,将这些参数按顺序插入占位符的位置,我们就完成了插入函数的最重要的部分,这样在调用函数只需传入不同的参数,即可实现插入不同的数据,最后将sql语句上传至数据库即可。

class dbopra {
public void insert(String a,int b,int c,int d,int e ) throws Exception{//Connection conn = null;PreparedStatement ps = null;Class.forName("com.mysql.jdbc.Driver");String jdbc = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8";Connection conn = DriverManager.getConnection(jdbc, "root", "root");String sql = "INSERT INTO studentinfo1 (name,no,python,java,db) VALUES (?,?,?,?,? )";ps = conn.prepareStatement(sql);ps.setString(1, a);ps.setInt(2, b);ps.setInt(3, c);ps.setInt(4, d);ps.setInt(5, e);int insertCount = ps.executeUpdate();
}

第二个要写的就是删除数据,这个也是一样的道理,当然我依据的是根据学号删除信息,所以参数只用设置一个int就行啦。

public void delete(int b) throws Exception{PreparedStatement ps = null;Class.forName("com.mysql.jdbc.Driver");String jdbc = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8";Connection conn = DriverManager.getConnection(jdbc, "root", "root");String sql = "delete from studentinfo1 where no = ?";ps = conn.prepareStatement(sql);ps.setInt(1,b);int insertCount = ps.executeUpdate();conn.close();}

第三个要写的是查询数据,又又是一样的道理,当然我依据的还是根据学号查询信息,所以参数只用设置一个int就行啦。但是查询数据和之前不同的是我们需要返回查询到的信息,所以需要由返回值,我们需要把这个查询后得到放在设置好的容器,同时我希望依据学号,可以返回给我一个包含姓名,三个成绩的的数据类型,而getString函数得到数据库的值都是String类型,那把这些值放到一个数组里不就是刚刚好嘛,说干就干,遍历所有数据库的行,当学号等于你传给的参数时,将这一行数据存入数组,这样查询就做到了。

public String[] select(int aa) throws Exception {Class.forName("com.mysql.jdbc.Driver");String jdbc="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8";Connection conn=DriverManager.getConnection(jdbc, "root", "root");Statement state=conn.createStatement();String sql="select * from studentinfo1";ResultSet rs=state.executeQuery(sql);String[] arrey  = new String[5];//int i = 0;while(rs.next()){if (Integer.parseInt(rs.getString(2) )== aa){arrey[0] = rs.getString(1);arrey[1] = rs.getString(2);arrey[2] = rs.getString(3);arrey[3] = rs.getString(4);arrey[4] = rs.getString(5);System.out.print(rs.getString(1)+" "+rs.getString(3)+" "+rs.getString(4)+" "+rs.getString(5));break;}}conn.close();
}

最后再来完成最后一个修改操作,这个我依然依据学号改别的数据的值,我最先想到的是将占位符设置成 “ set ? = ? where no = ?” 的形式,在将参数插入占位符的位置,完成依据学号改别的数据的操作,实操之后,不能实现修改操作,查了资料之后,也不知道为什么不能操作,但是我在之前调试的时候,我用“ set name  = ? where no = ?”“ set python  = ? where no = ?”都是可以执行修改操作的,然后我就将思路改变为使用if语句,如下所示

public void update(String a,int b,int c) throws Exception{PreparedStatement ps = null;Class.forName("com.mysql.jdbc.Driver");String jdbc = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8";Connection conn = DriverManager.getConnection(jdbc, "root", "root");if (a.equals("python")){String sql = "update studentinfo1 set python = ? where no = ? ";ps = conn.prepareStatement(sql);ps.setInt(1, b);ps.setInt(2, c);int insertCount = ps.executeUpdate();}else if(a.equals("java")){String sql = "update studentinfo1 set java = ? where no = ? ";ps = conn.prepareStatement(sql);ps.setInt(1, b);ps.setInt(2, c);int insertCount = ps.executeUpdate();}else if(a.equals("db")){String sql = "update studentinfo1 set db = ? where no = ? ";ps = conn.prepareStatement(sql);ps.setInt(1, b);ps.setInt(2, c);int insertCount = ps.executeUpdate();}conn.close();}

这样做也算间接实现修改功能了,但是需要额外加一个修改名字的操作,因为数据类型的限制。

public void updatename(String a,String b,int c) throws  Exception{PreparedStatement ps = null;Class.forName("com.mysql.jdbc.Driver");String jdbc = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8";Connection conn = DriverManager.getConnection(jdbc, "root", "root");if (a.equals("姓名")){String sql = "update studentinfo1 set name = ? where no = ? ";ps = conn.prepareStatement(sql);ps.setString(1, b);ps.setInt(2, c);int insertCount = ps.executeUpdate();}conn.close();}

数据库核心的增删查改操作就写完了,那接下来就开始 “前端” 的编写了,先写最每个系统最初的界面 ———— 登录界面。

导入我们最常用swing组件和awt ,GUI的编写就开始了。

先来设置我们熟悉的组件,JTextfield ,JButton ,JLabel,JPasswordfield 一并给他填上,先设置好窗口居中,以及窗口禁止最大化。

public class run extends JFrame{final JTextField t1 = new JTextField(20);final JTextField t2 = new JTextField(20);final JPasswordField t3 = new JPasswordField(20);int input = 6;public void init(){setSize(580,400);setTitle("成绩管理系统");setDefaultCloseOperation(3);setResizable(false);setLocationRelativeTo(null);JLabel l1 = new JLabel("身份:");//t1 = new JTextField(20);JLabel l2 = new JLabel("姓名:");//JTextField t2 = new JTextField(20);JLabel l3 = new JLabel("密码:");//JTextField t3 = new JTextField(20);//t3.setEchoChar('*');JButton b1 = new JButton("确定");

接下来为按钮增添事件监听器,为注册和登录按钮增添事件监听器。点击注册,就可以将信息存储至loguser.txt中,在存储loguser.txt的时候,我使用的是将文本框获得的内容,以“身份,用户名,密码”的形式一行一行存入文件中。实现登录功能的思路是遍历loguser.txt文件,通过挨个判断文本框的内容是否相等,如果可以找到相等的数据,即可登录成功,登录成功即可进入相应的界面,也就是实例化student.class和teacher.class等类。当然,在设计系统的时候,我们默认六次登录机会,如果6次没有登录成功,即会自动退出系统。

b1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try {int aa = 0 ;FileReader fr = new FileReader("E://loguser.txt");BufferedReader br = new BufferedReader(fr);List<String>list = new ArrayList();String a = br.readLine();while (a !=null){list.add(a);a = br.readLine();}for (int i = 0; i < list.size(); i++) {String el = list.get(i);//System.out.print(el);//System.out.print(run.this.t2.getText()+String.valueOf(run.this.t3.getPassword()));if (el.equals(run.this.t1.getText() + "," + run.this.t2.getText() + "," + String.valueOf(run.this.t3.getPassword()))){run.this.dispose();if (run.this.t1.getText().equals("教师")) {new teacher();}else if (run.this.t1.getText().equals("学生")) {new student();}else if (run.this.t1.getText().equals("教师端管理员")){new adteacher();}else if (run.this.t1.getText().equals("学生端管理员")){new adstudent();}break;}if (!(el.equals(run.this.t1.getText() + "," + run.this.t2.getText() + "," + String.valueOf(run.this.t3.getPassword())))){aa += 1;if (aa == list.size()){run.this.input -= 1;JDialog d = new JDialog();d.setSize(100, 100);JOptionPane.showMessageDialog(d, "登录失败!你还有"+input+"次机会", "登陆提示", ERROR_MESSAGE);}}}if (input == 0){run.this.dispose();System.exit(0);}}catch(Exception e1) {}}});
JButton b2 = new JButton("注册");b2.setOpaque(false);b2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try {String[] arr ={};FileWriter fw = new FileWriter("E://loguser.txt",true);fw.write(run.this.t1.getText());fw.write(",");fw.write(run.this.t2.getText());fw.write(",");fw.write(run.this.t3.getText());fw.write("\r\n");fw.close();JDialog d = new JDialog();d.setSize(100, 100);JOptionPane.showMessageDialog(d, "注册成功", "注册提示",JOptionPane.PLAIN_MESSAGE);}catch(Exception e1){}}});

存储实例如下图所示。

写到这登录界面和功能就写完了,剩下的事就是把组件加入面板,给窗口加入背景图片的操作。图片在网上随便找一个即可。下面是整个界面和功能的代码段。当然登录界面被我设为了整个课设的主类,剩下的类皆在主类中实例化。

public class run extends JFrame{final JTextField t1 = new JTextField(20);final JTextField t2 = new JTextField(20);final JPasswordField t3 = new JPasswordField(20);int input = 6;public void init(){setSize(580,400);setTitle("成绩管理系统");setDefaultCloseOperation(3);setResizable(false);setLocationRelativeTo(null);JLabel l1 = new JLabel("身份:");//t1 = new JTextField(20);JLabel l2 = new JLabel("姓名:");//JTextField t2 = new JTextField(20);JLabel l3 = new JLabel("密码:");//JTextField t3 = new JTextField(20);//t3.setEchoChar('*');JButton b1 = new JButton("确定");b1.setOpaque(false);b1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try {int aa = 0 ;FileReader fr = new FileReader("E://loguser.txt");BufferedReader br = new BufferedReader(fr);List<String>list = new ArrayList();String a = br.readLine();while (a !=null){list.add(a);a = br.readLine();}/*System.out.println(list.size());System.out.println(list.get(0));System.out.println(list.get(1));System.out.println(list.get(2));System.out.println(list.get(3));*/for (int i = 0; i < list.size(); i++) {String el = list.get(i);//System.out.print(el);//System.out.print(run.this.t2.getText()+String.valueOf(run.this.t3.getPassword()));if (el.equals(run.this.t1.getText() + "," + run.this.t2.getText() + "," + String.valueOf(run.this.t3.getPassword()))){//System.out.print("ok");run.this.dispose();//new student();if (run.this.t1.getText().equals("教师")) {new teacher();}else if (run.this.t1.getText().equals("学生")) {new student();}else if (run.this.t1.getText().equals("教师端管理员")){new adteacher();}else if (run.this.t1.getText().equals("学生端管理员")){new adstudent();}break;}if (!(el.equals(run.this.t1.getText() + "," + run.this.t2.getText() + "," + String.valueOf(run.this.t3.getPassword())))){aa += 1;//System.out.println(aa);if (aa == list.size()){//System.out.print(aa);run.this.input -= 1;JDialog d = new JDialog();d.setSize(100, 100);JOptionPane.showMessageDialog(d, "登录失败!你还有"+input+"次机会", "登陆提示", ERROR_MESSAGE);}}}//JDialog d = new JDialog();//d.setSize(100, 100);//JOptionPane.showMessageDialog(d, "登录失败!你还有"+input+"次机会", "登陆提示", ERROR_MESSAGE);if (input == 0){run.this.dispose();System.exit(0);}}catch(Exception e1) {}}});JButton b2 = new JButton("注册");b2.setOpaque(false);b2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try {String[] arr ={};FileWriter fw = new FileWriter("E://loguser.txt",true);fw.write(run.this.t1.getText());fw.write(",");fw.write(run.this.t2.getText());fw.write(",");fw.write(run.this.t3.getText());fw.write("\r\n");fw.close();JDialog d = new JDialog();d.setSize(100, 100);JOptionPane.showMessageDialog(d, "注册成功", "注册提示",JOptionPane.PLAIN_MESSAGE);}catch(Exception e1){}}});JLayeredPane pa = new JLayeredPane();JPanel p1 = new JPanel();ImageIcon image = new ImageIcon("E://2.jpg");JLabel ji = new JLabel(image);p1 = (JPanel)getContentPane();p1.add(ji);l1.setBounds(100, 120, 30, 30);t1.setBounds(150,120,200,30);l2.setBounds(100, 170, 30, 30);t2.setBounds(150,170,200,30);l3.setBounds(100, 220, 30, 30);t3.setBounds(150,220,200,30);b1.setBounds(150,270,60,30);b2.setBounds(290,270,60,30);pa.add(p1,JLayeredPane.DEFAULT_LAYER);pa.add(l1, JLayeredPane.MODAL_LAYER);pa.add(l2, JLayeredPane.MODAL_LAYER);pa.add(l3, JLayeredPane.MODAL_LAYER);pa.add(t1, JLayeredPane.MODAL_LAYER);pa.add(t2, JLayeredPane.MODAL_LAYER);pa.add(t3, JLayeredPane.MODAL_LAYER);pa.add(b1, JLayeredPane.MODAL_LAYER);pa.add(b2, JLayeredPane.MODAL_LAYER);setLayeredPane(pa);setVisible(true);}public run(){init();}public static void main(String[] args){new run();}}

接下来就需要写我们要实例化的类student.class和teacher.class。依然是继承JFrame的界面。用teacher.class 举例,依然是加入必须组件,在为组件增添事件监听器。由组件监听是否由事件的发生,在做出相应相应的操作。对于存储按钮,我们要做出的操作即为实例化dbopra,调用insert函数,将数据存储至数据库中。将文本框输入的文本作为插入函数的参数,就可以做到插入你输入在文本框的数据。查询,删除都是一样的道理,只需传入不同的参数。

class teacher extends JFrame{final JTextField t1 = new JTextField(20);final JTextField t2 = new JTextField(20);final JTextField t3 = new JTextField(20);final JTextField t4 = new JTextField(20);final JTextField t5 = new JTextField(20);public teacher(){init();}public void init(){setSize(580,400);setTitle("教师端");setDefaultCloseOperation(3);setResizable(false);setLocationRelativeTo(null);//setLayout(new GridLayout(6,1));JLabel l2 = new JLabel("学号");//t1 = new JTextField(20);JLabel l1 = new JLabel("姓名");//JTextField t2 = new JTextField(20);JLabel l3 = new JLabel("python");JLabel l4 = new JLabel("java");JLabel l5 = new JLabel("数据库");JButton b1 = new JButton("存储");b1.setOpaque(false);b1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try{dbopra tdp = new dbopra();String a = "insert into studentinfo1 values "+"("+teacher.this.t1.getText()+","+teacher.this.t2.getText()+","+teacher.this.t3.getText()+","+teacher.this.t4.getText()+","+teacher.this.t5.getText()+")";System.out.print(a);tdp.insert(teacher.this.t1.getText(),Integer.parseInt(teacher.this.t2.getText()),Integer.parseInt(teacher.this.t3.getText()),Integer.parseInt(teacher.this.t4.getText()),Integer.parseInt(teacher.this.t5.getText()));JDialog d = new JDialog();d.setSize(100,100);JOptionPane.showMessageDialog(d,"已存入数据库","存储提示",JOptionPane.PLAIN_MESSAGE);}catch(Exception e1){}}});JButton b3  = new JButton("修改");b3.setOpaque(false);b3.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {teacher.this.dispose();new teacherup();}});JButton b4 = new JButton("删除");b4.setOpaque(false);b4.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try {dbopra tdp = new dbopra();tdp.delete(Integer.parseInt(teacher.this.t2.getText()));JDialog d = new JDialog();d.setSize(100,100);JOptionPane.showMessageDialog(d, "删除成功", "删除提示",JOptionPane.PLAIN_MESSAGE);}catch (Exception e1){}}});JButton b2 = new JButton("查询");b2.setOpaque(false);b2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try {//System.out.print("ok");dbopra tdp = new dbopra();//System.out.print("1ok");//tdp.select(Integer.parseInt(teacher.this.t2.getText()));String []a  = tdp.select(Integer.parseInt(teacher.this.t2.getText()));//System.out.print(a[0]);//System.out.print(a[1]);t1.setText(a[0]);t2.setText(a[1]);t3.setText(a[2]);t4.setText(a[3]);t5.setText(a[4]);} catch (Exception e1) {}}});JLayeredPane pa = new JLayeredPane();JPanel p1 = new JPanel();ImageIcon image = new ImageIcon("E://3.jpg");JLabel jl = new JLabel(image);p1 = (JPanel)getContentPane();p1.add(jl);l1.setBounds(150, 40, 30, 30);t1.setBounds(200, 40, 220, 30);l2.setBounds(150, 90, 30, 30);t2.setBounds(200, 90, 220, 30);l3.setBounds(150, 140, 60, 30);t3.setBounds(200, 140, 220, 30);l4.setBounds(150, 190, 30, 30);t4.setBounds(200, 190, 220, 30);l5.setBounds(150, 240, 60, 30);t5.setBounds(200, 240, 220, 30);b1.setBounds(180, 290, 60, 30);b2.setBounds(250, 290, 60, 30);b3.setBounds(320, 290, 60, 30);b4.setBounds(390, 290, 60, 30);pa.add(p1, JLayeredPane.DEFAULT_LAYER);pa.add(l1, JLayeredPane.MODAL_LAYER);pa.add(l2, JLayeredPane.MODAL_LAYER);pa.add(l3, JLayeredPane.MODAL_LAYER);pa.add(l4, JLayeredPane.MODAL_LAYER);pa.add(l5, JLayeredPane.MODAL_LAYER);pa.add(t1, JLayeredPane.MODAL_LAYER);pa.add(t2, JLayeredPane.MODAL_LAYER);pa.add(t3, JLayeredPane.MODAL_LAYER);pa.add(t4, JLayeredPane.MODAL_LAYER);pa.add(t5, JLayeredPane.MODAL_LAYER);pa.add(b1, JLayeredPane.MODAL_LAYER);pa.add(b2, JLayeredPane.MODAL_LAYER);pa.add(b3, JLayeredPane.MODAL_LAYER);pa.add(b4, JLayeredPane.MODAL_LAYER);setLayeredPane(pa);setVisible(true);}}

对于修改操作,我写了一个修改面板的操作,这个面板由teacherup.class完成。如果在教师端界面点击修改操作,即可实例化teacherup.clas然后跳出修改界面。来完成修改的操作。下面是效果图。

这个是实现修改面板的teacherup.class。

class teacherup extends JFrame{final JTextField t1 = new JTextField(20);final JTextField t2 = new JTextField(20);final JTextField t3 = new JTextField(20);public teacherup(){init();}public void init(){setSize(580,400);setTitle("修改面板");setResizable(false);setLocationRelativeTo(null);//setLayout(new GridLayout(4,1));JLabel l1 = new JLabel("学号");JLabel l2 = new JLabel("项目");JLabel l3 = new JLabel("结果");JButton b1 =new JButton("确定");b1.setOpaque(false);b1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try {dbopra tdp = new dbopra();if ((teacherup.this.t2.getText()).equals("姓名")){tdp.updatename(teacherup.this.t2.getText(), teacherup.this.t3.getText(), Integer.parseInt(teacherup.this.t1.getText()));}else {tdp.update(teacherup.this.t2.getText(), Integer.parseInt(teacherup.this.t3.getText()), Integer.parseInt(teacherup.this.t1.getText()));}JDialog d = new JDialog();d.setSize(100,100);JOptionPane.showMessageDialog(d,"修改成功","修改提示",JOptionPane.PLAIN_MESSAGE);teacherup.this.dispose();new teacher();}catch(Exception e1){}}});JLayeredPane pa = new JLayeredPane();JPanel p = new JPanel();ImageIcon image = new ImageIcon("E://3.jpg");JLabel jl = new JLabel(image);p = (JPanel)getContentPane();p.add(jl);l1.setBounds(150, 60, 30, 30);t1.setBounds(200, 60, 200, 30);l2.setBounds(150, 140, 30, 30);t2.setBounds(200, 140, 200, 30);l3.setBounds(150, 220, 30, 30);t3.setBounds(200, 220, 200, 30);b1.setBounds(260, 300, 60, 30);pa.add(p, JLayeredPane.DEFAULT_LAYER);pa.add(l1, JLayeredPane.MODAL_LAYER);pa.add(l2, JLayeredPane.MODAL_LAYER);pa.add(l3, JLayeredPane.MODAL_LAYER);pa.add(t1, JLayeredPane.MODAL_LAYER);pa.add(t2, JLayeredPane.MODAL_LAYER);pa.add(t3, JLayeredPane.MODAL_LAYER);pa.add(b1, JLayeredPane.MODAL_LAYER);setLayeredPane(pa);setVisible(true);}}

这样基本就写完了,学生端和教师端基本无区别,就是减少了修改,存储,删除的权限,只具有查询功能,我就不放代码了,大家可以根据教师端删除即可。

写到这。基本系统就已经成型了。教师具备增删查改功能,学生具有查询功能,如果需要加一些对成绩的分析功能,大家可以自行添加。

暂时就写到这。菜鸡一枚,如果有错误,希望指正。

Java课程设计 基于c/s端学生成绩管理系统相关推荐

  1. c语言利用指针函数等完成学生成绩管理系统,课程设计C语言可视化程序学生成绩管理系统...

    <课程设计C语言可视化程序学生成绩管理系统>由会员分享,可在线阅读,更多相关<课程设计C语言可视化程序学生成绩管理系统(37页珍藏版)>请在人人文库网上搜索. 1.C语言可视化 ...

  2. 学生成绩管理系统mysql课程设计_数据库课程设计(极其简单的学生成绩管理系统)...

    这个是我大三上学期的时候刚开始学习数据库课程的时候做的一个很稀烂的课程设计的源代码,当时刚刚开始学习Java和Oracle,而且当时就花了今年元旦3天假,做的这个C/S程序中没有加入触发器和存储过程等 ...

  3. 数据库课程设计(上)(学生成绩管理系统)

    文章目录 SQL Server数据库设计 AddC AddS AddSC DelC DelS DelSC UpdateC UpdateS UpdateSC SelC SelS SelSC SQL Se ...

  4. Java课程设计-基于Java Swing的学生信息管理系统-版本二

    Java课程设计-基于Java Swing的学生信息管理系统-版本二 1.介绍 2.相关技术 3. 代码仓库 4.所需环境 5.安装教程 6.运行截图 7.相关博客 1.介绍 设计一个简单学生个人信息 ...

  5. Java课程设计-基于Swing的学生信息管理系统

    Java课程设计-基于Swing的学生信息管理系统 1.介绍 2.相关技术 3.项目地址 4.所需环境 5.安装教程 6.运行截图 7.相关博客 本代码是整理其他人项目,如有问题请及时联系笔者. 1. ...

  6. Java课程设计基于ssm的微信小程序

    Java课程设计, 基于ssm的微信小程序 后端涉及技术spring.mysql等 效果查看请扫一扫 喜欢可以点赞哟

  7. Java课程设计基于SSM的出租房管理

    Java课程设计, 基于ssm 后端涉及技术spring.mysql等 效果演示 代码 黄勇康 (huang-yk) - Gitee.com 部分sql create table user (user ...

  8. c语言可视化学生管理系统,课程的设计C语言可视化程序学生成绩管理系统.doc

    课程的设计C语言可视化程序学生成绩管理系统 C语言可视化程序 设计报告 行政班级 机械0805 姓名 魏永涛 学号 0806080524 指导老师 夏建芳 课题名称 学生成绩管理系统 C可视化程序设计 ...

  9. 基于SpringBoot+Vue的学生成绩管理系统

    基于SpringBoot+Vue的学生成绩管理系统 ,已经实现了增删改查,完美的springBoot项目脚手架 ,适合学习和二次开发,课程设计 已经实现了增删改查和搜索查询所有功能,完美的spring ...

最新文章

  1. php定义常量mypi 3.14,php – Codeigniter 3使用未定义的常量VIEWPATH – 假设’VIEWPATH’...
  2. 你知道我今天为什么来公司上班吗?
  3. python学起来难不难-新手学python数据分析难不难?
  4. Scala代码案例: StdIn和if..else
  5. 有25匹马,5条赛道
  6. matlab历史指示穿作用,重新学习MATLAB——相见恨晚的重要应用技巧
  7. LeetCode之第一个错误版本
  8. HTML5里video标签支持哪些格式的视频文件及其遇到的坑
  9. 简易的站内搜索引擎 (万字长文!!绝对值得一看!!)
  10. 修复电脑右下角网络图标消失的问题
  11. java 服务器文件下载
  12. 判断NSString是否含有某字符rangeOfString
  13. 红蓝白三色球的排列,红色居前,白色居中,蓝色居后,算法设计,每个球只能查看一次
  14. 谭谭黄金面具后面法老的诅咒
  15. 使用VLC开发库,预览采集卡视频方法
  16. opencv亚像素边缘精度_OpenCV亚像素角点cornerSubPixel()源代码分析
  17. 景区环境监测系统总体建设方案
  18. Spring学习(1)
  19. 一篇文章概括——2021 不容错过的后端技术趋势(强烈推荐)
  20. 三洋py服务器报警h维修,三洋伺服驱动器维修报警代码 QS1A05AA 报AL22修理

热门文章

  1. JOne Action示例
  2. Java IDEA中输出语句变红报错分析
  3. 中职汽修专业计算机测试卷,汽修专业面试问题及答案
  4. 移动开发技术一:微信门户界面设计
  5. css实现中间镂空效果
  6. 一分钟带你看懂公有云和私有云的区别
  7. 如何打开mysql odbc数据源_mysql是如何配置ODBC数据源的方法
  8. 用计算机听音乐和看电影的ppt,小学信息技术川教版五年级下册第六课 用计算机听音乐和看电影教案...
  9. 百家号企业专业号怎么认证?百家号蓝V认证最新认证流程!
  10. Python 标准库 functools 模块详解