中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用C語言實現通訊錄系統

發布時間:2022-07-22 13:57:44 來源:億速云 閱讀:108 作者:iii 欄目:開發技術

本篇內容介紹了“怎么使用C語言實現通訊錄系統”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

設計要求

1.單位、個人信息查詢
2.打開、寫入保存這些信息的文件

完整代碼

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct Userinfo // 定義結構體類型;封裝個人的信息
{
    char name[20]; // 用戶姓名
    char sex[2]; // 性別
    char cname[20]; // 單位
    char mobileNumber[11]; // 手機
} Userinfo;

typedef struct Companyinfo // 定義結構體類型;封裝個人的信息
{
    char companyname[20]; // 姓名
    char companyaddress[200]; // 單位地址
    char telphone[8]; // 電話
} Companyinfo;

    int count = 0; //系統中的現有人數
    int countu = 0; //系統中的現有人數

void insertuserinfo(Userinfo *userinfo, int *countu)
/*添加聯系人信息*/
{
    printf("請輸入要添加人的姓名:> ");
    scanf("%s", (userinfo + (*countu))->name);
//flag:
    printf("請輸入要添加人的性別(男/女):> ");
    scanf("%s", (userinfo + (*countu))->sex);
    printf("請輸入要添加人的工作單位:> ");
    scanf("%s", &(userinfo + (*countu))->cname);
    printf("請輸入要添加的電話:> ");
    scanf("%s", (userinfo + (*countu))->mobileNumber);
    printf("添加成功!\n");
    (*countu)++;/*已有人數加1*/
}

void insertcompanyinfo(Companyinfo *companyinfo, int *count)
/*添加單位信息*/
{
    printf("請輸入要添加單位的名稱:> ");
    scanf("%s", (companyinfo + (*count))->companyname);
    printf("請輸入要添加單位的地址:> ");
    scanf("%s", &(companyinfo + (*count))->companyaddress);
    printf("請輸入要添加單位的電話:> ");
    scanf("%s", (companyinfo + (*count))->telphone);
    printf("添加成功!\n");
    (*count)++;/*已有人數加1*/
}

void DeleteUserinfo(Userinfo *userinfo, int *countu)
/*刪除指定聯系人信息*/
{
    char _name[20];
    if ((*countu) <= 0)
    {
        printf("此系統中還沒有人員信息!\n");
        return;
    }
    printf("請輸入您要刪除人員的姓名:> ");
    scanf("%s", _name);
    for (int i = 0; i < (*countu); i++)
    {
        if (strcmp((userinfo + i)->name, _name) == 0)
        {
            for (int j = i; j < (*countu) - 1; j++)
            {
                strcpy((userinfo + j)->name, (userinfo + j + 1)->name);
                strcpy((userinfo + j)->sex, (userinfo + j + 1)->sex);
                strcpy((userinfo + j)->cname ,(userinfo + j + 1)->cname);
                strcpy((userinfo + j)->mobileNumber, (userinfo + j + 1)->mobileNumber);
            }
            (*countu)--;
            printf("刪除成功!\n");
            return;
        }/*if*/
    }/*for*/
    printf("當前系統中沒有此人!\n");
}

void DeleteCompanyinfo(Companyinfo *companyinfo, int *count)
/*刪除指定單位信息*/
{
    char _name[20];
    if ((*count) <= 0)
    {
        printf("此系統中還沒有單位信息!\n");
        return;
    }
    printf("請輸入您要刪除單位名稱:> ");
    scanf("%s", _name);
    for (int i = 0; i < (*count); i++)
    {
        if (strcmp((companyinfo + i)->companyname, _name) == 0)
        {
            for (int j = i; j < (*count) - 1; j++)
            {
                strcpy((companyinfo + j)->companyname, (companyinfo + j + 1)->companyname);
                strcpy((companyinfo + j)->companyaddress, (companyinfo + j + 1)->companyaddress);
                strcpy((companyinfo + j)->telphone, (companyinfo + j + 1)->telphone);
            }
            (*count)--;
            printf("刪除成功!\n");
            return;
        }/*if*/
    }/*for*/
    printf("當前系統中沒有此單位!\n");
}

