一、思维导图
二、学生管理系统
1、myhead.h
# ifndef __MYHEAD_H__
# define __MYHEAD_H__ # include <string.h>
# include <stdio.h>
# include <stdlib.h>
# include <errno.h> # define ERR_MSG ( msg) do { perror ( msg) ; printf ( "%d\n" , __LINE__ ) ; return - 1 ; } while ( 0 )
# include <unistd.h>
# include <sys/types.h>
# include <sys/stat.h>
# include <fcntl.h>
# include <time.h>
# include <pwd.h>
# include <grp.h>
# include <sys/wait.h>
# include <pthread.h>
# include <semaphore.h>
# include <signal.h>
# include <sys/ipc.h>
# include <sys/shm.h>
# include <arpa/inet.h>
# include <sys/socket.h>
# include <netinet/in.h>
# include <netinet/ip.h>
# include <sys/msg.h>
# include <sqlite3.h>
# endif
2、代码
# include <myhead.h>
int do_add ( sqlite3 * ppDb)
{ int add_numb; char add_name[ 20 ] ; char add_sex[ 10 ] ; double add_scare; printf ( "输入学号:" ) ; scanf ( "%d" , & add_numb) ; printf ( "输入姓名:" ) ; scanf ( "%s" , add_name) ; printf ( "输入性别:" ) ; scanf ( "%s" , add_sex) ; printf ( "输入成绩:" ) ; scanf ( "%lf" , & add_scare) ; char sql[ 128 ] = { } ; sprintf ( sql, "insert into STUINFO values(%d,\"%s\",\"%s\",%lf);" , add_numb, add_name, add_sex, add_scare) ; char * errmsg= NULL ; if ( sqlite3_exec ( ppDb, sql, NULL , NULL , & errmsg) != SQLITE_OK) { printf ( "%d\t%s\n" , __LINE__ , errmsg) ; sqlite3_free ( errmsg) ; return - 1 ; } printf ( "添加学生信息成功\n" ) ; return 0 ;
}
int do_delete ( sqlite3 * ppDb)
{ int delate_numb; printf ( "输入要删除的学号:" ) ; scanf ( "%d" , & delate_numb) ; char sql[ 128 ] = { } ; sprintf ( sql, "delete from STUINFO where numb==%d" , delate_numb) ; char * errmsg= NULL ; if ( sqlite3_exec ( ppDb, sql, NULL , NULL , & errmsg) != SQLITE_OK) { printf ( "%d\t%s\n" , __LINE__ , errmsg) ; sqlite3_free ( errmsg) ; return - 1 ; } printf ( "删除学生信息成功\n" ) ; return 0 ; }
int do_update ( sqlite3 * ppDb)
{ int update_numb; char update_name[ 20 ] ; char update_sex[ 10 ] ; double update_scare; printf ( "输入要修改学号:" ) ; scanf ( "%d" , & update_numb) ; printf ( "输入修改后的姓名:" ) ; scanf ( "%s" , update_name) ; printf ( "输入修改后的性别:" ) ; scanf ( "%s" , update_sex) ; printf ( "输入修改后的成绩:" ) ; scanf ( "%lf" , & update_scare) ; char sql[ 128 ] = { } ; sprintf ( sql, "update STUINFO set name=\"%s\",sex=\"%s\",scare=%lf where numb=%d;" , update_name, update_sex, update_scare, update_numb) ; char * errmsg= NULL ; if ( sqlite3_exec ( ppDb, sql, NULL , NULL , & errmsg) != SQLITE_OK) { printf ( "%d\t%s\n" , __LINE__ , errmsg) ; sqlite3_free ( errmsg) ; return - 1 ; } printf ( "修改学生信息成功\n" ) ; return 0 ;
}
int call_back ( void * arg, int clos, char * * msgtxt, char * * msgheader)
{ if ( * ( ( int * ) arg) == 0 ) { * ( ( int * ) arg) = 1 ; for ( int i= 0 ; i< clos; i++ ) { printf ( "%s\t" , * ( msgheader+ i) ) ; } printf ( "\n" ) ; } for ( int i= 0 ; i< clos; i++ ) { printf ( "%s\t" , * ( msgtxt+ i) ) ; } printf ( "\n" ) ; return 0 ;
}
int do_search ( sqlite3 * ppDb)
{ char sql[ 128 ] = "select * from STUINFO;" ; char * errmsg= NULL ; int flag= 0 ; if ( sqlite3_exec ( ppDb, sql, call_back, & flag, & errmsg) != SQLITE_OK) { printf ( "%d\t%s\n" , __LINE__ , errmsg) ; sqlite3_free ( errmsg) ; return - 1 ; } return 0 ; }
int main ( int argc, const char * argv[ ] )
{ sqlite3 * ppDb= NULL ; if ( sqlite3_open ( "./db.db" , & ppDb) != SQLITE_OK) { printf ( "sqlist3_open error\n" ) ; return - 1 ; } char * sql= "create table if not exists STUINFO(numb int,name char,sex char,scare double);" ; char * errmsg= NULL ; if ( sqlite3_exec ( ppDb, sql, NULL , NULL , & errmsg) != SQLITE_OK) { printf ( "%d\t%s\n" , __LINE__ , errmsg) ; sqlite3_free ( errmsg) ; return - 1 ; } int nume= - 1 ; while ( 1 ) { system ( "clear" ) ; printf ( "*************学生管理系统***************\n" ) ; printf ( "***********1、添加学生信息**************\n" ) ; printf ( "***********2、删除学生信息**************\n" ) ; printf ( "***********3、修改学生信息**************\n" ) ; printf ( "***********4、查找学生信息**************\n" ) ; printf ( "***********0、退出管理系统**************\n" ) ; printf ( "输入选项:" ) ; scanf ( "%d" , & nume) ; getchar ( ) ; switch ( nume) { case 1 : do_add ( ppDb) ; break ; case 2 : do_delete ( ppDb) ; break ; case 3 : do_update ( ppDb) ; break ; case 4 : do_search ( ppDb) ; break ; case 0 : exit ( EXIT_SUCCESS) ; } while ( getchar ( ) != '\n' ) ; } sqlite3_close ( ppDb) ; return 0 ;
}
三、牛客网刷题