📄 xueshengguanli.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 + -