void Search(const Companyinfo *companyinfo, const int count)
/*查找指定單位信息*/
{
    char _name[20];
    printf("請輸入您要查找的單位名稱:> ");
    scanf("%s", _name);
    for (int i = 0; i < count; i++)
    {
        if (strcmp((companyinfo + i)->companyname, _name) == 0)
        {
            printf("*********=======您查單位信息為=======*********\n");
            printf("    *********   單位名稱:> %s\n", (companyinfo + i)->companyname);
            printf("    *********   單位地址:> %s\n", (companyinfo + i)->companyaddress);
            printf("    *********   單位電話:> %s\n", (companyinfo + i)->telphone);
            return;
        }
    }/*for*/
    printf("沒有找到您要查找的單位!\n");
}

void SearchUser(const Userinfo *userinfo, const int countu)
/*查找指定聯系人信息*/
{
    char _name[20];
    printf("請輸入您要查找人的信息:> ");
    scanf("%s", _name);
    for (int i = 0; i < countu; i++)
    {
        if (strcmp((userinfo + i)->name, _name) == 0)
        {
            printf("*********=======您查個人信息為=======*********\n");
            printf("    *********   姓名:> %s\n", (userinfo + i)->name);
            printf("    *********   性別:> %s\n", (userinfo + i)->sex);
            printf("    *********   單位:> %d\n", (userinfo + i)->cname);
            printf("    *********   電話:> %d\n", (userinfo + i)->mobileNumber);
            return;
        }
    }/*for*/
    printf("沒有找到您要查找的人員!\n");
}

void Alter(Companyinfo *companyinfo, const int count)
/*修改指定單位信息*/
{
    char _name[20];
    printf("請輸入您要修改的單位的名稱:> ");
    scanf("%s", _name);
    for (int i = 0; i < count; i++)
    {
        if (strcmp((companyinfo + i)->companyname, _name) == 0)
        {
            printf("請輸入修改后的單位名稱:> ");
            scanf("%s", (companyinfo + i)->companyname);
            printf("請輸入修改后的單位地址:> ");
            scanf("%s", (companyinfo + i)->companyaddress);
            printf("請輸入修改后的單位電話:> ");
            scanf("%s", (companyinfo + i)->telphone);
            printf("修改成功!\n");
            return;
        }
    }/*for*/
    printf("沒有找到您要查找的單位!\n");
}

void Show(const Companyinfo *companyinfo, const int count)
/*顯示所有單位信息*/
{
    if (count == 0)
    {
        printf("沒有找到您要查找的單位!\n");
    }
    else
    {
        for (int i = 0; i < count; i++)
        {
            printf("%5s    |%13s  |%s\n", (companyinfo + i)->companyname, (companyinfo + i)->telphone, (companyinfo + i)->companyaddress);
        }
    }
}

void OpenFile()
{
   FILE *fp = NULL;
   char buff[255];
   fp = fopen("/Teldict.txt", "r");
   printf("打開文件名:Teldict.text \n");
   printf("內容如下:\n");
   fgets(buff, 255, (FILE*)fp);
   printf("1: %s\n", buff );
   fclose(fp);
}

void WriteFile()
{
  char s[100];
   FILE *fp = NULL;
   fp = fopen("/Teldict.txt", "w+");
            printf("請輸入寫入文件的內容: ");
            scanf("%s",&s);
   fprintf(fp,s);
   fputs(s, fp);
 //  fputs("This is testing for fputs...\n", fp);
   fclose(fp);

}

int StcCmp(const void*num1, const void *num2)
/*快排的比較函數*/
{
    return (strcmp(((Companyinfo *)num1)->companyname, ((Companyinfo *)num2)->companyname) > 0) ? 1 : -1;
}

