/****************************************************************************
模拟手机平台写一个”电话本管理程序“
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;
}
原创,转载请注明出处.
Linux C_mysql数据库写的一个“电话本管理程序”
最新推荐文章于 2024-07-16 13:02:57 发布