其他
课程设计:C++实现学生成绩管理系统
来源:https://blog.csdn.net/feinifi/article/details/110249811
作者:luffy5459
已获原作者授权转载
感谢原作者的分享,给在校大学生提供一个交流学习的平台,对管理系统感兴趣的小伙伴,欢迎来稿,共同探讨!
删除学生成绩:按照学号删除对应学生成绩信息记录。
删除之后,学号为3的成绩记录就没有了:
新增学生成绩:在原来学生成绩的基础上,新增学生成绩信息。
学生成绩管理系统,主要是管理学生成绩信息的,这里可以简单的理解有这么一个对象,包含班级、学号、姓名、电子成绩、C++成绩、多媒体成绩、英语成绩、数学成绩、大学物理成绩、体育成绩、政治成绩,平均分这几项属性。这样我们可以定义这样的一个学生Student结构体或者类:
class Student{
private:
char class_0[20]; //班级,因为class是关键字,我们用了class_0来表示班级
int num; //学号
char name[8]; //姓名 姓名定义的长度是8,如果输入拼音或者英文,很有可能超出这个范围,要小心处理。
float elec; //电子
float c_program; //C++
float media; //多媒体
float english; //大学英语
float math; //高等数学
float sport; //体育
float polity; //政治
float average; //平均分
}stu[100];
2
10601 2 刘莹 86 84 90 80 88 82 85 85
10601 1 吴昊 89 90 91 90 89 91 90 90
#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
#define _CRT_SECURE_NO_DEPRECATE
#endif
#include
#include
#include
using namespace std;
class Student{
public:
friend void Input(Student stu[]);
friend void Statistic(Student stu[]);
friend void Lookup(Student stu[]);
friend void Modify(Student stu[]);
friend void Delete(Student stu[]);
friend void Output(Student stu[]);
friend void Insert(Student stu[]);
friend void Sort(Student stu[]);
friend void Write(Student stu[],int n);
friend int Read(Student stu[]);
private:
int num;
char name[8];
char class_0[20];
float elec;
float c_program;
float english;
float math;
float media;
float sport;
float polity;
float average;
int order;
}stu[100];
void Write(Student stu[], int n) {
fstream myFile;
myFile.open("score.txt", ios::out | ios::binary);
if (!myFile) {
cout << "score.txt can't open!" << endl;
abort();
}
int count = n;
myFile << count << endl<<endl;
for (int i = 0; i < count; i++) {
myFile << stu[i].class_0 << "\t"
<< stu[i].num << "\t"
<< stu[i].name << "\t"
<< stu[i].elec << "\t"
<< stu[i].c_program<< "\t"
<< stu[i].media << "\t"
<< stu[i].english << "\t"
<< stu[i].math << "\t"
<< stu[i].sport << "\t"
<< stu[i].polity << "\t"
<< stu[i].average << endl;
}
myFile.close();
}
int Read(Student stu[]) {
fstream myFile;
myFile.open("score.txt", ios::in | ios::binary);
if (!myFile) {
cout << "score.txt can't open!" << endl;
abort();
}
int count;
myFile.seekg(0);
myFile >> count;
for (int i = 0; i <= count; i++) {
myFile >> stu[i].class_0 >> stu[i].num >> stu[i].name
>> stu[i].elec >> stu[i].c_program >> stu[i].media
>> stu[i].english >> stu[i].math >> stu[i].sport
>> stu[i].polity >> stu[i].average;
}
myFile.close();
return count;
}
void Input(Student stu[]) {
system("cls");
int i = 0;
int flag;
char sign = '0';
cout << endl<<"======>> 请输入学生成绩 <<====== span="" style="color: rgb(152, 195, 121);line-height: 26px;" sign="" c="" .num="=" i="" -="" flag="=" .elec="" .c_program="" .media="" .english="" .math="" .sport="" .polity="" .average="(stu[i].elec">> 提示:是否继续写入学生成绩 ?(y/n)";
cin >> sign;
i++;
}
Write(stu, i);
}
void Statistic(Student stu[]) {
system("cls");
int n = Read(stu);
cout << endl << "======>> 输出学生统计数据 <<======\n span="" style="color: rgb(152, 195, 121);line-height: 26px;" i="<span" .class_0="" .num="" .name="" .average="" student="" n="Read(stu);<br">> 查找学生成绩 <<====== span="" style="color: rgb(152, 195, 121);line-height: 26px;" .num="" -="" i="=">> 对不起,无法找到该学生...... <<====== span="" style="color: rgb(152, 195, 121);line-height: 26px;" .class_0="" .num="" .name="" .elec="" .c_program="" .media="" .english="" .math="" .sport="" .polity="" .average="" student="" n="Read(stu);<br" i="<span">> 修改学生成绩 <<====== span="" style="color: rgb(152, 195, 121);line-height: 26px;" .num="" -="" i="=">> 对不起,无法找到该学生...... <<====== span="" style="color: rgb(152, 195, 121);line-height: 26px;" .class_0="" .num="" .name="" .elec="" .c_program="" .media="" .english="" .math="" .sport="" .polity="" .average="">> 是否保存数据 ?(y/n)";
cin >> c;
if (c != 'n' && c != 'N')
Write(stu, n);
}
}
void Delete(Student stu[]) {
system("cls");
int n = Read(stu);
int s;
int i = 0, j ;
cout << endl << "======>> 删除学生成绩 <<====== span="" style="color: rgb(152, 195, 121);line-height: 26px;" .num="" -="" i="=">> 对不起,无法找到该学生...... <<====== span="" style="color: rgb(152, 195, 121);line-height: 26px;" j="" n="" -="" .num="stu[j" .elec="stu[j" .c_program="stu[j" .media="stu[j" .english="stu[j" .math="stu[j" .sport="stu[j" .polity="stu[j" .average="stu[j">> 提示:已成功删除!" << endl;
}
Write(stu, n - 1);
}
void Insert(Student stu[]) {
system("cls");
int n = Read(stu);
char s='0';
cout << endl << "=======>> 增加学生成绩 <<======== span="" style="color: rgb(152, 195, 121);line-height: 26px;" s="" .average="" .c_program="" .media="" .english="" .math="" .sport="">> 是否继续插入(y/n)";
cin >> s;
}
Write(stu, n);
}
void Sort(Student stu[]) {
system("cls");
int i, j, k;
float s;
char t[20];
cout << endl << "======>> 降序排列 <<====== span="" style="color: rgb(152, 195, 121);line-height: 26px;" n="Read(stu);<br" i="" j="" -="" .average="" k="stu[j" .num="" s="stu[j" .elec="" .c_program="" .media="" .english="" .math="" .sport="" .polity="" .order="i" .class_0="" .name="" student="">> 显示全部学生成绩 <<======> << endl;
if (!stu) {
cout << "没有记录";
}
else {
cout << "------------------------------------------------------------------------------------" << endl;
cout << "班级" << "\t" << "学号" << "\t" << "姓名" << "\t"
<< "电子" << "\t" << "C++" << "\t" << "多媒体" << "\t"
<< "英语" << "\t" << "数学" << "\t" << "体育" << "\t"
<< "政治" << "\t" << "平均分" << endl;
cout << "------------------------------------------------------------------------------------" << endl;
for (int i = 0; i < n; i++) {
cout << stu[i].class_0 << "\t" << stu[i].num << "\t" << stu[i].name << "\t"
<< stu[i].elec << "\t" << stu[i].c_program << "\t" << stu[i].media << "\t"
<< stu[i].english << "\t" << stu[i].math << "\t" << stu[i].sport << "\t"
<< stu[i].polity << "\t" << stu[i].average << endl;
}
cout << "------------------------------------------------------------------------------------" << endl;
}
}
int menu() {
char c;
do {
system("cls");
cout << "******************************************************" << endl;
cout << "----------------欢迎使用学生成绩管理系统---------------" << endl;
cout << " * 【1】输入学生成绩 * " << endl;
cout << " * 【2】显示统计数据 * " << endl;
cout << " * 【3】查找学生成绩 * " << endl;
cout << " * 【4】修改学生成绩 * " << endl;
cout << " * 【5】删除学生成绩 * " << endl;
cout << " * 【6】插入学生成绩 * " << endl;
cout << " * 【7】按平均分排列 * " << endl;
cout << " * 【8】显示学生成绩 * " << endl;
cout << " * 【0】退出管理系统 * " << endl;
cout << "******************************************************" << endl;
cout << "请选择您的操作 (0-8):" << endl;
c = getchar();
} while (c < '0' || c > '8');
return (c - '0');
}
int main() {
for (;;) {
switch (menu()) {
case 1:
Input(stu);
break;
case 2:
Statistic(stu);
break;
case 3:
Lookup(stu);
system("pause");
break;
case 4:
Modify(stu);
system("pause");
break;
case 5:
Delete(stu);
system("pause");
break;
case 6:
Insert(stu);
system("pause");
break;
case 7:
Sort(stu);
system("pause");
break;
case 8:
Output(stu);
system("pause");
break;
case 0:
cout << endl << "================感谢您使用学生成绩管理系统==============\n" << endl;
exit(0);
}
}
return 0;
}
- END -
如果你想获取更多学习资源,请在后台回复 “ 成绩系统 ”,内容不断更新中。