int switchuserinfo(Userinfo *userinfo)
{

    int b;
            printf("\n");
            printf("1)新建個人信息\n");
            printf("2)修改個人信息\n");
            printf("3)刪除個人信息\n");
            printf("4)返回上一菜單\n");
            printf("請選擇上面序號進行相應的操作: ");
            scanf("%d",&b);
            switch(b)
            {
                case 1:
                    {
                      insertuserinfo(userinfo,&countu);
                      break;
                    }
                case 2:
                    {
                      void Alter(Companyinfo *companyinfo, const int count);
                      break;
                    }
                case 3:
                    {
                      void Alter(Companyinfo *companyinfo, const int count);
                      break;
                    }

                case 4:break;
            }
   return 0;

}

int switchcompanyinfo(Companyinfo *companyinfo)
{

      int b;
            printf("\n");
            printf("1)新建單位信息\n");
            printf("2)修改單位信息\n");
            printf("3)刪除單位信息\n");
            printf("4)查詢單位信息\n");
            printf("5)顯示單位信息\n");
            printf("6)返回上一菜單\n");
            printf("請選擇上面序號進行相應的操作: ");
            scanf("%d",&b);
            switch(b)
            {
                case 1:
                    {
                      insertcompanyinfo(companyinfo,&count);
                      break;
                    }
                case 2:
                    {
                      Alter(companyinfo,count);
                      break;
                    }
                case 3:
                    {
                      DeleteCompanyinfo(companyinfo,&count);
                      break;
                    }
                case 4:
                    {
                      Search(companyinfo,count);
                      break;
                    }
                case 5:
                    {
                      Show(companyinfo,count);
                      break;
                    }
                case 6:break;
            }
 return 0;
};

int main()
{
Userinfo userinfo[10];
Companyinfo companyinfo[10];
int inputkey;
printf("歡迎使用電話薄查詢系統!\n\n");

qq:
   printf("請輸入登錄賬號:");
   scanf("%d",&inputkey);
  int input = 1;
if (inputkey==1001)
 {
    while (input)
    {
      printf("\n");
     printf("請選擇對應序號:(1) 單位信息管理; (2)個人信息管理  (3)重新登錄  (4)退出 :");
     scanf("%d",&input);
        switch (input)
        {
          case 1:      //單位信息管理
             switchcompanyinfo(companyinfo);
             break;
          case 2:      //個人信息管理
             switchuserinfo(userinfo);
             break;
          case 3:      //
             goto qq;
             break;
          case 4:
            printf("感謝您試用本服務系統,歡迎您的下次使用!\n");
            system("pause");
            return 0;
        };//while

     }
 }
  else
    {
      while (input)
    {
        printf("請選擇操作序號 :\n\n");
        printf("1)單位查詢\n");
        printf("2)個人信息查詢\n");
        printf("3)打開文件\n");
        printf("4)寫入文件\n");
        printf("5)重新登錄\n");
        printf("6)退出\n");
     scanf("%d",&input);
        switch (input)
        {
          case 1:      //單位查詢
             Search(companyinfo, count);
             break;
          case 2:      //個人信息查詢
             SearchUser(userinfo, countu);
             break;
          case 3:      //打開文件
             OpenFile();
             break;
          case 4:      //寫入文件
             WriteFile();
             break;
          case 5 :
            goto qq; break;

          case 6:
            printf("感謝您試用本服務系統,歡迎您的下次使用!\n");
            system("pause");
            return 0;
        };//while

    }

    }

  printf("\n");
    system("pause");
  return 0;
}

運行結果

怎么使用C語言實現通訊錄系統

本代碼設置的登錄賬號是1,當然你也可以進行修改。

“怎么使用C語言實現通訊錄系統”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临洮县| 神木县| 巴楚县| 永泰县| 宜良县| 岳池县| 兴宁市| 登封市| 建德市| 台东市| 陆丰市| 二连浩特市| 峨边| 黄冈市| 琼中| 万宁市| 佛坪县| 汉沽区| 洛阳市| 邵阳县| 汉源县| 泾阳县| 突泉县| 讷河市| 镇赉县| 错那县| 永川市| 凌云县| 汝州市| 缙云县| 绥芬河市| 诸暨市| 晋城| 巴青县| 金溪县| 淮北市| 普定县| 福泉市| 上虞市| 田阳县| 西乌|