内六角螺丝国标号:用C语言编写名片管理程序

来源:百度文库 编辑:神马品牌网 时间:2024/04/20 19:17:30
该程序应该具有下列功能:
(1) 通过键盘输入某人的名片信息。名片包含的信息有:姓名、单位、电话、email, 另外再保存性别这个数据项和类别数据项(表示某人属于什么分组:家庭、朋友、同事、合作伙伴)。电话号码格式为020-12345678
(2) 给定姓名,显示某人的信息;如果有几个人是同一个姓名,则再输入电话号码查找
(3) 给定某个城市的区号,显示该城市所有人的信息;
(4) 给定某人的姓名,修改该人的信息;
(5) 给定某人的姓名,删除该人的信息;
(6) 提供一些统计各类信息的功能。如某城市有多少名片保存,某分组有多少联系人

希望大家帮帮忙啊 急急急 ~~

我们的作业,实现学生管理:添加、查找、删除、保存,你看看可不可以改。

#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <fstream.h>
#include <stdlib.h>
int cs; //定义全局变量cs

class student
{

private: //定义私有成员
int num;
char name[10];
char addr[10];
char age[10];
public:
void Insert();
void Show();
void Find();
void Del();
void Sort();
void Save();
void Read();
void Saveas();
fstream iof;
};

student add[100];
void student::Insert() //用于输入的Insert对象
{
char ready='y';
cout<<"是否读取以前输入的信息?[Y/N]"<<endl;
cin>>ready;
if(ready=='Y' || ready=='y')
{Read();}

cout<<"请输入学生信息(按学号、姓名、籍贯、出生年月输入):"<<endl;
for(int i=0;i<100;i++)
{
cout<<"输入学号:";
cin>>add[i].num;
cout<<"输入姓名:";
cin>>add[i].name;
cout<<"输入籍贯:";
cin>>add[i].addr;
cout<<"输入出生年月:";
cin>>add[i].age;
cs+=1;
cout<<"目前已输入了"<<cs<<"个学生信息"<<endl;
cout<<"要继续吗?[Y/N]"<<endl;
cin>>ready;
if(ready=='N' || ready=='n')
{
cout<<"你输入的信息为:"<<endl;
Show();
break;
}
}
}

void student::Show() //用于显示的Show对象
{

for(int j=0;j<cs;j++)
{
cout<<"学号 "<<add[j].num<<"姓名 "<<add[j].name<<"籍贯 "<<add

[j].addr<<"出生年月 "<<add[j].age<<endl;
}
}

void student::Find() //用于查询的Find对象
{
cout<<"请输入你要查找的学生学号:"<<endl;
int y;
cin>>y;
for(int a=0;a<cs;a++)
{
bool bo=true;
if(add[a].num==y)
{
cout<<"学号 "<<add[a].num<<"姓名 "<<add[a].name<<"籍贯

"<<add[a].addr<<"出生年月 "<<add[a].age<<endl;
}
}
}

void student::Del() //用于删除的Del对象
{
cout<<"请输入你要删除的学生学号:"<<endl;
int y2;
cin>>y2;
for(int c=0;c<cs,add[c].num!=0;c++)
{
if(add[c].num==y2)
{
for(int b=c;b<cs-1,add[b].num!=0;b++)
{
add[c].num=add[c+1].num;
strcpy(add[b].name,add[b+1].name);
strcpy(add[b].addr,add[b+1].addr);
strcpy(add[b].age,add[b+1].age);
}
}
}
cout<<"该生信息已删除"<<endl;
for(int w=0;w<cs-1;w++)
{
cout<<"学号 "<<add[w].num<<"姓名 "<<add[w].name<<"籍贯 "<<add

[w].addr<<"出生年月 "<<add[w].age<<endl;
}
}

