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

一、实训目的

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

二、实训环境

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


三、实训题目

题目4赵斌是一个信管专业的学生,大学四年顺利毕业了。在毕业季,他也像其他学子一样,投身于求职大军,投出一份又一份求职简历,在苦苦地等待之后,他接到了中国移动通信公司广东分司的面试通知书,通知他于本月110点到公司面试。当天,晴空万里,艳阳高照,他身着西装,高兴地早早来到公司楼下等待。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;
}


输入客户资料:


显示所有客户信息:



删除客户资料:



修改客户资料:



四、实训总结

       通过本次试验我能够基本掌握数据结构的基础知识,在对电话簿管理程序的编写过程中了解数据结构的应用,也在上机实践和对程序调试的同时提高了自己解决问题的能力。
       在这段实践中,我学会了很多,知道了很多学习上的不足,需要多加学习和实践,从而提高自己的编程能力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值