C++第2周项目2——读取数据到结构体数组

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8635385

【项目2-读取数据到结构体数组】score.txt(从本文后粘贴自建)中是一些同学的学号、姓名、C++、高数、英语成绩,定义一个学生成绩的结构体数组,其中的成员包括学号(char num[12])、姓名(name)、三门课的成绩(grade)、总分(score))。
(1)从文件中读出数据,存放到你定义的结构体数组中;
(2)输出结构体数组中所有同学的记录。

  提示:我们初次对文件的操作,在上学期的第11周上机实践中,见http://blog.csdn.net/sxhelijian/article/details/8167913 和http://blog.csdn.net/sxhelijian/article/details/8141924,关于文件操作的指导,见博文“C++文件操作初体验”http://blog.csdn.net/sxhelijian/article/details/8126812

  参考解答:

#include <iostream>
#include <fstream>
#include <cstdlib>  //在codeblocks下,exit(1)需要这个头文件
using namespace std;
struct Student
{
    char num[13]; //尽管都是由数字构成,但看作为字符更合适。学号12位,定义为13个字符,便于处理成字符串
    char name[10]; //每个汉字占两个字节,中国人的名字,5个汉字够用
    int cpp;
    int math;
    int english;
    int grade;
};
const int N=200;
int main( )
{
    int i, stuNum=0;
    //定义结构体数组
    Student stu[N];

    //下面从文件中读取数据到结构体数组,在读入的过程中计算总分
    ifstream infile("score.txt",ios::in); 	//以输入的方式打开文件
    if(!infile)   				//测试是否成功打开
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
    i=0;
    while(!infile.eof())
    {
        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();
    for(i=0; i<stuNum; ++i)
    {
        cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"<<stu[i].cpp<<"\t"<<stu[i].math<<"\t"<<stu[i].english<<"\t"<<stu[i].grade<<endl;
    }
    return 0;
}

score.txt文件内容:

201152501104 田程 65 69 68 
201152501114 杨金龙 94 89 63 
201152501115 周琳霄 92 84 60 
201152501138 张强 67 62 84 
201152501140 郑好 80 60 86 
201152501145 曹为尚 88 56 67 
201152501201 倪婷 80 92 71 
201152501202 李奥 59 80 55 
201152501203 张佳怡 62 62 95 
201152501204 邓臣冬 100 65 91 
201152501205 汪美娟 73 90 94 
201152501206 赵格君 96 80 58 
201152501207 张文韬 91 63 91 
201152501208 车宜霖 88 84 79 
201152501209 刘正 61 79 99 
201152501210 李东航 62 58 66 
201152501211 李华 96 96 83 
201152501212 李晓鹏 73 88 93 
201152501213 姜君孝 69 64 62 
201152501214 董越 74 59 69 
201152501215 赵浚源 63 58 96 
201152501216 宫凡奇 89 82 60 
201152501217 张咏晖 94 89 77 
201152501218 丁梦瑶 78 93 58 
201152501219 金婷 75 87 84 
201152501220 张娟 90 65 62 
201152501221 姜莉 76 78 81 
201152501222 孙亚雯 90 87 73 
201152501223 郭重 88 68 63 
201152501224 王潇哲 85 94 97 
201152501225 宋心洁 99 69 82 
201152501226 杜婧霏 91 80 98 
201152501227 于晓霞 69 72 99 
201152501228 王莉莉 84 95 94 
201152501229 万雅璐 98 95 64 
201152501230 曲淑霞 67 100 83 
201152501231 高晶 98 81 67 
201152501232 于泽莹 67 64 77 
201152501233 李婧怡 84 72 90 
201152501234 姚宇 92 78 95 
201152501235 于超 87 82 86 
201152501236 李剑 78 86 95 
201152501237 孟雨薇 66 64 58 
201152501238 孙华泽 98 98 74 
201152501239 朱绮梦 73 83 96 
201152501240 周易 56 69 84 
201152501241 蔡庆 60 78 71 
201152501242 姜懿宸 86 94 59 
201152501243 孙雪梅 64 92 66 
201152501244 李芊潭 97 100 55 
201152501245 周祥 100 86 74 
201152501246 吐鲁洪江 73 94 75 
201153503240 王婷婷 68 73 69 
201153503242 宗雪燕 60 82 61 
201153503243 于小涵 79 60 78 
201153503245 钟艺 82 91 97 
201153503246 耿清敏 67 77 60 
201153503248 耿梦启 79 100 57 
201153503249 刘轩辰 59 86 90 
201153503251 贺巧霞 56 87 88 
201153503254 张丽芳 57 81 87 
201154503207 刘蕊 57 89 69 
201158501330 李涛 96 89 73 
201158501332 张新明 68 59 64 
201158501334 曹文战 82 89 73 
201160602108 孔令涛 63 86 80 
201160602124 刘大伟 96 69 98 
201163501101 孟站 58 100 70 
201163501102 王超奇 75 63 89 
201163501104 周涛 68 95 84 
201163501105 贾治国 86 84 100 
201163501106 杨磊 92 66 88 
201163501107 万建新 71 56 83 
201163501108 李宁 70 95 73 
201163501110 赵江彦 58 63 79 
201163501111 杜俊一 61 75 70 
201163501113 邢士峰 56 70 66 
201163501114 李传良 95 90 86 
201163501115 宋吉超 78 91 80 
201163501118 赵方义 70 100 94 
201163501119 闫鲁梅 72 80 100 
201163501121 张明珠 83 89 65 
201163501122 刘沙沙 86 94 71 
201163501123 张星雨 57 82 87 
201163501125 王晓佳 68 97 65 
201163501129 周立军 75 89 87 
201163501130 周颖颖 80 95 68 
201163501131 许倩 71 69 80 
201163501132 于克美 57 82 63 
201163501133 姜芹 89 99 88 
201163501134 姚华玲 75 80 75 
201163501135 杨慧 75 73 70 
201163501136 于媛 73 89 69 
201163501137 杨晓 61 96 74 
201163501139 季莹 71 87 68 
201163501140 周梦如 85 97 77 
201163501228 杨芳艳 57 70 87 
201163501230 吴红丽 55 63 84 
201163501231 程铭 90 77 79 
201163501232 刘雪 65 86 95 
201163501234 黄瑶 100 78 71 
201163502202 陈佩鸿 71 78 76 
201163502204 王晓北 74 56 60 
201163502205 冯科峰 57 79 73 
201163502206 亢亚伟 95 96 79 
201163502207 李梦 87 55 69 
201163502208 何文豪 99 73 85 
201163502210 王柯 60 63 67 
201163502211 唐科军 99 56 66 
201163502212 刘帅 67 92 74 
201163502214 邓佩云 56 55 89 
201163502215 尹琪 92 98 62 
201163502216 丛林 67 93 75 
201163502217 赵东超 59 60 90 
201163502220 郭鹏飞 83 70 96 
201163502221 王金梯 64 92 99 
201163502227 王学 81 63 79 
201163502229 莫敏 80 55 86 
201163502230 李辉 60 70 84 
201163502231 欧阳燕平 75 90 86 
201163502233 任金梅 83 55 91 
201163502238 董文平 55 73 89 
201163502239 王骎 56 60 59 
201163502241 陈龙 78 72 68 
201163502243 杨康迪 82 100 67 
201163503120 邵娅楠 66 73 89 
201163503124 盛善爱 87 70 90 
201163503125 吴秋宇 56 94 77 
201163503127 赵亚振 69 78 89 
201163503128 尹源 66 79 81 
201163503138 张伟凤 71 90 73 
201163503143 刘超超 62 93 95 
201169503132 赵雅楠 100 86 81 
201169503140 高美 58 94 57 
201169503141 宁晓波 98 62 75 
201169503142 王丹 89 70 89 
201169503143 朱影 55 64 63 
201169503144 杨玉萍 73 74 98 
201169503145 魏颖颖 84 57 57 
201170501147 任丽颖 84 64 72 
201170501148 娄俊杰 99 61 86 
201170501155 郭宏超 57 62 97 
201170501156 张伟 100 68 66 
201170501201 杨茂林 55 71 88 
201170501247 范雯婷 77 94 79 
201170502105 齐鹏 87 98 89 
201170502106 尹承志 64 84 75 
201170502107 丁友剑 89 85 71 
201170502108 王旭 71 88 64 
201170502113 王伟杰 100 80 64 
201170502114 齐国鑫 93 92 71 
201170502115 孙琦琦 85 74 70 
201170502116 孙中华 59 61 60 
201170502117 马中平 93 74 58 
201170502118 张秘 64 72 74 
201170502119 杨其星 89 66 83 
201170502120 赵加玉 69 93 99 
201170502121 徐长清 98 81 62 
201170502122 刘小虎 77 65 79 
201170502125 柴志军 94 61 75 
201170502130 张伟平 78 92 100 
201170502131 丁邱红 67 87 100 
201170502134 刘盼 78 67 93 
201170502135 李文洁 56 68 81 
201170502136 车丽娜 99 55 63 
201170502137 李馥辛 100 77 59 
201170502138 刘群 69 79 83 
201170502139 石雨 73 62 93 
201170502140 蔡冬雪 62 56 71 
201170502141 季传贞 86 96 71 
201170502222 李发庭 85 83 82 
201170505101 蔡杭 84 60 90 
201170505249 张倩倩 94 82 68 
201170504112 徐志娇 80 93 76 
201170504113 王彦 96 99 62 
201170504114 夏冬梅 91 87 87 
201170504115 王晶 85 91 57 
201170504116 宁新梅 59 68 68 
201170504124 房饷妤 90 79 66 
201170504142 王甜 57 82 80 

时间: 2024-08-10 23:53:36

C++第2周项目2——读取数据到结构体数组的相关文章

2014秋C++第17周 项目7参考 电子词典结构体版

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  [项目7-电子词典结构体版]做一个简单的电子词典.在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个,英文.中文释义与词性间用'\t'隔开.编程序,由用户输入英文词,显示词性和中文释义.提示1:定义一个Word结构体表示一个词条,其中的数据成员string

第17周报告1:结构体数组

任务:score.txt中是一些同学的学号.姓名.C++.高数.英语成绩,定义一个学生成绩的结构体数组,其中的成员包括学号(char num[12]).姓名(name).三门课的成绩(grade).总分(score)).建议将某些功能设计成自定义函数. (1)从文件中读出数据,存放到你定义的结构体数组中: (2)求出每名同学的总分(可以读入过程中"顺便"计算): (3)按总分排序(降序): (4)输出排序后的成绩单: (5)有30名同学可以获得奖学金,规则是总分高者优先,有挂科不能得奖

