加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

学生信息管理系统

发布时间:2020-12-12 19:55:51 所属栏目:百科 来源:网络整理
导读:此程序使用SQLite库编写,编译时需要SQLite3的源码库函数和头文件,编译连接时需加上:-lpthread -ldl 选项。 (下载地址:http://download.csdn.net/detail/hanbo622/7977201) main.c #include stdio.h#include string.h#include stdlib.h#include "stu_sq

此程序使用SQLite库编写,编译时需要SQLite3的源码库函数和头文件,编译连接时需加上:-lpthread -ldl 选项。

(下载地址:http://download.csdn.net/detail/hanbo622/7977201)

main.c

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "stu_sqlite.h"
#include "sqlite3.h"
#define PRINT printf("    《学生信息管理系统》:");
sqlite3 *db = NULL;
char *help ="*************************************n"

			"*add:    add   student  information *n"

			"*del:    del   student  information *n"

			"*order:  order student  information *n"

			"*find:   find  student  information *n"

			"*update: find  student  information *n"

			"*print:  print student  information *n"

			"*cls:    clear  screen  information *n"

			"*help:   display  help  information *n"

			"*exit:   exit                       *n"

			"*************************************n";
			
void add_fun(void)		
{
	STU stu;
	printf("Please input student (id name city score):");
	scanf("%d %s %s %d",&stu.id,stu.name,stu.city,&stu.score);
	insert_stu_db(db,&stu);
}

void del_fun(void)
{
	STU stu;
	printf("*****************************************************n");
	printf("*id:    delete     (id=1)       student information *n");
	printf("*name:  delete (name='hanbo')   student information *n");
	printf("*city:  delete (city='beijing') student information *n");
	printf("*score: delete  (score=100)   student information   *n");
	printf("*****************************************************n");
	printf("Please input student type:");
	scanf("%s",stu.type);
	delete_stu_db(db,&stu);
}

void order_fun(void)
{
	STU stu;
	printf("***********************************n");
	printf("*id:    In lin with id order      *n");
	printf("*name:  In lin with name order    *n");
	printf("*city:  In lin with city order    *n");
	printf("*score: In lin with score order   *n");
	printf("***********************************n");
	printf("Please input student type:");
	scanf("%s",stu.type);
	order_by_id_stu_db_exec(db,&stu);
}

void find_fun(void)
{
	STU stu;
	printf("****************************************n");
	printf("*and/or:   id=1 and/or addr='beijing'  *n");
	printf("*between:  id between 1 and 3          *n");
	printf("*like:     addr like '%%jing%%'          *n");
	printf("*not:      id not in (1)               *n");
	printf("****************************************n");
	printf("Please input find type:");
	scanf("%s",stu.type);
	find_stu_db(db,&stu);
}
void update_fun(void)
{
	STU stu;
	int i=0;
	printf("**********************************************************n");
	printf("*      id=1,addr='beijing' where name='perter'           *n");
	printf("*name peter's information update id=1 and addr='beijing' *n");
	printf("**********************************************************n");
	printf("Please input find type:");
	getchar();
	stu.type[i]=getchar();
	while(stu.type[i]!='n')
	{
		i++;
		stu.type[i]=getchar();
	}
	stu.type[i]='';
	
	update_stu_db(db,&stu);
}
void print_fun(void)
{
	show_stu_info(db);
}

void cls_fun(void)
{
	system("clear");
}

void exit_fun(void)
{
	sqlite3_close(db);
	exit(0);
}

void help_fun(void )
{
	printf("%sn",help);
}

typedef void (*FUN)(void);
typedef struct cmd
{
	char *cmd;
	FUN fun;
}CMD;

CMD cmd_list[] = 
{
	{"add",add_fun},{"del",del_fun},{"order",order_fun},{"find",find_fun},{"update",update_fun},{"print",print_fun},{"cls",cls_fun},{"exit",exit_fun},{"help",help_fun}
};

int main(int argc,char **argv)
{
	char cmdbuf[20];
	char *stu_db = "stu_info.db";
	int i = 0;

	db = (sqlite3 *)create_db(stu_db); //创建数据库
	create_db_table(db);  //创建表头 id name score
	PRINT;
	while(1)
	{
		scanf("%s",cmdbuf);
		for(i=0;i<9;i++)
		{
			if(!strcmp(cmdbuf,cmd_list[i].cmd))
			{
				cmd_list[i].fun();
				PRINT;
			}
		}
	}
	return 0;
}


stu_sqlite.c

#include <stdio.h>
#include <stdlib.h>

#include "stu_sqlite.h"
#include "sqlite3.h"
void sqlite3_get_table_func(sqlite3 *db,char *sql)
{
	char *errormsg=NULL;
	char **resultp=NULL;
	int nrow=0;
	int ncolumn=0;
	int ret=sqlite3_get_table(db,sql,&resultp,&nrow,&ncolumn,&errormsg);
	if(ret!=SQLITE_OK)
	{
		printf("errormsg=%sn",errormsg);	
	}
	else
	{
		int i=0;
		int j=0;
		for(i=0;i<=nrow;i++)
		{
			if(i==0)
				printf("  %-3s   %-10s %-10s %-3s  n",resultp[0],resultp[1],resultp[2],resultp[3]);
			else if(i==1)
			{
				printf("************************************n");
				printf("* %-3s   %-10s %-10s %-3s  *n",resultp[0+i*ncolumn],resultp[1+i*ncolumn],resultp[2+i*ncolumn],resultp[3+i*ncolumn]);
			}
			else
				printf("* %-3s   %-10s %-10s %-3s  *n",resultp[3+i*ncolumn]);		
		}
		printf("************************************nn");
	}
}
sqlite3 *create_db(char *db_name)
{
	sqlite3 *db;
	int ret=sqlite3_open(db_name,&db);
	if(ret!=SQLITE_OK)
	{
		perror("sqlite3_open");
	}
	system("chmod 777 stu_info.db");
	return db;
}

void create_db_table(sqlite3 *db)
{
	char *sql="create table persons (id integet,name text,city text,score integet);";
	char *errormsg;
	int ret=sqlite3_exec(db,NULL,errormsg);
	} 
}

void insert_stu_db(sqlite3 *db,STU *stu)
{
	char sql[100]="";
	sprintf(sql,"insert into persons values (%d,'%s',%d);",stu->id,stu->name,stu->city,stu->score);
	char *errormsg;
	int ret=sqlite3_exec(db,errormsg);
	} 
}

