课程设计源代码

来源:互联网 发布:网络修复大师 编辑:程序博客网 时间:2024/04/20 03:14
  1. /*  
  2. 烟台大学计算机学院  
  3.   
  4. 文件名称:goushuai.cpp  
  5.   
  6. 作者:张俊杰
  7.   
  8. 完成日期:2017年12月22日  
  9.   
  10. 问题描述:通讯录系统
  11.  

  12.   
  13. */  
main.cpp

#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <string.h>#include "zccc.h"int  main(){    Link *L;    system("color 7e");    static char name[100];    static char num[100];    Initlist(L);//初始化单链表    while(1)    {        printf("         ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★\n");        printf("         ★                                    ☆\n");        printf("         ☆              通讯录                ★\n");        printf("         ★            1.录入信息              ☆\n");        printf("         ☆            2.查询信息              ★\n");        printf("         ★            3.信息排序              ☆\n");        printf("         ★            4.浏览信息              ☆\n");        printf("         ☆            5.修改信息              ★\n");        printf("         ★            6.删除信息              ☆\n");        printf("         ☆            7.查看用户数            ★\n");        printf("         ☆            0.退出系统              ★\n");        printf("         ★                                    ☆\n");        printf("         ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆\n");        printf("请输入:");        int s;        scanf("%d",&s);        switch(s)        {            case 1:            {                int m;                Creatlist(L);            do{                system("cls");                printf("继续输入请按1,返回上层请按2:");                getchar();                scanf("%d",&m);                if(m==1)                    Creatlist(L);                 }while(m!=2);                 break;            }         case 2:            {                system("cls");                int n;                printf("1、按姓名查找\n");                printf("2、按编号查找\n");                scanf("%d",&n);                if(n==1)                {                     printf("请输入要查找人的姓名: \n");                     scanf("%s",name);                     SearchName(L,name);                }                 if(n==2)                {                     printf("请输入要查找的编号: \n");                     scanf("%s",num);                     SearchNum(L,num);                }                     break;            }         case 3:            {                    printf("排序已完成\n");                    printf("排序结果如下:\n");                    SortNum(L);                    Display(L);                    break;            }         case 4:            {                    system("cls");                    Display(L);                    break;        }         case 5:            {                    system("cls");                    printf("请输入需要修改信息的个人编号: \n");                    getchar();                    scanf("%s",num);                    Alter(L,num);                    break;            }         case 6:            {                    char g;                    system("cls");                    printf("请输入所要删除的学生的编号: \n");                    getchar();                    scanf("%s",num);                    printf("是否确定删除该同学:(Y/N)");                    scanf("%s",&g);                    if(g=='Y')                    {                        Del(L, num);                    }                    else                    {                        printf("输入错误,请重新输入Y/N");                    }                        break;            }         case 7:            {                Print(L);                break;            }        case 0:            {                    printf("谢谢使用 \n");                    break;                    default:                    break;            }     }       }    return 0;}
zccc.h
#ifndef ZCCC_H_INCLUDED#define ZCCC_H_INCLUDED#include <stdio.h>#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <string.h>typedef struct telebook{    char num[30];/*编号*/        char name[30];/*姓名*/    char addr[30];/*地址*/        char telenum[30];/*手机号*/}tele;typedef struct LNode{     tele data; struct LNode* next;}Link;void Initlist(Link *&L);//初始化单链表void Creatlist(Link *&L);//头插法生成单链表void SearchNum(Link *L,char num[30]);//编号查询void Del(Link *&L,char num[30]);//按编号删除void SearchName(Link *L,char name[30]);//姓名查询void Alter(Link *L,char num[30]);//更改信息void Display(Link *&L);//显示信息void SortNum(Link *L);//编号排序void Print(Link *L); //显示通讯录人数#endif // ZCCC_H_INCLUDED