c++按列读取文件-c++从一两列文件按列读取数据到两一维数组中

问题描述 c++从一两列文件按列读取数据到两一维数组中 数据如下: 0.00 882.197 8.35 877.375 15.66 871.794 27.24 864.176 37.27 855.956 41.28 852.139 43.72 848.769 55.84 838.139 71.62 825.459 82.78 820.639 98.28 817.389 109.84 817.409 125.86 817.949 136.84 817.469 152.48 817.829 163.

C++第2周项目3——用结构体数组作计算

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8635385 [项目3-用结构体数组作计算]接项目2,(1)从文件中读出数据,存放到你定义的结构体数组中,即项目2(1):(2)求出每名同学的总分(可以在读入过程中"顺便"计算):(3)按总分排序(降序):(4)输出排序后的成绩单:(5)有30名同学可

C++第1周项目3——结构体数组处理学生成绩

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目3]每位同学的信息学号.姓名.C++.高数.英语成绩,定义一个学生成绩的结构体数组,其中的数据成员包括学号(char num[12]).姓名(name).三门课的成绩(grade).总分(score).均分(average)).(1)从键盘上输入5名学生的信息:(2)求出每名同学的总分和均分,并存储在结构体数组中(可以读入过程中"顺便"计算):(3)输出求

C++第2周(春)项目2 有序的结构体数组

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 [项目2-有序的结构体数组]使用同项目1相同的结构体类型,在main函数中已经对结构体数组进行了初始化,请完成相关函数的定义,实现main函数中要求的功能. struct Student //同项目1 { -- }; void calculate(Student s[],int n); //计算总分和均分,数据在s数组中,共有n个元素 void sort1(Student

