C++之基於STL的基本學生資訊系統開發(vector/algorithm/functional)
轉載請註明出處:http://my.csdn.net/feng1790291543
系統專案:學習STL之後,編寫一個學生資訊系統,實現簡單的增、刪、查、改等等功能
類標頭檔案——Student.h
// Student.h: interface for the CStudent class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_STUDENT_H__18055DAC_8015_4944_AF62_E78B8EBB233D__INCLUDED_) #define AFX_STUDENT_H__18055DAC_8015_4944_AF62_E78B8EBB233D__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include <string> #include <vector> using namespace std; class CStudent { private: int StudentNumber; string StudnetName; vector<CStudent *> student; vector<CStudent> student2; public: CStudent(); virtual ~CStudent(); CStudent(int StudentNumber,string StudnetName); void add_student(); //增加學生資訊 void print_student(); //列印學生資訊------->(All) void print(); bool operator<(CStudent &stu); //過載學生學號比較大小 void SortStudent(); //給學生資訊排序 bool operator()(CStudent &other); //過載函式,模擬回撥函式 void FindStudent(); //查詢某個學生資訊 void DeleteAllStudent(); //刪除所有學生資訊--->(All) void DeleteOneStudent(); //刪除一個學生 }; #endif // !defined(AFX_STUDENT_H__18055DAC_8015_4944_AF62_E78B8EBB233D__INCLUDED_)
Student.cpp源程式函式的實現:
// Student.cpp: implementation of the CStudent class. // ////////////////////////////////////////////////////////////////////// #include "Student.h" #include <iostream> #include <vector> #include <algorithm> #include <functional> using namespace std; ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CStudent::CStudent() { } CStudent::~CStudent() { cout<<"呼叫解構函式."<<endl; return ; } CStudent::CStudent(int StudentNumber,string StudnetName) { this->StudentNumber=StudentNumber; this->StudnetName=StudnetName; return ; } void CStudent::add_student() //增加學生資訊 { cout<<"增加學生."<<endl; int number; string name; cout<<"學生學號:"; cin>>number; cout<<"學生姓名:"; cin>>name; CStudent stu(number,name); student2.push_back(stu); return ; } void CStudent::print() { cout<<"學號:"<<this->StudentNumber<<"姓名:"<<this->StudnetName<<endl; return ; } void CStudent::print_student() //列印學生資訊------->(All) { cout<<"列印所有學生的資訊."<<endl; for(vector<CStudent>::iterator it=student2.begin();it!=student2.end();it++) //容器從頭遍歷到尾,end是最後一個元素的後一個 { (*it).print(); } return ; } bool CStudent::operator<(CStudent &stu) //過載學生學號比較大小 { return StudentNumber<stu.StudentNumber; } void CStudent::SortStudent() //給學生資訊排序 { sort(student2.begin(),student2.end()); //sort演算法,要增加標頭檔案algorithm;預設從小到大排,預設呼叫operator< ()過載函式 for(vector<CStudent>::iterator it=student2.begin();it!=student2.end();it++) { (*it).print(); } cout<<endl; return ; } bool CStudent::operator()(CStudent &other) //過載函式,模擬回撥函式 { bool flag; if(this->StudentNumber==other.StudentNumber||this->StudnetName==other.StudnetName) { flag=true; } else { flag=false; } return flag; } void CStudent::FindStudent() //查詢某個學生資訊 { int number; string name; cout<<"學生學號:"; cin>>number; cout<<"學生姓名:"; cin>>name; CStudent stu(number,name); vector<CStudent>::iterator result=find_if(student2.begin(),student2.end(),stu); if(result!=student2.end()) { cout<<"Find it:\t"; (*result).print(); } cout<<endl; return ; } void CStudent::DeleteAllStudent() //刪除所有學生資訊--->(All) { student.clear(); return ; } void CStudent::DeleteOneStudent() //刪除一個學生 { int number; string name; cout<<"學生學號:"; cin>>number; cout<<"學生姓名:"; cin>>name; CStudent stu(number,name); vector<CStudent>::iterator result=find_if(student2.begin(),student2.end(),stu); //預設呼叫operator()括號過載函式 if(result!=student2.end()) { student2.erase(result); //刪除位置 } cout<<endl; }
main.cpp
執行效果:#include "Student.h" #include <iostream> #include <vector> #include <algorithm> #include <functional> using namespace std; int main() { int flag; CStudent s; while(1) { cout<<"1--增加學生資訊."<<endl; cout<<"2--列印學生資訊."<<endl; cout<<"3--按學號查詢學生資訊."<<endl; cout<<"4--刪除全部學生資訊"<<endl; cout<<"5--刪除指定學生資訊."<<endl; cout<<"6--學生資訊排序."<<endl; cout<<"0--退出系統."<<endl; cin>>flag; switch(flag) { case 1: cout<<"增加學生資訊."<<endl; s.add_student(); break; case 2: cout<<"列印學生資訊."<<endl; s.print_student(); break; case 3: cout<<"按學號查詢學生資訊:"<<endl; s.FindStudent(); break; case 4: cout<<"刪除全部學生資訊"<<endl; s.DeleteAllStudent(); break; case 5: cout<<"刪除指定學生資訊,輸入學生學號:"<<endl; s.DeleteOneStudent(); break; case 6: cout<<"學生資訊排序."<<endl; s.SortStudent(); break; case 0: cout<<"退出系統."<<endl; return 1; default: break; } } return 0; }
相關推薦
C++之基於STL的基本學生資訊系統開發(vector/algorithm/functional)
轉載請註明出處:http://my.csdn.net/feng1790291543 系統專案:學習STL之後,編寫一個學生資訊系統,實現簡單的增、刪、查、改等等功能 類標頭檔案——Student.h // Student.h: interface for the CStu
JSP實戰專案教程|基於JSP的學生請假系統開發視訊教程
基於JSP的學生請假系統開發視訊教程 課程介紹 : 課程來源於:學途無憂網 課程講師:大華老師 課程介紹地址:http://www.xuetuwuyou.com/course/11 課程下載地址:連結: http://pan.baidu.com/s/1nth9PJ7 密碼:
JavaWeb學習入門之——圖書館管理系統開發(Hibernate學習1)
pass ica void 技術分享 gets 學習 images 創建 driver 最近看了看JavaWeb的書籍,才感覺到大二時候學的JavaWeb才僅僅只是個入門。最尷尬的當初還沒咋學一直在看.NET,現在看起來JavaWeb,各種框架各種頭疼啊。看了幾個例子之後覺
python寫的簡答學生管理系統Demo(練習python語法)
python寫的簡單的學生管理系統,練習python語法。 可以執行在windows和linux下,python 2.7。 #!/usr/local/bin/python # -*- coding:utf-8 -*- import os import re #定義學生
基於Python的使用者管理系統實現(註冊、登入)
基於Python的使用者管理小系統,包含檔案讀寫操作,實現了使用者資訊註冊和登入的簡單功能。 class userLogReg: """ Created on 2018.11 @author: tox33 """ def __init__(self):
大資料入門基礎系列之初步認識大資料生態系統圈(博主推薦)
不多說,直接上乾貨! 之前在微信公眾平臺裡寫過 大資料入門基礎系列之初步認識hadoop生態系統圈 http://mp.weixin.qq.com/s/KE09U5AbFnEdwht44FGrOA 大資料入門基礎系列之初步認識大資料生態系統圈 1.概述
React共享單車後臺管理系統開發(記錄筆記5)——5.1 From元件登入頁面
5.1 From元件登入頁面 具有資料收集、校驗和提交功能的表單,包含複選框、單選框、輸入框、下拉選擇框等元素。 文章目錄 5.1 From元件登入頁面 @[toc] 一.內聯表單(基礎表單) 二
React共享單車後臺管理系統開發(記錄筆記4)——4.7 Carousel輪播圖
4.7 Carousel輪播圖 Carousel走馬燈 文章目錄 4.7 Carousel輪播圖 @[toc] 一.文字背景輪播 二.圖片輪播 API Carou
React共享單車後臺管理系統開發(記錄筆記4)——4.6 gallery圖片畫廊
4.6 gallery圖片畫廊 實現類似照片牆的效果 文章目錄 4.6 gallery圖片畫廊 @[toc] map舉例 一.Tabs元件 二.例項一
React共享單車後臺管理系統開發(記錄筆記4)——4.5 Tabs標籤頁
4.5 Tabs標籤頁 選項卡切換元件。 文章目錄 4.5 Tabs標籤頁 一.Tabs元件 二.基本例項 三. Tab帶圖示頁籤 四. Tab可關閉卡片式頁籤 API[#](https://an
React共享單車後臺管理系統開發(記錄筆記2)——主頁面架構設計
本文基於React共享單車後臺管理系統的開發進行學習記錄,內含React生態系統的整體介紹及相關內容,最終成果物程式碼請參見最後一章。 一.基礎外掛安裝,Less檔案載入配置 安裝React-Router:yarn add react-router
某課網 React全家桶+AntD 共享單車後臺管理系統開發(1-7章)
第1章 課程導學 對課程整體進行介紹,並且說明學習的必要性。 1-1 課程導學 第2章 React基礎知識 React基礎知識以及生命週期的介紹,並使用React官方腳手架初始化基礎專案,同時介紹了新一代打包工具Yarn。 2-1 React基礎介紹 2-2 React腳手架
基於express的學生資訊管理系統
基於express的學生資訊管理系統 專案地址 專案簡介 簡單的學生資訊管理系統,後臺基於express,資料庫mysql,前端用到了一點vue,這次的團隊專案我主要是負責後端的部分,所以這裡對於前端程式碼不再贅述,只介紹後端部分以及一點點前端的js程式碼。 後端部分 //server.js var
基於WEB的學生資訊管理系統,java畢業設計專案
**基於WEB的學生資訊管理系統,java畢業設計專案** 基於WEB的學生資訊管理系統mysql資料庫建立語句 基於WEB的學生資訊管理系統oracle資料庫建立語句 基於WEB的學生資訊管理系統sqlserver資料庫建立語句 基於WEB的學生資訊管理系統spr
linux下使用C語言實現簡易的學生資訊管理系統
該專案資料儲存方式使用的是動態陣列,所以需要用到動態陣列庫,具體庫檔案參考->我的動態陣列庫<-上的兩個檔案 ArrayLib.h 和 ArrayLib.c 學生管理系統的檔案有三個 main.c、stuSystem.h 和 stuSystem.c,
基於QT的學生資訊管理系統開發
1.首先建立工程檔案,在建立過程中新增主視窗類以及對應的ui檔案。 Mainwindow.ui的介面如下: 下面分別實現上圖中4個按鈕的功能。我們用MYSQL來對學生的註冊資訊進行儲存。 2.編寫與MYSQL相關程式 建立類過程如下: #ifndef MYSQL_H
C++ 實現簡單命令行學生管理系統
什麽 cos wid 屏幕 cit 環境 iterator choice umeng C++ 實現簡單命令行學生管理系統 貼吧ID: 這把問題不大 編譯環境是macOS。system(“clear”) 在windows下請換成 system(“cls”) #include
修改學生資訊系統--實現新增選單和選擇選單操作功能
4.修改之前的學生管理系統,實現新增選單和選擇選單操作功能 選單: +-----------------------------------------------+ | 1)新增學生資訊 | |
框架之struts2實現簡易學生管理系統(struts2檔案上傳、分層)
cn.scxh.stumanger.model包: Student java類 package cn.scxh.stumanger.model; public class Student { private int id; private int number;
基於SSM框架學生管理系統的實現
這是我一年前做的專案的,算是SSM框架入門的例項,maven管理工具所用到的倉庫私服為阿里雲的倉庫。 整個專案的目錄: jdbc.properties是對資料庫資訊的配置: #mysql version database setting jdbc.drive