⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 studentcommunicationsmanagementsystem.cpp

📁 学生通讯管理系统,通过设计一个单向链表
💻 CPP
字号:
#include<iostream>
#include<stdlib>
#include<string>
#include<fstream>

struct Book
{
    char name[10];
    char sex[5];
    int  num;
    char add[20];
    Book *next;
};

void InitBook(Book *&Head)      //初始化链表
{
    Head=NULL;
}
void ClearBook(Book *&Head)     //清空链表
{
    Book *cp,*np;
    cp=Head;
    while(cp!=NULL)
    {
        np=cp->next;
        delete cp;
        cp=np;
    }
    Head=NULL;
}
void BookSize(Book *Head)         //求表长
{
    Book *p=Head;
    int i=0;
    while(p!=NULL)
    {
        i++;
        p=p->next;
    }
    cout<<"通讯录中的人数:"<<i<<endl;
}
bool BookEmpty(Book *Head)       //检查表是否为空
{
    return (Head==NULL);
}
void TraverseBook(Book *Head)    //遍历表
{
    cout<<"姓名\t性别\t电话\t住址\n";
    Book *p=Head;
    while(p!=NULL)
    {
        cout<<p->name<<"\t"<<p->sex<<"\t"<<p->num<<"\t"<<p->add<<endl;
        p=p->next;
    }
}
void InsertBook(Book *&Head)     //向表中插入元素  
{
    Book *new1;
    new1=new Book;
    cout<<"请输入姓名:";
    cin>>new1->name;

    cout<<"请输入性别:";
    cin>>new1->sex;

    cout<<"请输入联系电话:";
    cin>>new1->num;

    cout<<"请输入联系地址:";
    cin>>new1->add;
 	{
    new1->next=Head;
    Head=new1;
	}
}
void FindBook(Book * Head)        //查询一个元素
{

    char x[10];
    Book *p=Head;
    cout<<"请输入你想要查找的人的姓名:";
    cin>>x;
    if(p==NULL)cout<<"没有资料。"<<endl;
    else
	{
         while(strcmp(p->name,x)!=0)
			{
                p=p->next;
                if(p==NULL)break;
            } 
		 if(p==NULL) cout<<"对不起,找不到你要查找的人。"<<endl;
		 else
		 {
             cout<<" 姓名:"<<p->name<<"\t性别:"<<p->sex<<endl;     
             cout<<" 电话:"<<p->num<<"\t地址:"<<p->add<<endl;
		 }	     
		 
	}
}
void UpdateBook(Book *Head)           //修改一个元素
{
    char x[10];
    Book *p=Head;
    cout<<"请输入你想要修改的人的姓名:";
    cin>>x;
    if(p==NULL)cout<<"没有资料。"<<endl;
    else
	{
          while(strcmp(p->name,x)!=0)
		  {
                p=p->next;
                if(p==NULL)break;
		  }
		  if(p==NULL) cout<<"对不起,找不到你要修改的人。"<<endl;
		  else
		  {
              cout<<"请输入新的资料:"<<endl;
              cout<<"请输入姓名:";
              cin>>p->name;
    
              cout<<"请输入性别:";
              cin>>p->sex;
     
              cout<<"请输入联系电话:";
              cin>>p->num;
    
              cout<<"请输入联系地址:";
              cin>>p->add;
		  }
	}
}

void DeleteBook(Book *&Head)        //删除一个元素
{ 
   if(Head==NULL)cout<<"没有资料。"<<endl;
   else
   {
       char x[10];
       cout<<"请输入要删除的人的姓名:";
       cin>>x;
       Book *p=Head,*q=NULL;
    
       while(p!=NULL)
          if(strcmp(p->name,x)==0) break;
          else
		  {
              q=p;
              p=p->next;
		  }
       if(p==NULL)
         cout<<"对不起,找不到你要删除的人。"<<endl;
       else
	   {
           if(q==NULL)
                Head=Head->next;
           else
                q->next=p->next;
           delete p;
           cout<<"此人已删除。"<<endl;
	   }
   }
}
void writein(Book * Head)            //存盘
{ 
    Book *p=Head;
	ofstream f1("G:\\xuyaohua.txt");
    while(p!=NULL)
	{
        f1<<p->name<<"\t"<<p->sex<<"\t"<<p->num<<"\t"<<p->add<<"\n";
        p=p->next;
	}
    f1.close();
}

void readout(Book * Head)            //读出
{ 
    Book *p=Head;
    ifstream f2("G:\\xuyaohua.txt");
    while(p!=NULL)
	{
        f2>>p->name>>p->sex>>p->num>>p->add;
        cout<<p->name<<"\t"<<p->sex<<"\t"<<p->num<<"\t"<<p->add<<"\n";
        p=p->next;
	}
    f2.close();
}

void main()
{
    cout<<"★欢迎来到学生通讯录管理系统★"<<endl;
    cout<<endl;                                                  
    cout<<"按(1):成员总名单查看;"<<endl;
    cout<<"按(2):增加一位成员资料;"<<endl;
    cout<<"按(3):删除一位成员资料;"<<endl;
    cout<<"按(4):修改一位成员资料;"<<endl;
    cout<<"按(5):查询成员资料;"<<endl;
    cout<<"按(6):成员资料写入文件;"<<endl;
    cout<<"按(7):从文件读出成员资料;"<<endl;
    cout<<"按(8):清空通讯录;"<<endl;
    cout<<"按(9):安全退出;"<<endl;
    cout<<endl;
    cout<<"★制作人:※***※"<<endl;
    cout<<endl;
    cout<<"★请选择:";
    char a;
    cin>>a;
    Book *z;
    InitBook(z);
    while(1)
	{
        switch(a)
		{
            case '1':TraverseBook(z);
                   BookSize(z);
                   cout<<"★请选择:";
                   break;
            case '2':InsertBook(z);
                   cout<<"★请选择:";      
                   break;   
            case '3':DeleteBook(z);
                   cout<<"★请选择:";   
                   break;    
            case '4':UpdateBook(z);
                   cout<<"★请选择:";     
                   break;
            case '5':FindBook(z);
                   cout<<"★请选择:";      
                   break;
            case '6':writein(z);
                   cout<<"★请选择:";      
                   break;
            case '7':readout(z);
                   cout<<"★请选择:";      
                   break;
            case '8':ClearBook(z);
                   cout<<"★请选择:";
                   break;
            case '9':exit(0);
            default :cout<<"★输入错误请重新选择:";
		}
        cin>>a;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -