Linux +C+sqlite3 一个简单的学生管理系统

#include<stdio.h>
#include<stdlib.h>
#include<sqlite3.h>
#include<string.h>
char *errmsg;

void insert_data(sqlite3 *db)
{
	int number,age,score;
	char name[20];

	printf("input the number: ");
	scanf("%d",&number);
	getchar();
	printf("input the name: ");
	scanf("%s",name);
	getchar();
	printf("input the age: ");
	scanf("%d",&age);
	getchar();
	printf("input the score ");
	scanf("%d",&score);
	getchar();

	char *sql=sqlite3_mprintf("insert into student values('%d','%s','%d','%d')",number,name,age,score);

	if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK)
	{
		perror("sqlite3_exec");
		exit(-1);
	}
	else
		printf("insert success!!\n");
	return;
}

void delete_data(sqlite3 *db)
{
	int num;
	printf("please input the number you want to delete\n");
	scanf("%d",&num);
	getchar();
	char *sql=sqlite3_mprintf("delete from student where number ='%d'",num);

	if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK)
	{
		perror("sqlite3_exec_delete");
		exit(-1);
	}
	else
		printf("delete success!!\n");
	return;

}

void updata_data(sqlite3 * db)
{
	int num,age,score;
	char name[20];

	printf("please input the number you want to updata\n");
	scanf("%d",&num);
	getchar();
	printf("input the name: ");
	scanf("%s",name);
	getchar();
	printf("input the age: ");
	scanf("%d",&age);
	getchar();
	printf("input the score ");
	scanf("%d",&score);
	getchar();

//	char sql[1024];
//	sprintf(sql,"update student set name='%s',age='%d',score='%d' where number='%d'",name,age,score,num);
	char *sql=sqlite3_mprintf("update student set name='%s',age='%d',score='%d' where number='%d'",name,age,score,num);

	if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK)
	{
		perror("sqlite3_exec_update");
		exit(-1);
	}
	else
		printf("update success!!\n");
	return;

}

void show_data(sqlite3 *db)
{
	char ** resultp;
	int nrow,ncolumn,i,j,index;
	char *sql="select * from student";

	if(sqlite3_get_table(db,sql,&resultp,&nrow,&ncolumn,&errmsg) != SQLITE_OK)
	{
		perror("sqlite3_get_table");
		exit(-1);
	}

	index = ncolumn;
	for(i = 0 ;i< ncolumn; i++)
		printf("%s\t",resultp[i]);
	printf("\n");

	for(i = 0;i< nrow;i++)
	{
		for(j = 0;j< ncolumn;j++)
			printf("%s\t",resultp[index++]);
		printf("\n");
	}
	return ;
}
void quit(sqlite3 *db)
{
	printf("BYBYE!!\n");
	sqlite3_close(db);
	exit(0);
}
int main()
{
	int nu;
	sqlite3 *db;
	if(sqlite3_open("my.db",&db) != SQLITE_OK)
	{
		perror("sqlite3_open");
		exit(-1);
	}

	while(1)
	{
		printf("**********************\n");
		printf("*   1.insert data    *\n");
		printf("*   2.delete data    *\n");
		printf("*   3.updata data    *\n");
		printf("*   4.show   data    *\n");
		printf("*   5. quit          *\n");
		printf("**********************\n");
		printf("please input the number you want to operate:\n");
		scanf("%d",&nu);
		getchar();
		switch(nu)
		{
		case 1:
			insert_data(db);
			break;
		case 2:
			delete_data(db);
			break;
		case 3:
			updata_data(db);
			break;
		case 4:
			show_data(db);
			break;
		case 5 :
			quit(db);
			break;
		}
	}
	return 0;
}

转载于:https://my.oschina.net/u/130360/blog/71836

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值