struct-结构体初始化问题, 定义了结构体和结构体数组,结构体中想存的数据写在了txt文件中,我该怎么做初始化

问题描述 结构体初始化问题, 定义了结构体和结构体数组,结构体中想存的数据写在了txt文件中,我该怎么做初始化 定义了结构体和结构体数组,结构体中想存的数据写在了txt文件中,我该怎么做初始化//定义结构体//struct achievement{int number; char name[20]; char sex; float achievement1achievement2achievement3;}tab_achievement[N]; 解决方案 写一个循环,从txt中读取数据,然后赋值

c++-请问在C++中,结构体数组类型能作为类的数据成员吗?

问题描述 请问在C++中,结构体数组类型能作为类的数据成员吗? 我想让自己构造一个结构体数组来存储记录,结构体数组类型能作为类的数据成员吗? 解决方案 just do it 解决方案二: 可以.实现的时候注意不要出错就可以. 解决方案三: 可以,c++中结构体和类除了默认访问控制符外没什么区别,一个类的对象可以作为另外一个类的成员数据,结构体当然可以 解决方案四: 可以啊,结构体不过是扩展了的int float等等 解决方案五: 当然可以不过我觉得你还不如重新写个class作为专门存储数据 解决

C#中怎么读取Struct(结构体)文件!!!!???大虾帮帮我啊。。。。。

问题描述 做项目需要读取一个.DAT文件,这个文件是别人给的,里面记录了一些调试需要用到的参数,是用结构体(Struct)写成的,用的是C++写的.....现在我拿到了这个.dat文件的结构,里面大致形式为(嵌套的结构体):structA{...structB{....structC{.....}}}好像用C++读取很容易,但我目前的软件都是用C#写的,只能在C#里面读了,这个要怎么读啊?网上找了一些资料,看上去好复杂,哪位大虾能详细的讲一下啊,谢谢!!!!还有,我曾经想过是否可以用C++写一个