第17周报告1:
实验目的:学会利用结构数组
实验内容:定义一个结构数组,并对学生成绩进行排序。
* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><br> * 作<wbr><wbr><wbr> 者:<wbr><wbr>雷恒鑫<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><br> * 完成日期:<wbr><wbr><wbr><wbr><wbr><wbr><wbr>2011<wbr> 年<wbr><wbr><wbr><wbr><wbr><wbr>12 月<wbr>14<wbr><wbr><wbr><wbr><wbr><wbr> 日<br> * 版本号:<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> V1.0<br><br> * 对任务及求解方法的描述部分<br> * 输入描述:从文件中读入学生数据</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
* 问题描述:如何利用结构数组对学生成绩进行排序。
* 程序输出:排序后的结果
* 程序头部的注释结束(此处也删除了斜杠)
#include <fstream>
#include <iostream>
using namespace std;
struct subject
{
<wbr>double chinese;<br><wbr>double math;<br><wbr>double english;<br> };<br> struct student<br> {<br><wbr>char num[12];<br><wbr>char name[12];<br><wbr>subject grade;<br><wbr>double score;<br> };<br> student stu[180];<br> int main()<br> {<br><wbr>student student1;<br><wbr>int i,j;<br><wbr>double t;<br><wbr>ifstream infile("score.txt",ios::in);<br><wbr>if (!infile)<br><wbr>{<br><wbr><wbr>cerr<<"open error!"<<endl;<br><wbr><wbr>exit(1);<br><wbr>}<br><wbr>for(i=0;i<180;i++)<br><wbr>{<br><wbr><wbr>infile>>stu[i].num>>stu[i].name>>stu[i].grade.chinese>>stu[i].grade.math>>stu[i].grade.english;<br><wbr><wbr>stu[i].score=stu[i].grade.chinese+stu[i].grade.math+stu[i].grade.english;<br><wbr>}<br><wbr>infile.close();<br><wbr>for(i=0;i<180;i++)<br><wbr>{<br><wbr><wbr>cout<<stu[i].name<<"同学的总分为:"<<stu[i].score<<'\t';<br><wbr>}<br><wbr>cout<<endl;<br><wbr>for(j=0;j<180-1;j++)<br><wbr><wbr>for(i=0;i<180-1-j;i++)<br><wbr><wbr><wbr>if(stu[i].score<stu[i+1].score)<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>student1=stu[i];<br><wbr><wbr><wbr><wbr>stu[i]=stu[i+1];<br><wbr><wbr><wbr><wbr>stu[i+1]=student1;<br><wbr><wbr><wbr>}<br><wbr><wbr><wbr>cout<<"排序后的成绩单为:"<<endl;<br><wbr><wbr><wbr>for(i=0;i<180;i++)<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><br><wbr><wbr><wbr><wbr>cout<<stu[i].num<<'\t'<<stu[i].name<<'\t'<<stu[i].grade.chinese<<'\t'<<stu[i].grade.math<<'\t'<<stu[i].grade.english<<'\t'<<stu[i].score<<endl;<br><wbr><wbr><wbr>}<br><wbr><wbr><wbr>cout<<"获得奖金同学的名单为:"<<endl;<br><wbr><wbr><wbr>for(i=0;i<=30;i++)<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>if(stu[i].grade.chinese && stu[i].grade.math && stu[i].grade.english>=60)<br><wbr><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr>cout<<stu[i].name<<'\t';<br><wbr><wbr><wbr><wbr>}<br><wbr><wbr><wbr>}<br><wbr><wbr><wbr>cout<<endl;<br><wbr><wbr><wbr>return 0;<br> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
运行结果:
经验积累:
1.如果想要对结构数组stu[i]排序需定义一个结构体变量student student1。
2.
3.
上机感言:
原来表格可以用结构数组做出来,
结构数组功能挺强大的。
贺老师,黑窗口中学号后面两个相同的名字如何去掉一个?