mysql创建学籍信息表_基于数据库MySQL的简易学生信息管理系统

这是一个简单的基于MySQL数据库的学生信息管理系统。用户通过输入用户名和密码登录,然后可以选择插入、删除和查询学生信息。系统使用C语言编写,通过scanf和getch()函数处理用户输入,通过MySQL API进行数据库操作。
摘要由CSDN通过智能技术生成

#include #include#include#include#include

//#define MAX_PASSWD_LEN 16

void printf_mune(void);char *getPasswd(void);int insert_student(void);int delete_student(void);int inquiry_student(void);int main(int argc,char**argv)

{char user[20];char passwd[20];charc;inti;

printf("***********************************************************\n");

printf("* welcome to student information managent system *\n");

printf("***********************************************************\n");//printf(" user: ______________\b\b\b\b\b\b\b\b\n");//printf(" psaawd:______\b\b\b\b\b\b\n");

while(1){

printf("user:");

scanf("%s", user);

printf("passwd:");

scanf("%s",passwd);/*while ((c=getch())!='\n')

{

if (i

{

passwd[i++] = c;

putchar('*');

}

else if (i>0 && c=='\b')

{

--i;

putchar('\b');

putchar(' ');

putchar('\b');

}

}

putchar('\n');

passwd[i] = '\0';*/

if(!strncmp(user, "qigaohua", 8)){if(!strncmp(passwd, "123456", 6))break;else{

printf("passwd error\n");continue;

}

}else{

printf("user error\n");continue;

}

}

printf("login sucess\n");while(1){

printf_mune();

getchar();//问题1 必须加

c =fgetc(stdin);switch(c){case 'I':

insert_student();break;case 'D':

delete_student();break;case 'S':

inquiry_student();break;case 'Q':return 0;break;default:

;

}

}

printf("exit sucess\n");return 0;

}/*getc()和getchar()函数想必大家都经常用到,但它们都在输入的同时显示输入内容,并由回车终止输入。

为了不显示输入内容,我们调用另外一个函数getch(),它包含在头文件中。该函数可以在输入的同时不显示

输入内容,并在输入完成后不需回车而自动终止输入。与此同时,该头文件中还包含另外一个函数getche(),

它和getch()功能相同,唯一的区别是输入的同时显示输入的内容。本文我们只用到getch();*/

/*char *getPasswd()

{

unsigned char c;

passwd =(char*)malloc(8);

int i = 0;

while ((c=getch())!='\r')

{

if (i

{

passwd[i++] = c;

putchar('*');

}

else if (i>0 && c=='\b')

{

--i;

putchar('\b');

putchar(' ');

putchar('\b');

}

}

putchar('\n');

passwd[i] = '\0';

return passwd;

}*/

void printf_mune(void)

{

printf("The following operations can be performed\n");

printf("1. insert student information input I\n");

printf("2. delete student information input D\n");

printf("3. inquiry student information input S\n");

printf("4. exit student information managent system input Q\n");

}int insert_student(void)

{

MYSQL mysql;char sql[100];chark;char id[10], name[20], sex[5],birth[15],potility[20];

mysql_init(&mysql);if(!mysql_real_connect(&mysql, "localhost", "root",NULL,"school_db",0,NULL,0)){

printf("ERROR: %d--%s\n", mysql_errno(&mysql), mysql_error(&mysql));

exit(-1);

}

mysql_set_character_set(&mysql, "utf8");while(1) {

printf("please input student information\n");

printf("student_id:");

fflush(stdin);

scanf("%s",id);//fgets(id, 10, stdin);

printf("\nname:");

scanf("%s",name);//fgets(name, 20, stdin);

printf("\nsex:");

scanf("%s",sex);

printf("\nbirth:");

scanf("%s",birth);//fgets(birth, 15, stdin);

printf("\npolitily:");

scanf("%s",potility);//fgets(potility, 20, stdin);

printf("\nplease input y or n or q\n");//read(stdin, k, 1);

getchar(); //注意要加

k =fgetc(stdin);if(k == 'n')continue;else if(k == 'q')break;else if(k == 'y'){

sprintf(sql,"insert into students values (\"%s\", \"%s\", \"%s\", \"%s\", \"%s\");", id, name,sex, birth, potility);

printf("\n%s",sql);if(mysql_query(&mysql, sql)){

printf("\ninsert failed: %d--%s\n", mysql_errno(&mysql), mysql_error(&mysql));continue;

}

printf("\ninsert sucess\n");

printf("you want exit? input q\n");

getchar();

k=fgetc(stdin);if(k == 'q')break;

}

}

mysql_close(&mysql);return 0;

}int delete_student(void)