zzzc.cpp
#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <string.h>#include "zccc.h"void Initlist(Link *&L)//初始化线性表{    L=(Link *)malloc(sizeof(Link)); //分配内存空间    L->next=NULL;}void Print(Link *L)  //显示通讯录人数功能{    int num=0;    Link *p;    p=L;    while(p)    {        p=p->next;        num++;    }    printf("\n该通讯录共有信息数:%d\n",num-1);}void Creatlist(Link *&L)//头插法生成单链表{    Link *r;    r=(Link *)malloc(sizeof(Link));    printf("请录入个人信息\n");    printf("编号:   \n");    scanf("%s",r->data.num);    printf("姓名:   \n");    scanf("%s",r->data.name);    printf("地址:   \n");    scanf("%s",r->data.addr);    printf("手机号: \n");    scanf("%s",r->data.telenum);    r->next=L->next;    L->next=r;}void Alter(Link *L,char num[30])//修改个人信息{    Link *p;    p=L;    int s;    while(p)    {        if(strcmp(p->data.num,num)==0)        {           printf("请输入你要修改的信息:1.修改编号 2.修改姓名 3.修改地址 4.修改手机号\n");           printf("请选择:");           scanf("%d",&s);           switch(s)       {             case 1:                 {                    printf("请输入编号: ",p->data.num);                    scanf("%s",p->data.num);                    printf("信息修改成功\n");                    break;                 }             case 2:                 {                    printf("请输入姓名: ",p->data.name);                    scanf("%s",p->data.name);                    printf("信息修改成功\n");                    break;                 }             case 3:                 {                    printf("请输入地址: ",p->data.addr);                    scanf("%s",p->data.addr);                    printf("信息修改成功\n");                    break;                 }            case 4:                 {                    printf("请输入手机号: ",p->data.telenum);                    scanf("%s",p->data.telenum);                    printf("该学生的信息修改成功\n");                    break;                 }       }        }        p=p->next;    }}void Del(Link *&L, char num[100])//按编号进行删除{    Link *p,*q;    p=L;    q=L->next;    char flag=0;    while(q)    {        if(strcmp(q->data.num,num)==0)        {            p->next=q->next;            free(q);            flag=1;            break;        }        p=p->next;        q=q->next;    }    if(!flag)    {        printf("对不起,该编号不存在 \n");    }    printf("删除成功\n");}void Display(Link *&L)//显示信息{    Link *p;    p=L->next;    char flat=0;    while(p)    {        printf("编号\t姓名\t地址\t手机号\n");        for(p=L->next;p;p=p->next)        {             printf("%s\t%s\t%s\t%s\n",p->data.num,p->data.name,p->data.addr,p->data.telenum);             flat=1;        }    }    if(!flat)    {        printf("无法显示信息 \n");    }}void SearchName(Link *L,char name[100])//学号查询    {        Link *p;        p=L;        char flat=0;        while(p)        {            if(p!=NULL)            {                if(strcmp(p->data.name,name)==0)                {                    printf("学号:     %s\n",p->data.num);                    printf("姓名:     %s\n",p->data.name);                    printf("地址:     %s\n",p->data.addr);                    printf("手机号:   %s\n",p->data.telenum);                    flat=1;                }            }            p=p->next;        }        if(!flat)        {            printf("对不起输入姓名错误或该信息已被删除,请重新输入进行查询 \n");        }    }void SearchNum(Link *L,char num[100])//学号查询    {        Link *p;        p=L;        char flat=0;        while(p)        {            if(p!=NULL)            {                if(strcmp(p->data.num,num)==0)                {                    printf("编号:     %s\n",p->data.num);                    printf("姓名:     %s\n",p->data.name);                    printf("地址:     %s\n",p->data.addr);                    printf("手机号:   %s\n",p->data.telenum);                    flat=1;                }            }            p=p->next;        }        if(!flat)        {            printf("对不起输入编号错误或该信息已被删除,请重新输入进行查询 \n");        }    }void SortNum(Link *L)//按编号排序{    Link *p,*q;    tele temp;    for(p=L->next;p!=NULL;p=p->next)    {        for(q=p->next;q!=NULL;q=q->next)        {            if(strcmp(p->data.num,q->data.num)>0)            {                    temp=q->data;                    q->data=p->data;                    p->data=temp;            }        }    }}


原创粉丝点击