此代码为本人课设作业,小白一枚,还望大佬指正。
题目:通讯录管理系统
以本班同学的具体数据为背景,设计一个本班同学通讯录。
1. 设计要求:
(1)学生通讯录基本信息包括:学号、姓名、性别、年龄、电话号码、家庭地址、备注等。
(2)使用类和对象的概念实现程序设计。
(3)将学生通讯录基本信息保存到文件,所有操作都针对文件中的数据。
(4)程序算法说明清晰,理论分析与计算正确,运行情况良好,实验测试数据无误,容错性强(能对错误输入进行判断控制)。
(5)编程风格良好(包括缩进、空行、适当注释、变量名和函数名见名知意,程序容易阅读等)。
#include<iostream>
#include<string>
#include<fstream>
#include<iomanip>
using namespace std;
#define MAXPEOPLE 100
static int scount=0;
class telephone
{
char xuehao[20];//学号
char xingming[20];//姓名
char xingbie[20];//性别
char nianling[20];//年龄
char dianhua[20];//电话
char zhuzhi[20];//住址
char beizhu[20];//备注
public:
telephone()
{
};
void instial(char xh[20],char xm[20],char xb[2],char nl[20],char dh[20],char zz[200],char bz[20])
{
strcpy_s(xuehao,xh);
strcpy_s(xingming,xm);
strcpy_s(xingbie,xb);
strcpy_s(nianling,nl);
strcpy_s(dianhua,dh);
strcpy_s(zhuzhi,zz);
strcpy_s(beizhu,bz);
};
void setxuehao(char xh[20])
{
strcpy_s(xuehao,xh);
}
void setxingming(char xm[20])
{
strcpy_s(xingming,xm);
}
void setxingbie(char xb[20])
{
strcpy_s(xingbie,xb);
}
void setnianling(char nl[20])
{
strcpy_s(nianling,nl);
}
void setdianhua(char dh[20])
{
strcpy_s(dianhua,dh);
}
void setzhuzhi(char zz[20])
{
strcpy_s(zhuzhi,zz);
}
void setbeizhu(char bz[20])
{
strcpy_s(beizhu,bz);
}
char * getxuehao()
{
return xuehao;
};
char * getxingming()
{
return xingming;
};
char * getxingbie()
{
return xingbie;
};
char * getnianling()
{
return nianling;
};
char * getdianhua()
{
return dianhua;
};
char * getzhuzhi()
{
return zhuzhi;
};
char * getbeizhu()
{
return zhuzhi;
};
};
class manage//操作类
{
telephone tel[MAXPEOPLE];
public:
void luru();
void shanchu();
void xiugai();
void chaxun();
void paixv();
void liulan();
};
void menu()//菜单
{
cout<<"******************************"<<endl;
cout<<"***** 1.录入联系人 *****"<<endl;
cout<<"***** 2.删除联系人 *****"<<endl;
cout<<"***** 3.修改联系人 *****"<<endl;
cout<<"***** 4.查询联系人 *****"<<endl;
cout<<"***** 5.排序联系人 *****"<<endl;
cout<<"***** 6.浏览联系人 *****"<<endl;
cout<<"***** 7.退出通讯录 *****"<<endl;
cout<<"******************************"<<endl;
}
void manage::luru()//1.录入联系人
{
char xuehao[20],xingming[20],xingbie[20],nianling[20],dianhua[20],zhuzhi[20],beizhu[20];
cout<<"请输入学号:"<<endl;
cin>>xuehao;
cout<<"请输入姓名:"<<endl;
cin>>xingming;
cout<<"请输入性别:"<<endl;
cin>>xingbie;
cout<<"请输入年龄:"<<endl;
cin>>nianling;
cout<<"请输入电话:"<<endl;
cin>>dianhua;
cout<<"请输入住址:"<<endl;
cin>>zhuzhi;
cout<<"请输入备注:"<<endl;
cin>>beizhu;
tel[scount].instial(xuehao,xingming,xingbie,nianling,dianhua,zhuzhi,beizhu);
scount++;
cout<<"添加成功"<<endl;
system("pause");
system("cls");//清屏操作
}
void manage::shanchu()//2.删除联系人
{
int index=0;
cout<<"请输入要删除的学号:"<<endl;
cin>>index;
for(int i=index-1;i<scount;i++)
{
tel[i]=tel[i+1];
}
scount=scount-1;
cout<<"删除成功!"<<endl;
system("pause");
system("cls");//清屏操作
}
void manage::xiugai()//修改联系人
{
char xingming[20];
int index=0;
char xuehao[20],xingbie[20],nianling[20],dianhua[20],zhuzhi[20],beizhu[20];
int q=-1;
cout<<"请输入要修改的联系人姓名:"<<endl;
cin>>xingming;
for(int i=0;i<scount;i++)
{
if (strcmp(xingming,tel[i].getxingming())==0)
{
cout<<"将学号修改为:"<<endl;
cin>>xuehao;
tel[index].setxuehao(xuehao);
cout<<"将姓名修改为"<<endl;
cin>>xingming;
tel[index].setxingming(xingming);
cout<<"将性别修改为"<<endl;
cin>>xingbie;
tel[index].setxingbie(xingbie);
cout<<"将年龄修改为:"<<endl;
cin>>nianling;
tel[index].setnianling(nianling);
cout<<"将联系电话修改为:"<<endl;
cin>>dianhua;
tel[index].setdianhua(dianhua);
cout<<"将家庭住址修改为:"<<endl;
cin>>zhuzhi;
tel[index].setzhuzhi(zhuzhi);
cout<<"将备注修改为:"<<endl;
cin>>beizhu;
tel[index].setbeizhu(beizhu);
cout<<"修改成功!"<<endl;
}
else
{
cout<<"联系人不存在"<<endl;
}
}
system("pause");
system("cls");
}
//查询联系人
//4-1选择查询方法
int xz()
{
int a=0;
cout<<"1.按姓名查找"<<endl;
cout<<"2.按学号查找"<<endl;
cin>>a;
return a;
}
void manage::chaxun()//查询联系人
{
int a=xz();
if(a==1)
{
char xingming1[20];
char xingming2[20];
cout<<"请输入要查询人姓名:"<<endl;
cin>>xingming1;
for (int i=0;i<scount;i++)
{
strcpy_s(xingming2,tel[i].getxingming());
if (strcmp(xingming1,xingming2)==0)
{
cout<<"学号:"<<tel[i].getxuehao()<<"\t";
cout<<"姓名:"<<tel[i].getxingming()<<"\t";
cout<<"性别:"<<tel[i].getxingbie()<<"\t";
cout<<"年龄:"<<tel[i].getnianling()<<"\t";
cout<<"电话:"<<tel[i].getdianhua()<<"\t";
cout<<"住址:"<<tel[i].getzhuzhi()<<"\t";
cout<<"备注:"<<tel[i].getbeizhu()<<endl;
}
else
{
cout<<"查无此人"<<endl;
}
}
}
if(a==2)
{
char xuehao1[20];
char xuehao2[20];
cout<<"请输入要查询的学号:"<<endl;
cin>>xuehao1;
for(int i=0;i<scount;i++)
{
strcpy_s(xuehao2,tel[i].getxuehao());
if (strcmp(xuehao1,xuehao2)==0)
{
cout<<"学号:"<<tel[i].getxuehao()<<"\t";
cout<<"姓名:"<<tel[i].getxingming()<<"\t";
cout<<"性别:"<<tel[i].getxingbie()<<"\t";
cout<<"年龄:"<<tel[i].getnianling()<<"\t";
cout<<"电话:"<<tel[i].getdianhua()<<"\t";
cout<<"住址:"<<tel[i].getzhuzhi()<<"\t";
cout<<"备注:"<<tel[i].getbeizhu()<<endl;
}
else
{
cout<<"查无此人"<<endl;
}
}
}
system("pause");
system("cls");
}
void manage::paixv()//5.排序联系人
{
telephone var;
for(int i=0;i<scount;i++)
{
for(int j=i+1;j<scount;j++)
{
if(strcmp(tel[j].getxuehao(),tel[i].getxuehao())<0)
{
var=tel[i];tel[i]=tel[j];tel[j]=var;
}
}
}
cout<<"排序后:"<<endl;
for (int i=0;i<scount;i++)
{
cout<<"学号:"<<tel[i].getxuehao()<<"\t";
cout<<"姓名:"<<tel[i].getxingming()<<"\t";
cout<<"性别:"<<tel[i].getxingbie()<<"\t";
cout<<"年龄:"<<tel[i].getnianling()<<"\t";
cout<<"电话:"<<tel[i].getdianhua()<<"\t";
cout<<"住址:"<<tel[i].getzhuzhi()<<"\t";
cout<<"备注:"<<tel[i].getbeizhu()<<endl;
}
system("pause");
system("cls");
}
void manage::liulan()//6.浏览联系人
{
for (int i=0;i<scount;i++)
{
cout<<"学号:"<<tel[i].getxuehao()<<"\t";
cout<<"姓名:"<<tel[i].getxingming()<<"\t";
cout<<"性别:"<<tel[i].getxingbie()<<"\t";
cout<<"年龄:"<<tel[i].getnianling()<<"\t";
cout<<"电话:"<<tel[i].getdianhua()<<"\t";
cout<<"住址:"<<tel[i].getzhuzhi()<<"\t";
cout<<"备注:"<<tel[i].getbeizhu()<<endl;
}
system("pause");
system("cls");
}
int main()
{
manage manager;
while(1)
{
int choice;
menu();
cout<<"请输入您的选择:";
cin>>choice;
switch(choice)
{
case 1:
manager.luru();
break;
case 2:
manager.shanchu();
break;
case 3:
manager.xiugai();
break;
case 4:
manager.chaxun();
break;
case 5:
manager.paixv();
break;
case 6:
manager.liulan();
break;
case 7:
cout<<"欢迎您下次使用!"<<endl;
system("pause");
return 0;
break;
}
}
return 0;
}
(参考资料的基础上加以修改)