⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xueshengguanli.txt

📁 学生管理系统
💻 TXT
字号:
cclassmate.h 
cclassmate.cpp 
ClassmateLib.h 
classmatelib.cpp 
Classmate.cpp 
StdAfx.h 
StdAfx.cpp 
文件内容在后面列出来. 

Classmate.cpp是程序入口函数main所在的文件,其余的文件都是支持类文件,包括自定义类和标准库头文件引用. 
如果不会组织这些文件,留下QQ,我将整个工程传过去. 

以下是上面列出的文件的内容: 
/**************************** 
* filename : cclassmate.h 
* isware ,2006.11.16 
***************************/ 
#ifndef __CLASSMATE__H__ 
#define __CLASSMATE__H__ 

class CClassmate 
{ 
public: 
CClassmate(); 
~CClassmate(); 
void SetName(const string strName); 
string GetName() const; 
void SetSex(int iSex); 
int GetSex() const; 
void SetClass(const string strClass); 
string GetClass() const; 
void SetQQNum(int iQQ); 
int GetQQNum() const; 
void SetTelNum(const string strTel); 
string GetTelNum() const; 
friend ostream& operator<<(ostream& os,CClassmate& clm); 
friend istream& operator>>(istream& is,CClassmate& clm); 
private: 
string m_strName; 
int m_iSex; 
string m_strClass; 
int m_iQQ; 
string m_strTel; 
}; 

#endif 
/**************************** 
* filename : cclassmate.cpp 
* Lcisware ,2006.11.16 
***************************/ 
#include "stdafx.h" 
#include "cclassmate.h" 

CClassmate::CClassmate() 
{ 
m_iQQ = 0; 
m_iSex = -1; 
} 
CClassmate::~CClassmate() 
{ 
} 
void CClassmate::SetName(const string strName) 
{ 
m_strName = strName; 
} 

string CClassmate::GetName() const 
{ 
return m_strName; 
} 

void CClassmate::SetClass(const string strClass) 
{ 
m_strClass = strClass; 
} 

string CClassmate::GetClass() const 
{ 
return m_strClass; 
} 

void CClassmate::SetQQNum(int iQQ) 
{ 
m_iQQ = iQQ; 
} 

int CClassmate::GetQQNum() const 
{ 
return m_iQQ; 
} 

void CClassmate::SetSex(int iSex) 
{ 
m_iSex = iSex; 
} 

int CClassmate::GetSex() const 
{ 
return m_iSex; 
} 

void CClassmate::SetTelNum(const string strTel) 
{ 
m_strTel = strTel; 
} 

string CClassmate::GetTelNum() const 
{ 
return m_strTel; 
} 

ostream& operator<<(ostream& os,CClassmate& clm) 
{ 
os<<"当前同学的信息如下:\n"; 
os<<"姓名:"<<clm.m_strName<<'\t' 
<<"性别:"<<(clm.m_iSex?"男":"女")<<endl 
<<"班级:"<<clm.m_strClass<<'\t' 
<<"QQ号码:"<<clm.m_iQQ<<'\t' 
<<"电话:"<<clm.m_strTel<<endl; 
return os; 
} 

istream& operator>>(istream& is,CClassmate& clm) 
{ 
string strTemp; 
cout<<"输入姓名:"; 
is>>clm.m_strName; 
cout<<"输入性别:"; 
is>>strTemp; 
clm.m_iSex = strTemp == "男" ? 1:0; 
cout<<"输入班级:"; 
is>>clm.m_strClass; 
cout<<"输入QQ号:"; 
is>>clm.m_iQQ; 
cout<<"输入电话:"; 
is>>clm.m_strTel; 
return is; 
} 
/**************************** 
* filename : classmatelib.h 
* Lcisware ,2006.11.16 
***************************/ 
#ifndef __CLASSMATELIB__H__ 
#define __CLASSMATELIB__H__ 

#include "cclassmate.h" 

class CClassmateLib 
{ 
public: 
void Add(); 
CClassmateLib(); 
~CClassmateLib(); 
void Append(CClassmate* clm); 
void Find(); 
void ChangeItem(); 
void DeleteItem(); 
private: 
vector<CClassmate*> m_lib; 
vector<CClassmate*>::iterator m_curItem; 
}; 

#endif 
/**************************** 
* filename : classmatelib.cpp 
* Lcisware ,2006.11.16 
***************************/ 
#include "stdafx.h" 
#include "classmatelib.h" 

CClassmateLib::CClassmateLib() 
{ 
m_curItem = NULL; 
} 

CClassmateLib::~CClassmateLib() 
{ 
for(m_curItem = m_lib.begin();m_curItem != m_lib.end();m_curItem++) 
{ 
delete *m_curItem; 
} 
m_curItem = NULL; 
} 

void CClassmateLib::Append(CClassmate* clm) 
{ 
m_lib.push_back(clm); 
} 

void CClassmateLib::DeleteItem() 
{ 
string strName; 
int iSel; 
system("cls"); 
cout<<"1.删除当前同学的信息\n" 
<<"2.删除指定的同学的信息\n"; 
cout<<"输入你的选择:"; 
cin>>iSel; 
switch(iSel) 
{ 
case 1: 
if(m_curItem!=NULL) 
{ 
cout<<"当前同学的信息如下:\n" 
<<*(*m_curItem); 
cout<<"\n确定要删除当前同学?(y/n)"; 
while (cin.get()!='\n'); 
if(cin.get()=='y') 
{ 
delete *m_curItem; 
m_lib.erase(m_curItem); 
m_curItem = NULL; 
cout<<"删除成功\n"; 
} 
} 
break; 
case 2: 
cout<<"输入要删除的同学的名字:"; 
cin>>strName; 
for(m_curItem = m_lib.begin();m_curItem != m_lib.end();m_curItem++) 
{ 
if((*m_curItem)->GetName() == strName) 
{ 
delete *m_curItem; 
m_lib.erase(m_curItem); 
m_curItem = NULL; 
cout<<"删除成功\n"; 
return; 
} 
} 
cout<<"没有找到要删除的同学的信息!\n"; 
break; 
} 
} 

void CClassmateLib::ChangeItem() 
{ 
if(m_curItem == NULL) 
{ 
cout<<"请先查找出你要修改的同学\n"; 
return; 
} 
cout<<*(*m_curItem); 
while (cin.get()!='\n'); 
cout<<"要修改该同学的信息?(y/n)"; 
if(cin.get() == 'y') 
{ 
system("cls"); 
cout<<"选择要修改的项目:\n" 
<<"1.姓名\n2.性别\n" 
<<"3.班级\n4.QQ号\n" 
<<"5.电话"<<endl 
<<"0.退出修改\n\n"; 
L: cout<<"请输入你的选择:"; 
int iSel; 
cin >> iSel; 
string strTemp; 
int iTemp; 
switch(iSel) 
{ 
case 1: 
cout<<"输入姓名:"; 
cin>>strTemp; 
(*m_curItem)->SetName(strTemp); 
cout<<"姓名已经修改\n"; 
break; 
case 2: 
cout<<"输入性别:"; 
cin>>strTemp; 
iTemp = strTemp == "男" ? 1:0; 
(*m_curItem)->SetSex(iTemp); 
cout<<"性别已经修改\n"; 
break; 
case 3: 
cout<<"输入班级:"; 
cin>>strTemp; 
(*m_curItem)->SetClass(strTemp); 
cout<<"班级已经修改\n"; 
break; 
case 4: 
cout<<"输入QQ号:"; 
cin>>iTemp; 
(*m_curItem)->SetQQNum(iTemp); 
cout<<"QQ号已经修改\n"; 
break; 
case 5: 
cout<<"输入电话:"; 
cin>>strTemp; 
(*m_curItem)->SetTelNum(strTemp); 
cout<<"电话已经修改\n"; 
break; 
default: 
system("cls"); 
return; 
} 
goto L; 
} 
} 

void CClassmateLib::Add() 
{ 
while (1) 
{ 
CClassmate *clm; 
clm = new CClassmate(); 
cin>>*clm; 
Append(clm); 
cout<<"一个同学的信息录入成功\n\n"; 
cout<<"继续录入?(y/n)"; 
while(cin.get()!='\n'); 
if(cin.get() != 'y') 
{ 
system("cls"); 
return; 
} 
} 
} 

