学生考勤管理系统设计 问题述 学生信息包括:学号、姓名、性别、年龄、班级等信息。 考勤信息包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假和旷课)。 简单功能的增删改查,信息键盘录入 c++代码实现中文没有三方函数库
时间: 2023-08-10 09:03:54 浏览: 144
好的,我可以为您提供一个简单的 C++ 学生考勤管理系统设计方案。以下是一个基本的框架,您可以根据自己的需求进行修改和补充。
```
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
// 学生信息结构体
struct Student {
char id[20]; // 学号
char name[20]; // 姓名
char sex[10]; // 性别
int age; // 年龄
char className[20]; // 班级
};
// 考勤信息结构体
struct Attendance {
char date[20]; // 缺课日期
int lesson; // 第几节课
char courseName[20]; // 课程名称
char studentName[20]; // 学生姓名
char type[20]; // 缺课类型
};
// 学生信息文件名
const char* STUDENT_FILE = "student.txt";
// 考勤信息文件名
const char* ATTENDANCE_FILE = "attendance.txt";
// 学生信息操作函数
void addStudent();
void deleteStudent();
void modifyStudent();
void searchStudent();
void displayAllStudent();
// 考勤信息操作函数
void addAttendance();
void deleteAttendance();
void modifyAttendance();
void searchAttendance();
void displayAllAttendance();
// 主函数
int main() {
// TODO: 界面设计及交互逻辑
return 0;
}
// 添加学生信息
void addStudent() {
Student stu;
cout << "请输入学生学号:";
cin >> stu.id;
cout << "请输入学生姓名:";
cin >> stu.name;
cout << "请输入学生性别:";
cin >> stu.sex;
cout << "请输入学生年龄:";
cin >> stu.age;
cout << "请输入学生班级:";
cin >> stu.className;
// 将学生信息写入文件
ofstream out(STUDENT_FILE, ios::app);
out << stu.id << " " << stu.name << " " << stu.sex << " " << stu.age << " " << stu.className << endl;
out.close();
cout << "学生信息添加成功!" << endl;
}
// 删除学生信息
void deleteStudent() {
// TODO: 实现删除学生信息的功能
}
// 修改学生信息
void modifyStudent() {
// TODO: 实现修改学生信息的功能
}
// 查找学生信息
void searchStudent() {
// TODO: 实现查找学生信息的功能
}
// 显示所有学生信息
void displayAllStudent() {
// 从文件中读取学生信息
ifstream in(STUDENT_FILE);
if (!in.is_open()) {
cout << "文件打开失败!" << endl;
return;
}
Student stu;
while (in >> stu.id >> stu.name >> stu.sex >> stu.age >> stu.className) {
cout << "学号:" << stu.id << ",姓名:" << stu.name << ",性别:" << stu.sex << ",年龄:" << stu.age << ",班级:" << stu.className << endl;
}
in.close();
}
// 添加考勤信息
void addAttendance() {
Attendance att;
cout << "请输入缺课日期:";
cin >> att.date;
cout << "请输入第几节课:";
cin >> att.lesson;
cout << "请输入课程名称:";
cin >> att.courseName;
cout << "请输入学生姓名:";
cin >> att.studentName;
cout << "请输入缺课类型:";
cin >> att.type;
// 将考勤信息写入文件
ofstream out(ATTENDANCE_FILE, ios::app);
out << att.date << " " << att.lesson << " " << att.courseName << " " << att.studentName << " " << att.type << endl;
out.close();
cout << "考勤信息添加成功!" << endl;
}
// 删除考勤信息
void deleteAttendance() {
// TODO: 实现删除考勤信息的功能
}
// 修改考勤信息
void modifyAttendance() {
// TODO: 实现修改考勤信息的功能
}
// 查找考勤信息
void searchAttendance() {
// TODO: 实现查找考勤信息的功能
}
// 显示所有考勤信息
void displayAllAttendance() {
// 从文件中读取考勤信息
ifstream in(ATTENDANCE_FILE);
if (!in.is_open()) {
cout << "文件打开失败!" << endl;
return;
}
Attendance att;
while (in >> att.date >> att.lesson >> att.courseName >> att.studentName >> att.type) {
cout << "缺课日期:" << att.date << ",第几节课:" << att.lesson << ",课程名称:" << att.courseName << ",学生姓名:" << att.studentName << ",缺课类型:" << att.type << endl;
}
in.close();
}
```
注意,这只是一个简单的框架,您需要自行添加菜单和交互逻辑等功能来实现完整的学生考勤管理系统。同时,为了避免中文乱码,建议在代码中使用英文或拼音命名变量和函数名。