(C语言)学生成绩管理系统

1、数据信息的录入
(1)学生基本信息录入:学号不允许重复 录入信息保存在student文件中
(3)课程信息的录入:录入信息保存在course文件中
(2)学生成绩录入:成绩信息保存在score文件中
录入学生成绩信息时,综合成绩根据条件自动运算。运算方法:
如果录入课程为公共课,则 综合成绩=平时成绩*30%+卷面成绩*70%
如果录入课程为专业课,则 综合成绩=平时成绩*40%+卷面成绩*70%.
说明:课号S开头表示专业课,P开头表示公共基础课。
2、学生、课程及成绩显示:输出所有的学生信息及成绩信息
3、查询功能
(1)学生信息查询
u 输入一个学号或姓名(可实现选择),查出此学生的基本信息并显示输出。
u 输入性别、所在系名,可查询所有男生(女生)、本系所有的学生的基本信息并显示输出。
(2)成绩查询:
u 输入一个学号时,查询出此学生的所有课程成绩信息并以列表显示,显示内容包括:学号、课程名、平时成绩、卷面成绩、综合成绩
u 输入一个学生的姓名时,查询出此学生的所有课程成绩信息并以列表显示,显示内容包括:学号、姓名、性别、所在系、课程名、综合成绩
u 输入一门课程名称,可查询出所有选修这门课程的学生成绩。
4、成绩修改(要求先输入密码)
在修改成绩之前必须输入正确的用户密码才能进入成绩修改菜单进行操作。
5、 删除功能:
当在student.txt中删除一个学生时,自动地在score.txt中删除此人所有信息。
6、成绩统计
u 显示每门课程成绩最高的学生的基本信息
u 显示每门课程的平均成绩
u 显示每门课程不及格(综合成绩小于60分)的学生信息,并统计出人数。
7、退出系统
··········································
跪求答案、可直接发、或者和我qq、邮箱交流。。。[email protected]

