欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言通訊錄管理系統(tǒng)課程設(shè)計

 更新時間:2021年01月02日 12:25:43   作者:ANONYMOUSLYCN  
這篇文章主要為大家詳細(xì)介紹了C語言通訊錄管理系統(tǒng)課程設(shè)計,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C語言通訊錄管理系統(tǒng)課程設(shè)計,供大家參考,具體內(nèi)容如下

#include <stdio.h> 
#include <stdlib.h> 
#include <windows.h> 
struct Sign{ 
  char name[8]; 
  char sex[4]; 
  char birthday[12]; 
  char phone[11]; 
  char postcode[7]; 
  char addr[30]; 
  struct Sign *next; 
 }pe; 
 char PhoneCop[4] ; 
 
//結(jié)構(gòu)體 
struct Sign *p1,*p2,*head; 
FILE *fp; 
void ShowMenu(){ 
 system("color 1F"); 
 printf("#################   通訊錄管理系統(tǒng) v1.0 ###################\n"); 
 printf("#####################################################################\n"); 
 printf("#                 #\n"); 
 printf("#   1-----------------信息錄入-------------------   #\n"); 
 printf("#                 #\n"); 
 printf("#   2-----------------信息查詢-------------------   #\n"); 
 printf("#                 #\n"); 
 printf("#   3-----------------信息查看-------------------   #\n"); 
 printf("#                 #\n"); 
 printf("#   4-----------------信息修改-------------------   #\n"); 
 printf("#                 #\n"); 
 printf("#   5-----------------信息統(tǒng)計-------------------   #\n"); 
 printf("#                 #\n"); 
 printf("#   6-----------------退出系統(tǒng)-------------------   #\n"); 
 printf("#                 #\n"); 
 printf("#####################################################################\n"); 
 printf("#  POWER BY ************* 蘭州理工大學(xué)  201407   #\n"); 
 printf("#####################################################################\n"); 
  
}; 
void HeadShow() 
{ 
 printf("#################   通訊錄管理系統(tǒng) v1.0 ###################\n"); 
 printf("---------------------------------------------------------------------\n"); 
 
} 
void FileLoading() 
{ 
  if((fp=fopen("txl.dat","rb"))==NULL) 
 { 
  printf("文件操作錯誤,請檢查是否有權(quán)限操作文件!"); 
  Sleep(3000); 
  exit(1); 
 } 
 p1=(struct Sign*)malloc(sizeof(struct Sign)); 
 p1->next=NULL; 
 head=p1; 
 while(!feof(fp)) 
 { 
  if(fread(p1,sizeof(struct Sign),1,fp)!=1) 
   break; 
  p2=(struct Sign*)malloc(sizeof(struct Sign)); 
  p2->next=NULL; 
  p1->next=p2; 
  p1=p2; 
 } 
 fclose(fp); 
} 
void add() 
{  
 char ch; 
 if((fp==fopen("txl.dat","ab+"))!=1) 
 { 
  printf("文件打開失敗"); 
  exit(1); 
 } 
 while(1) 
 { system("cls"); 
  printf("請輸入__\n"); 
  p2=(struct Sign*)malloc(sizeof(struct Sign)); 
  p2->next=NULL; 
  printf("姓名:");scanf("%s",pe.name); 
  printf("性別:");scanf("%s",pe.sex); 
  printf("生日:");scanf("%s",pe.birthday); 
  printf("電話號碼:");scanf("%s",pe.phone); 
  printf("郵編:");scanf("%s",pe.postcode); 
  printf("地址:");scanf("%s",pe.addr); 
  strcpy(p1->name,pe.name); 
  strcpy(p1->sex,pe.sex); 
  strcpy(p1->birthday,pe.birthday); 
  strcpy(p1->phone,pe.phone); 
  strcpy(p1->postcode,pe.postcode); 
  strcpy(p1->addr,pe.addr); 
  p1->next=p2; 
  p1=p2;   
  if(fwrite(&pe,sizeof(struct Sign),1,fp)!=1) 
   printf("寫入錯誤"); 
  printf("輸入E或e來結(jié)束輸入?"); 
  getchar(); 
  ch=getchar(); 
  if(ch=='e'||ch=='E') 
   break; 
 
 } 
 fclose(fp); 
} 
void SaveChange() 
{  
 if((fp==fopen("txl.dat","w"))!=1) 
 { 
  printf("文件打開失敗"); 
  exit(1); 
 } 
 p1=head; 
 while(p1->next!=NULL) 
 { 
  if(fwrite(p1,sizeof(struct Sign),1,fp)!=1) 
   printf("寫入錯誤"); 
  p1=p1->next; 
   
 } 
 fclose(fp); 
} 
void AllShow() 
{ 
 HeadShow(); 
 printf("%10.8s %6.6s %10.10s %11.4s %9.7s %16.6s \n","姓名","性別","生日","電話","郵編","地址");  
 printf("---------------------------------------------------------------------\n"); 
 p1=head; 
 while(p1->next!=NULL) 
 { 
  printf("%10.8s %6.6s %10.12s %11.11s %9.7s %16.16s \n",p1->name,p1->sex,p1->birthday,p1->phone,p1->postcode,p1->addr); 
  p1=p1->next; 
   
 } 
  
} 
 
