跪求C++课程设计 学生成绩管理系统

2024-11-19 21:27:49
推荐回答(1个)
回答1:

去年做这个了,虽然要求不完全一样,修改修改还是可以用的
#include //预编译命令(io 流控制头文件, 操纵setw(int n))
#include
#include
#include //输入输出文件流类
using namespace std;
#define MAX_NUM 30

//~~~~~~~~~~~~~~~学生结构体~~~~~~~~~~~~~~~
struct STUDENT
{
string stuName; //姓名
int stuNum; //学号
double stuScore[5]; //成绩
double stuAver; //平均成绩
double stuAll; //总分
int stuscore[5]; //学分
int stuGscore[5]; //所得学分
int stusAll; //总学分
};

//~~~~~~~~~~~~~~~~~学生信息输入~~~~~~~~~~~~~~
void inputData(STUDENT stu[],int &ID)
{
cout<<"请分别输入该学生的姓名,学号,5科成绩,5科学分"< cin>>stu[ID].stuName>>stu[ID].stuNum>>stu[ID].stuScore[0];
cin>>stu[ID].stuScore[1]>>stu[ID].stuScore[2]>>stu[ID].stuScore[3]
>>stu[ID].stuScore[4];
cin>>stu[ID].stuscore[0]>>stu[ID].stuscore[1]>>stu[ID].stuscore[2]
>>stu[ID].stuscore[3]>>stu[ID].stuscore[4];

//…… 总分,平均分,所得学分,总学分……
stu[ID].stuAll=(stu[ID].stuScore[0]+stu[ID].stuScore[1]
+stu[ID].stuScore[2]+stu[ID].stuScore[3]+stu[ID].stuScore[4]);//总分
stu[ID].stuAver=stu[ID].stuAll/5.0;//平均分

void fun(STUDENT stu[],int ID);//求各科所得学分函数
{
for(int n=0;n<=4;n++)
{
if(stu[ID].stuScore[n]<60)
stu[ID].stuGscore[n]=0;
else
stu[ID].stuGscore[n]=stu[ID].stuscore[n];
}
}

stu[ID].stusAll=(stu[ID].stuGscore[0]+stu[ID].stuGscore[1]
+stu[ID].stuGscore[2]+stu[ID].stuGscore[3]+stu[ID].stuGscore[4]);//总学分

//~~~~~~~~~~~~~~~~~录入文件~~~~~~~~~~~~~~~~~~~~~~
ofstream jilu("d:\\乖猫咪\\chengjijilu.txt");

jilu<<" 姓名 学号 课程1 课程2 课程3 课程4 课程5 "
<<" 成绩1 成绩2 成绩3 成绩4 成绩5 "
<<" 学分1 学分2 学分3 学分4 学分5 "
<<" 所得学分1 所得学分2 所得学分3 所得学分4 所得学分5 "
<jilu< <jilu< <jilu< < <jilu< < <
cout<<"录入成功!"< ID++;
}

//~~~~~~~~~~~~~~~~~~输出学生信息~~~~~~~~~~~~~~~~~~~~~~~~~
void showTable()
{
cout<<" 姓名 学号 课程1 课程2 课程3 课程4 课程5 总分 "
<<" 1学分 2学分 3学分 4学分 5学分 平均分 "
<<" 1所得学分 2所得学分 3所得学分 4所得学分 5所得学分 总学分 "
<}

void showData(STUDENT stu[],int ID)
{
cout< < cout< < cout< < cout< < < < cout< < < cout<
}

//~~~~~~~~~~~~~~~~~~~按学号查询学生信息~~~~~~~~~~~~~~~~
void queryData(STUDENT stu[],int ID)
{

int stuNum;
cout<<"请输入要查询的学号:";
cin>>stuNum;
cout< for(int i=0;i {
if(stu[i].stuNum==stuNum)
{
cout<<"信息找到"< showTable();
showData(stu,i);
system("pause");
return ;

}
}
cout<<"未找到信息"<}

//~~~~~~~~~~~~~~~~~~~总分排序~~~~~~~~~~~~~~~~
void sortByAll(STUDENT stu[],int ID)
{
int i,j,m;
STUDENT temp;
for(m=0;m {
for(i=0;i {
for(j=i+1;j {
if (stu[i].stuAll < stu[j].stuAll)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
cout<<"排序成功!"< cout<<" "< cout<<"排序结果为:"< cout<<" "< showTable();
showData(stu,m);
}
}

//~~~~~~~~~~~~~学号排序~~~~~~~~~~~~~~~~~~~~~
void sortstuNum(STUDENT stu[],int ID)
{
int i,j,m;
STUDENT temp;
for(m=0;m {
for(i=0;i {
for(j=i+1;j {
if (stu[i].stuNum > stu[j].stuNum)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
cout<<"排序成功!"< cout<<" "< cout<<"排序结果为:"< cout<<" "< showTable();
showData(stu,m);
}
}

//~~~~~~~~~~~~~~~~菜单~~~~~~~~~~~~~~~~~~~
void funTable()
{
cout<<"================================="< cout<<" "< cout<<" 学生信息管理系统 "< cout<<" "< cout<<" 1---输入学生信息 "< cout<<" 2---查询学生信息 "< cout<<" 3---总分排序 "< cout<<" 4---学号排序 "< cout<<" 5---显示当前学生信息 "< cout<<" 6---退出 "< cout<<"================================="< cout<<" "< cout<<" 编程人: "< cout<<" 武琼; "< cout<<" 党心蕊; "< cout<<" 苏瑜 "< cout<<" "< cout<<"请给出你的选择: "<}

//~~~~~~~~~~~~~~~选择输入输出~~~~~~~~~~~~~~
int main()
{
STUDENT stu[MAX_NUM]; //开辟30个空间来存放学生信息;
int ID=0; //用来计数,记当前学生信息的总数
char ch;
bool flag=true;
int i;
while(flag)
{
funTable();
cin>>ch;

switch (ch)
{
case '1':
inputData(stu,ID);
break;
case '2':
queryData(stu,ID);
break;
case '3':
sortByAll(stu,ID);
break;
case '4':
sortstuNum(stu,ID);
break;
case '5':
showTable();
for(i=0;i {
showData(stu,i);
}
break;
default:
cout<<"用户选择退出……"< system("pause"); //暂停
flag=false;
break;
}
system("pause"); //暂停
system("cls"); //清屏
}
return 0
}
不过我没用链表就是,话说网上那些全是用链表做的,下一个,稍微改一下即可!