学分管理系统 怎么用C语言编写啊? 好心的大哥大姐帮帮忙,不然小妹毕不了业了,谢谢了!

2024-12-13 19:50:55
推荐回答(5个)
回答1:

#include
#include
using namespace std;
int p=0; //计数
struct Score_sys //定义一个结构体存储学生相关信息
{
double id;
char name[20];
struct Score //定义一个分数结构体存储各项课程分数
{ int basic;
int major;
int selected;
int humanities;
int experiment;
};
Score score;
struct Class_num //定义一个一个班级结构体
{
int num;
};
Class_num classnum;
Score_sys *next;
};

class List
{
Score_sys *head,*tail;
public:
List();
~List();
void add();
void inquire();
void inquire_cla();
void change();
void compositor();
};
Score_sys stu[2000]; //允许添加 2000 个学生的信息

//给定某个班级的班号,显示该班所有学生学分完成情况;
List::List() //构造函数实现
{
head=tail=NULL;
}

List::~List() //析构函数实现
{
Score_sys *p;
if(head)//若非空,则删除
{
p=head;
head=head->next;
delete p;//删除,释放空间
}
}

void List::add() //添加学生信息函数
{ int i;
char s;
cout< cout< for(i=p;i<2000;i++)
{
p++;
cout<<"请输入第"< cin>>stu[i].classnum.num; cout<<"请输入第"< cin>>stu[i].id;
cout<<"请输入第"< cin>>stu[i].name;
cout<<"请输入第"< cin>>stu[i].score.basic;
cout<<"请输入第"< cin>>stu[i].score.major;
cout<<"请输入第"< cin>>stu[i].score.selected;
cout<<"请输入第"< cin>>stu[i].score.humanities;
cout<<"请输入第"< cin>>stu[i].score.experiment;
cout< cout<
cout<<"继续输入吗?!(y/n)";
cin>>s;
if(s=='n')break;
else
if(s=='y')
continue;
else
{
cout<<"输入有误!!请重新输入:";
break;
}
}
}
void List::inquire() //查询学生信
{
char s;
int j;
double k;
do{
cout< cout<<"请输入该学生的学号:";
cin>>k;
for(j=0;j<2000;j++)
{
if(k==stu[j].id)
{
cout<<"这是系统中存储的第"< cout<<"他所在班级:"< cout<<"该学生名字为:"< cout<<"该学生的基础课学分为:"< cout<<"该学生的专业课学分为:"< cout<<"该学生的选修课学分为:"< cout<<"该学生的人文类课程学分为:"< cout<<"该学生的实验性课程学分为:"< cout<
/*-------------------判断学生学分的情况---------------*/
if(stu[j].score.basic<50)
cout<<"基础课学分未完成"< else
cout<<"基础课学分完成"< if(stu[j].score.major<50)
cout<<"专业课学分未完成"< else
cout<<"专业课学分完成"< if(stu[j].score.selected<24)
cout<<"选修课学分未完成"< else
cout<<"选修课学分完成"< if(stu[j].score.selected<8)
cout<<"人文类课程学分未完成"< else
cout<<"人文类课程学分完成"< if(stu[j].score.selected<20)
cout<<"实践性课程学分未完成"< else
cout<<"实践性类课程学分完成"< break;
}
else cout<<"无该生信息"< }
cout< cout<<"继续查询吗?!(y/n)";
cin>>s;
if(s=='n')
break;
}while(s=='y');
}
void List::inquire_cla()
{
char s;
int n,j,i;
do
{
i=1;
cout<<"本操作为显示某个班级所有的学生学分完成情况!"< cout< cin>>n;
for(j=0;j {
if(n==stu[j].classnum.num)
{
cout<<"这个班第"< cout<<" 这 个 班 第 "< cout<<" 这 个 班 第 "< cout<<" 这 个 班 第 "< cout<<" 这 个 班 第 "< cout<<" 这 个 班 第 "< i++;
continue;
}
}
cout< cout<<"继续查询吗?!(y/n)";
cin>>s;
if(s=='n')
break;
}
while(s=='y');
}

// 给定某位学生的学号,修改该学生的学分信息;
void List::change()
{
int i,j;
char s;
double n;
do
{
cout< cout<<"请输入需要修改学生的学号:";
cin>>n;
for(j=0;j {
if(n==stu[j].id)
{
cout<<"这是系统中存储的第"< cout<<",他所在班级为:"< cout<<"该名学生名字为:"< cout<<"该名学生的基础课学分为:"< cout<<"该名学生的专业课学分为:"< cout<<"该名学生的选修课学分为:"< cout<<"该名学生的人文类课程学分为:"< cout<<" 该 名 学 生 的 实 验 性 课 程 学 分 为:"< /*-------------------判断修改学生学分---------------*/
do
{
cout<<"*****************************************"< cout<<"* 子菜单 *"< cout<<"* 2.--------修改专业课学分-----------*"< cout<<"* 3.--------修改选修课学分-----------*"< cout<<"* 4.--------修改人文类课程学分-------*"< cout<<"* 5.--------修改实验性课程学分-------*"< cout<<"* 6.--------不做修改(退出)-----------*"< cout<<"*****************************************"< cout<<"请输入你想要操作(1、2、3、4、5、6):";
cin>>i;
switch(i)
{
case 1:cout<<"基础学分修改为:";cin>>stu[j].score.basic;break;
case 2:cout<<"专业学分修改为:";cin>>stu[j].score.major;break;
case 3:cout<<"选修学分修改为:";cin>>stu[j].score.selected;break;
case 4:cout<<" 人 文 类 课 程 学 分 修 改 为:";cin>>stu[j].score.humanities;break;
case 5:cout<<" 实 验 性 课 程 学 分 修 改 为:";cin>>stu[j].score.experiment;break;
}
}
while(i!=6);
/*-------------------判断修改学生学分---------------*/
}
}
cout< cout<<"继续修改吗?!(y/n)";
cin>>s;
if(s=='n')
break;
}
while(s=='y');
}
void List::compositor()
{
int a,i,j,max;
do
{
cout<<"请输入需要排序的科目";
cout<<"*****************************************"< cout<<"* 子菜单 *"< cout<<"* 2.--------排序专业课学分-----------*"< cout<<"* 3.--------排序选修课学分-----------*"< cout<<"* 4.--------排序人文类课程学分-------*"< cout<<"* 5.--------排序实验性课程学分-------*"< cout<<"* 6.--------不做排序(退出)-----------*"< cout<<"*****************************************"< cout<<"请输入你想要操作(1、2、3、4、5、6):";
cin>>a;
if(a==1)
{
for(i=0;i {
max=i;
for(j=i+1;j {
if(stu[j].score.basic>stu[max].score.basic)
max=j;
}
if(i!=max)
{
Score_sys temp;
temp=stu[i];
stu[i]=stu[max];
stu[max]=temp;
}
}
for(i=0;i {
cout< }
}
else
if(a==2)
{
for(i=0;i {
max=i;
for(j=i+1;j {
if(stu[j].score.major>stu[max].score.major)
max=j;
}
if(i!=max)
{
Score_sys temp;
temp=stu[i];
stu[i]=stu[max];
stu[max]=temp;
}
for(i=0;i cout< }
}
else
if(a==3)
{
for(i=0;i {
max=i;
for(j=i+1;j {
if(stu[j].score.selected>stu[max].score.selected) max=j;
}
if(i!=max)
{
Score_sys temp;
temp=stu[i];
stu[i]=stu[max];
stu[max]=temp;
}
for(i=0;i cout< }
}
else
if(a==4)
{
for(i=0;i {
max=i;
for(j=i+1;j {
if(stu[j].score.humanities>stu[max].score.humanities)
max=j;
}
if(i!=max)
{
Score_sys temp;
temp=stu[i];
stu[i]=stu[max];
stu[max]=temp;
}
for(i=0;i cout< }
}
else
if(a==5)
{
for(i=0;i {
max=i;
for(j=i+1;j<2000;j++)
{// 分
if(stu[j].score.experiment>stu[max].score.experiment)
max=j;
}
if(i!=max)
{
Score_sys temp;
temp=stu[i];
stu[i]=stu[max];
stu[max]=temp;
}
for(i=0;i cout< }
};
break;
}
while(a!=6);
}
//---------------------------------
// 给定某位学生的学号,修改该学生的学分信息;
void main()
{
int i;
cout<<"**********************************************"< cout<<"* 主菜单 *"< cout<<"* 1.--------新增学生信息 *"< cout<<"* 2.--------查询单个学生信息 *"< cout<<"* 3.--------查询班级全部学生信息 *"< cout<<"* 4.--------修改学生信息 *"< cout<<"* 5.--------按照某类课程的学分高低进行排序*"< cout<<"* 6.--------退出 *"< cout<<"**********************************************"< cout<<"请输入你想要操作:"< int flag=1;
List TXL;
while(flag)
{
cin>>i;
switch(i)
{
case 1:
TXL.add();break;
case 2:
TXL.inquire();break;
case 3:
TXL.inquire_cla();break;
case 4:
TXL.change();break;
case 5:
TXL.compositor();break;
case 6:
flag=0;break;
}
}
}

回答2:

这个耗时间 又没分 极少人 会帮你做
实在没办法 建议 找同学 Copy(- -)

回答3:

有多少付出。就有多少回报,你真的当别人都是活雷锋

回答4:

我这里有一个.但是功能不是你所要的.
你可以自行修改.

如果要的话 百度HI我

回答5:

先占个位,不知道能不能写出来。