很久以前学c的时候写的一个通讯录系统,运行环境由Microsoft Visual C++ 6.0与mysql搭建,采用C语言书写。一共包括了六个模块,分别是:登陆模块、显示模块、添加模块、修改模块、删除模块、查找模块、返回主菜单模块。在主函数中,主函数通过switch语句,将显示模块、添加模块、修改模块、删除模块、查找模块联系起来。
VC6.0与mysql之前连接等需要设置很多地方,当时做这个的时候时间仓促,后面有几个功能没有写完整,拿出来主要是看看VC6.0连接mysql的相关代码。在检索方面主要用到MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)检索一个结果集合的下一行。当在mysql_store_result()之后使用时,如果没有更多的行可检索时,mysql_fetch_row()返回NULL。当在mysql_use_result()之后使用时,当没有更多的行可检索时或如果出现一个错误,mysql_fetch_row()返回NULL。
贴一下程序运行的图:
数据库:
登陆成功:
登陆失败:
主菜单:
显示所有联系人信息;
请主要参考VC6.0连接、查询mysql的语句,后面的功能并未完全实现。
源代码:
#include <stdio.h>
#include<stdlib.h>
#include <windows.h>
#include <mysql.h>
#include <string.h>
#pragma comment(lib,"libmysql.lib")
/*定义数据库相关操作变量*/
MYSQL mysql; //
MYSQL_RES *result; //定义结果集变量
MYSQL_ROW row; //定义行变量
char ch[2];
void UserLogin(); /*用户登录*/
void ShowAll(); /*显示所有的联系人信息*/
void AddContact(); /*添加联系人信息*/
void ModifyContact(); /*修改联系人信息*/
void DeleteContact(); /*删除联系人信息*/
void QueryContact(); /*查询联系人信息*/
/*显示菜单*/
void showmenu()
{
system("cls");
printf("\n\n\n\n\n");
printf("\t╔═══════════════════════════╗\n");
printf("\t║▂ ▃ ▄ ▅ 欢迎使用通讯录信息管理系统 ▅ ▄ ▃ ▂ ║\n");
printf("\t╠═══════════════════════════╣\n");
printf("\t║\t ① - 显示所有联系人信息 ║\n");
printf("\t║\t ② - 添加联系人信息 ║\n");
printf("\t║\t ③ - 修改联系人信息 ║\n");
printf("\t║\t ④ - 删除联系人信息 ║\n");
printf("\t║\t ⑤ - 查询联系人信息 ║\n");
printf("\t║\t ⑥ - 退出 ║\n");
printf("\t╚═══════════════════════════╝\n");
printf("\n 请选择您所需要的服务(1-6):");
}
void inquire() /*询问用户是否显示主菜单*/
{
printf("\t 显示主菜单?(y/n):");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要显示查找到的信息*/
{
showmenu(); /*显示菜单*/
}
else
{
exit(0);
}
}
/*显示主菜单,连接数据库*/
int main()
{
system("color 75"); //改变控制台前景和背景的颜色
int n; //定义变量 存储用户输入的编号
mysql_init(&mysql); //初始化mysql结构
UserLogin();
showmenu(); /*显示菜单*/
scanf("%d",&n);/*输入选择功能的编号*/
while(n)
{
switch(n)
{
case 1:
ShowAll(); /*调用显示所有联系人数据*/
break;
case 2:
AddContact(); /*添加联系人信息*/
break;
case 3:
ModifyContact(); /*修改联系人信息*/