void CClassmateLib::Find() 
{ 
m_curItem = NULL; 
vector<CClassmate*>::iterator iter; 
system("cls"); 
cout<<"选择查询条件:\n"; 
cout<<"1.按姓名查找\n" 
<<"2.按QQ号查找\n" 
<<"3.按电话查找\n" 
<<"0.退出查询\n" 
<<endl; 
L: cout<<"输入你的选择:"; 
int iSel,iTemp; 
string strTemp; 
cin>>iSel; 
switch(iSel) 
{ 
case 1: 
cout<<"输入要查找的姓名:"; 
cin>>strTemp; 
for(iter = m_lib.begin();iter != m_lib.end();iter++) 
{ 
if((*iter)->GetName() == strTemp) 
{ 
cout<<*(*iter); 
m_curItem = iter; 
goto L; 
} 
} 
cout<<"没有找到你要找的同学的信息\n\n"; 
break; 
case 2: 
cout<<"输入要查找的QQ号:"; 
cin>>iTemp; 
for(iter = m_lib.begin();iter != m_lib.end();iter++) 
{ 
if((*iter)->GetQQNum() == iTemp) 
{ 
cout<<*(*iter); 
m_curItem = iter; 
goto L; 
} 
} 
cout<<"没有找到你要找的同学的信息\n\n"; 
break; 
case 3: 
cout<<"输入要查找的电话:"; 
cin>>strTemp; 
for(iter = m_lib.begin();iter != m_lib.end();iter++) 
{ 
if((*iter)->GetTelNum() == strTemp) 
{ 
cout<<*(*iter); 
m_curItem = iter; 
goto L; 
} 
} 
cout<<"没有找到你要找的同学的信息\n\n"; 
break; 
default: 
system("cls"); 
return; 
} 
goto L; 
} 
/**************************** 
* filename : Classmate.cpp 
* Lcisware ,2006.11.16 
***************************/ 

//入口函数所在文件 

#include "stdafx.h" 
#include "classmatelib.h" 

int main(int argc, char* argv[]) 
{ 
CClassmateLib cml; 
int iSel; 
cout<<"********************************同学录*********************************\n" 
<<" ---------------------------------------------------------------\n" 
<<" 提示:\n 要修改某项,请先执行查找,修改功能只修改当前查找到的同学的\n " 
<<"信息;执行其他操作前请先确保有信息已经录入,性别务必正确输入\n " 
<<"‘男’或‘女’,不正确的输入可能导致程序运行异常。\n " 
<<" 要想程序在任何情况下都稳定运行,请自己再增加各种输入检查及\n " 
<<"其他可能的异常检查。\n" 
<<" ---------------------------------------------------------------\n"; 
while (1) 
{ 
cout<<"********************************同学录*********************************\n\n" 
<<"1.录入\t2.删除\t3.查找\t4.修改\t0.退出\n\n"; 
L: cout<<"输入你要执行的操作:"; 
cin>>iSel; 
if(cin.bad()) 
{ 
cin.clear(); 
while(cin.get()!='\n'); 
goto L; 
} 
if((iSel<0)||(iSel>4)) 
goto L; 
switch(iSel) 
{ 
case 1: 
cml.Add(); 
break; 
case 2: 
cml.DeleteItem(); 
break; 
case 3: 
cml.Find(); 
break; 
case 4: 
cml.ChangeItem(); 
break; 
case 0: 
return 0; 
} 
} 
return 0; 
} 

/************************** 
* filename stdafx.h 
* isware , 2006.11.16 
***************************/ 
#if !defined(AFX_STDAFX_H__7EF55E42_F0E7_4E83_A5B4_E57CA6B1C39B__INCLUDED_) 
#define AFX_STDAFX_H__7EF55E42_F0E7_4E83_A5B4_E57CA6B1C39B__INCLUDED_ 

/* 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000*/ 


#include <cstdlib> 
#include <iostream> 
#include <algorithm> 
#include <vector> 
#include <string> 
using namespace std; 

// TODO: reference additional headers your program requires here 

//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 

#endif // !defined(AFX_STDAFX_H__7EF55E42_F0E7_4E83_A5B4_E57CA6B1C39B__INCLUDED_) 

/**************************** 
*filename stdafx.cpp 
*isware ,2006.11.16 
*****************************/ 

// stdafx.cpp : source file that includes just the standard includes 
// Classmate.pch will be the pre-compiled header 
// stdafx.obj will contain the pre-compiled type information 

#include "stdafx.h" 

// TODO: reference any additional headers you need in STDAFX.H 
// and not in this file

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -