停车场:
代码:
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Jerey_Jobs Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
#include <stdio.h>
#include <sqlite3.h>
#include <stdlib.h>
#define Max 1024
void welcome()
{
printf("********************************************************************\n");
printf("********************************************************************\n");
printf("******************欢 迎 使 用 停 场 管 理 系 统 !*******************\n");
printf("**********1.添加车主信息 2.收取费用 ************\n");
printf("**********3.查找车主信息 4.删除车主信息************\n");
printf("**********5.刷新列表信息 6.退出程序 ************\n");
printf("********请 根 据 功 能 列 表 选 择 您 所 需 要 的 功 能 ! **********\n");
printf("********************************************************************\n");
printf("********************************************************************\n");
}
void creat_table(sqlite3 * db)
{
char *sql;
int rec;
char *errmsg;
sql = "create table if not exists tcc (序号 integer primary key,车牌号 text,姓名 text,停车时间 txt,离开时间 text);";
rec = sqlite3_exec(db,sql,NULL,NULL,&errmsg);
if(rec != SQLITE_OK)
{
printf("create error! %s\n",errmsg);
exit(-1);
}
}
void count_cw(sqlite3 * db,int n)
{
int i;
char sql[100];
int rec;
char *errmsg;
for(i = 0; i < n; i++)
{
sprintf(sql,"insert into tcc (序号) values(%d);",i + 1);
rec = sqlite3_exec(db,sql,NULL,NULL,&errmsg);
if(rec != SQLITE_OK)
{
printf("insert error! %s\n",errmsg);
exit(-1);
}
}
}
void insert_table(sqlite3 *db)
{
char sql[Max];
char cp[15],name[10],tcs[15];
int rec,i;
char *errmsg;
char ch = 'y';
printf("请输入车牌号 姓名 停车时间和您所想要的车位:\n");
scanf("%s%s%s%d",cp,name,tcs,&i);
sprintf(sql,"update tcc set 车牌号 = '%s',姓名 = '%s',停车时间 = '%s'where 序号 = %d;",cp,name,tcs,i);
rec = sqlite3_exec(db,sql,NULL,NULL,&errmsg);
if(rec != SQLITE_OK)
{
printf("insert error! %s\n",errmsg);
exit(-1);
}
}
void display_table(sqlite3 *db)
{
char *sql;
char *errmsg;
char **result;
int n_row;
int n_col;
int rec;
int i;
sql = "select * from tcc;";
rec = sqlite3_get_table(db,sql,&result,&n_row,&n_col,&errmsg);
if(rec != SQLITE_OK)
{
printf("select error! %s\n",errmsg);
exit(-1);
}
for(i = 0; i < (n_row + 1) * n_col; i++)
{
printf("%3s ",result[i]);
if((i + 1) % n_col == 0)
{
printf("\n");
}
}
sqlite3_free_table(result);
}
void function1(sqlite3 *db)
{
char ch = 'y';
while(ch != 'n' && ch != 'N')
{
insert_table(db);
printf("是否要继续增加?(y/n or Y/N):");
scanf(" %c",&ch);
}
}
void function2(sqlite3 *db)
{
char sql[100];
char *errmsg;
int rec;
char cph[100],lk[15],tc[15];
char ch;
int i = 0,t = 0,n = 0;
int thnum = 0,tfnum = 0;
int lhnum = 0,lfnum = 0;
printf("是否要继续?(y/n or Y/N)");
scanf(" %c",&ch);
while(ch != 'n' && ch != 'N')
{
printf("请输入车牌号和离开时间:\n");
scanf("%s%s",cph,lk);
sprintf(sql,"update tcc set 离开时间 = '%s' where 车牌号 = '%s';",lk,cph);
rec = sqlite3_exec(db,sql,NULL,NULL,&errmsg);
if(rec != SQLITE_OK)
{
printf("update error! %s\n",errmsg);
exit(-1);
}
printf("请根据表格输入停车时间:");
scanf(" %s",tc);
while(tc[i] != ':')
{
thnum = thnum * 10 + (tc[i] - '0');
i++;
}
while(tc[i] != '\0')
{
i++;
tfnum = tfnum * 10 + (tc[i] - '0');
}
i = 0;
while(lk[i] != ':')
{
lhnum = lhnum * 10 + (lk[i] - '0');
i++;
}
while(lk[i] != '\0')
{
i++;
lfnum = lfnum * 10 + (lk[i] - '0');
}
t = lhnum - thnum;
n = lfnum - tfnum;
if(t > 0)
{
if(n < 0)
{
t = t - 1;
}
else if(n > 0)
{
t = t + 1;
}
else
{
t = t;
}
}
else
{
if(n < 0)
{
t = t - 1;
}
else if(n > 0)
{
t = t + 1;
}
else
{
t = t;
}
}
printf("应收费用为:%d元\n",t * 10);
t = 0;
n = 0;
lhnum = 0;
lfnum = 0;
thnum = 0;
tfnum = 0;
i = 0;
printf("是否要继续?(y/n or Y/N)");
scanf(" %c",&ch);
}
}
void function3(sqlite3 *db)
{
char sql[100];
char *errmsg;
char ch = 'y';
int rec;
char cp[20];
char **result;
int n_row;
int n_col;
int i;
printf("请输入所要查找的车主的车牌号:");
while(ch != 'n' && ch != 'N')
{
scanf("%s",cp);
sprintf(sql,"select * from tcc where 车牌号 = '%s';",cp);
rec = sqlite3_get_table(db,sql,&result,&n_row,&n_col,&errmsg);
if(rec != SQLITE_OK)
{
printf("select error! %s\n",errmsg);
exit(-1);
}
for(i = 0; i < (n_row + 1) * n_col; i++)
{
printf("%5s ",result[i]);
if((i + 1) % n_col == 0)
{
printf("\n");
}
}
printf("是否要继续查询?(y/n or Y/N):");
scanf(" %c",&ch);
}
sqlite3_free_table(result);
}
void function4(sqlite3 *db)
{
char *sql;
char *errmsg;
int rec;
sql = "update tcc set 车牌号 = NULL,姓名 = NULL,停车时间 = NULL,离开时间 = NULL where 离开时间 is not NULL;";
rec = sqlite3_exec(db,sql,NULL,NULL,&errmsg);
if(rec != SQLITE_OK)
{
printf("delete error! %s\n",errmsg);
exit(-1);
}
}
void function5(sqlite3 *db)
{
system("reset");
welcome();
display_table(db);
}
void function6(sqlite3 *db)
{
sqlite3_close(db);
exit(-1);
}
int main()
{
sqlite3 *db;
int rec;
int n;
rec = sqlite3_open("tingchechang.db",&db);
if(rec != SQLITE_OK)
{
printf("open error! %s\n",sqlite3_errmsg(db));
exit(-1);
}
creat_table(db);
printf("请输入停车场有多少停车位:");
scanf("%d",&n);
count_cw(db,n);
system("reset");
welcome();
int num;
while(1)
{
system("reset");
welcome();
display_table(db);
printf("请输入您要选择的功能:");
scanf("%d",&num);
switch(num)
{
case 1:
function1(db);
break;
case 2:
function2(db);
break;
case 3:
function3(db);
break;
case 4:
function4(db);
break;
case 5:
function5(db);
break;
case 6:
function6(db);
break;
default:
break;
}
}
return 0;
}
功能实现:
界面:
功能1:
功能2:
功能3:
功能4:
功能6:
通讯录(数据库版):
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Jerey_Jobs Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
#define Max 1024
void welcome()
{
printf("********************************************************************\n");
printf("********************************************************************\n");
printf("********************* Welcome ********************\n");
printf("*********1.存入信息 2.修改信息**********\n");
printf("*********3.删除信息 4.查询信息**********\n");
printf("*********5.输出信息 5.退出程序**********\n");
printf("********************************************************************\n");
printf("********************************************************************\n");
}
void creat_table(sqlite3 *db)
{
char * sql;
char * errmsg;
int rec;
sql = "create table if not exists txl (id integer primary key,name text,year integer,sex txt,telephone text,address text);";
rec = sqlite3_exec(db,sql,NULL,NULL,&errmsg);
if(rec != SQLITE_OK)
{
printf("create error! %s\n",errmsg);
exit(-1);
}
}
int check_tele(char *telephone)
{
int i = 0;
int flag;
while(telephone[i] != '\0')
{
i++;
}
if(i <= 11)
{
flag = 1;
}
else
{
flag = 0;
}
return flag;
}
void insert_table(sqlite3 *db)
{
char sql[Max];
int id,year;
char name[20],telephone[13],address[100],sex[4];
char ch;
int flag,rec;
char *errmsg;
printf("请问您是否继续这项操作?(y/n或Y/N):");
scanf(" %c",&ch);
while(ch != 'n' && ch != 'N')
{
printf("请输入序号,姓名,年纪,性别,电话号码,家庭地址:\n");
scanf("%d%s%d%s%s%s",&id,name,&year,sex,telephone,address);
flag = check_tele(telephone);
if(flag == 1)
{
sprintf(sql,"insert into txl (id,name,year,sex,telephone,address) values (%d,'%s',%d,'%s','%s','%s');",id,name,year,sex,telephone,address);
rec = sqlite3_exec(db,sql,NULL,NULL,&errmsg);
if(rec != SQLITE_OK)
{
printf("insert error! %s\n",errmsg);
exit(-1);
}
}
else
{
printf("电话号码长度有问题!请重新输入电话号码;");
scanf("%s",telephone);
sprintf(sql,"insert into txl (id,name,year,sex,telephone,address) values (%d,'%s',%d,'%s','%s','%s');",id,name,year,sex,telephone,address);
rec = sqlite3_exec(db,sql,NULL,NULL,&errmsg);
if(rec != SQLITE_OK)
{
printf("insert error! %s\n",errmsg);
exit(-1);
}
}
printf("请问是否还要继续该操作(y/n或Y/N);");
scanf(" %c",&ch);
}
}
void update_table(char *rname,sqlite3 *db)
{
char sql[Max];
int rec;
char *errmsg;
char ch;
char name[20],sex[3],telephone[13],address[100];
int year;
printf("请问需要修改姓名吗?(y/n or Y/N):");
scanf(" %c",&ch);
if(ch == 'y' || ch == 'Y')
{
printf("请输入所需要修改的姓名:");
scanf(" %s",name);
sprintf(sql,"update txl set name = '%s' where name = '%s';",name,rname);
rec = sqlite3_exec(db,sql,NULL,NULL,&errmsg);
if(rec != SQLITE_OK)
{
printf("update error! %s\n",errmsg);
exit(-1);
}
}
printf("请问需要修改年纪吗?(y/n or Y/N):");
scanf(" %c",&ch);
if(ch == 'y' || ch == 'Y')
{
printf("请输入所需要修改的年纪:");
scanf("%d",&year);
sprintf(sql,"update txl set year = %d where name = '%s';",year,rname);
rec = sqlite3_exec(db,sql,NULL,NULL,&errmsg);
if(rec != SQLITE_OK)
{
printf("update error! %s\n",errmsg);
exit(-1);
}
}
printf("请问需要修改性别吗?(y/n or Y/N):");
scanf(" %c",&ch);
if(ch == 'y' || ch == 'Y')
{
printf("请输入所需要修改的性别:");
scanf("%s",sex);
sprintf(sql,"update txl set sex = '%s' where name = '%s';",sex,rname);
rec = sqlite3_exec(db,sql,NULL,NULL,&errmsg);
if(rec != SQLITE_OK)
{
printf("update error! %s\n",errmsg);
exit(-1);
}
}
printf("请问需要修改电话吗?(y/n or Y/N):");
scanf(" %c",&ch);
if(ch == 'y' || ch == 'Y')
{
printf("请输入所需要修改的电话:");
scanf("%s",telephone);
sprintf(sql,"update txl set telephone = '%s' where name = '%s';",telephone, rname);
rec = sqlite3_exec(db,sql,NULL,NULL,&errmsg);
if(rec != SQLITE_OK)
{
printf("update error! %s\n",errmsg);
exit(-1);
}
}
printf("请问需要修改地址吗?(y/n or Y/N):");
scanf(" %c",&ch);
if(ch == 'y' || ch == 'Y')
{
printf("请输入所需要修改的地址:");
scanf("%s",address);
sprintf(sql,"update txl set address = '%s' where name = '%s';",address, rname);
rec = sqlite3_exec(db,sql,NULL,NULL,&errmsg);
if(rec != SQLITE_OK)
{
printf("update error! %s\n",errmsg);
exit(-1);
}
}
}
void delet_table(sqlite3 *db,char * dname)
{
char sql[Max];
char *errmsg;
int rec;
sprintf(sql,"delete from txl where name = '%s';",dname);
rec = sqlite3_exec(db,sql,NULL,NULL,&errmsg);
if(rec != SQLITE_OK)
{
printf("delete error! %s\n",errmsg);
exit(-1);
}
}
void search_table(sqlite3 *db,char *cname)
{
char sql[Max];
char *errmsg;
int rec;
char **result;
int n_row;
int n_col;
int i;
sprintf(sql,"select * from txl where name = '%s';",cname);
rec = sqlite3_get_table(db,sql,&result,&n_row,&n_col,&errmsg);
if(rec != SQLITE_OK)
{
printf("select error! %s\n",errmsg);
exit(-1);
}
for(i = 0; i < (n_row + 1) * n_col; i++)
{
printf("%5s ",result[i]);
if((i + 1) % n_col == 0)
{
printf("\n");
}
}
sqlite3_free_table(result);
}
void function1(sqlite3 *db)
{
insert_table(db);
}
void function2(sqlite3 *db)
{
char rname[20];
printf("请输入所要修改的联系人的姓名:");
scanf("%s",rname);
update_table(rname,db);
}
void function3(sqlite3 *db)
{
char dname[20];
printf("请输入所要删除的联系人的姓名:");
scanf("%s",dname);
delet_table(db,dname);
}
void function4(sqlite3 *db)
{
char cname[20];
printf("请输入所要查询的联系人的姓名:");
scanf("%s",cname);
search_table(db,cname);
}
void function5(sqlite3 *db)
{
char *sql;
char *errmsg;
int rec;
char **result;
int n_row;
int n_col;
int i;
sql = "select * from txl ;";
rec = sqlite3_get_table(db,sql,&result,&n_row,&n_col,&errmsg);
if(rec != SQLITE_OK)
{
printf("select error! %s\n",errmsg);
exit(-1);
}
for(i = 0; i < (n_row + 1) * n_col; i++)
{
printf("%5s ",result[i]);
if((i + 1) % n_col == 0)
{
printf("\n");
}
}
sqlite3_free_table(result);
}
void function6(sqlite3 * db)
{
sqlite3_close(db);
exit(-1);
}
int main()
{
int num;
char y;
char filename[100];
int rec;
sqlite3 *db;
printf("请输入文件名:");
scanf("%s",filename);
rec = sqlite3_open(filename,&db);
if(rec != SQLITE_OK)
{
printf("open error! %s\n",sqlite3_errmsg(db));
exit(-1);
}
creat_table(db);
system("reset");
welcome();
while(1)
{
printf("请选择您所需要的功能:");
scanf("%d",&num);
switch(num)
{
case 1:
function1(db);
break;
case 2:
function2(db);
break;
case 3:
function3(db);
break;
case 4:
function4(db);
break;
case 5:
function5(db);
break;
case 6:
function6(db);
break;
default:
break;
}
}
return 0;
}
功能展示:
界面:
功能1:
功能5:
功能2:
功能3:
功能4:
功能6: