您的位置:首页 > 编程语言 > C语言/C++

c++课程设计

2012-06-05 22:46 561 查看
一.功能介绍:

本电话薄有以下功能:

1. Add contract -----------------------添加联系人

2. Delete contract-----------------------删除联系人

3. Display all of the contract--------显示所有联系人

4. Search people’s contract---------查找联系人

5. Show editor -----------------------显示作者

6. Exit---------------------------------退出

本电话薄是将数据有控制台程序输入,并存在记事本中,并且再次打开可以读取上次储存的数据。 联系人添加到 contract.txt 文档中。 在应用本程序之前 先要新建contract.txt 文档和record.txt文档。并将record.txt文档中添加数字0.

1.Add contract -----------------------添加联系人

添加联系人 必须添加英文名 电话号码。(英文名和电话号码间以空格隔开)

可一次添加多个联系人

最后以# # 结束添加过程。

2.Delete contract-----------------------删除联系人

删除联系人 此过程采用的是字符匹配的方式 必须电话薄存在的联系人呢 和输入要删除的联系人字符必须完全相同才可以进行删除。

一次只能删除一个联系人。

3. Display all of the contract--------显示所有联系人

一次就可现示所有联系人的相关信息

4. Search people’s contract---------查找联系人

此过程同样采用的是字符匹配的方式 必须电话薄存在的联系人呢 和输入要查找的联系人字符必须完全相同才可以进行查找。输出的是联系人的电话号码。

5 Show editor -----------------------显示作者

版权也是很重要的一方面。

此课程设计是由杨烁,杨崇财,黄平设计并制作的。

6 保存退出。

二.进行功能演示:

首先 建立contract.txt 文档和record.txt文档。并在record.txt文档中添加数字0.



开始运行可执行文件。



输入数字1

选择添加add Contract

输入

Zoo 18773491005

Cat 16543487654

Apple 18554320987

# #



显示所有联系人

其会按首字符的顺序排序。





选择2

删除联系人

Apple

显示 联系人Apple已被删除

选择四查找联系人。

会输出查找联系人的电话号码



输入数字5

显示作者:

按6退出。

这是打开contarct.txt 记录的是 联系人的联系方式和record.txt 记录的是联系人的个数。



完成输入结果。

关闭后再打开,程序会读入contract.txt文件中的内容和record.txt文件中的内容。



三.附上程序代码:

注意:此程序需在DevC++中执行操作,可能因为编译器的不同,visual c++可能不能编译此程序,需要修改头文件。



#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<stdlib.h>
using namespace std;
//¶¨Òå±£´æÃû×ֺ͵绰ºÅÂëµÄ½á¹¹Ìå

struct element{
char name[21],num[22];
}people[20];
// º¯ÊýµÄ¿âÎļþÉùÃ÷
void read();
void initlist();
//void display1();
void show();
void add();
bool cmp(struct element,struct element);
void change();
void delete_name();
void display();
void search();
void show_editor();
//void showeditor();
void set();

int k=0;
FILE *fp;
int main()
{
int choice;
read();
initlist();
// display1();
while(1)
{
show();
cin>>choice;
switch(choice)
{
case 1: add();change();continue;
case 2: delete_name();continue;
case 3: display();continue;
case 4: search();continue;
case 5: show_editor();continue;
case 6: set() ;
}
if(choice==6)break;
}
system("pause");
}

//³ÉÔ±º¯ÊýµÄ½âÊͲ¿·Ö
void initlist()                            //³õʼ»¯ ½«Îı¾ÖеÄÊý¾Ý¸³¸øÊý×é¡£
{    char a[51];
int len,flag,i,j,m,i1;
if((fp=fopen("contract.txt","r"))==NULL)
{
printf("Can not open this file.\n");
getchar();
exit(-1);
}
for(i1=0;i1<k;i1++)
{
fgets(a,43,fp);                   //½«»Ø³µ·ûºÅҲͬÑù¶ÁÈëµ½Êý×éÖÐÈ¥ÁË
len=strlen(a);
if(a[0]=='\n')break;
flag=0;
j=0;
for(i=0;i<=40;i++)
{
while(flag==0){
if(a[i]==' '){flag++;people[k].name[i]=='\0';
m=i;
for(m=i;m<20;m++)
people[i1].name[m]=' ';
}
else {
people[i1].name[i]=a[i];
i++;
}
}
if(flag==1) {
while(a[i]==' ')
i++;
flag++;
}
while(flag==2) {
if(a[i]=='\n'){people[i1].num[j]='\0'; break;}
else {
people[i1].num[j]=a[i];
i++;j++;
}
}
}
}
fclose(fp);
}
/*
void display1()
{
int i;
for(i=0;i<=k-1;i++)
printf("%s %s\n",people[i].name,people[i].num);
cout<<endl<<endl;
}
*/
//¹¦ÄÜ1 Ìí¼ÓͨѶ¼
void add()
{
cout<<"please add the contract with name and phone number and it is terminaled by # !"<<endl;
cout<<"there are "<<k<<" people in this contract."<<endl;
char name1[21],num1[22];
int len,i;
while(scanf("%s %s",name1,num1)&&name1[0]!='#')
{
if(k==20){cout<<"The contract is full"<<endl;break;}
strcpy(people[k].name,name1);
strcpy(people[k].num,num1);
len=strlen(people[k].name);         //½«ÆäÖÐÌîÈë¿Õ¸ñ¡£Ê¹¸ñʽ±£³ÖÍêÕû¡£
for(i=len;i<=19;i++)
{
people[k].name[i]=' ';
}
people[k].name[i]='\0';
len=strlen(people[k].num);
for(i=len;i<=19;i++)
{
people[k].num[i]=' ';
}
people[k].num[i]='\0';
k++;
}
sort (people,people+k,cmp);
}
//Ð޸ı£´æÎļþÖеÄÄÚÈÝ
void change()
{    FILE *fp;
char ch='\n';
if((fp=fopen("contract.txt","w"))==NULL)
{
printf("Can not open this file.\n");
getchar();
exit(-1);
}
int i;
for(i=0;i<=k;i++)
{
fputs(people[i].name,fp);
fputs(people[i].num,fp);
fputc(ch,fp);
}
fclose(fp);
}

