首页 > 其他 > 详细

二周 项目3 文件+结构体实现使用功能

时间:2014-03-07 03:17:43      阅读:309      评论:0      收藏:0      [点我收藏+]
/*
烟台大学计算机学院学生
*All rights reserved.
*文件名称:
*作者:zhaojiaxiang
*完成日期:2013年3月6日
*版本号:v1.0
*我的程序:
*/
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
struct Student
{
    char num[13];
    char name[10];
    int cpp;
    int math;
    int english;
    int grade;
    double average;
};
void output(Student s[],int);
void sort1(Student s[],int);
void sort2(Student s[],int);
int main( )
{
    int i;
    Student stu[1000];
    int stuNum=0;

    ifstream infile("score.txt",ios::in); 	//以输入的方式打开文件
    if(!infile)   				//测试是否成功打开
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
    i=0;
    while(infile>>stu[i].num>>stu[i].name>>stu[i].cpp>>stu[i].math>>stu[i].english)
    {
        stu[i].grade=stu[i].cpp+stu[i].math+stu[i].english;
        ++stuNum;
        ++i;
    }
    infile.close();
    cout<<"以下是成绩单"<<endl;
    output(stu,stuNum);
    cout<<"总分高低的顺序为"<<endl;
    sort1(stu,stuNum);
    cout<<"获得奖学金的同学是"<<endl;
    sort2(stu,stuNum);
    return 0;
}
void output(Student s[],int n)
{
    cout<<"学号  姓名 C++ 数学 英语 总分"<<endl;
    for(int i=0; i<n; i++)
    {
        cout<<s[i].num<<" "<<s[i].name<<" "<<s[i].cpp<<" "<<s[i].math<<" "<<s[i].english<<" "<<s[i].grade<<endl;
    }
}
void sort1(Student s[],int n)
{
    int i,j;
    Student t;
    for(i=0; i<n; i++)
    {
        for(j=0; j<n-i-1; j++)
        {
            if(s[j].grade<s[j+1].grade)
            {
                t=s[j];
                s[j]=s[j+1];//张玉老师指点,这里不用交换成绩
                s[j+1]=t;
            }
        }
    }
    cout<<"学号  姓名 C++ 数学 英语 总分"<<endl;
    for(int i=0; i<n; i++)
    {
        cout<<s[i].num<<" "<<s[i].name<<" "<<s[i].cpp<<" "<<s[i].math<<" "<<s[i].english<<" "<<s[i].grade<<endl;
    }
}
void sort2(Student s[],int n)
{
    int i,j=0;
    cout<<"学号  姓名 C++ 数学 英语 总分"<<endl;
    for(i=0; i<n; i++)
    {
        if(s[i].cpp>60&&s[i].math>60&&s[i].english>60&&j<30)
        {
            j++;

            cout<<s[i].num<<" "<<s[i].name<<" "<<s[i].cpp<<" "<<s[i].math<<" "<<s[i].english<<" "<<s[i].grade<<endl;
        }
        if(j==30)
            break;
    }
}






感悟 做了一个半小时才做好了 老是出现一些平常出现的错误 心太乱  静下心来 继续努力

bubuko.com,布布扣

二周 项目3 文件+结构体实现使用功能,布布扣,bubuko.com

二周 项目3 文件+结构体实现使用功能

原文:http://blog.csdn.net/u012369106/article/details/20647897

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!