设计一个录入和显示学生基本信息的程序界面,学生信息包括学号、姓名、性别、专业(只能是软件工程、网络工程、物联网)、成绩。当用户输入完毕,点击保存按钮时,弹出消息对话框,提示“保存成功”。如果成绩是负数
时间: 2023-04-25 07:03:53 浏览: 566
,弹出消息对话框,提示“成绩不能为负数,请重新输入”。程序界面应该包括输入框、下拉框和保存按钮。输入框用于输入学号、姓名和成绩,下拉框用于选择性别和专业。保存按钮用于保存学生信息。在保存学生信息之前,需要对输入的数据进行合法性检查,确保学号和成绩是数字,成绩不为负数。如果输入的数据不合法,弹出消息对话框,提示用户重新输入。保存学生信息时,可以将学生信息保存到文件中,也可以将学生信息保存到数据库中。
相关问题
用c++写学生选课系统:1.系统管理员可以对学生、教师、选课和课程成绩进行增、删、改和查。 2.系统管理员可对学生选择课程进行查询统计,生成柱状图并导出(每门课选择人数统计)。 3.学院管理员可对本学院教师、学生、本学院学生选课、本学院开设课程和成绩进行增删改查。 4.学院对选择课程的学生进行抽签,并按课程生成中签学生名单。 5. 教师可以登录本系统,在网站上输入课程介绍、上传课程的课件、发布、先修课程、更新和修改课程信息。 6.教师可查询选修自己课程的所有中签学生名单,并录入课程成绩生成成绩统计表(每个分数段的人数,及格率等)。 7.教师可对选修自己课程学生发送消息留言。 8. 学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行查询已选课程、指定自己的选修课程以及对自己基本信息的查询; 9.学生可以查询自己选课结果。 10.学生选课时,如果该门课程的先修课程没有学习,则不能进行选课,并给出提示“您没有学习该课程的先修课程,不能进行选课!”。 11.学生可浏览课程信息和查询成绩,下载课件。 12.学生可给任课教师发送信息和回复任课教师的留言。
这是一个比较复杂的系统,需要使用数据库管理学生、教师、课程和选课信息。以下是一个简单的 C++ 代码示例,可以帮助你理解如何实现一些功能。
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <map>
using namespace std;
// 学生类
class Student {
public:
string id; // 学号
string name; // 姓名
string gender; // 性别
string major; // 专业
vector<string> courses; // 已选课程
// 构造函数
Student(string _id, string _name, string _gender, string _major) {
id = _id;
name = _name;
gender = _gender;
major = _major;
}
// 添加课程
void addCourse(string course) {
courses.push_back(course);
}
// 删除课程
void removeCourse(string course) {
for (int i = 0; i < courses.size(); i++) {
if (courses[i] == course) {
courses.erase(courses.begin() + i);
break;
}
}
}
};
// 教师类
class Teacher {
public:
string id; // 工号
string name; // 姓名
string gender; // 性别
string title; // 职称
map<string, int> grades; // 成绩
// 构造函数
Teacher(string _id, string _name, string _gender, string _title) {
id = _id;
name = _name;
gender = _gender;
title = _title;
}
// 录入成绩
void addGrade(string course, int grade) {
grades[course] = grade;
}
};
// 课程类
class Course {
public:
string id; // 课程号
string name; // 课程名
string teacher; // 授课教师
int capacity; // 课程容量
int selected; // 已选人数
vector<string> students; // 已选学生
// 构造函数
Course(string _id, string _name, string _teacher, int _capacity) {
id = _id;
name = _name;
teacher = _teacher;
capacity = _capacity;
selected = 0;
}
// 添加学生
bool addStudent(string student) {
if (selected < capacity) {
students.push_back(student);
selected++;
return true;
}
else {
return false;
}
}
// 删除学生
void removeStudent(string student) {
for (int i = 0; i < students.size(); i++) {
if (students[i] == student) {
students.erase(students.begin() + i);
selected--;
break;
}
}
}
};
// 系统管理员类
class Admin {
public:
vector<Student> students; // 学生列表
vector<Teacher> teachers; // 教师列表
vector<Course> courses; // 课程列表
// 添加学生
void addStudent(Student student) {
students.push_back(student);
}
// 删除学生
void removeStudent(string id) {
for (int i = 0; i < students.size(); i++) {
if (students[i].id == id) {
students.erase(students.begin() + i);
break;
}
}
}
// 添加教师
void addTeacher(Teacher teacher) {
teachers.push_back(teacher);
}
// 删除教师
void removeTeacher(string id) {
for (int i = 0; i < teachers.size(); i++) {
if (teachers[i].id == id) {
teachers.erase(teachers.begin() + i);
break;
}
}
}
// 添加课程
void addCourse(Course course) {
courses.push_back(course);
}
// 删除课程
void removeCourse(string id) {
for (int i = 0; i < courses.size(); i++) {
if (courses[i].id == id) {
courses.erase(courses.begin() + i);
break;
}
}
}
// 查询选课人数统计
void queryCourseSelected(string courseId) {
for (int i = 0; i < courses.size(); i++) {
if (courses[i].id == courseId) {
cout << "Course Name: " << courses[i].name << endl;
cout << "Selected Number: " << courses[i].selected << endl;
break;
}
}
}
// 生成柱状图并导出
void exportCourseSelected() {
// TODO: 生成柱状图并导出
}
};
// 学院管理员类
class DepartmentAdmin {
public:
vector<Teacher> teachers; // 教师列表
vector<Student> students; // 学生列表
vector<Course> courses; // 课程列表
// 添加教师
void addTeacher(Teacher teacher) {
teachers.push_back(teacher);
}
// 删除教师
void removeTeacher(string id) {
for (int i = 0; i < teachers.size(); i++) {
if (teachers[i].id == id) {
teachers.erase(teachers.begin() + i);
break;
}
}
}
// 添加学生
void addStudent(Student student) {
students.push_back(student);
}
// 删除学生
void removeStudent(string id) {
for (int i = 0; i < students.size(); i++) {
if (students[i].id == id) {
students.erase(students.begin() + i);
break;
}
}
}
// 添加课程
void addCourse(Course course) {
courses.push_back(course);
}
// 删除课程
void removeCourse(string id) {
for (int i = 0; i < courses.size(); i++) {
if (courses[i].id == id) {
courses.erase(courses.begin() + i);
break;
}
}
}
// 录入成绩
void addGrade(string courseId, string teacherId, string studentId, int grade) {
for (int i = 0; i < courses.size(); i++) {
if (courses[i].id == courseId && courses[i].teacher == teacherId) {
courses[i].addStudent(studentId);
for (int j = 0; j < teachers.size(); j++) {
if (teachers[j].id == teacherId) {
teachers[j].addGrade(courseId, grade);
break;
}
}
break;
}
}
}
// 抽签
void lottery(string courseId) {
for (int i = 0; i < courses.size(); i++) {
if (courses[i].id == courseId) {
vector<string> tmpStudents = courses[i].students;
courses[i].students.clear();
courses[i].selected = 0;
while (tmpStudents.size() > courses[i].capacity) {
int index = rand() % tmpStudents.size();
tmpStudents.erase(tmpStudents.begin() + index);
}
courses[i].students = tmpStudents;
courses[i].selected = tmpStudents.size();
break;
}
}
}
};
// 学生登录界面
void studentLogin() {
// TODO: 学生登录界面
}
// 教师登录界面
void teacherLogin() {
// TODO: 教师登录界面
}
int main() {
Admin admin; // 系统管理员
DepartmentAdmin depAdmin; // 学院管理员
// 添加学生
Student s1("001", "张三", "男", "计算机科学与技术");
Student s2("002", "李四", "女", "软件工程");
admin.addStudent(s1);
admin.addStudent(s2);
// 添加教师
Teacher t1("001", "王五", "男", "副教授");
Teacher t2("002", "赵六", "女", "讲师");
admin.addTeacher(t1);
admin.addTeacher(t2);
// 添加课程
Course c1("001", "C++程序设计", "001", 50);
Course c2("002", "数据结构", "002", 60);
depAdmin.addCourse(c1);
depAdmin.addCourse(c2);
// 录入成绩
depAdmin.addGrade("001", "001", "001", 80);
depAdmin.addGrade("001", "001", "002", 90);
// 抽签
depAdmin.lottery("001");
return 0;
}
```
Java创建图形界面(GUI),创建一个学生管理界面,实现录入,查询,删除,更改等操作
好的,我可以为您提供一个简单的 Java 学生管理系统的示例代码,供您参考。这个学生管理系统包括一个主界面和一个学生信息编辑界面,您可以在主界面中执行查询、添加、修改和删除操作,然后在学生信息编辑界面中查看和编辑具体的学生信息。
这里使用了 Java Swing 框架,以便创建图形用户界面。
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
// 学生类
class Student {
private String name;
private String id;
private String major;
public Student(String name, String id, String major) {
this.name = name;
this.id = id;
this.major = major;
}
public String getName() {
return name;
}
public String getId() {
return id;
}
public String getMajor() {
return major;
}
public void setName(String name) {
this.name = name;
}
public void setId(String id) {
this.id = id;
}
public void setMajor(String major) {
this.major = major;
}
}
// 学生管理系统主界面
class MainFrame extends JFrame {
private ArrayList<Student> students;
private JTextField searchField;
private JTable table;
private JButton addButton;
private JButton editButton;
private JButton deleteButton;
public MainFrame() {
super("学生管理系统");
students = new ArrayList<Student>();
students.add(new Student("小明", "001", "计算机科学与技术"));
students.add(new Student("小红", "002", "信息管理与信息系统"));
students.add(new Student("小刚", "003", "软件工程"));
// 创建主界面
JPanel panel = new JPanel(new BorderLayout());
getContentPane().add(panel);
// 创建搜索框和搜索按钮
JPanel searchPanel = new JPanel();
searchField = new JTextField(20);
searchPanel.add(searchField);
JButton searchButton = new JButton("搜索");
searchPanel.add(searchButton);
panel.add(searchPanel, BorderLayout.NORTH);
// 创建表格
String[] columnNames = {"姓名", "学号", "专业"};
Object[][] rowData = new Object[students.size()][3];
for (int i = 0; i < students.size(); i++) {
rowData[i][0] = students.get(i).getName();
rowData[i][1] = students.get(i).getId();
rowData[i][2] = students.get(i).getMajor();
}
table = new JTable(rowData, columnNames);
JScrollPane scrollPane = new JScrollPane(table);
panel.add(scrollPane, BorderLayout.CENTER);
// 创建操作按钮
JPanel buttonPanel = new JPanel();
addButton = new JButton("添加");
buttonPanel.add(addButton);
editButton = new JButton("编辑");
buttonPanel.add(editButton);
deleteButton = new JButton("删除");
buttonPanel.add(deleteButton);
panel.add(buttonPanel, BorderLayout.SOUTH);
// 设置界面属性
setSize(600, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
// 绑定事件处理程序
searchButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String searchText = searchField.getText();
for (int i = 0; i < students.size(); i++) {
if (students.get(i).getName().equals(searchText) ||
students.get(i).getId().equals(searchText) ||
students.get(i).getMajor().equals(searchText)) {
table.setRowSelectionInterval(i, i);
table.scrollRectToVisible(table.getCellRect(i, 0, true));
break;
}
}
}
});
addButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new EditFrame(students, -1);
}
});
editButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int index = table.getSelectedRow();
if (index >= 0) {
new EditFrame(students, index);
} else {
JOptionPane.showMessageDialog(MainFrame.this, "请选择一行学生信息!");
}
}
});
deleteButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int index = table.getSelectedRow();
if (index >= 0) {
students.remove(index);
refreshTable();
} else {
JOptionPane.showMessageDialog(MainFrame.this, "请选择一行学生信息!");
}
}
});
}
// 刷新表格数据
public void refreshTable() {
String[] columnNames = {"姓名", "学号", "专业"};
Object[][] rowData = new Object[students.size()][3];
for (int i = 0; i < students.size(); i++) {
rowData[i][0] = students.get(i).getName();
rowData[i][1] = students.get(i).getId();
rowData[i][2] = students.get(i).getMajor();
}
table.setModel(new DefaultTableModel(rowData, columnNames));
}
}
// 学生信息编辑界面
class EditFrame extends JFrame {
private ArrayList<Student> students;
private int index;
private JTextField nameField;
private JTextField idField;
private JTextField majorField;
public EditFrame(ArrayList<Student> students, int index) {
super("编辑学生信息");
this.students = students;
this.index = index;
// 创建编辑界面
JPanel panel = new JPanel(new GridLayout(4, 2));
getContentPane().add(panel);
panel.add(new JLabel("姓名:"));
nameField = new JTextField();
panel.add(nameField);
panel.add(new JLabel("学号:"));
idField = new JTextField();
panel.add(idField);
panel.add(new JLabel("专业:"));
majorField = new JTextField();
panel.add(majorField);
JButton saveButton = new JButton("保存");
panel.add(saveButton);
JButton cancelButton = new JButton("取消");
panel.add(cancelButton);
// 设置界面属性
setSize(400, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
// 加载学生信息
if (index >= 0) {
Student student = students.get(index);
nameField.setText(student.getName());
idField.setText(student.getId());
majorField.setText(student.getMajor());
}
// 绑定事件处理程序
saveButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String name = nameField.getText();
String id = idField.getText();
String major = majorField.getText();
if (name.isEmpty() || id.isEmpty() || major.isEmpty()) {
JOptionPane.showMessageDialog(EditFrame.this, "请填写完整的学生信息!");
} else if (index >= 0) {
Student student = students.get(index);
student.setName(name);
student.setId(id);
student.setMajor(major);
((MainFrame) SwingUtilities.getWindowAncestor(EditFrame.this)).refreshTable();
dispose();
} else {
students.add(new Student(name, id, major));
((MainFrame) SwingUtilities.getWindowAncestor(EditFrame.this)).refreshTable();
dispose();
}
}
});
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose();
}
});
}
}
// 主程序入口
public class StudentManagementSystem {
public static void main(String[] args) {
new MainFrame();
}
}
```
这个示例代码包括了一个 `Student` 类,用于存储学生信息,一个 `MainFrame` 类,用于创建主界面,以及一个 `EditFrame` 类,用于创建学生信息编辑界面。在 `MainFrame` 中,我们使用了 `JTextField`、`JTable`、`JButton` 等控件,以便实现各种操作。在 `EditFrame` 中,我们使用了文本框和按钮控件,以便编辑和保存学生信息。
这个示例代码实现了基本的查询、添加、修改和删除操作,但是还有很多功能可以进一步扩展和完善,例如数据校验、数据存储等等。
阅读全文