学生信息管理(数据库版(雏形))

来源:互联网 发布:windows聚焦图片在哪 编辑:程序博客网 时间:2024/06/06 04:30

相比文件操作,数据库操作真的简单很多,今天只做了一个雏形,有心者可以好好写一下。

#include <stdio.h>#include <string.h>#include <mysql.h>void create_table(MYSQL mysql);void insert_info(MYSQL mysql);void show_info(MYSQL mysql);void sort(MYSQL mysql);int main(){//1、连接服务器    MYSQL mysql;    mysql_init(&mysql);    if (!mysql_real_connect(&mysql,"128.0.47.136","chen","123456","mydb",0,NULL,0))    {        fprintf(stderr, "Failed to connect to database: Error: %s\n",                mysql_error(&mysql));    }    mysql_query(&mysql, "set names utf8"); //设置编码//2、CRUD操作(增删改)//  create_table(mysql);    int opt;    printf("1、录入学生信息   2、查询学生信息   3、按数学排名信息\n");    printf("请选择功能 :");    scanf("%d",&opt);    switch(opt)    {        case 1://插入学生信息                insert_info(mysql);                break;        case 2://查询学生信息                show_info(mysql);                break;        case 3://按排名显示学生信息                sort(mysql);                break;    }//3、关闭    mysql_close(&mysql);    return 0;}void create_table(MYSQL mysql){    char sql[300] = "create table student_info(name char(10),sno int primary key,chinese int,math int,english int)";    if(mysql_query(&mysql, sql))    {        fprintf(stderr, "Failed to connect to database: Error: %s\n",                mysql_error(&mysql));    }    else    {        printf("创建学生信息表成功!\n");    }}void insert_info(MYSQL mysql){    int n,i;    printf("请输入录入学生总人数:");    scanf("%d",&n);    char sql[300];    char name[10];    int sno;    int chinese;    int math;    int english;    for(i=0;i<n;i++)    {            printf("姓名:");scanf("%s",&name);            printf("学号:");scanf("%d",&sno);            printf("语文成绩:");scanf("%d",&chinese);            printf("数学成绩:");scanf("%d",&math);            printf("英语成绩:");scanf("%d",&english);            sprintf(sql,"insert into student_info values('%s',%d,%d,%d,%d)",name,sno,chinese,math,english);//重点!!!            if(mysql_query(&mysql, sql))            {                    fprintf(stderr, "Failed to connect to database: Error: %s\n",                                    mysql_error(&mysql));            }            else            {                    printf("录入一次信息成功!\n");            }    }}void show_info(MYSQL mysql){    char sql[300];    strcpy(sql, "select * from student_info");    if(mysql_query(&mysql, sql))//查询    {        fprintf(stderr, "Failed to select: Error: %s\n",                mysql_error(&mysql));    }    else    {        MYSQL_RES* res = NULL;//从堆区申请空间保存一行查询内容             res = mysql_store_result(&mysql);        if(res != NULL)        {            MYSQL_ROW row;            unsigned int num_fields;//一行由多个字段组成            unsigned int i;            num_fields = mysql_num_fields(res);            while ((row = mysql_fetch_row(res)))//依次输出每行            {                for(i = 0; i < num_fields; i++)                {                    printf("\t%s", row[i]);//依次输出每行的每个字段(列)                }                printf("\n");            }            mysql_free_result(res);//释放堆区空间        }        else        {            //失败            printf("show failed\n");        }    }}void sort(MYSQL mysql){    char sql[300];    strcpy(sql, "select * from student_info order by math desc");    if(mysql_query(&mysql, sql))    {        fprintf(stderr, "Failed to select: Error: %s\n",                mysql_error(&mysql));    }    else    {        MYSQL_RES* res = NULL;        res = mysql_store_result(&mysql);        if(res != NULL)        {            MYSQL_ROW row;            unsigned int num_fields;            unsigned int i;            num_fields = mysql_num_fields(res);            while ((row = mysql_fetch_row(res)))            {                for(i = 0; i < num_fields; i++)                {                    printf("\t%s", row[i]);                }                printf("\n");            }            mysql_free_result(res);        }        else        {                printf("show failed\n");        }    }}
原创粉丝点击