学生考勤表的项目, 考勤表需要包括姓名,座号,手机3个数据成员。 用顺序表实现
时间: 2023-06-01 19:03:51 浏览: 130
数据结构:定义一个包含学生信息(学号、姓名、成绩)的顺序表_数据结构
5星 · 资源好评率100%
以下是用C++语言实现的学生考勤表:
```cpp
#include <iostream>
#include <string>
using namespace std;
const int MAXSIZE = 100; // 假设最多有100个学生
// 学生结构体
struct Student {
string name; // 学生姓名
int seatNum; // 座号
string phone; // 手机号
};
// 学生考勤表类
class AttendanceTable {
private:
Student arr[MAXSIZE]; // 顺序表存储学生
int length; // 学生个数
public:
AttendanceTable() { length = 0; } // 构造函数,初始化学生个数为0
bool addStudent(Student s); // 添加学生
bool deleteStudent(int index); // 删除学生
bool modifyStudent(int index, Student s); // 修改学生信息
void displayTable(); // 显示考勤表
};
// 添加学生
bool AttendanceTable::addStudent(Student s) {
if (length >= MAXSIZE) { // 考勤表已满,无法添加
cout << "The attendance table is full." << endl;
return false;
} else {
arr[length] = s; // 将学生添加到顺序表末尾
length++; // 学生个数加1
return true;
}
}
// 删除学生
bool AttendanceTable::deleteStudent(int index) {
if (index < 1 || index > length) { // 输入的索引无效
cout << "Invalid index." << endl;
return false;
} else {
for (int i = index - 1; i < length - 1; i++) {
arr[i] = arr[i + 1]; // 将后面的学生往前移动一位
}
length--; // 学生个数减1
return true;
}
}
// 修改学生信息
bool AttendanceTable::modifyStudent(int index, Student s) {
if (index < 1 || index > length) { // 输入的索引无效
cout << "Invalid index." << endl;
return false;
} else {
arr[index - 1] = s; // 直接将新信息替换原有信息
return true;
}
}
// 显示考勤表
void AttendanceTable::displayTable() {
cout << "Attendance Table:" << endl;
cout << "Name\tSeat Number\tPhone" << endl;
for (int i = 0; i < length; i++) {
cout << arr[i].name << "\t" << arr[i].seatNum << "\t\t" << arr[i].phone << endl;
}
}
int main() {
AttendanceTable table;
// 添加学生
Student s1 = {"Alice", 1, "123456789"};
Student s2 = {"Bob", 2, "234567890"};
Student s3 = {"Charlie", 3, "345678901"};
table.addStudent(s1);
table.addStudent(s2);
table.addStudent(s3);
// 显示考勤表
table.displayTable();
// 修改学生信息
Student s4 = {"David", 4, "456789012"};
table.modifyStudent(2, s4);
// 显示考勤表
table.displayTable();
// 删除学生
table.deleteStudent(1);
// 显示考勤表
table.displayTable();
return 0;
}
```
输出结果:
```
Attendance Table:
Name Seat Number Phone
Alice 1 123456789
Bob 2 234567890
Charlie 3 345678901
Attendance Table:
Name Seat Number Phone
Alice 1 123456789
David 4 456789012
Charlie 3 345678901
Attendance Table:
Name Seat Number Phone
David 4 456789012
Charlie 3 345678901
```
阅读全文