Linux C和MySQL数据库写的一个“电话本管理程序”,模拟手机平台写一个”电话本管理程序“
1.显示操作菜单
2.根据菜单可以做出如下操作
a.显示出所有联系人电话号码
b.根据姓名查找电话号码
c.支持按照姓氏查找电话号码
d.允许修改已经查找到联系人的号码
e.允许删除一个联系人
f.允许增加一个联系人的号码,如果联系人已经存在,一个联系人最多保存三个号码
3.退出程序
#include<stdio.h> #include<stdlib.h> #include<mysql.h> #include<string.h> void createTable(MYSQL * conn)//建立数据库和表 { mysql_query(conn,"drop database if exists phonebook;"); mysql_query(conn,"create database phonebook;"); mysql_query(conn,"use phonebook;"); mysql_query(conn,"create table contacts(Name varchar(20) default 'no name',Telnum varchar(20));"); mysql_query(conn,"insert into contacts values('gw','15974165855');"); mysql_query(conn,"insert into contacts values('zp','13420995347');"); } void show_menuAll() { printf("==========欢迎来到手机数据库===========\n"); printf("\ta.显示所有联系人\n\tb.根据姓名查找号码\n\tc.添加联系人及号码\n\td.删除联系人\n\te.修改联系人号码\n\tf.退出电话簿\n"); printf("请选择\t"); } void show_menuName() { printf("\t1.安姓名精确查找\n\t2.按姓氏模糊查找\n\t3.返回\n"); printf("请选择查找方式:\n"); } void display_select(MYSQL * conn)//屏幕显示select查询出来的信息 { MYSQL_RES *res;//声明存储结构 res=mysql_store_result(conn); int row1=mysql_num_rows(res); int col=mysql_num_fields(res); // printf("row=%d\tcol=%d\n",row1,col); MYSQL_ROW row;//成名取数据的结构,不是指针 int i; while((row=mysql_fetch_row(res))!=NULL) {//判断是否数据全部去完,函数返回NULL表示数据取完 for(i=0;i<col;i++) { // printf("%s\t%s\n",row[0],row[1]); printf("%s\t",row[i]); } printf("\n"); } mysql_free_result(res); } void select_By_name(MYSQL *conn)//按姓名查询联系人 { char name[20]; scanf("%s",name); char sql1[64]="select Telnum from contacts where Name='"; char sql2[4]="';"; strcat(sql1,name); strcat(sql1,sql2); mysql_query(conn,sql1); display_select(conn); } void select_By_firstname(MYSQL *conn)//按姓氏查询联系人 { char name[20]; scanf("%s",name); char sql1[64]="select Telnum from contacts where Name like '"; char sql2[4]="%';"; strcat(sql1,name); strcat(sql1,sql2); mysql_query(conn,sql1); display_select(conn); } void insert_Contacts(MYSQL *conn)//插入联系人信息 { char tel[20]; char name[20]; scanf("%s%s",&name,&tel); //insert into contacts values('gw','123213'); char sql1[64]="insert into contacts values('"; char sql2[4]="','"; char sql3[4]="');"; strcat(sql1,name); strcat(sql1,sql2); strcat(sql1,tel); strcat(sql1,sql3); mysql_query(conn,sql1); } void delete_by_name(MYSQL *conn)//按姓名删除联系人 { char name[20]; scanf("%s",name); char sql1[64]="delete from Telnum where Name='"; char sql2[4]="';"; strcat(sql1,name); strcat(sql1,sql2); mysql_query(conn,sql1); printf("删除成功!\n"); } void alter_by_name(MYSQL *conn)//修改联系人号码 { char name[20]; char tel[20]; scanf("%s%s",name,tel); char sql1[64]="update student3 set Telnum='"; char sql2[64]="'where Name='"; char sql3[4]="';"; strcat(sql1,tel); strcat(sql1,sql2); strcat(sql1,sql3); mysql_query(conn,sql1); printf("修改成功!\n"); } //主函数 int main(int argc,char *argv[]) { MYSQL * conn=NULL; conn=mysql_init(NULL); if(mysql_real_connect(conn,"localhost","root","root","test",3306,NULL,0)==NULL) { printf("connect error %s\n",mysql_error(conn)); return -1; } createTable(conn); while(1) { show_menuAll(); char ch1;//接收屏幕选择; scanf("%c",&ch1); if(ch1 == 'a')//显示所有联系人信息 { mysql_query(conn,"select * from contacts;"); display_select(conn); printf("\t1.返回\n\t2.退出\n"); getchar(); char i; scanf("%c",&i); if(i=='1') continue; else break; } if(ch1 == 'b')//根据姓名查找号码 { show_menuName(); getchar(); char ch2;// scanf("%c",&ch2); if(ch2 == '1')//按姓名全称查找 { while(1) { printf("\t青输入联系人全称:\n"); select_By_name(conn); printf("\t1.继续查找\n\t2.退出\n"); getchar(); char l; scanf("%c",&l); if(l=='1') continue; else break; } } else if(ch2 == '2')//按姓氏模糊查找 { while(1) { printf("\t清输入联系人姓氏:\n"); select_By_firstname(conn); printf("\t1.继续查找\n\t2.退出\n"); getchar(); char m; scanf("%c",&m); if(m=='1') continue; else break; } } else if(ch2 == '3') { continue; } } if(ch1 == 'c')//添加联系人及号码 { while(1) { insert_Contacts(conn); printf("是否继续添加y/n\n"); getchar(); char j; scanf("%c",&j); if(j == 'y') continue; else break; } continue; } if(ch1 == 'd')//删除联系人 { while(1) { printf("\t请输入需要删除的联系人姓名:\n"); delete_by_name(conn); printf("是否继续删除y/n\n"); getchar(); char n; scanf("%c",&n); if(n == 'y') continue; else break; } continue; } if(ch1 == 'e')//修改联系人号码 { while(1) { printf("\t请输入需要修改的联系人姓名:\n"); alter_by_name(conn); printf("是否继续删除y/n\n"); getchar(); char k; scanf("%c",&k); if(k == 'y') continue; else break; } continue; } if(ch1 == 'f') { printf("退出成功\n"); break; } } mysql_close(conn); return 0; }