处理学生的信息

*烟台大学计算机学院学生                                                                     
*All rights reserved.                                                    
*文件名称:处理学生的信息       
*作者:杨飞                                                                              
*完成日期:2013年3月5日                                                                   
*版本号:v1.0                                                                               
*对任务及求解方法的描述部分:处理学生的信息 
*我的程序:

#include <iostream>
#include <string>
#include <cstdlib>
#include <string.h>
using namespace std;
struct Student
{
    char num[15];
    string name;
    string sex;
    int age;
    double score;
    int state;
};
void delete1(Student[],int);
void chazhao(Student[],int);
void xiugai(Student[],int);
void sort(Student[],int);
void output(Student[],int);
int main()
{
    Student stu[]={{"1001","王刚","男",18,80.00,1},{"1002","王飞","男",19,86.00,1},
                    {"1003","小艾","女",17,90.00,1},{"1004","小童","女",22,99.00,1}};

    int n=sizeof(stu)/sizeof(stu[0]);
    int m;
    cout<<"1 删除学生的信息"<<endl;
    cout<<"2 查找学生的信息"<<endl;
    cout<<"3 修改学生的信息"<<endl;
    cout<<"4 排序(按学生的成绩)"<<endl;
    cout<<"5 退出"<<endl;
    cout<<"请输入你的选择:"<<endl;
    cin>>m;
    switch(m)
    {   case 0:
        output(stu,n);
        break;
        case 1:
        delete1(stu,n);
        break;
        case 2:
        chazhao(stu,n);
        break;
        case 3:
        xiugai(stu,n);
        break;
        case 4:
        sort(stu,n);
        break;
        case 5:
        exit(0);
        break;
    }
    return 0;
}
void delete1(Student s[],int n)
{
    int h;

    string num;
    cout<<"请输入你想要删除的学生的学号和姓名,谢谢"<<endl;
    cin>>num;
    for(int i=0;i<n;i++)
    {
        if(num==s[i].num)
        {
            s[i].state=0;
            h=1;
            break;
        }
    }
    if(h!=1)
    cout<<"查无此人"<<endl;
    cout<<"删除之后"<<endl;
    for(int i=0;i<n;i++)
  {
    if(s[i].state==1)
    {
       cout<<s[i].num<<"    "<<s[i].name<<"  "<<s[i].sex<<"  "<<s[i].age<<"  "<<s[i].score<<endl;
    }
  }
}
void chazhao(Student s[],int n)
{
    int b;
    char num[16];
    cout<<"请输入你想查找的学生的学号"<<endl;
    cin>>num;
    for(int i=0;i<n;i++)
    {
        if(strcmp(num,s[i].num)==0)
        {cout<<s[i].num<<"    "<<s[i].name<<"  "<<s[i].sex<<"  "<<s[i].age<<"  "<<s[i].score<<endl;
          b=1;
          break;
        }
    }
    if(b!=1)
    cout<<"查无此人"<<endl;
}
void sort(Student s[],int n)
{
    int i,j;
    Student t;
    for(i=0;i<n-1;i++)
    for(j=0;j<n-1-i;j++)
    {
        if(s[j].score<s[j+1].score)
        {
            t=s[j];
            s[j]=s[j+1];
            s[j+1]=t;

       }
    }
}
void output(Student s[],int n)
{   cout<<"学号"<<"    "<<"姓名"<<"   "<<"性别"<<"  "<<"年龄"<<"  "<<"成绩"<<"  "<<endl;
    for(int i=0;i<n;i++)
    cout<<s[i].num<<"    "<<s[i].name<<"  "<<s[i].sex<<"  "<<s[i].age<<"  "<<s[i].score<<endl;

}
void xiugai(Student s[],int n)
{
    int i,c,p;
    string n1;
    string s1;
    int a,s2;
    char num[16];
    cout<<"请输入你想修改学生的学号"<<endl;
    cin>>num;
    for(i=0;i<n;i++)
    {
        if(strcmp(num,s[i].num)==0)
        {
        cout<<s[i].num<<"    "<<s[i].name<<"  "<<s[i].sex<<"  "<<s[i].age<<"  "<<s[i].score<<endl;
           c=1;
           p=i;
           break;
        }
    }
    if(c!=1)
    cout<<"查无此人"<<endl;
    if(c==1)
    {
        cout<<"请重新输入名字:"<<endl;
        cin>>n1;
        cout<<"请重新输入性别:"<<endl;
        cin>>s1;
        cout<<"请重新输入年龄:"<<endl;
        cin>>a;
        cout<<"请重输入分数:"<<endl;
        cin>>s2;
        for(i=0;i<n;i++)
       {
          s[p].name=n1;
          s[p].sex=s1;
          s[p].age=a;
          s[p].score=s2;

       }
    }
    for(int i=0;i<n;i++)
    cout<<s[i].num<<"    "<<s[i].name<<"  "<<s[i].sex<<"  "<<s[i].age<<"  "<<s[i].score<<endl;

}





运行结果:

心得体会:不愧我费了这么多的时间!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值