//¹¦ÄÜ2 ɾ³ýÁªÏµÈËÐÕÃû
void delete_name()
{
cout<<"there are "<<k<<" people in this contract."<<endl;
char name1[21];
getchar();
int len,len1;
int flag=0,i,j;
gets(name1);
len=strlen(name1);
for(i=len;i<20;i++)
name1[i]=' ';
name1[i]='\0';
for(i=0;i<=k-1;i++)
{
if(strcmp(people[i].name,name1)==0){flag=1;break;}
}
if(flag==0)cout<<"Didn't find this person!"<<endl;
if(flag==1){for(j=i;j<=k-1;j++)
{
strcpy(people[j].name,people[j+1].name);
strcpy(people[j].num,people[j+1].num);
}
k--;
change();
}
}

//¹¦ÄÜ3 ÏÔʾ¼Çʱ¾ÖеÄÈ«²¿ÐÅÏ¢
void display()
{
cout<<"there are "<<k<<" people in this contract."<<endl;
char a[50];
if((fp=fopen("contract.txt","r"))==NULL) //¶ÁÈ¡contract.txtÎļþºó£¬½øÐÐÊä³ö¡£
{
printf("Can not open this file.\n");
getchar();
exit(-1);
}
while(fgets(a,45,fp))
{
printf("%s",a);
}
fclose(fp);
}
//¹¦ÄÜ4 ²éѯÁªÏµÈËÐÅÏ¢

void search()
{
cout<<"there are "<<k<<" people in this contract."<<endl;
char name1[21];getchar();
gets(name1);
int flag=0,i,len;
len=strlen(name1);
for(i=len;i<20;i++)
name1[i]=' ';
name1[i]='\0';
for(i=0;i<k;i++)
{
// printf("%s\n",people[i].name);
// cout<<"2"<<" "<<strlen(people[i].name)<<endl;
if(strcmp(people[i].name,name1)==0){flag=1;cout<<name1<<"  "<<people[i].num<<endl;}
//  cout<<"flag="<<flag<<endl;
}
if(flag==0)cout<<"This person don't exist in the contract!"<<endl;
}

//ÀûÓÿ⺯Êýsort½øÐÐÅÅÐò
bool cmp(struct element x,struct element y)
{
if(strcmp(x.name,y.name)<0)return 1;
if(strcmp(x.name,y.name)>0)return 0;
}
//ÏÔʾ½çÃ溯Êý
void show()
{
int i;
for(i=1;i<=52;i++)
cout<<'*';

cout<<endl;
cout<<"*                                                  *"<<endl;
cout<<"*                    CONTRACT                      *"<<endl;
cout<<"*          1.add contract                          *"<<endl;
cout<<"*          2.delete contract                       *"<<endl;
cout<<"*          3.display all of the contract           *"<<endl;
cout<<"*          4.search people's contract              *"<<endl;
cout<<"*          5.show_editor                           *"<<endl;
cout<<"*          6.exit                                  *"<<endl;
for(i=1;i<=52;i++)
cout<<'*';
cout<<endl;
cout<<"Please select number to realize corresponding function!"<<endl<<endl;
}

//ÏÔʾ×÷Õß

//´ÓÎļþÖжÁÈ¡ µç»°±¡´æ´¢µÄÌõÊý
void read()
{  char ch;
if((fp=fopen("record.txt","r"))==NULL)
{
printf("Can not open this file.\n");
getchar();
exit(-1);
}
ch=fgetc(fp);
k=ch-'0';
//     cout<<"k="<<k;
}
//ÏòÎļþÖмǼ µç»°±¡´æ´¢µÄÌõÊý

void set()
{  char ch=k+'0';
if((fp=fopen("record.txt","w"))==NULL)
{
printf("Can not open this file.\n");
getchar();
exit(-1);
}
fputc(ch,fp);
fclose(fp);
}

void show_editor()
{
char a[100] ="This project is made by:",b[100]="ÊýÀíѧԺ ÐÅÏ¢Óë¼ÆËã¿Æѧ ",c[100]="Ñî˸ Ñî³ç²Æ »Æƽ";
puts(a);
puts(b);
puts(c);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: