Linux C和MySQL数据库写的一个“电话本管理程序”


Linux C和MySQL数据库写的一个“电话本管理程序”,模拟手机平台写一个”电话本管理程序“

1.显示操作菜单

2.根据菜单可以做出如下操作

a.显示出所有联系人电话号码

b.根据姓名查找电话号码

c.支持按照姓氏查找电话号码

d.允许修改已经查找到联系人的号码

e.允许删除一个联系人

f.允许增加一个联系人的号码,如果联系人已经存在,一个联系人最多保存三个号码

3.退出程序

  1. #include<stdio.h>   
  2. #include<stdlib.h>   
  3. #include<mysql.h>   
  4. #include<string.h>   
  5.   
  6. void createTable(MYSQL * conn)//建立数据库和表   
  7. {  
  8.       
  9.   mysql_query(conn,"drop database if exists phonebook;");  
  10.   mysql_query(conn,"create database phonebook;");  
  11.   mysql_query(conn,"use phonebook;");  
  12.   mysql_query(conn,"create table contacts(Name varchar(20) default 'no name',Telnum varchar(20));");  
  13.   mysql_query(conn,"insert into contacts values('gw','15974165855');");  
  14.   mysql_query(conn,"insert into contacts values('zp','13420995347');");  
  15. }  
  16.   
  17. void show_menuAll()  
  18. {  
  19.     printf("==========欢迎来到手机数据库===========\n");  
  20.     printf("\ta.显示所有联系人\n\tb.根据姓名查找号码\n\tc.添加联系人及号码\n\td.删除联系人\n\te.修改联系人号码\n\tf.退出电话簿\n");  
  21.     printf("请选择\t");  
  22. }  
  23.   
  24. void show_menuName()  
  25. {  
  26.     printf("\t1.安姓名精确查找\n\t2.按姓氏模糊查找\n\t3.返回\n");  
  27.     printf("请选择查找方式:\n");  
  28. }  
  29.   
  30. void display_select(MYSQL * conn)//屏幕显示select查询出来的信息    
  31. {  
  32.             MYSQL_RES *res;//声明存储结构   
  33.           res=mysql_store_result(conn);  
  34.           int row1=mysql_num_rows(res);  
  35.           int col=mysql_num_fields(res);  
  36.         //  printf("row=%d\tcol=%d\n",row1,col);   
  37.           MYSQL_ROW row;//成名取数据的结构,不是指针   
  38.           int i;  
  39.           while((row=mysql_fetch_row(res))!=NULL)  
  40.            {//判断是否数据全部去完,函数返回NULL表示数据取完   
  41.                for(i=0;i<col;i++)  
  42.                 {  
  43.                // printf("%s\t%s\n",row[0],row[1]);   
  44.                    printf("%s\t",row[i]);  
  45.                 }  
  46.                printf("\n");  
  47.             }  
  48.            mysql_free_result(res);  
  49. }  
  50.   
  51. void select_By_name(MYSQL *conn)//按姓名查询联系人   
  52. {  
  53.     char name[20];  
  54.     scanf("%s",name);  
  55.     char sql1[64]="select Telnum from contacts where Name='";  
  56.     char sql2[4]="';";  
  57.     strcat(sql1,name);  
  58.     strcat(sql1,sql2);  
  59.     mysql_query(conn,sql1);  
  60.     display_select(conn);  
  61.     }  
  62. void select_By_firstname(MYSQL *conn)//按姓氏查询联系人   
  63. {  
  64.     char name[20];  
  65.     scanf("%s",name);  
  66.     char sql1[64]="select Telnum from contacts where Name like '";  
  67.     char sql2[4]="%';";  
  68.     strcat(sql1,name);  
  69.     strcat(sql1,sql2);  
  70.     mysql_query(conn,sql1);  
  71.     display_select(conn);  
  72. }  
  73. void insert_Contacts(MYSQL *conn)//插入联系人信息   
  74. {  
  75.         char tel[20];  
  76.         char name[20];  
  77.         scanf("%s%s",&name,&tel);  
  78.     //insert into contacts values('gw','123213');   
  79.         char sql1[64]="insert into contacts values('";  
  80.         char sql2[4]="','";  
  81.         char sql3[4]="');";  
  82.         strcat(sql1,name);  
  83.         strcat(sql1,sql2);  
  84.         strcat(sql1,tel);  
  85.         strcat(sql1,sql3);  
  86.         mysql_query(conn,sql1);  
  87. }  
  88. void delete_by_name(MYSQL *conn)//按姓名删除联系人   
  89. {  
  90.     char name[20];  
  91.     scanf("%s",name);  
  92.     char sql1[64]="delete from Telnum where Name='";  
  93.     char sql2[4]="';";  
  94.     strcat(sql1,name);  
  95.     strcat(sql1,sql2);  
  96.     mysql_query(conn,sql1);  
  97.     printf("删除成功!\n");  
  98. }  
  99.   
  100. void alter_by_name(MYSQL *conn)//修改联系人号码   
  101. {  
  102.     char name[20];  
  103.     char tel[20];  
  104.     scanf("%s%s",name,tel);  
  105.     char sql1[64]="update student3 set Telnum='";  
  106.     char sql2[64]="'where Name='";  
  107.     char sql3[4]="';";  
  108.     strcat(sql1,tel);  
  109.     strcat(sql1,sql2);  
  110.     strcat(sql1,sql3);  
  111.     mysql_query(conn,sql1);  
  112.     printf("修改成功!\n");  
  113. }  
  114. //主函数   
  115. int main(int argc,char *argv[])  
  116. {  
  117.     MYSQL * conn=NULL;  
  118.   conn=mysql_init(NULL);  
  119.    if(mysql_real_connect(conn,"localhost","root","root","test",3306,NULL,0)==NULL)  
  120.    {  
  121.       printf("connect error %s\n",mysql_error(conn));  
  122.       return -1;  
  123.     }  
  124.     createTable(conn);  
  125.       
  126.     while(1)  
  127.     {  
  128.       
  129.         show_menuAll();  
  130.         char ch1;//接收屏幕选择;   
  131.         scanf("%c",&ch1);  
  132.   
  133.         if(ch1 == 'a')//显示所有联系人信息   
  134.         {  
  135.                 mysql_query(conn,"select * from contacts;");  
  136.                 display_select(conn);  
  137.                 printf("\t1.返回\n\t2.退出\n");  
  138.                 getchar();  
  139.                 char i;  
  140.                 scanf("%c",&i);  
  141.                 if(i=='1')  
  142.                     continue;  
  143.                 else  
  144.                     break;  
  145.         }  
  146.                   
  147.       if(ch1 == 'b')//根据姓名查找号码   
  148.       {   
  149.             show_menuName();  
  150.             getchar();  
  151.             char ch2;//   
  152.             scanf("%c",&ch2);  
  153.             if(ch2 == '1')//按姓名全称查找   
  154.                 {  
  155.                     while(1)  
  156.                         {  
  157.                             printf("\t青输入联系人全称:\n");  
  158.                             select_By_name(conn);  
  159.                             printf("\t1.继续查找\n\t2.退出\n");  
  160.                             getchar();  
  161.                             char l;  
  162.                             scanf("%c",&l);  
  163.                             if(l=='1')  
  164.                                 continue;  
  165.                             else  
  166.                                 break;  
  167.                                       
  168.                           
  169.                                 }             
  170.                       
  171.                 }  
  172.             else if(ch2 == '2')//按姓氏模糊查找   
  173.                     {         
  174.                         while(1)  
  175.                         {                 
  176.                             printf("\t清输入联系人姓氏:\n");  
  177.                             select_By_firstname(conn);  
  178.                             printf("\t1.继续查找\n\t2.退出\n");  
  179.                             getchar();  
  180.                             char m;  
  181.                             scanf("%c",&m);  
  182.                             if(m=='1')  
  183.                                 continue;  
  184.                             else  
  185.                                 break;  
  186.                               
  187.                             }     
  188.                               
  189.                         }  
  190.          else if(ch2 == '3')  
  191.                     {  
  192.                         continue;  
  193.                     }  
  194.         }  
  195.         if(ch1 == 'c')//添加联系人及号码   
  196.         {  
  197.                       
  198.                     while(1)  
  199.                     {  
  200.                         insert_Contacts(conn);  
  201.                         printf("是否继续添加y/n\n");  
  202.                         getchar();  
  203.                         char j;  
  204.                         scanf("%c",&j);  
  205.                         if(j == 'y')  
  206.                             continue;  
  207.                         else  
  208.                             break;                        
  209.                     }             
  210.                     continue;  
  211.         }  
  212.         if(ch1 == 'd')//删除联系人   
  213.         {  
  214.             while(1)  
  215.                     {  
  216.                         printf("\t请输入需要删除的联系人姓名:\n");  
  217.                         delete_by_name(conn);  
  218.                         printf("是否继续删除y/n\n");  
  219.                         getchar();  
  220.                         char n;  
  221.                         scanf("%c",&n);  
  222.                         if(n == 'y')  
  223.                             continue;  
  224.                         else  
  225.                             break;                        
  226.                     }             
  227.             continue;     
  228.   
  229.         }  
  230.         if(ch1 == 'e')//修改联系人号码   
  231.         {  
  232.             while(1)  
  233.                     {  
  234.                         printf("\t请输入需要修改的联系人姓名:\n");  
  235.                         alter_by_name(conn);  
  236.                         printf("是否继续删除y/n\n");  
  237.                         getchar();  
  238.                         char k;  
  239.                         scanf("%c",&k);  
  240.                         if(k == 'y')  
  241.                             continue;  
  242.                         else  
  243.                             break;                        
  244.                     }             
  245.             continue;     
  246.   
  247.   
  248.         }  
  249.         if(ch1 == 'f')  
  250.         {  
  251.                     printf("退出成功\n");  
  252.                     break;  
  253.         }  
  254.     }  
  255.         mysql_close(conn);  
  256.         return 0;  
  257. }  

相关内容