摘要:一个简单的学生成绩管理系统自然要包括增删改查。学生成绩管理是学校教务部门日常工作的重要组成部分,其处理信息量很大。此代码是对学生成绩管理的简单模拟,用菜单选择方式完成下列功能:输入学生数据;输出学生数据;学生数据查询;添加学生数据;修改学生数据;删除学生数据。
本管理系统数据是一组学生的成绩信息,每条学生的成绩信息由学号、姓名和成绩组成,这组学生的成绩信息具有相同特性,属于同一数据对象。由此可以看出,这些数据具有线性表中数据元素的性质,所以该系统的数据采用线性表来存储。
顺序表是线性表的顺序存储结构,是指用一组连续的内存单元依次存放线性表的数据元素。在顺序存储结构下,逻辑关系相邻的两个元素在物理位置上也相邻,这是顺序表的特点。本项目可以采用顺序表的线性表顺序存储结构。
利用最简单的结构体数组来完成:
先说几个比较重要的模块:
录入信息模块:
void Logging_data();//录入学生信息
void List::Logging_data()//录入学生信息
{
if(len==Listlen)
{
cout << "表已满 !"<<endl;
return;
}
cout <<"请输入学生学号 "<<endl;
cin>>Elem[len+1].id;
if(id_ifnd(Elem[len+1].id) >=0 )
{
cout << "该学号已存在!"<<endl;
return;
}
cout <<"请输入学生姓名 "<<endl;
cin>>Elem[len+1].name;
cout <<"请输入学生成绩 "<<endl;
cin>>Elem[len+1].score;
if(Elem[len+1].score <0 || Elem[len+1].score>100)
{
cout << "输入有误!" <<endl;
return;
}
len++;
}
int id_ifnd(char *fin_id);//按学号查找返回查找到的位置或者没查找到的;
void dele_stuinfo(); //删除学生信息
删除信息模块:
void List::dele_stuinfo() //删除学生信息
{
if(is_empty())
{
cout << "表为空 !"<<endl;
return;
}
char dele_id[15]={0};
int i;
cout << "请输入要删除的学号 :";
cin >>dele_id;
for(i=0;i<len+1;i++)
{
if(strcmp(Elem[i].id,dele_id)==0)
{
if(i==len)
{
len--;
cout << "删除成功" << endl;
print_list();
return;
}
else
{
for(i;i<len+1;i++)
{
Elem[i]=Elem[i+1];
}
len--;
cout << "删除成功" << endl;
print_list();
return;
}
}
}
cout << "没有此学号的学生!"<<endl;
}
int is_empty(); //表为空
int is_full() ; //表为满
void print_list(); //普通打印
打印模块:
void List::print_list() //普通打印
{
int i;
if(is_empty())
{
cout << "表为空 !"<<endl;
return;
}
else
{
cout <<"学号 "<<"姓名 "<<"成绩 "<<endl;
cout <<"************************************************"<<endl;
cout <<endl;
for(i=0;i<len+1;i++)
{
cout<<Elem[i].id<<" "<<Elem[i].name<<" "<<Elem[i].score<<endl;
}
cout <<endl;
cout <<"************************************************"<<endl;
cout <<endl;
}
}
void score_sort_low(); //成绩排序 (不及格)
void score_sort_up(); //按成绩升序(从低到高)排序
void id_sort(); //按学号升序排序
按学号升序排序 模块:
void List::id_sort() //按学号升序排序 ok
{
if(is_empty())
{
cout << "表为空 !"<<endl;
return;
}
int i,j;
STU temp;
for(i=0;i<len;i++)
{
for(j=0;j<len-i;j++)
{
if(strcmp(Elem[j].id,Elem[j+1].id)>0)
{
temp=Elem[j];
Elem[j]=Elem[j+1];
Elem[j+1]=temp;
}
}
}
}
void score_sort_donw(); //按成绩降序(从高到低)排序 文章来源:https://www.toymoban.com/news/detail-511226.html
成绩排序模块:文章来源地址https://www.toymoban.com/news/detail-511226.html
到了这里,关于(c++)简易学生成绩管理系统(超简单)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!