//const int i2 =3;
//student zkk;
void student::Sort() //用于排序的Sort对象
{
cout<<"排序后得到:"<<endl;
int t; //用于交换的中间变量t
char ch1[10]; //用于交换的中间变量ch1
char ch2[10]; //用于交换的中间变量ch2
char ch3[10]; //用于交换的中间变量ch3

for(int d=0;d<cs;d++)
{
for(int e=d+1;e<cs;e++)
{
if(add[d].num>add[e].num)
{
t=add[d].num;
add[d].num=add[e].num;
add[e].num=t;

strcpy(ch1,add[d].name);
strcpy(add[d].name,add[e].name);
strcpy(add[e].name,ch1);

strcpy(ch2,add[d].addr);
strcpy(add[d].addr,add[e].addr);
strcpy(add[e].addr,ch2);

strcpy(ch3,add[d].age);
strcpy(add[d].age,add[e].age);
strcpy(add[e].age,ch3);
}
}
}

for(int i1=0;i1<cs;i1++)
{
cout<<"学号 "<<add[i1].num<<"姓名 "<<add[i1].name<<"籍贯 "<<add

[i1].addr<<"出生年月 "<<add[i1].age<<endl;
}
}

void student::Save() //用于保存的Save对象
{
char re='y';
cout<<"选择此操作,你所输入的信息将被保存在同级目录下的abc.txt文件中!"<<endl;
cout<<"真的要保存吗?[Y/N]"<<endl;
cin>>re;
if(re=='Y' || re=='y')
{

iof.open("abc.txt",ios::out | ios::app);
if(!iof)
{
cerr<<"文件打开错误"<<endl;
exit(0);
}

iof.write((char *)add,sizeof(student));
iof.close();
cout<<"信息已保存"<<endl;
char re2='y';
cout<<"另存为吗?[Y/N]"<<endl;
cin>>re2;
if(re2=='y' || re2=='Y')
{
Saveas();
}
}
else
{
cout<<"信息未保存"<<endl;
}
}

void student::Read()
{
/*FILE *fp;

if((fp=fopen("abc.txt","rb"))==NULL)
{
printf("文件打开失败!\n");
exit(0);
}
for(int rr=0;rr<cs;rr++)
{
fread(&add[rr],sizeof(class student),1,fp);
printf("学号:%-10s姓名:%4d籍贯:%4d出生年月:%-15s\n",add[rr].num,add

[rr].name,add[rr].addr,add[rr].age);
}
fclose(fp);*/
ifstream inf;
//char infname[20];
cout<<"从abc.txt中读取数据:"<<endl;
//cin.getline(infname,sizeof(infname));
inf.open("abc.txt",ios::in | ios::binary | ios::nocreate | ios::app);
if(!inf)
{
cerr<<"文件不存在"<<endl;
exit(0);
}
for(int r = 0;r<cs;r++)
{
inf.read((char *)&add,sizeof(class student));
cout<<"学号 "<<add[r].num<<"姓名 "<<add[r].name<<"籍贯 "<<add

[r].addr<<"出生年月 "<<add[r].age<<endl;
}
}
void student::Saveas()
{
fstream iof;
char oname[20];
char ch;
iof.open("abc.txt",ios::in);
cout<<"请输入要保存到的路径和文件名:"<<endl;
cin.getline(oname,sizeof(oname));
iof.open(oname,ios::out | ios::noreplace);
if(!iof)
{
cerr<<"文件已存在"<<endl;
exit(0);
}
while(iof.get(ch)) iof.put(ch);
iof.close();
}

//程序主入口点
void main()
{
for(;;)
{
cout<<"----------------------------------------------------------------

-"<<endl;
cout<<"----------------------------------------------------------------

-"<<endl;
cout<<" 学生管理"<<endl;
cout<<"----------------------------------------------------------------

-"<<endl;
cout<<"☆〖1〗输入 〖2〗查找 〖3〗删除 〖4〗排序 〖5〗保存 〖6〗退出

☆"<<endl;
cout<<"----------------------------------------------------------------

-"<<endl;

student h;
int choose;
cout<<"请选择:"<<endl;
cin>>choose;
switch(choose)
{
case 1:
h.Insert();
break;
case 2:
h.Find();
break;
case 3:
h.Del();
break;
case 4:
h.Sort();
break;
case 5:
h.Save();
break;
case 6:
cout<<"谢谢光顾!"<<endl;
exit(0);
break;
default: cout<<"错误操作!"<<endl;
}
}
}