班级成绩管理系统

来源:互联网 发布:淘宝怎么退款还没发货 编辑:程序博客网 时间:2024/04/28 11:20

设计题目

班级成绩管理系统

已知技术参数和设计要求

对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序等操作的管理。

班级信息,课程信息,学生信息自定义。

设计内容与步骤

1、 模块化程序设计。

2、 具体数据结构的定义及其处理数据算法的设计。

3、 锯齿型程序书写格式

4、 程序设计、实现、调试。

5、 课程设计说明书。

设计工作计划与进度安排

1、 程序设计10学时。

2、 实现与调试6学时。

3、 课程设计说明书4学时。

设计考核要求

1、 考勤20%

2、 课程设计说明书30%

3、 答辩、成果演示50%




#include<iostream>

#include<string>
#include<cstring>
#include<algorithm>
#include<iterator>
#include <iomanip>
using namespace std;
class Student
{
public:
friend istream& operator>>(istream&, Student&);
friend ostream& operator<<(ostream&, const Student&);
Student(){}
Student(int id, char sName[], float m, float e, float c, float cn, float sum);
friend bool operator > (const Student&, const Student&);
int ID;//学号
char stuName[20];
float chinese, math, english, cjia;
float sum;//总数
};
Student::Student(int id, char sName[], float m, float c,float e, float cn,float sum):ID(id), chinese(c), math(m),
english(e), cjia(cn)
{
sum = c+m + e + cn;
strcpy(stuName, sName);//字符串复制函数
}
bool operator > (const Student &stu1, const Student &stu2)//重载>运算符
{
return stu1.sum > stu2.sum;
}
istream& operator>>(istream &is, Student &stu)
{


cout << "学生的学号为:"; is >> stu.ID;
cout << "学生的姓名为:"; is >> stu.stuName;
cout << "学生的语文成绩为:"; is >> stu.chinese;
cout << "学生的数学成绩为:"; is >> stu.math;
cout << "学生的英语成绩为:"; is >> stu.english;
cout << "学生的C++成绩为:"; is >> stu.cjia;
stu.sum =stu.chinese+ stu.math + stu.english + stu.cjia;
return is;
}
ostream& operator<<(ostream &os, const Student &stu)
{
os << stu.stuName << "的信息为:" << endl;
os << "学号:" << stu.ID << endl;
os << "语文成绩:" << stu.chinese << endl;
os << "数学成绩:" << stu.math << endl;
os << "英语成绩:" << stu.english << endl;
os << "C++成绩:" << stu.cjia << endl;
os << "总分:" << stu.sum << endl;
return os;
}




void add(Student s[], int i);//添加学生信息
void show(Student s[], int i);//显示学生信息
void change(Student s[], int i, int id);//修改学生信息
void del(Student s[], int i, int id);//删除学生信息
void paixu(Student s[], int i);//排序函数
void search(Student s[], int i, int id);//查找函数






int main()
{
int i = 0;
int id = 0;
int select;
Student stu[50];
while (1)
{
system("cls");
cout << "\t******************欢迎使用****************\n";
cout << "\t**************班级成绩管理系统************\n";
cout << "\t*----------------------------------------*\n";
cout << "\t*             1-添加学生信息            *\n";
cout << "\t*             2-显示学生信息            *\n";
cout << "\t*             3-查询学生信息            *\n";
cout << "\t*             4-修改学生信息            *\n";
cout << "\t*             5-排序学生信息            *\n";
cout << "\t*             6-删除学生信息            *\n";
cout << "\t*             0-退出                    *\n";
cout << "\t*----------------------------------------*\n";
cout << "\t 你要输入的编号是(0-6);";
cin >> select;
if (select == 0)  break;
switch (select)
{
case 1:
add(stu, i);   //调用add函数添加学生信息
i++;
system("pause");
break;
case 2:
show(stu,i);//调用show函数显示学生信息
system("pause");
break;
case 3:
cout << "要查询的学生的学号: ";
cin >> id;
search(stu,i,id);//调用search函数查询学生信息
system("pause");
break;
case 4:
cout << "要修改的学生的学号:";
cin >> id;
change(stu,i,id);//调用change函数修改学生信息
system("pause");
break;
case 5:
paixu(stu,i);    //调用paixu函数对学生进行排序
system("pause");
break;
case 6:
cout << "要删除的学生的学号:";
cin >> id;
del(stu,i,id);  //调用del函数删除学生信息
i--;
system("pause");
break;
default:
cout << "没有此选项,请从新选择!" << endl;
}
}
return 0;
}


void add(Student s[], int i)
{
cout << endl;
cin >> s[i];
for (int k = 0; k < i; k++)
{
if (s[k].ID == s[i].ID)
{
cout << "这个学生已经存在!" << endl;
cin >> s[i];
break;
}
}
}




void show(Student s[], int i)
{
int k;
for (k = 0; k < i; k++)
cout << s[k] << endl;
}




void change(Student s[], int i, int id)
{
int k = 0;
for (k = 0; k<i; k++) {
if (s[k].ID == id) {
int ch;
cout << "------------------------1.学生学号------------------------" << endl;
cout << "------------------------2.学生姓名------------------------" << endl;
cout << "------------------------3.语文成绩------------------------" << endl;
cout << "------------------------4.数学成绩------------------------" << endl;
cout << "------------------------5.英语成绩-----------------------" << endl;
cout << "------------------------6.C++成绩------------------------" << endl;
cout << "------------------------7.所以信息-----------------------" << endl;


do
{
cout << "输入你想要修改的信息对应的数字(输入0,你会退出!):" << endl;
cin >> ch;
switch (ch)
{
case 1:
cout << "输入要修改的学生的学号:" << endl;
cin >> s[k].ID;


break;
case 2:
cout <<"输入要修改的学生的姓名:"<< endl;
cin >> s[k].stuName;


break;
case 3:
cout << "输入要修改的学生的语文成绩:" << endl;
cin >> s[k].chinese;
break;
case 4:
cout << "输入要修改的学生的数学成绩:" << endl;
cin >> s[k].math;


break;
case 5:
cout << "输入要修改的学生的英语成绩:" << endl;
cin >> s[k].english;


break;
case 6:
cout << "输入要修改的学生的C++成绩:" << endl;
cin >> s[k].cjia;


break;


case 7:
cout << "输入要修改的学生的所有成绩:" << endl;
cin >> s[k];


break;


case 0:
break;
default:
cout << "错误的输入! " << endl;
cout << "请从新输入!" << endl;
break;


}
} while (ch != 0);
}
}
if (k == i)
{
cout << "这个学生的学号不存在!" << endl;
cout << "请从新输入学号!" << endl;
cin >> id;


for (int z = 0; z<i; z++) {
if (s[z].ID == id)
{
int xh;
cout << "------------------------1.学生学号------------------------" << endl;
cout << "------------------------2.学生姓名------------------------" << endl;
cout << "------------------------3.语文成绩------------------------" << endl;
cout << "------------------------4.数学成绩------------------------" << endl;
cout << "------------------------5.英语成绩-----------------------" << endl;
cout << "------------------------6.C++成绩------------------------" << endl;
cout << "------------------------7.所以信息-----------------------" << endl;




do
{
cout << "输入你想要修改的信息对应的数字(输入0,你会退出!):" << endl;
cin >> xh;
switch (xh)
{
case 1:
cout << "输入要修改的学生的学号:" << endl;
cin >> s[z].ID;


break;
case 2:
cout << "输入要修改的学生的姓名:" << endl;
cin >> s[z].stuName;


break;
case 3:
cout << "输入要修改的学生的语文成绩:" << endl;
cin >> s[z].chinese;
break;
case 4:
cout << "输入要修改的学生的数学成绩:" << endl;
cin >> s[z].math;


break;
case 5:
cout << "输入要修改的学生的英语成绩:" << endl;
cin >> s[z].english;


break;
case 6:
cout << "输入要修改的学生的C++成绩:" << endl;
cin >> s[z].cjia;


break;


case 7:
cout << "输入要修改的学生的所有成绩:" << endl;
cin >> s[z];


break;


case 0:
break;
default:
cout << "错误的输入! " << endl;
cout << "请从新输入!" << endl;
break;


}
} while (xh != 0);
}
cout << endl;
cout << "信息已经被修改!" << endl;
cout << endl;
}
}
}




void search(Student s[], int i, int id)
{
int k;
for (k = 0; k < i; k++)
{
if (s[k].ID == id) {
cout << s[k] << endl;
break;
}
}
if (k == i)
{
cout << "没有这位学生!" << endl;
cout << "请从新输入学生学号!" << endl;
cin >> id;
for (int z = 0; z < i; z++)
{
if (s[z].ID == id )
{
cout << s[z];
break;
}
}
}
}
void paixu(Student s[], int i)
{
int a;
float m = 0;
float d = 0;
float n = 0;
float f = 0;
float t = 0;


for (int y = 0; y < i - 1; y++)
{
for (int j = 0; j < i -1- y; j++)
{
if (s[j].sum > s[j + 1].sum)
{
a = s[j].ID;
s[j].ID = s[j + 1].ID;
s[j + 1].ID = a;


m = s[j].chinese;
s[j].chinese = s[j + 1].chinese;
s[j + 1].chinese = m;


d = s[j].math;
s[j].math = s[j + 1].math;
s[j + 1].math = d;


n = s[j].english;
s[j].english = s[j + 1].english;
s[j + 1].english;


f = s[j].cjia;
s[j].cjia = s[j + 1].cjia;
s[j + 1].cjia = f;

t = s[j].sum;
s[j].sum = s[j + 1].sum;
s[j + 1].sum = t;
}
}
}
cout << "按总成绩排序结果:" << endl;
for (int h = 0; h < i; h++)
cout << s[h];
cout << endl;
}
void del(Student s[], int i, int id)
{
int c = 0, k = 0;
for (k = 0; k < i; k++)
{
if (s[k].ID == id)
{
c = k;
cout << "信息已经删除" << endl;
break;
}
}
if (k == i)
{
cout << "您查找的学生不存在!" << endl;
cout << "请从新输入!" << endl;
cin >> id;
for (int z = 0; z < i; z++)
{
if (s[z].ID == id)
{
cout << s[z];
break;
}
}
}
for (; c < i; c++)
{
s[c] = s[c + 1];
}
}
原创粉丝点击