C++学生成绩管理系统
来源:互联网 发布:三鹿事件的影响 知乎 编辑:程序博客网 时间:2024/06/05 10:47
#include<iostream>
#include<iomanip>
#include<cstring>
using namespace std;
class student{
long long int num;
char name[20];
char class1[20];
double chinese;
double math;
double english;
double sum;//总成绩
double aver1;//平均成绩
public:
void set(){
cout << "\t学生学号:";
cin >> num;
cout << "\t学生姓名:";
cin >> name;
cout << "\t学生班级:";
cin >> class1;
cout << "\t语文成绩:";
cin >> chinese;
cout << "\t英语成绩:";
cin >> english;
cout << "\t数学成绩:";
cin >> math;
}
void show(){
cout << "该学生的学号:" << num << endl;
cout << "该学生的姓名:" << name << endl;
cout << "该学生的班级:" << class1 << endl;
cout << "该学生的语文成绩:" << chinese << endl;
cout << "该学生的数学成绩:" << math << endl;
cout << "该学生的英语成绩:" << english << endl;
}
double ad(){
return sum = chinese+english+math;
}
double aver(){
aver1 = (chinese+english+math)/3;
return aver1;
}
friend void show();
friend void search();
friend void change();
friend void add();
friend void paixu();
friend void del();
};
void input();
void show();
void search();
void change();
void add();
void paixu();
void del();
student s[100];
int n = 0;
int main(){
int select;
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 * 7——排序学生信息 *\n";
cout << "\t * 0——退出 *\n";
cout << "\t *------------------------------------------*\n";
cout << "\t 你要输入的编号是(0--7):";
cin >> select;
if(select == 0) break;
switch(select){
case 1:
input(); //调用input函数录入数据
system("pause");
break;
case 2:
show(); //调用show函数显示学生信息
system("pause");
break;
case 3:
search(); //调用search函数查询学生信息
system("pause");
break;
case 4:
change(); //调用change函数修改学生信息
system("pause");
break;
case 5:
add(); //调用add函数添加学生信息
system("pause");
break;
case 6:
del(); // 调用del函数删除学生信息
system("pause");
break;
case 7:
paixu(); // 调用paixu函数排序学生信息
system("pause");
break;
system("pause");
default:
cout<<"没有此选项,请重新选择!"<<endl;
}
}
return 0;
}
void input(){ //录入学生信息的函数
char sel;
do{
n++;
cout << "\t请输入第" << n << "个学生信息:\t" << endl;
s[n].set();
cout << "是否要继续录入学生信息(Y/N):";
cin >> sel;
}while(sel == 'Y' || sel == 'y' );
}
void show(){
cout << left; //设置输出左对齐
cout << setw(10) << "学生学号"
<< setw(10) << "学生姓名"
<< setw(13) << "学生班级"
<< setw(12) << "语文成绩"
<< setw(12) << "数学成绩"
<< setw(12) << "英语成绩"
<< endl;
for(int i=1; i<=n; i++){
cout << setw(10) << s[i].num
<< setw(10) << s[i].name
<< setw(13) << s[i].class1
<< setw(12) << s[i].chinese
<< setw(12) << s[i].math
<< setw(12) << s[i].english << endl;
}
cout << endl;
}
void search(){//查询
int a,b,i;
char c[20];
cout << "请选择查询方式:" << endl;
cout << "按学生姓名查询请按1" << endl;
cout << "按学生学号查询请按2" << endl;
cin >> a;
switch(a) {
case 1: {
char sel;
do{
cout << "请输入你要查的学生的姓名:" << endl;
cin >> c;
for(i=1; i<=n; i++)
if(strcmp(s[i].name,c) == 0) {
cout << "你要查的学生信息为:" << endl;
cout << "学生学号:" << s[i].num << endl << "学生姓名:"
<< s[i].name << endl << "学生班级:"
<< s[i].class1 << endl << "语文成绩:"
<< s[i].chinese << endl << "数学成绩:"
<< s[i].math << endl << "英语成绩:"
<< s[i].english << endl;
break;
}
else if(strcmp(s[i].name,c)!=0 && i==n){
cout << "没有这个学生!" << endl;
break;
}
cout << "是否要继续查询学生信息(Y/N):";
cin >> sel;
}while(sel=='Y' || sel=='y' );
break;
}
case 2: {
char sel;
do{
cout << "请输入你要查的学生的学号:" << endl;
cin >> b;
for(i=1; i<=n; i++)
if(s[i].num == b)
{
cout << "你要查的学生信息为:" << endl;
cout << "学生学号:" <<s[i].num << endl << "学生姓名:"
<< s[i].name << endl << "学生班级:"
<< s[i].class1 << endl << "语文成绩:"
<< s[i].chinese << endl << "数学成绩:"
<< s[i].math << endl << "英语成绩:"
<< s[i].english << endl;
break;
}
else if(s[i].num != b && i == n){
cout << "没有这个学生!请核对后再输入!" << endl;
break;
}
cout << "是否要继续查询学生信息(Y/N):";
cin >> sel;
}while(sel=='Y' || sel=='y' );
break;
}
default:
cout << "您的输入有误!" << endl;
}
}
void change(){
char sel;
int d,i,e,f,g=0;
do{
cout << "请输入你要修改的学生的学号:" << endl;
cin >> d;
for(i=1; i<=n; i++)
if(s[i].num == d){
cout << "你要修改的学生信息为:" << endl;
cout << "学生学号:" << s[i].num << endl << "学生姓名:"
<< s[i].name << endl << "学生班级:"
<< s[i].class1 << endl << "语文成绩:"
<< s[i].chinese << endl << "数学成绩:"
<< s[i].math << endl<< "英语成绩:"
<< s[i].english << endl;
e=1;
break;
}
else if(s[i].num != d && i == n){
cout << "没有这个学生!请核对后再输入!" << endl;
e=0;
break;
}
while(e == 1){
cout << "请输入该学生要修改的信息对应的数字:" << endl;
cout <<"学生学号:1"
<< '\t' << "学生姓名:2"
<< '\t' << "学生班级:3"
<< '\t' << "语文成绩:4"
<< '\t' << "数学成绩:5"
<< '\t' << "英语成绩:6" << endl;
cin >> f;
switch(f){
case 1:cout << "\t新的学生学号为:";
cin >> s[i].num;break;
case 2:cout << "\t新的学生姓名为:";
cin >> s[i].name;break;
case 3:cout << "\t新的学生班级为:";
cin >> s[i].class1;break;
case 4:cout << "\t新的语文成绩为:";
cin >> s[i].chinese;break;
case 5:cout << "\t新的数学成绩为:";
cin >> s[i].math;break;
case 6:cout << "\t新的英语成绩为:";
cin >> s[i].english;break;
default:cout << "您的输入有误,请重新输入!";
cin >> f;
}
e=0;
g=1;
}
if(g == 1){
cout << "修改成功!";
}
cout << "是否要继续修改学生信息(Y/N):";
cin >> sel;
}while(sel=='Y' || sel=='y' );
}
void add(){
char sel;
do{
n++;
cout << "\n请输入第" << n << "个学生信息:\n";
cout << "\t学生学号:";
cin >> s[n].num;
cout << "\t学生姓名:";
cin >> s[n].name;
cout << "\t学生班级:";
cin >> s[n].class1;
cout << "\t语文成绩:";
cin >> s[n].chinese;
cout << "\t数学成绩:";
cin >> s[n].math;
cout << "\t英语成绩:";
cin >> s[n].english;
cout << "是否要继续添加学生信息(Y/N):";
cin >> sel;
}while(sel=='Y' || sel=='y' );
}
void paixu()
{
int a;
cout<<"请选择排序方式:"<<endl;
cout<<"1.按学号排序;"<<endl
<<"2.按总成绩排序;"<<endl;
cin>>a;
switch(a)
{
case 1:{
int t=0;
for(int i=0;i<n-1;i++){
for(int j=0;j<n-i;j++){
if(s[j].num>s[j+1].num){
t=s[j].num;
s[j].num=s[j+1].num;
s[j+1].num=t;
}
}
}
cout<<"按学号排序结果:"<<endl;
cout<<left; //设置输出左对齐
cout<<setw(10)<<"学生学号"
<<setw(10)<<"学生姓名"
<<setw(13)<<"学生班级"
<<setw(12)<<"语文成绩"
<<setw(12)<<"数学成绩"
<<setw(12)<<"英语成绩"
<<endl;
for(int i=1;i<=n;i++)
{ cout<<setw(10)<<s[i].num
<<setw(10)<<s[i].name
<<setw(13)<<s[i].class1
<<setw(12)<<s[i].chinese
<<setw(12)<<s[i].math
<<setw(12)<<s[i].english<<endl;}
}
break;
case 2:{
double t;
for(int i=1;i<=n;i++){
s[i].sum=s[i].chinese+s[i].english+s[i].math;
}
for(int i=0;i<n-1;i++){
for(int j=0;j>n-i-1;j++){
if(s[j].sum>s[j+1].sum){
t=s[j].sum;
s[j].sum=s[j+1].sum;
s[j+1].sum=t;
}
}
}
cout<<"按总成绩排序结果:"<<endl;
for(int i=n;i>=1;i--){
cout<<"学号:"<<s[i].num
<<"\t"<<"姓名:"<<s[i].name
<<"\t"<<"班级:"<<s[i].class1
<<"\t" <<"语文成绩:"<<s[i].chinese
<<"\t"<<"数学成绩:"<<s[i].math
<<"\t"<<"英语成绩"<<s[i].english
<<"\t"<<"总成绩"<<s[i].sum<<endl;
cout<<endl; }
}
break;
default: {
cout<<"您的输入有误!请重新输入!"<<endl;
cin>>a;
}
}
}
void del(){
int j,i,k;char c[10],sel,y;
do{
cout << "请输入你要删除的学生的姓名:" << endl;
cin >> c;
for(i=1; i<=n; i++)
if(strcmp(s[i].name,c) == 0)
{cout<<"你要删除的学生信息为:" << endl;
cout << "学生学号:" << s[i].num << endl
<< "学生姓名:" << s[i].name << endl
<< "学生班级:" << s[i].class1 << endl
<< "语文成绩:" << s[i].chinese << endl
<< "数学成绩:" << s[i].math << endl
<< "英语成绩:" << s[i].english << endl;
cout << "确认删除?(y/n):";
cin >> y;
if(y == 'Y' || y == 'y'){
for(j=i;j<=n+1;j++)
{
s[j]=s[j+1];
} k=1;
}
else
cout << "删除失败!" << endl;
break;
}
else if(strcmp(s[i].name,c) != 0 && i == n){
cout << "没有这个学生!请核对后再输入!" << endl;
k=0;
break;
}
while(k==1){
if(y=='Y'||y=='y')
cout<<"删除成功!";
n--;
k=0;
}
cout << "是否要继续删除学生信息(Y/N):";
cin >> sel;
}while(sel=='Y' || sel=='y' );
}
- 简易学生成绩管理系统(c++)
- 学生成绩管理系统-C
- 学生成绩管理系统(c++)
- C语言学生成绩管理系统
- 学生成绩管理系统【c】
- c链表 学生成绩管理系统
- C语言 学生成绩管理系统
- C语言--学生成绩管理系统
- 学生成绩管理系统 C语言
- C语言学生成绩管理系统
- c/c++学生成绩管理系统
- c-学生成绩管理系统
- C语言 学生成绩管理系统
- C语言学生成绩管理系统
- 学生成绩管理系统【C语言程序设计】
- [转载]学生成绩管理系统C源代码
- 学生成绩管理系统 c语言实现
- 学生成绩管理系统(C语言)
- linux 驱动 信号量 测试
- CodeForces 831A:Unimodal Array(模拟)
- ZOj 3964Yet Another Game of Stones(nim博弈)
- string类型字符串切割
- 架构
- C++学生成绩管理系统
- 浅谈产品设计五大层次
- B继承A的写法
- 素数环
- 【bzoj1058】[ZJOI2007]报表统计 平衡树
- python 高性能web框架 gunicorn+gevent
- 文章标题
- C语言指针系列
- 2017.8.1(2)————深搜