void AllNum() 
{ int i=0; 
 HeadShow(); 
 printf("   共有記錄條數(shù)為: \n"); 
 printf("---------------------------------------------------------------------\n"); 
 p1=head; 
  while(p1->next!=NULL) 
 { 
  i++; 
  p1=p1->next; 
   
 } 
 printf("   %d     \n",i); 
 printf("---------------------------------------------------------------------\n"); 
  
 printf("   共有聯(lián)通用戶為: \n"); 
 printf("---------------------------------------------------------------------\n"); 
 p1=head; 
 i=0; 
  while(p1->next!=NULL) 
 { 
  strncpy(PhoneCop,p1->phone,3); 
  if(strcmp(PhoneCop,"130")==0||strcmp(PhoneCop,"131")==0||strcmp(PhoneCop,"132")==0||strcmp(PhoneCop,"155")==0||strcmp(PhoneCop,"156")==0||strcmp(PhoneCop,"185")==0||strcmp(PhoneCop,"186")==0) 
   i++; 
  p1=p1->next; 
   
 } 
 printf("   %d     \n",i); 
 printf("---------------------------------------------------------------------\n"); 
 printf("   共有移動用戶為: \n"); 
 printf("---------------------------------------------------------------------\n"); 
 p1=head; 
 i=0; 
  while(p1->next!=NULL) 
 { 
  strncpy(PhoneCop,p1->phone,3); 
  if(strcmp(PhoneCop,"134")==0||strcmp(PhoneCop,"135")==0||strcmp(PhoneCop,"136")==0||strcmp(PhoneCop,"137")==0||strcmp(PhoneCop,"138")==0||strcmp(PhoneCop,"139")==0||strcmp(PhoneCop,"150")==0||strcmp(PhoneCop,"151")==0||strcmp(PhoneCop,"152")==0||strcmp(PhoneCop,"157")==0||strcmp(PhoneCop,"158")==0||strcmp(PhoneCop,"159")==0||strcmp(PhoneCop,"187")==0||strcmp(PhoneCop,"188")==0) 
   i++; 
  p1=p1->next; 
   
 } 
 printf("   %d     \n",i); 
 printf("---------------------------------------------------------------------\n"); 
  printf("   共有電信用戶為: \n"); 
 printf("---------------------------------------------------------------------\n"); 
 p1=head; 
 i=0; 
  while(p1->next!=NULL) 
 { 
  strncpy(PhoneCop,p1->phone,3); 
  if(strcmp(PhoneCop,"180")==0||strcmp(PhoneCop,"189")==0||strcmp(PhoneCop,"133")==0||strcmp(PhoneCop,"153")==0) 
   i++; 
  p1=p1->next; 
   
 } 
 printf("   %d     \n",i); 
 printf("---------------------------------------------------------------------\n"); 
} 
void CheckFace() 
{ int Check_key; 
 printf("###########   通訊錄管理系統(tǒng) v1.0 ################\n"); 
 printf("############################################################\n"); 
 printf("#               #\n"); 
 printf("#     1------按姓名查詢      #\n"); 
 printf("#               #\n"); 
 printf("#     2------按電話號碼查詢     #\n"); 
 printf("#               #\n"); 
 printf("#     3------綜合查詢       #\n"); 
 printf("#               #\n"); 
 printf("#     4------退出查詢模塊      #\n"); 
 printf("#               #\n"); 
 printf("#               #\n"); 
 printf("#               #\n"); 
 printf("############################################################\n"); 
 printf("# POWER BY ************* 蘭州理工大學(xué)  201407  #\n"); 
 printf("############################################################\n"); 
  
} 
void Selelctname() 
{ system("cls"); 
 HeadShow(); 
 printf("%10.8s %6.6s %10.10s %11.4s %9.7s %16.6s \n","姓名","性別","生日","電話","郵編","地址");  
 printf("---------------------------------------------------------------------\n"); 
 p1=head; 
 char FindName[8]; 
 int i=0; 
 printf("請輸入要查詢的姓名:"); 
 scanf("%s",&FindName); 
 while(p1->next!=NULL) 
 { 
  if(strcmp(p1->name,FindName)==0) 
   {printf("%10.8s %6.6s %10.10s %11.14s %9.7s %16.16s \n",p1->name,p1->sex,p1->birthday,p1->phone,p1->postcode,p1->addr); 
   i++; 
   } 
  p1=p1->next; 
   
 } 
 printf("共 %d 條\n",i); 
 system("pause"); 
} 
 
