c++课程设计

一.功能介绍:

  本电话薄有以下功能:

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.

 

c++课程设计

 

开始运行可执行文件。

 

c++课程设计

输入数字1

选择添加add Contract

 

输入

Zoo 18773491005

Cat 16543487654

Apple 18554320987

# #

 

c++课程设计

显示所有联系人

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

 

c++课程设计

c++课程设计

选择2

删除联系人

Apple

显示 联系人Apple已被删除

 

选择四查找联系人。

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

 

c++课程设计

输入数字5

显示作者:

按6退出。

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

 

 

完成输入结果。

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

 

c++课程设计

三.附上程序代码:

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

 

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);
   
     
     
}

 

 

 

 

转载于:https://www.cnblogs.com/ysh-blog/archive/2012/06/05/2537409.html