c++学生管理系统(STL)
来源:互联网 发布:金山软件框架 编辑:程序博客网 时间:2024/06/09 19:04
哥小白刚刚涉及一些STL想巩固之前学的C++和STL,
c++第一次用类,复制构造函数和操作符重载,STL写学生管理系统,,可惜没用继承多态(不知道哪里可以用 - _-)
写这么长代码,想了很久没思路,看了看别人代码思路,自己也写了这个简单的管理系统
自己用到了C++11新语法,vs2010以下编译器不会通过
STL的sort和(Greate<T>())均不会用,于是百度其用法,感谢百度,感谢度娘
*******************************************************************
time:2015 1月13日 0:15分
代码:343行
by:隐无影
c++第一次用类,复制构造函数和操作符重载,STL写学生管理系统,,可惜没用继承多态(不知道哪里可以用 - _-)
写这么长代码,想了很久没思路,看了看别人代码思路,自己也写了这个简单的管理系统
自己用到了C++11新语法,vs2010以下编译器不会通过
STL的sort和(Greate<T>())均不会用,于是百度其用法,感谢百度,感谢度娘
*******************************************************************
time:2015 1月13日 0:15分
代码:343行
by:隐无影
*******************************************************************
#include<iostream>#include<fstream>//文件输入输出流头文件#include<list>//链表#include<string>#include<functional>//适配器#include <algorithm>//算法#include<windows.h>using namespace std;class Student//定义student类{public: string name; string ID; int grade; Student() //无参构造函数 //无初始化 { grade = 0; } Student(string &pname, string &pid, int &pgrade)//有参构造函数 { this->name = pname; this->ID = pid; this->grade = pgrade; } Student(const Student &st1)//拷贝构造函数 { this->name = st1.name; this->ID = st1.ID; this->grade = st1.grade; } Student &operator=(const Student &st1)//重载= { this->name = st1.name; this->ID = st1.ID; this->grade = st1.grade; } bool operator==(const Student &st1)const//重载== { return (grade == st1.grade) ? 1 : 0; } bool operator<(const Student &st1)const { return (grade <st1.grade) ? 1 : 0; } bool operator>(const Student &st1)const { return (grade>st1.grade) ? 1 : 0; }public: void print() { cout << "name :" << name << endl; cout << "ID :" << ID << endl; cout << "grade :" << grade << endl; cout << "-----------" << endl; }};list<Student> mylist;//学生链表void print(list<Student> &zlist){ auto it = zlist.begin();//c++11先语法 for (it; it != zlist.end(); ++it) { it->print(); }}void show()//主菜单{ cout << "+++++++++++++++++++++++++++++++++++++++++"<<endl; cout << "+++++++++++1.无影搜索+++++++++++" << endl; cout << "+++++++++++2.小曾排序+++++++++++" << endl; cout << "+++++++++++3.新童鞋加入+++++++++++" << endl; cout << "+++++++++++4.删除坏蛋+++++++++++" << endl; cout << "+++++++++++5.360显示+++++++++++" << endl; cout << "+++++++++++6.超级保存+++++++++++" << endl; cout << "+++++++++++7.无影清屏+++++++++++" << endl; cout << "+++++++++++8.退出曾BB系统+++++++++++" << endl; cout << "++++++++++++++++++++++++++++++++++++++++" << endl; }void xianshi(){ system("cls"); cout << "****************************************" << endl; cout << " 1----------按学号查询----------" << endl; cout << " 2----------按姓名查询----------" << endl; cout << " 3----------按成绩查询----------" << endl; cout << " 4----------返回" << endl; cout << "****************************************" << endl;}//查找学号void findxuehao(){ int flag = 0; cout << "曾BB提示输入学号" << std::endl; string str1; cin >> str1; auto it = mylist.begin(); for (; it != mylist.end(); ++it) { if (str1 == it->ID) { cout << "找到该童鞋" << std::endl; it->print(); flag = 1; break; } } if (flag == 0) { std::cout << "没找到,请百度哦" << std::endl; }}//查找名字void findmingzi(){ int flag = 0; cout << "曾BB提示输入名字" << std::endl; string str1; cin >> str1; auto it = mylist.begin(); for (; it != mylist.end(); ++it) { if (str1 == it->name) { cout << "找到该童鞋" << std::endl; it->print(); flag = 1; break; } } if (flag == 0) { std::cout << "没找到,请百度哦" << std::endl; }}//分数查找void findfenshu(){ int flag = 0; cout << "曾BB提示输入分数" << std::endl; int num; cin >> num; auto it = mylist.begin(); for (; it != mylist.end(); ++it) { if (num == it->grade) { cout << "找到该童鞋" << std::endl; it->print(); flag = 1; break; } } if (flag == 0) { std::cout << "没找到,请百度哦" << std::endl; }}//排序void sortpaixu() //这里还有些不明白{ system("cls"); cout << "分数排序完毕" << std::endl; mylist.sort(greater<Student>()); auto it = mylist.begin(); for (; it != mylist.end(); ++it) { it->print(); }}//插入一个学生void insert(){ system("cls"); cout << "学号多少" << endl; string str1; cin >> str1; cout << "姓名多少" << endl; string str2; cin >> str2; cout << "分数呵呵,你懂得" << endl; int num; cin >> num; Student one(str2, str1, num); mylist.push_back(one); //std::cout << mylist.size() << endl; std::cout << "要不要再显示呢 y or n" << endl; char ch; cin >> ch; if (ch == 'y') { for (auto it= mylist.begin(); it != mylist.end(); ++it) { (it)->print(); } } else { std::cout << "那就算了吧,下次哇" << endl; Sleep(2000); system("cls"); }}//删除学生void deletest(){ system("cls"); cout << "请输入要删除的学生" << endl; string str1; cin >> str1; int flag = 0; for (auto it = mylist.begin(); it != mylist.end(); it++) { if (str1 == it->ID) { std::cout << "找到该学生" << std::endl; it->print(); mylist.erase(it); cout << "删除OK" << endl; flag = 1; } break; } if (flag == 0) { std::cout << "没有找到" << std::endl; }}//存储文件void savefile(){ system("cls"); ofstream ofile("student.dat", ios::out); if (!ofile) { std::cout << "文件打开失败" << std::endl; return ; } for (auto it = mylist.begin(); it != mylist.end(); ++it) { ofile << it->name << ' ' << it->ID << ' ' << it->grade << endl; } std::cout << "ok" << endl;}//读出文件void duchu(){ ifstream ifle("student.dat"); if (!ifle) { std::cout << "文件打开失败" << endl; } for (auto it = mylist.begin(); it != mylist.end(); ++it) { string str1, str2; int num; ifle >> str1 >> str2 >> num; std::cout << "名字 " << str1 << endl; std::cout << "学号" << str2 << endl; std::cout << "成绩" << num << endl; } }int main(){ cout << "----------------欢迎进入曾BB学生管理系统------------------" << endl; MessageBoxA(NULL, "欢迎欢迎,热烈欢迎", "曾哥欢迎", 1); char ch; show(); while (cin >> ch) { switch (ch) { case'1'://搜索 xianshi(); while (cin >> ch) { int flag = 0; switch (ch) { case'1': findxuehao(); break; case'2': findmingzi(); break; case '3': findfenshu(); break; case'4': flag = 1; break; default: flag = 1; break; } if (flag == 1) { break; } } break; case'2': sortpaixu(); break;//排序 case'3': insert(); break;//增加 case'4': deletest(); break;//删除 case'5': print(mylist); break;//输出 case'6': savefile(); break;//存储 case'7': system("cls"); break;//清除 case'8': return 0; default: return 0; } show(); } cout << "=======曾BB系统要和你说byebye喽" << endl; system("pause"); return 0;}
0 0
- stl 学生管理系统
- c++学生管理系统(STL)
- STL-Lesson003_学生管理系统
- C语言版学生管理系统
- c控制台学生管理系统
- C语言学生管理系统
- 课程设计:学生管理系统(c++)
- 学生管理系统(c语言)
- 学生管理系统c语言
- C语言学生管理系统
- c语言版学生管理系统
- C语言学生管理系统
- C语言版学生管理系统
- 学生管理系统 c语言
- 项目:学生管理系统[C++]
- 链表实现c学生管理系统
- [C++]简单版学生管理系统(结构)
- 嵌入式之LINUX--C学生管理系统
- iOS摄像头和相册-UIImagePickerController-浅析
- 【Cocos2d-x】PhysicsEditor的使用
- LeetCode--Combinations
- 【数据结构课程设计】信管1133何景涛201311671308
- 网络协议栈和tcpdump抓包练习
- c++学生管理系统(STL)
- 子子撰足椎撞踪壮专拽尊拽醉尊桌状作庄
- 宗走装足锥渍纵注拙足撞揍纵综嘴醉追锥
- DES加密算法笔记
- 黑马程序员——Java之面向对象
- 砖资踪祖拽尊孜昨宗子踪拙状孜座昨组驻
- 捉综锥装柞罪仔宗族柞座自谆棕卓棕撰仔
- 住滋阻驻兹阻妆砖嘴撰做做撰座姿状谞渍
- 滓遵综咨滓奏专阻族籽酌钻谆浊姿咨醉子