void Selelctphone() 
{ system("cls"); 
 HeadShow(); 
 printf("%10.8s %6.6s %10.10s %11.4s %9.7s %16.6s \n","姓名","性別","生日","電話","郵編","地址");  
 printf("---------------------------------------------------------------------\n"); 
 p1=head; 
 char phone[11]; 
 int i=0; 
 printf("請輸入要查詢的電話號碼:"); 
 scanf("%s",&phone); 
 while(p1->next!=NULL) 
 { 
  if(strcmp(p1->phone,phone)==0) 
   {printf("%10.8s %6.6s %10.10s %11.4s %9.7s %16.6s \n",p1->name,p1->sex,p1->birthday,p1->phone,p1->postcode,p1->addr); 
   i++; 
   } 
  p1=p1->next; 
   
 } 
 printf("共 %d 條\n",i); 
 system("pause"); 
} 
void Selelctall() 
{ system("cls"); 
 HeadShow(); 
 printf("%10.8s %6.6s %10.10s %11.4s %9.7s %16.6s \n","姓名","性別","生日","電話","郵編","地址");  
 printf("---------------------------------------------------------------------\n"); 
 p1=head; 
 char all[30]; 
 int i=0; 
 printf("請輸入任意一項要查詢的內(nèi)容:"); 
 scanf("%s",&all); 
 while(p1->next!=NULL) 
 { 
  if(strcmp(p1->name,all)==0||strcmp(p1->sex,all)==0||strcmp(p1->birthday,all)==0||strcmp(p1->phone,all)==0||strcmp(p1->postcode,all)==0||strcmp(p1->addr,all)==0) 
   {printf("%10.8s %6.6s %10.10s %11.11s %9.7s %16.16s \n",p1->name,p1->sex,p1->birthday,p1->phone,p1->postcode,p1->addr); 
   i++; 
   } 
  p1=p1->next; 
   
 } 
 printf("共 %d 條\n",i); 
 system("pause"); 
} 
void Change() 
{ char ChangeName[8]; 
 int changekey; 
 system("cls"); 
 HeadShow(); 
 int i,y=0;    
 p1=p2=head;  
 printf("請輸入你要修改的條目的姓名:"); 
 scanf("%s",&ChangeName); 
  getchar(); 
 while(p1!=NULL) 
 {  
 if(strcmp(p1->name,ChangeName)==0)  
  { printf("%10.8s %6.6s %10.10s %11.11s %9.7s %16.16s \n",p1->name,p1->sex,p1->birthday,p1->phone,p1->postcode,p1->addr); 
   printf("您要修改的是這條記錄嗎?1---是|2---否\n"); 
   scanf("%d",&i); 
   if(i==1) 
   { y=1; 
   printf("你要修改的通訊錄為:\n"); 
   printf("%10.8s %6.6s %10.10s %11.11s %9.7s %16.16s \n",p1->name,p1->sex,p1->birthday,p1->phone,p1->postcode,p1->addr); 
   printf("請選擇您的操作  1---刪除|2---修改\n"); 
   scanf("%d",&changekey); 
   if(changekey==1) 
    { 
    if(p1==head)   
     {head=p1->next; 
     free(p1); 
     } 
     else 
     { 
    p2->next=p1->next; 
    free(p1);  
    SaveChange();  
     
    } 
     
  } 
  else if(changekey==2) 
  { 
   printf("姓名:");scanf("%s",p1->name); 
   printf("性別:");scanf("%s",p1->sex); 
   printf("生日:");scanf("%s",p1->birthday); 
   printf("電話:");scanf("%s",p1->phone); 
   printf("郵編:");scanf("%s",p1->postcode); 
   printf("地址:");scanf("%s",p1->addr); 
   SaveChange(); 
   printf("\n OK! \n"); 
  }  
   }    
   
  } 
 else if(strcmp(p1->name,ChangeName)&&(p1->next)==NULL) 
  { 
   i=0;    
   
  } 
  p2=p1;  
  p1=p1->next; 
 } 
 
  if(y==0)  
 { 
  printf("對不起,沒有找到要修改的通訊名單,請檢查你要修改的姓名是否正確\n"); 
 } 
  
  
 system("pause"); 
} 
void ExirShow() 
{ 
 system("color 0E"); 
 printf("###########   通訊錄管理系統(tǒng) v1.0 ################\n"); 
 printf("############################################################\n"); 
 printf("#               #\n"); 
 printf("#               #\n"); 
 printf("#               #\n"); 
 printf("#               #\n"); 
 printf("#               #\n"); 
 printf("#      謝謝使用!       #\n"); 
 printf("#               #\n"); 
 printf("#               #\n"); 
 printf("#               #\n"); 
 printf("#               #\n"); 
 printf("#               #\n"); 
 printf("############################################################\n"); 
 printf("# POWER BY ************* 蘭州理工大學(xué)  201407  #\n"); 
 printf("############################################################\n"); 
  
} 
void ErrorShow() 
{ int errortime=5; 
 system("color 0E"); 
 for(errortime=5;errortime>0;errortime--) 
  {printf("\r輸入錯誤!請仔細(xì)檢查!將在%d秒后返回",errortime); 
   Sleep(1000); 
  } 
  
} 
int main() 
{ int key; 
 int Ex_key; 
 int Check_key; 
 char a[10]; 
 if((fp=fopen("txl.dat","ab"))==NULL) 
 { 
  printf("文件操作錯誤,請檢查是否有權(quán)限操作文件!"); 
  Sleep(3000); 
  exit(1); 
 } 
 fclose(fp); 
 FileLoading(); 
 while(1){ 
 ShowMenu(); 
 gets(a); 
 key=atoi(a); 
 if(key==1) 
  {system("cls"); 
  add(); 
  } 
 else if(key==2) 
  { system("cls"); 
    
   system("color 0E"); 
  while(1) 
    { 
   system("color 0E"); 
   CheckFace(); 
   printf("請輸入你的選擇:\n"); 
   gets(a); 
   Check_key=atoi(a); 
   if(Check_key==1) 
    Selelctname() 
   ; 
   else if(Check_key==2) 
    Selelctphone() 
   ; 
   else if(Check_key==3) 
    Selelctall() 
   ; 
   else if(Check_key==4) 
   
   break; 
   else 
   ErrorShow(); 
   system("cls"); 
   system("color 1F"); 
   getchar(); 
    
  }  
   
   
  } 
  
 else if(key==3)  //2013級 耿。。 
 { system("color 0E"); 
  system("cls"); 
  AllShow(); 
  system("pause"); 
 } 
 else if(key==4) 
  { 
   system("color 0A"); 
   Change(); 
   
   
  } 
 else if(key==5) 
  { 
  system("color 5F"); 
  system("cls"); 
  AllNum(); 
  system("pause"); 
   } 
 else if(key==6) 
  { 
  system("cls"); 
  ExirShow(); 
  Sleep(1000); 
  exit(0); 
  } 
   
 else 
  
  ErrorShow(); 
  system("cls"); 
  system("color 1F"); 
  getchar(); 
 } 
  
 
} 