{

MYSQL mysql;char sql[100];char id[10], name[20];chark;

mysql_init(&mysql);if(!mysql_real_connect(&mysql, "localhost", "root",NULL,"school_db",0,NULL,0)){

printf("ERROR: %d--%s\n", mysql_errno(&mysql), mysql_error(&mysql));

exit(-1);

}

mysql_set_character_set(&mysql, "utf8");while(1){

printf("please input you want delete student id or name, selset i or n or q\n");

getchar();//注意

k =fgetc(stdin);if(k == 'i') {

printf("student id:");

scanf("%s",id);//fgets(id, 10, stdin);

sprintf(sql, "delete from students where student_id=\"%s\";", id);

}else if(k == 'n'){

printf("\nstudent name:");

scanf("%s",name);//fgets(name, 20, stdin);

sprintf(sql, "delete from students where name=\"%s\";", name);

}else if(k == 'q')break;

printf("\nyou are sure? y or n or q\n");

getchar();

k=fgetc(stdin);if(k == 'n')continue;else if(k == 'y'){if(mysql_query(&mysql, sql)){

printf("delete failed: %d--%s\n", mysql_errno(&mysql), mysql_error(&mysql));continue;

}

printf("delete sucess\n");

}else if(k == 'q')break;

}

mysql_close(&mysql);return 0;

}int inquiry_student(void)

{

MYSQL mysql;

MYSQL_RES*res;

MYSQL_ROW row;

MYSQL_FIELD*filed;char sql[100];char id[10], name[20];chark;intcolumn,i;

my_ulonglong backrows;

mysql_init(&mysql);if(!mysql_real_connect(&mysql, "localhost", "root",NULL,"school_db",0,NULL,0)){

printf("ERROR: %d--%s\n", mysql_errno(&mysql), mysql_error(&mysql));

exit(-1);

}

mysql_set_character_set(&mysql, "utf8");while(1){

printf("please input you want inquiry student id or name, selset i or n or q\n");

getchar();//标记

k =fgetc(stdin);if(k == 'i') {

printf("student id:");

scanf("%s", id);//fgets(id, 10, stdin);

sprintf(sql, "select * from students where student_id=\"%s\";", id);

printf("sql request:%s\n", sql);

}else if(k == 'n') {

printf("\nstudent name:");

scanf("%s", name);//fgets(name, 20, stdin);

sprintf(sql, "select * from students where name=\"%s\";", name);

printf("sql request:%s\n", sql);

}else if(k == 'q')break;

printf("\nyou are sure? y or n or q\n");

getchar();

k=fgetc(stdin);if(k == 'n')continue;else if(k == 'y'){if(mysql_query(&mysql, sql)){

printf("delete failed: %d--%s\n", mysql_errno(&mysql), mysql_error(&mysql));continue;

}

res= mysql_store_result(&mysql); //首先判断res是否为NULL来判断是否有数据,但是失败了,不知道为什么,最后用了下面函数

backrows = mysql_num_rows(res);//返回上面函数返回结果的行数

if(backrows != 0){

column=mysql_num_fields(res);while((row =mysql_fetch_row(res))){

i= 0;while((filed = mysql_fetch_field(res)) != NULL && (i

printf("%s:", filed->name);

printf("%s", row[i++]);

printf("\n");

}

printf("\n");

}

}else{

printf("no data found\n");continue;

}

printf("inquiry sucess\n");

}else if(k == 'q')break;

}

mysql_close(&mysql);return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值