void delete_stu_db(sqlite3 *db,STU *stu)
{
	char sql[100]="";
	char *errormsg;
	sprintf(sql,"delete from persons where %s;",stu->type);
	int ret=sqlite3_exec(db,errormsg);
	}  
}
void  show_stu_info(sqlite3 *db)
{
	char *sql="select * from persons;";	
	sqlite3_get_table_func(db,sql);
}

void find_stu_db(sqlite3 *db,STU *stu)
{	
	char sql[100]="";
	sprintf(sql,"select * from persons where %s;",stu->type);
	sqlite3_get_table_func(db,sql);
}
void update_stu_db(sqlite3 *db,"update persons set %s;",errormsg);
	}  
}
void order_by_id_stu_db_exec(sqlite3 *db,"select * from persons order by %s;",sql);
}




stu_sqlite.h

#ifndef __STU_SQLITE_H__
#define __STU_SQLITE_H__

#include "sqlite3.h"

typedef struct student_info
{
	int id;
	char name[10];
	char city[20];
	int score;
	char type[100];
}STU;
extern sqlite3 *create_db(char *db_name);
extern void create_db_table(sqlite3 *db);
extern void insert_stu_db(sqlite3 *db,STU *stu);
extern void delete_stu_db(sqlite3 *db,STU *stu);
extern void order_by_id_stu_db_exec(sqlite3 *db,STU *stu);
extern void find_stu_db(sqlite3 *db,STU *stu);
extern void update_stu_db(sqlite3 *db,STU *stu);
extern void  show_stu_info(sqlite3 *db);

#endif

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读