C++ list的运用
来源:互联网 发布:淘宝小虫家 编辑:程序博客网 时间:2024/05/16 11:54
初学C++,理论看了不少,没做什么东西,感觉很虚^^^^^
今天在网上看到一个作业题,就很想尝试做一下,结果很受打击,看来还的多多练习;
回来请教高手,一句话就轻松解决了,终于,在高手帮助下,我完成了自己的第一个作业
下面就是这道题的答案,只是初步实现了功能,还有很多不完善,欢迎大家批评指教
/*具体要求是:定义一个描述班级学生通讯录的类,
数据成员记录一个班级每名学生的学号、姓名、电话号码;成员函数包括:
(1)添加一个学生的各个数据项
(2)删除某个学号学生
(3)修改某个学号学生所有数据项
(4)输出某学号学生各个数据项
(5) 输出所有学生个个数据项。编写一个测试程序实现对该类的测试。(要求将学生信息用数组存储)
已有框架,再此基础上添加些程序能运行出来就可以了!*/
#include "stdafx.h"
#include<iostream>
#include<string>
#include <list>
using namespace std;
struct student
{
student (int no, string &name, string &tel)
{
this ->tno = no ;
this ->tname = name ;
this ->ttel = tel ;
}
int tno;
string tname; //不能用char[],当数组超过最大时,很容易造成崩溃!!
string ttel;
};
class Tstudent
{
public:
list <student> m_liststudent; //定义一个list容器
bool insert( int theNo, string &name, string &tel)
{
for ( list < student > :: iterator it = m_liststudent.begin () ; it != m_liststudent.end (); it ++ )
{
if ((*it).tno == theNo )
{
printf( "学号不能重复" );
return false ;
}
}
m_liststudent.push_back (student (theNo, name, tel));
return true;
}
/*插入一个学生,插入成功返回true,否则返回false;
要求判断学生学号不能重复,插入按照学生学号有序插入*/
void update(const int theNo, const string &name, const string &tel)
{
for (list <student>::iterator it = m_liststudent.begin (); it != m_liststudent.end (); it ++)
{
if ((*it).tno == theNo)
{
it ->tname = name;
it ->ttel = tel;
return;
}
}
}
/*修改theNO学号的姓名和电话*/
bool deleteOne( int theNo)
{
for (list <student>::iterator it = m_liststudent.begin (); it != m_liststudent.end (); it ++)
{
if ((*it).tno == theNo)
{
m_liststudent.erase ( it) ;
return true;
}
}
printf( "学号不存在" );
return false;
}
/*删除theNo学号的学生记录,删除成功返回true,否则返回false;
要求判断学生学号是否存在,删除成功后被删除记录后面的记录要前移*/
bool getOne(int theNo, string &name, string &tel)
{
for (list <student>::iterator it = m_liststudent.begin (); it != m_liststudent.end (); it ++)
{
if ((*it).tno == theNo)
{
name = it ->tname;
tel = it ->ttel;
return true ;
}
}
printf( "学号不存在" );
return false;
}
/*获取theNo学号学生姓名、电话存储到name,tel中
若该学号学生存在返回true,否则返回false;*/
void print ( )
{
for (list <student>::iterator it = m_liststudent.begin (); it != m_liststudent.end (); it ++)
{
cout << it ->tno << "," << it -> tname << ","
<< it -> ttel << endl;
}
}
/* 输出所有学生记录项*/
private:
};
int main()
{
//菜单控制如下:
int select;
Tstudent ts;
int no1 ;
string name1,tel1;
while(1)
{
cout<<" ********************"<<endl;
cout<<'/t'<<"1、添加学生"<<endl;
cout<<'/t'<<"2、修改学生"<<endl;
cout<<'/t'<<"3、删除学生"<<endl;
cout<<'/t'<<"4、获取学生"<<endl;
cout<<'/t'<<"5、输出所有信息"<<endl;
cout<<'/t'<<"6、退出"<<endl;
cout<<" ********************"<<endl;
cout<<"请选择: ";
cin>>select;
switch(select)
{
case 1:
//添加学生
printf ( " 请输入学号,姓名和电话 :");
cin >> no1 >> name1 >> tel1 ;
ts.insert(no1,name1,tel1);
ts.print();
break;
case 2:
//修改学生
break;
case 3:
//删除学生
break;
case 4:
//获取学生信息
break;
case 5:
//输出所有信息
break;
case 6:
return 0;
//退出
break;
}
}
}
- c++list运用
- C++ list的运用
- List列表的运用
- j2me的list的 运用
- hash和list的运用
- Struts1中ActionForm 的List运用
- pku2153 Rank List (STL的运用)
- LWUIT的List运用系列(五)
- LWUIT的List运用系列目录,共七篇
- Struts1中ActionForm 的List运用
- List<T>.Find()方法的运用
- Struts1中ActionForm 的List运用
- python的dict、list、set学习运用
- c语言-if的运用
- C++builder 消息的运用
- LWUIT的List运用系列(七) List的终极运用(下篇)
- j2me的form,list和command的综合运用
- list 的c实现
- 如何识别具有领导潜质的员工?
- 事件Event
- Liva视频Show
- 如何计算java对象占用的内存
- 放弃6000的工资去考研值的吗?
- C++ list的运用
- Google vs Everyone:10个Google想赢得的市场
- 为什么我要学JAVA
- 赵晓:房价疯涨的背后人民币是否在大幅贬值
- 为什么我要学JAVA:java和.NET哪个好?
- 滑鼠移到圖片上有放大的效果
- 《时代》评出50个最酷网站 25个网站非上不可
- css简介
- 四书之《论语》学习日记16