问题描述:编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。实现功能: 1、创建信息链表并以磁盘文件保存 2、读取磁盘文件并显示输出所有学生的籍贯信息 3、按学号或姓名查询其籍贯 4、按籍贯查询并输出该籍贯的所有学生 5、能添加、删除和修改学生的籍贯信息 6、显示输出湖北籍和非湖北籍学生的信息并可分别存盘 知识点:文件打开,保存,结构体,搜索,链表说明:其中1-5功能是必须要实现的功能。
时间: 2023-06-03 22:05:52 浏览: 85
这个问题属于计算机科学的范畴,我可以帮助你回答这个问题。对于这个问题,你可以使用C语言来实现一个基于链表的学生籍贯信息记录簿。首先,你需要定义一个包含学号、姓名和籍贯的结构体。然后,你可以使用链表来存储所有的学生信息并将链表保存到磁盘文件中。接下来,你可以实现按学号或姓名查询学生的籍贯,按籍贯查询所有学生,并能添加、删除和修改学生信息的功能。最后,你可以编写代码来显示并分别保存湖北籍和非湖北籍学生的信息。
相关问题
学生籍贯信息记录簿(使用数据库) 编制一个学生籍贯(到省一级就行,不用到市)信息记录簿,每个学生信息包括:学号、姓名、籍贯。功能要求: (1)按学号或姓名查询其籍贯; (2)按籍贯查询并输出该籍贯的所有学生; (3)能添加、删除和修改学生的籍贯信息; (4)籍贯从JComboBox中选择。
好的,这是一个学生籍贯信息管理系统,我们可以使用Java语言和MySQL数据库来实现。以下是具体实现步骤:
1. 创建一个名为“student”(学生)的数据表,包括以下字段:学号、姓名、籍贯。其中,学号是主键,不可重复。
2. 创建一个Java窗口界面,包括以下组件:文本框(用于输入学号和姓名)、下拉列表框(用于选择籍贯)、查询按钮、添加按钮、删除按钮、修改按钮、学生信息表格(用于显示查询结果)。
3. 查询功能:用户可以按学号或姓名查询学生籍贯信息。用户输入学号或姓名后,点击查询按钮,程序会从数据库中检索符合条件的学生信息,并将查询结果显示在学生信息表格中。如果没有符合条件的学生,程序会弹出提示框告知用户。
4. 按籍贯查询功能:用户可以按籍贯查询所有学生信息。用户选择籍贯后,点击查询按钮,程序会从数据库中检索符合条件的学生信息,并将查询结果显示在学生信息表格中。如果没有符合条件的学生,程序会弹出提示框告知用户。
5. 添加功能:用户可以添加新的学生信息。用户输入学号、姓名和籍贯后,点击添加按钮,程序会将新的学生信息插入到数据库中。如果插入成功,程序会弹出提示框告知用户;如果插入失败,程序也会弹出提示框告知用户。
6. 删除功能:用户可以删除已有的学生信息。用户选中要删除的学生信息后,点击删除按钮,程序会将该学生信息从数据库中删除。如果删除成功,程序会弹出提示框告知用户;如果删除失败,程序也会弹出提示框告知用户。
7. 修改功能:用户可以修改已有的学生信息。用户选中要修改的学生信息后,点击修改按钮,程序会将该学生信息更新到数据库中。如果更新成功,程序会弹出提示框告知用户;如果更新失败,程序也会弹出提示框告知用户。
8. 最后,程序需要连接MySQL数据库,从数据库中读取学生信息,并将学生信息显示在学生信息表格中。
用代码实现学生籍贯信息记录簿(使用数据库) 编制一个学生籍贯(到省一级就行,不用到市)信息记录簿,每个学生信息包括:学号、姓名、籍贯。功能要求: (1)按学号或姓名查询其籍贯; (2)按籍贯查询并输出该籍贯的所有学生; (3)能添加、删除和修改学生的籍贯信息; (4)籍贯从JComboBox中选择
好的,下面是使用Java语言和MySQL数据库实现学生籍贯信息记录簿的代码示例:
首先,我们需要创建一个名为“student”的MySQL数据库,其中包括一个名为“student_info”的表,该表包含三个字段:id、name、hometown。
创建代码如下:
```sql
CREATE DATABASE student;
USE student;
CREATE TABLE student_info (
id INT PRIMARY KEY,
name VARCHAR(20),
hometown VARCHAR(20)
);
```
接下来,我们编写Java程序来连接MySQL数据库,并实现查询、添加、删除和修改学生籍贯信息的功能。
```java
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class StudentInfo extends JFrame implements ActionListener {
private JLabel label1, label2, label3;
private JTextField tf1, tf2;
private JComboBox<String> hometownBox;
private JButton btn1, btn2, btn3, btn4;
private JPanel panel1, panel2;
private static Connection conn;
private static Statement stmt;
public StudentInfo() {
super("学生籍贯信息记录簿");
label1 = new JLabel("学号:");
label2 = new JLabel("姓名:");
label3 = new JLabel("籍贯:");
tf1 = new JTextField(10);
tf2 = new JTextField(10);
String[] hometowns = {"北京", "上海", "广东", "江苏", "浙江", "山东", "河南", "湖北", "湖南", "四川", "重庆", "陕西", "其他"};
hometownBox = new JComboBox<>(hometowns);
btn1 = new JButton("查询");
btn2 = new JButton("添加");
btn3 = new JButton("删除");
btn4 = new JButton("修改");
panel1 = new JPanel(new GridLayout(3, 2));
panel1.add(label1);
panel1.add(tf1);
panel1.add(label2);
panel1.add(tf2);
panel1.add(label3);
panel1.add(hometownBox);
panel2 = new JPanel(new GridLayout(1, 4));
panel2.add(btn1);
panel2.add(btn2);
panel2.add(btn3);
panel2.add(btn4);
add(panel1, BorderLayout.CENTER);
add(panel2, BorderLayout.SOUTH);
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
btn4.addActionListener(this);
setSize(400, 150);
setVisible(true);
connectToDatabase();
}
private void connectToDatabase() {
String driver = "com.mysql.cj.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/student?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true";
String user = "root";
String password = "123456";
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btn1) {
String id = tf1.getText();
String name = tf2.getText();
String hometown = (String) hometownBox.getSelectedItem();
String sql = "";
if (id.equals("")) {
sql = "SELECT * FROM student_info WHERE name='" + name + "'";
} else if (name.equals("")) {
sql = "SELECT * FROM student_info WHERE id=" + id;
} else {
JOptionPane.showMessageDialog(null, "请输入学号或姓名!");
return;
}
try {
ResultSet rs = stmt.executeQuery(sql);
String result = "";
while (rs.next()) {
int studentId = rs.getInt("id");
String studentName = rs.getString("name");
String studentHometown = rs.getString("hometown");
result += "学号:" + studentId + " 姓名:" + studentName + " 籍贯:" + studentHometown + "\n";
}
if (!result.equals("")) {
JOptionPane.showMessageDialog(null, result);
} else {
JOptionPane.showMessageDialog(null, "没有找到相关信息!");
}
} catch (SQLException ex) {
ex.printStackTrace();
}
} else if (e.getSource() == btn2) {
String id = tf1.getText();
String name = tf2.getText();
String hometown = (String) hometownBox.getSelectedItem();
if (id.equals("") || name.equals("")) {
JOptionPane.showMessageDialog(null, "请输入学号和姓名!");
return;
}
String sql = "INSERT INTO student_info VALUES (" + id + ",'" + name + "','" + hometown + "')";
try {
int result = stmt.executeUpdate(sql);
if (result > 0) {
JOptionPane.showMessageDialog(null, "添加成功!");
} else {
JOptionPane.showMessageDialog(null, "添加失败!");
}
} catch (SQLException ex) {
ex.printStackTrace();
}
} else if (e.getSource() == btn3) {
String id = tf1.getText();
String name = tf2.getText();
if (id.equals("")) {
JOptionPane.showMessageDialog(null, "请输入学号!");
return;
}
String sql = "DELETE FROM student_info WHERE id=" + id;
try {
int result = stmt.executeUpdate(sql);
if (result > 0) {
JOptionPane.showMessageDialog(null, "删除成功!");
} else {
JOptionPane.showMessageDialog(null, "删除失败!");
}
} catch (SQLException ex) {
ex.printStackTrace();
}
} else if (e.getSource() == btn4) {
String id = tf1.getText();
String name = tf2.getText();
String hometown = (String) hometownBox.getSelectedItem();
if (id.equals("")) {
JOptionPane.showMessageDialog(null, "请输入学号!");
return;
}
String sql = "UPDATE student_info SET hometown='" + hometown + "' WHERE id=" + id;
try {
int result = stmt.executeUpdate(sql);
if (result > 0) {
JOptionPane.showMessageDialog(null, "修改成功!");
} else {
JOptionPane.showMessageDialog(null, "修改失败!");
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
new StudentInfo();
}
}
```
上述示例代码是一个基本的学生籍贯信息记录簿程序,其中包括连接MySQL数据库、查询、添加、删除和修改学生籍贯信息的功能。用户可通过输入学号或姓名查询学生的籍贯信息,也可通过选择籍贯来添加、删除和修改学生的籍贯信息。