1. 程式人生 > >C++之基於STL的基本學生資訊系統開發(vector/algorithm/functional)

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