比較簡單就是用到了鏈表和文件操作,其中統(tǒng)計聯(lián)通和移動人數(shù)的那里其實只用一個循環(huán)就可以。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語言實現(xiàn)航班管理系統(tǒng)

    C語言實現(xiàn)航班管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)航班管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C++實現(xiàn)二分法求方程近似解

    C++實現(xiàn)二分法求方程近似解

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)二分法求方程近似解,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • vscode+platformIO開發(fā)stm32f4的實現(xiàn)

    vscode+platformIO開發(fā)stm32f4的實現(xiàn)

    這篇文章主要介紹了vscode+platformIO開發(fā)stm32f4的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 詳解C++異常處理(try catch throw)完全攻略

    詳解C++異常處理(try catch throw)完全攻略

    這篇文章主要介紹了詳解C++異常處理(try catch throw)完全攻略,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • C++字符數(shù)組的輸入輸出和字符串結(jié)束標(biāo)志使用講解

    C++字符數(shù)組的輸入輸出和字符串結(jié)束標(biāo)志使用講解

    這篇文章主要介紹了C++字符數(shù)組的輸入輸出和符串結(jié)束標(biāo)志使用講解,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • 深入解析C++ STL中的常用容器

    深入解析C++ STL中的常用容器

    這里我們不涉及容器的基本操作之類,只是要討論一下各個容器其各自的特點。STL中的常用容器包括:順序性容器(vector、deque、list)、關(guān)聯(lián)容器(map、set)、容器適配器(queue、stac)
    2013-09-09
  • 探索Visual C++下創(chuàng)建WPF項目的方法示例

    探索Visual C++下創(chuàng)建WPF項目的方法示例

    這篇文章主要介紹了探索Visual C++下創(chuàng)建WPF項目的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 深入理解C語言指針及占據(jù)內(nèi)存空間

    深入理解C語言指針及占據(jù)內(nèi)存空間

    這篇文章主要介紹了C語言指針及占據(jù)內(nèi)存空間的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • C語言實現(xiàn)掃雷算法簡易版

    C語言實現(xiàn)掃雷算法簡易版

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)掃雷算法簡易版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 詳解c++11以正確的姿勢輸出enum class的值

    詳解c++11以正確的姿勢輸出enum class的值

    這篇文章主要介紹了詳解c++11以正確的姿勢輸出enum class的值,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10

最新評論