您的位置:首页 > 其它

迟来的课程设计之题目4——2班29号

2015-01-13 23:45 197 查看
一、实训目的

通过课程设计,学会运用数据结构知识,针对具体应用,自己设计合理数据结构,确定存储结构,并能设计具体操作算法,选择使用具体语言进行实现。掌握C++较复杂程序的组织和设计过程,调试技巧。学习解决实际问题的能力。

二、实训环境

计算机windows xp或其它版本,VC6.0或更高版本,或其它语言环境。

三、实训题目

题目4. 赵斌是一个信管专业的学生,大学四年顺利毕业了。在毕业季,他也像其他学子一样,投身于求职大军,投出一份又一份求职简历,在苦苦地等待之后,他接到了中国移动通信公司广东分司的面试通知书,通知他于本月1号10点到公司面试。当天,晴空万里,艳阳高照,他身着西装,高兴地早早来到公司楼下等待。10点钟整,他和其他新人一起,坐到公司的面试现场。他领取的一一份程序设计题: 假如你是我公司一名客服技术人员,现请你选择自己熟悉的语言,来设计一个程序,管理客户向公司打进来的咨询电话。请事行分析析使用方法和工具,说明自己的思路方法,写一份完整的程序,并实例测试。

题目代码:

#include<iostream>

#include<string>

#include<iomanip>

#include<fstream>

#include<cstdlib>

using namespace std;

class book

{

public:

book();//默认构造函数

char inter_face();//首页

void add_person();//添加

void del_person();//删除

void show_all();//显示

void alter();//修改

void select();//查询

void save_new();//保存

private:

string name;//姓名

string number;//电话号码

};

book::book()

{

name="\0";

number="\0";

}

//首页

char book::inter_face()

{

system("cls");

cout<<endl;

cout<<" 欢迎使用客户电话管理系统!"<<endl;

cout<<"*********请选择你要的操作*********"<<endl

<<" 1.添加客户资料"<<endl

<<" 2.删除客户资料"<<endl

<<" 3.显示全部客户资料"<<endl

<<" 4.修改客户资料"<<endl

<<" 5.查询客户资料"<<endl

<<" 6.关闭"<<endl

<<"请选择:";

int choose;

cin>>choose;

fflush(stdin);

return choose;

}

//添加联系人

void book::add_person()

{

cout<<endl<<"根据下面提示输入新客户的信息"<<endl

<<"客户姓名:";

cin>>name;

fflush(stdin);

cout<<"客户电话:";

cin>>number;

fflush(stdin);

save_new();

cout<<endl<<endl<<"已保存"<<endl;

system("pause");

}

//删除联系人

void book::del_person()

{

ofstream outData("temp.txt",ios::out);

ifstream inData("pbook.txt",ios::in);

if(!outData||!inData)

{

cout<<endl<<"对不起找不到文件"<<endl;

system("pause");

return;

}

string sign;

cout<<endl<<"你要删除输入客户姓名或电话号码:";

cin>>sign;

string strl;

bool flag=true;

string str;

while(inData>>name>>number)

{

getline(inData,str);

if((sign==name)||(sign==number))

{

cout<<endl<<"你想删除的客户信息:"<<endl;

cout<<strl<<endl;

cout<<setiosflags(ios::left)<<setw(17)<<name<<" "<<number<<str<<endl;

flag=false;

break;

}

outData<<setiosflags(ios::left)<<setw(17)<<name<<" "<<number<<str<<endl;

}

if(flag)

{

cout<<endl<<"对不起,联系人中没你找的人"<<endl;

}

else

{

while(getline(inData,str))

{

outData<<str<<endl;

}

outData.close();

inData.close();

ofstream out("pbook.txt",ios::out);

ifstream in("temp.txt",ios::in);

if(!out||!in)

{

cout<<endl<<"对不起不能打开文件"<<endl;

system("pause");

return;

}

while(getline(in,str))

{

out<<str<<endl;

}

out.close();

in.close();

cout<<endl<<"已删除"<<endl;

}

system("pause");

}

//显示所有联系人

void book::show_all()

