博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
STL之List存储结构体
阅读量:5063 次
发布时间:2019-06-12

本文共 2471 字,大约阅读时间需要 8 分钟。

题目描述:

  编写程序,实现如下学生信息处理功能(要求用List链表实现)
  1) 输入每个学生的信息(学号、姓名、性别及三门课程成绩);
  2) 插入学生信息;
  3) 删除学生信息;
  4) 输入某学生姓名,显示该生的信息;
  5) 计算全班每名学生的平均成绩,并显示;

测试代码:

#include 
#include
#include
#include
using std::cin;using std::cout;using std::endl;using std::string;using std::list;using std::find_if;typedef struct{ double m_chinese; // 语文成绩 double m_math; // 数学成绩 double m_english; // 英语成绩 double m_average; // 平均成绩}Score;typedef struct{ string m_id; // 学号 string m_name; // 姓名 string m_sex; // 性别 Score m_grade; // 成绩}Student;typedef list
StuList;typedef StuList::iterator StuListIt;/* 输入学生信息 */Student InputStudentInfo(){ Student stu; cout << "请输入学生的学号、姓名、性别、三门成绩:" << endl; cin >> stu.m_id >> stu.m_name >> stu.m_sex; cin >> stu.m_grade.m_chinese >> stu.m_grade.m_math >> stu.m_grade.m_english; return stu;}/* 遍历学生信息 */void PrintAllStudent(StuList stulist){ for (Student s : stulist) { cout << s.m_id << " " << s.m_name << " " << s.m_sex << " " << s.m_grade.m_chinese << " " << s.m_grade.m_math << " " << s.m_grade.m_english << endl; }}int main(void){ StuList stulist; Student stu; /* 输入学生信息 */ stu = InputStudentInfo(); stulist.push_back(stu); PrintAllStudent(stulist); /* 插入学生信息 */ stu = InputStudentInfo(); stulist.push_front(stu); PrintAllStudent(stulist); /* 删除学生信息 */ string _strName; cout << "请输入要删除学生的姓名:" << endl; cin >> _strName; // lambdas表达式 stulist.remove_if([_strName](Student s) {
return (s.m_name == _strName); }); PrintAllStudent(stulist); /* 查询学生信息 */ cout << "请输入要查询学生的姓名:" << endl; cin >> _strName; for (Student& s : stulist) { if (s.m_name == _strName) { cout << s.m_id << " " << s.m_name << " " << s.m_sex << " " << s.m_grade.m_chinese << " " << s.m_grade.m_math << " " << s.m_grade.m_english << endl; break; } } /* 计算每个学生的平均成绩 */ for (Student& s : stulist) { s.m_grade.m_average = (s.m_grade.m_chinese + s.m_grade.m_math + s.m_grade.m_english) / 3.0; cout << s.m_id << " " << s.m_name << " " << s.m_sex << " " << s.m_grade.m_chinese << " " << s.m_grade.m_math << " " << s.m_grade.m_english << s.m_grade.m_average << endl; } return 0;}

转载于:https://www.cnblogs.com/maxin/p/6802010.html

你可能感兴趣的文章
FZU2219 StarCraft(哈夫曼树)
查看>>
转载:送给和我一样曾经浮躁过的PHP程序猿
查看>>
easyui获取行,js的eval函数转对象
查看>>
机器学习资料
查看>>
【数据挖掘】降维(PCA、流形学习)
查看>>
pku 1639 Picnic Planning 最小度限制生成树
查看>>
生活中残忍的真相
查看>>
HTTP隧道工具HTTPTunnel
查看>>
问题账户需求分析
查看>>
python UI自动化实战记录九:添加日志
查看>>
mysql关键字了解
查看>>
Adhesive框架系列文章--Mongodb数据服务使用实践
查看>>
对二维数据进行边界拓展
查看>>
asp.net 验证控件
查看>>
评论列表显示及排序,个人中心显示
查看>>
微软职位内部推荐-Software Engineer II
查看>>
区分Integer.getInteger和Integer.valueOf使用方法
查看>>
MySQL oracle 分页
查看>>
iOS基础-UIKit框架-触摸事件-响应者链条
查看>>
8组第一次会议
查看>>