使用自定义函数完成学生管理系统

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

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

对于一维数组使用局限性过大,后符文二维数组代码


#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;
}

 

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值