Linux + C + sqlite 3 간단 한 학생 관리 시스템
#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!!
");
return;
}
void delete_data(sqlite3 *db)
{
int num;
printf("please input the number you want to delete
");
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!!
");
return;
}
void updata_data(sqlite3 * db)
{
int num,age,score;
char name[20];
printf("please input the number you want to updata
");
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!!
");
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("
");
for(i = 0;i< nrow;i++)
{
for(j = 0;j< ncolumn;j++)
printf("%s\t",resultp[index++]);
printf("
");
}
return ;
}
void quit(sqlite3 *db)
{
printf("BYBYE!!
");
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("**********************
");
printf("* 1.insert data *
");
printf("* 2.delete data *
");
printf("* 3.updata data *
");
printf("* 4.show data *
");
printf("* 5. quit *
");
printf("**********************
");
printf("please input the number you want to operate:
");
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;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Docker를 사용한 React 및 .NET Core 6.0 샘플 프로젝트 - 1부이 기사에서는 Entity Framework Core Code First 접근 방식을 사용하는 ASP.NET Core 6.0 WEP API의 CRUD(만들기, 읽기, 업데이트 및 삭제) 작업에 대해 설명합니다. 웹 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.