提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
对于一维数组使用局限性过大,后符文二维数组代码
#include<stdio.h>
#include<iostream>
#include<math.h>
#include<cstring>
#include<string>
#include<stdlib.h>
#include<string.h>
#define rsmax 30
#define kmmax 30
using namespace std;
void read(string num[20],string name[20],float score[rsmax],int m);
void xiugai(string num[20],string name[20],float score[rsmax],int m);
void chazhao(string num[20],string name[20],float score[rsmax],int m);
void shanchu(string num[20],string name[20],float score[rsmax],int m);
void paixu(string num[20],string name[20],float score[rsmax],int m);
void print(string num[20],string name[20],float score[rsmax],int m);
void shaixuan(string num[20],string name[20],float score[rsmax],int m);
void menu();
int main()
{
int ch;
string name[20];
string num[20];
float score[rsmax];
int m,n;
cout<<"输入学生人数\n";
cin>>m;
while(1)
{
menu();
cin>>ch;
switch(ch)
{
case 1:
read(num,name,score,m);
printf("\n");break;
case 2:
xiugai(num,name,score,m);
printf("\n");break;
case 3:
chazhao(num,name,score,m);
printf("\n");break;
case 4:
shanchu(num,name,score,m);
printf("\n");break;
case 5:
paixu (num,name,score,m);
printf("\n");break;
case 6:
print (num,name,score,m);
printf("\n");break;
case 7:
shaixuan(num,name,score,m);
printf("\n"); break;
case 0:
printf("程序结束");
exit(0);break;
default:
printf("输入错误");
}
}
}
void menu()
{
char an;
printf("\t 学生成绩管理:\n");
printf("\t1.录入学生信息\n");
printf("\t2.修改学生信息\n");
printf("\t3.查找学生信息\n");
printf("\t4.删除学生信息\n");
printf("\t5.按照成绩顺序输出所有学生信息\n");
printf("\t6.输出学生信息\n") ;
printf("\t7.输出大于80分的学生\n") ;
printf("\t0.退出\n");
printf("\t 请输入您的选择:\n");
scanf("%c",&an);
}
void paixu(string num[20],string name[20],
float score[30],int m)
{
int i,j,k;
float t;
string s;
for(i=0;i<m;i++)
{
k=i;
for(j=i+1;j<m;j++)
{
if(score[i]<score[j])
k=j;
}
if(k!=i)
{
s=num[i];
num[i]=num[k];
num[k]=s;
s=name[i];
name[i]=name[k];
name[k]=s;
t=score[i];
score[i]=score[k];
score[k]=t;
}
}
printf("所有学生按总成绩降序排序为:\n");
printf(" 学号 姓名");
printf(" 分数\n");
for(i=0;i<m;i++)
{
cout.width(15);
cout<<num[i];
cout.width(15);
cout<<name[i];
printf("%15f",score[i]);
printf("\n");
}
printf("\n");
}
void read(string num[20],string name[20],
float score[30],int m)
{
for(int i=0;i<m;i++)
{
cout<<"please input the num name score"<<endl;
cin>>num[i]>>name[i]>>score[i];
}
}
void print(string num[20],string name[20],
float score[30],int m)
{
for(int i=0;i<m;i++)
{
if(score[i]==0)
continue;
cout<<num[i]<<"\t"<<name[i]<<"\t"<<score[i]<<endl;
}
}
void shaixuan(string num[20],string name[20],
float score[30],int m)
{
int i,a;
for (i=0;i<m;i++)
{
if(score[i]>80)
{
cout<<num[i]<<"\t"<<name[i]<<"\t"<<score[i]<<endl;
}
}
}
void chazhao(string num [20],string name[20],
float score[30],int m)
{
int a;
string t;
cout<<"please input the num you need "<<endl;
cin>>t;
for(int i=0;i<m;i++)
{
if(num[i]==t)
{
a=i;
}
}
cout<<num[a]<<name[a]<<score[a];
}
void shanchu(string num[20],string name[20],
float score[30],int m)
{
int a,i;
string t;
cout<<"please input the num you need to deleat"<<endl;
cin>> t;
for(int i=0;i<m;i++)
{
if(num[i]==t)
{
a=i;
}
}
score[a]=0;
cout<<"ok,please input 6"<<endl;
}
void xiugai(string num[20],string name[20],
float score[30],int m)
{
int a;
string t;
cout<<"please input the num you need to modify "<<endl;
cin>>t;
for(int i=0;i<m;i++)
{
if(num[i]==t)
{
a=i;
break;
}
}
string temp1;
string temp2;
float temp3;
cout<<"please input the num name score"<<endl;
cin>>temp1>>temp2>>temp3;
num[a]=temp1;
name[a]=temp2;
score[a]=temp3;
}

本文介绍了一个简单的学生管理系统的设计与实现过程,该系统采用C++语言,通过自定义函数实现了学生的成绩录入、修改、查找、删除等功能,并能按成绩排序输出学生信息。
1982





