顺序表——学生成绩管理
1.建立一个由n个学生成绩的顺序表,n的大小由自己确定,每一个学生的成绩信息由自己确定,实现数据的对表进行插入、删除、查找等操作。分别输出结果。
# include
# include
# include
#define MAX 100
int i,n;
using namespace std;
struct Student{//声明一个结构体类型Student
char id[20];
char name[20];
int Lnum;
//离散课程得分
int Gnum;
//管理学课程得分
int Enum;
//英语课程得分
float sum;
//总分
void Menu();
void Find();
void RemoveItem();
void Display();
void show();
void AddItem();
void Input();
}Stu[MAX+1];
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Menu(){cout<<""<>n;
for(i=1;
i<=n;
i++)
{
cout<<"第"<> Stu[i].name;
cout<<"\t\t请输入学生学号:"<>Stu[i].id;
cout<<"\t\t请输入离散成绩:"<>Stu[i].Lnum;
cout<<"\t\t请输入管理成绩:"<>Stu[i].Gnum;
cout<<"\t\t请输入英语成绩:"<>Stu[i].Enum;
Stu[i].sum=Stu[i].Lnum+Stu[i].Gnum+Stu[i].Enum;
}
}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌显示所有信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Display()
{
cout<<"序号"<<"\t"<<"姓名"<<"\t\t"<<"学号"<<"\t"<<"离散"<<"\t"<<"管理"<<"\t"<<"英语"<<"\t"<<"总分"<x;
switch(x)
{
case 1:{
cout<<"\t\t请输入要查找的姓名:";
cin>>na;
bool flag=false;
for(i=1;
i<=n;
i++)
{
if(strcmp(Stu[i].name, na) == 0)
{
Stu[i].show();
flag=true;
} }
if(!flag){
cout<<"无此人";
}
}break;
case 2:{
cout<<"\t\t请输入要查找的学号:";
cin>>I;
bool flag=false;
for(i=1;
i<=n;
i++)
{
if(strcmp(Stu[i].id, I) == 0)
{
Stu[i].show();
flag=true;
}}
if(!flag){
cout<<"无此人";
}
}break;
case 3:{
cout<<"\t\t请输入要查找的序号:";
cin>>i;
if(i<1||i>n) throw "position error";
elseStu[i].show();
}break;
}
}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌插入信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ void AddItem()
{
int i,j;
n++;
if(n>MAX) throw "overflow";
cout<<"which position do you want to insert?";
cin>>i;
if(i<1||i>n) throw "position";
for(j=n;
j>=i;
j--)
{
Stu[j]=Stu[j-1];
}
cout<<"第"<> Stu[i].name;
cout<<"\t\t请输入学生学号:"<>Stu[i].id;
cout<<"\t\t请输入离散成绩:"<>Stu[i].Lnum;
cout<<"\t\t请输入管理成绩:"<>Stu[i].Gnum;
cout<<"\t\t请输入英语成绩:"<>Stu[i].Enum;
Stu[i].sum=Stu[i].Lnum+Stu[i].Gnum+Stu[i].Enum;
cout<<"The new list is:";
Display();
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ void RemoveItem()
{
int j;
if(n==0) throw "underflow";
cout<<"which sequence number do you want to delete?";
cin>>i;
if(i<1||i>n) throw "position";
for(j=i+1;
j<=n;
j++)
{
Stu[j-1]=Stu[j];
}
cout<<"The new list is: ";
n--;
Display();
}intmain()
{
int x,i=0;
bool quit=false;
while(!quit)
{
system("cls");
Menu();
cin>>x;
switch(x)
{
case 0:quit=true;
break;
case 1:Input();
system("pause");
break;
case 2:Display();
system("pause");
break;
case 3:Find();
system("pause");
break;
case 4:AddItem();
system("pause");
break;
case 5:RemoveItem();
system("pause");
break;
}
}
return 0;
}
实验结果如图所示
菜单界面
文章图片
自定义要录入多少个学生
文章图片
【顺序表——学生成绩管理】录完之后的显示界面
文章图片
查询功能。包括按姓名,按学号和按序号
若查无此人则返回“无此人”
文章图片
插入功能。如现在我在第二位插入“陈某某”,出现的新表如图
文章图片
删除功能。如将陈某某删除后,新的表如图所示。
文章图片
推荐阅读
- 急于表达——往往欲速则不达
- 慢慢的美丽
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 2019-02-13——今天谈梦想()
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- Ⅴ爱阅读,亲子互动——打卡第178天
- 低头思故乡——只是因为睡不着
- 取名——兰
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- mybatisplus如何在xml的连表查询中使用queryWrapper