第1个回答  推荐于2016-09-11
.h文件
#if !defined __HEAD1__H__
#define __HEAD1__H__
#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
class student{
public:
int GetNumber();
char *GetName();
char *GetClass();
float GetElec();
float GetC_prog();
float GetEng();
float GetMedia();
float GetMath();
float GetPolity();
float GetSport();
void input();
private:
int Number;
char class_0[20];
char Name[8];
float elec;
float c_prog;
float media;
float eng;
float math;
float sport;
float polity;
float Totalcent;
float Average;
};
int student::GetNumber()
{
return Number;
}
char *student::GetName()
{
return Name;
}
char *student::GetClass()
{
return class_0;
}
float student::GetElec()
{
return elec;
}
float student::GetC_prog()
{
return c_prog;
}
float student::GetEng()
{
return eng;
}
float student::GetMath()
{
return math;
}
float student::GetMedia()
{
return media;
}
float student::GetSport()
{
return sport;
}
float student::GetPolity()
{
return polity;
}
void student::input()
{
cout<<"学号:";
cin>>Number;
cout<<"姓名:";
cin>>Name;
cout<<"班级:";
cin>>class_0;
cout<<"电子技术:";
cin>>elec;
cout<<"C++ 程序设计:";
cin>>c_prog;
cout<<"多媒体技术:";
cin>>media;
cout<<"大学英语:";
cin>>eng;
cout<<"高等数学:";
cin>>math;
cout<<"大学体育:";
cin>>sport;
cout<<"马克思主义政治经济学:";
cin>>polity;
}
#endif
.C文件
#include<iostream>
#include<string>
#include<iomanip>
#include"1.h"
using namespace std;
int i=0,n=0;
float allscore[50];
student s[50];
void insert();
void delete1();
void find();
void xiugai();
void tongji();
void sort();
void input();
void output();
void contin()
{
cout<<"是否继续操作(y/n)";
char a; int j;
cin>>a;
while(a!='y'&&a!='n')
cin>>a;
if(a=='y')
{
cout<<"你想继续做什么:";
cin>>j;
while(!(j<=8&&j>=1))
{
cout<<"The number is too big or small,please input it again.";
cin>>j;
}
switch(j)
{
case 1:cout<<"1、按顺序输入若干个学生的信息"<<endl<<endl;input();break;
case 2:cout<<"2、插入一个学生信息"<<endl<<endl;insert();break;
case 3:cout<<"3、删除一个学生信息"<<endl<<endl;delete1();break;
case 4:cout<<"4、修改一个学生信息(按学号来找)"<<endl<<endl;xiugai();break;
case 5:cout<<"5、查找一个学生信息(按姓名来找)"<<endl;find();break;
case 6:cout<<"6、统计学生的总分成绩"<<endl<<endl;tongji();break;
case 7:cout<<"7、按总分从高到低排序"<<endl<<endl;sort();break;
case 8:cout<<"8、显示所有学生信息"<<endl<<endl;output();break;
}
}
else if(a=='n') cout<<"操作结束!!!"<<endl;
}
void input()
{
cout<<"你想输入多少个学生信息:";
cin>>n;
for(i=0;i<n;i++)
{
s[i].input();
}
for(i=0;i<n;i++)
{
allscore[i]=s[i].GetElec()+s[i].GetElec()+s[i].GetMedia()+s[i].GetEng()+s[i].GetMath()+s[i].GetSport()+s[i].GetPolity();
}
contin();
}
void output()
{
if(n<=0)
{
cout<<"请先输入学生的信息,";
input();
}
cout<<"每位学生的信息分别为:"<<endl;
cout<<"---------------------------------------------------------------------------"<<endl;
cout<<setw(15)<<"姓名"<<setw(10)<<"学号"<<setw(12)<<"班级:"<<setw(12)<<"电子技术"<<setw(12)<<"C++ 程序设计"<<setw(12)<<"多媒体技术"<<setw(12)<<"大学英语"<<setw(12)<<"高等数学"<<setw(12)<<"大学体育"<<setw(12)<<"马克思主义政治经济学"<<setw(12)<<"总分"<<endl;
for(i=0;i<n;i++)
{
cout<<setw(15)<<s[i].GetName()<<setw(10)<<s[i].GetNumber()<<setw(12)<<s[i].GetClass()<<s[i].GetElec()<<setw(12)<<s[i].GetC_prog()<<setw(12)<<s[i].GetMedia()<<setw(12)<<s[i].GetEng()<<setw(12)<<s[i].GetMath()<<setw(12)<<s[i].GetSport()<<setw(12)<<s[i].GetPolity()<<setw(12)<<allscore[i]<<endl;
}
contin();
}
void insert()
{
if(n<=0)
{
cout<<"请先输入学生的信息,";
input();
}
cout<<"请输入你要插入的位置:";
int k;
cin>>k;
while(!(k>0&&k<=n))
{
cout<<"操作错误,请重新操作:";
cin>>k;
}
if(k<=n)
{
n++;
for(int i=n-1;i>=k;i--)
{

s[i]=s[i-1];
}
}
s[k-1].input();
contin();
}
void delete1()
{
if(n<=0)
{
cout<<"请先输入学生的信息,";
input();
}
cout<<"请输入你要删除的位置:";
int k;
cin>>k;
while(!(k>=0&&k<n))
{
cout<<"你输入的位置不存在,请重新输入";
cin>>k;
}
for(i=k-1;i<n;i++)
{
s[i]=s[i+1];
}
n--;
contin();
}
void xiugai()
{
if(n<=0)
{
cout<<"请先输入学生的信息,";
input();
}
int num;
char c;
do{
cout<<"请输入需要修改的学生的学号:";
cin>>num;
for(int i=0;i<n;i++)
{
if(s[i].GetNumber()==num)
{
s[i].input();
}
else {cout<<"没有这个学生."<<endl;break;}
}
cout<<"是否还要修改(y/n)";
cin>>c;
while(c!='y'&&c!='n')
cin>>c;
}while(c=='y');
contin();
}
void find()
{
if(n<=0)
{
cout<<"请先输入学生的信息,";
input();
}
char na[15];
cin>>na;
for(int i=0;i<n;i++)
{
if(strcmp(s[i].GetName(),na)==0)
{
cout<<setw(30)<<"所查找的学生信息为:"<<endl;
cout<<"---------------------------------------------------------------------------"<<endl;
cout<<setw(15)<<"姓名"<<setw(10)<<"学号"<<setw(12)<<"班级:"<<setw(12)<<"电子技术"<<setw(12)<<"C++ 程序设计"<<setw(12)<<"多媒体技术"<<setw(12)<<"大学英语"<<setw(12)<<"高等数学"<<setw(12)<<"大学体育"<<setw(12)<<"马克思主义政治经济学"<<setw(12)<<"总分"<<endl;
cout<<setw(15)<<s[i].GetName()<<setw(10)<<s[i].GetNumber()<<setw(12)<<s[i].GetClass()<<s[i].GetElec()<<setw(12)<<s[i].GetC_prog()<<setw(12)<<s[i].GetMedia()<<setw(12)<<s[i].GetEng()<<setw(12)<<s[i].GetMath()<<setw(12)<<s[i].GetSport()<<setw(12)<<s[i].GetPolity()<<setw(12)<<allscore[i]<<endl;
cout<<"---------------------------------------------------------------------------"<<endl;
}
else cout<<"没有这个学生."<<endl;
}
contin();
}
void tongji()
{
if(n<=0)
{
cout<<"请先输入学生的信息,";
input();
}
for(i=0;i<n;i++)
allscore[i]=s[i].GetElec()+s[i].GetElec()+s[i].GetMedia()+s[i].GetEng()+s[i].GetMath()+s[i].GetSport()+s[i].GetPolity();
cout<<"各位学生的总分分别是";
for(i=0;i<n;i++)
{
cout<<"第"<<i+1<<"位同学是:"<<s[i].GetName()<<"总分是:"<<allscore[i]<<endl;
}
contin();
}
void sort()
{
if(n<=0)
{
cout<<"请先输入学生的信息,";
input();
}
student temp;
for(i=0;i<n;i++)
for(int j=i;j<n;j++)
if(allscore[i]<allscore[j])
{
temp=s[i];
s[i]=s[j];
s[j]=temp;
}
cout<<"已经排好序了,是否需要输出(y/n):";
char yn;
cin>>yn;
while(yn!='y'&&yn!='n')
{
cout<<"操作错误!!!请重新输入:";
cin>>yn;
}
if(yn=='y')
{
cout<<"所有学生的成绩按总分从高到低的排名是:"<<endl;
output();
}
else contin();
}
int main()
{
cout<<setw(30)<<"学生管理系统"<<endl;
for(int s=1;s<=30;s++)
cout<<"*";
cout<<" ***";
for(s=1;s<=30;s++)
cout<<"*";
cout<<endl;
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<<"-----------------------------------------------------------------------------------------------------"<<endl;
cout<<"你想要做什么:";
int k;
cin>>k;
while((k<=0||k>9))
{
cout<<"The number is too big or small,please input it again.";
cin>>k;
}
switch(k)
{
case 1:cout<<"1、按顺序输入若干个学生的信息"<<endl<<endl;input();break;
case 2:cout<<"2、插入一个学生信息"<<endl<<endl;insert();break;
case 3:cout<<"3、删除一个学生信息"<<endl<<endl;delete1();break;
case 4:cout<<"4、修改一个学生信息(按学号来找)"<<endl<<endl;xiugai();break;
case 5:cout<<"5、查找一个学生信息(按姓名来找)"<<endl<<endl;find();break;
case 6:cout<<"6、统计学生的总分成绩"<<endl<<endl;tongji();break;
case 7:cout<<"7、按总分从高到低排序"<<endl<<endl;sort();break;
case 8:cout<<"8、显示所有学生信息"<<endl<<endl;output();break;
case 9:cout<<"9、操作本回答被提问者和网友采纳
相似回答