{

ifstream inData("pbook.txt",ios::in);

if(!inData)

{

cout<<endl<<"对不起,没有找到文件"<<endl;

system("pause");

return;

}

bool flag=true;

string record;

while(getline(inData,record))

{

if(flag)

{

cout<<endl<<"所有联系人信息如下:"<<endl;

}

cout<<record<<endl;

flag=false;

}

if(flag)

{

cout<<endl<<"你的通讯录中没有联系人"<<endl;

}

else

{

cout<<endl<<"所有联系人已经全部显示出来"<<endl;

}

system("pause");

}

//修改信息

void book::alter()

{

ofstream outData("temp.txt",ios::out);

ifstream inData("pbook.txt",ios::in);

if(!outData||!inData)

{

cout<<endl<<"对不起,找不到文件"<<endl;

system("pause");

return;

}

string sign;

cout<<endl<<"你要修改输入姓名或电话号码:";

cin>>sign;

string strl;

bool flag=true;

string str;

while(inData>>name>>number)

{

getline(inData,str);

if((sign==name)||(sign==number))

{

cout<<endl<<"你想修改的联系人:"<<endl<<endl;

cout<<strl<<endl;

cout<<setiosflags(ios::left)<<setw(17)<<name<<" "<<number<<str<<endl;

cout<<endl<<"请根据下面提示修改信息:"<<endl;

cout<<"姓名:";

cin>>name;

fflush(stdin);

cout<<"电话号码:";

cin>>number;

fflush(stdin);

save_new();

flag=false;

break;

}

outData<<setiosflags(ios::left)<<setw(17)<<name<<" "<<number<<str<<endl;

}

if(flag)

{

cout<<endl<<"对不起,联系人中没你找的人"<<endl;

}

else

{

while(getline(inData,str))

{

outData<<str<<endl;

}

outData.close();

inData.close();

ofstream out("pbook.txt",ios::out);

ifstream in("temp.txt",ios::in);

if(!out||!out)

{

cout<<endl<<"对不起不能打开文件"<<endl;

system("pause");

return;

}

while(getline(in,str))

{

out<<str<<endl;

}

out.close();

in.close();

cout<<endl<<"这个人的信息已经在你的通讯录中修改"<<endl;

}

system("pause");

}

//查询联系人

void book::select()

{

ifstream inData("pbook.txt",ios::in);

if(!inData)

{

cout<<endl<<"对不起,文件找不到"<<endl;

system("pause");

return;

}

string sign;

cout<<endl<<"请输入你想查找的联系人的姓名或电话号码:";

cin>>sign;

fflush(stdin);

string strl;

bool flag=true;

string str;

while(inData>>name>>number)

{

getline(inData,str);

if((name==sign)||(number==sign))

{

cout<<endl<<"你要查找的联系人时:"<<endl;

cout<<strl<<endl;

cout<<setiosflags(ios::left)<<setw(17)<<name<<number<<str<<endl;

flag=false;

system("pause");

break;

}

}

}

void book::save_new()

{

ofstream outData("pbook.txt",ios::app);

if(!outData)

{

cout<<endl<<"对不起,打开文件失败"<<endl;

system("pause");

return;

}

outData<<setiosflags(ios::left)<<setw(17)<<name<<" "<<setw(16)<<number<<" "<<endl;

outData.close();

}

int main()

{

int choose;

book abj;

while(choose=abj.inter_face())

{

switch(choose)

{

case 1:

abj.add_person();//添加联系人

break;

case 2:

abj.del_person();//删除联系人

break;

case 3:

abj.show_all();//显示所有联系人

case 4:

abj.alter();//修改信息

break;

case 5:

abj.select();//查询联系人

break;

case 6:

cout<<endl<<"谢谢使用"<<endl;

exit(0);

break;

}

}

return 0;

}

输入客户资料:



显示所有客户信息:



删除客户资料:



修改客户资料:



四、实训总结

通过本次试验我能够基本掌握数据结构的基础知识,在对电话簿管理程序的编写过程中了解数据结构的应用,也在上机实践和对程序调试的同时提高了自己解决问题的能力。
在这段实践中,我学会了很多,知道了很多学习上的不足,需要多加学习和实践,从而提高自己的编程能力。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: