找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4509|回复: 2
收起左侧

基于C语言和MYSQL的学生信息管理系统代码

[复制链接]
ID:141667 发表于 2018-9-29 09:39 | 显示全部楼层 |阅读模式
#include <stdio.h>
#include <mysql.h>
#include <string.h>
#include <stdlib.h>
MYSQL mysql; //mysql连接
MYSQL_RES *res; //这个结构代表返回行的一个查询结果集
MYSQL_ROW row; //一个行数据的类型安全(type-safe)的表示
char query[100]; //查询语句
char order[100];
void STRINSERT(int count)
{
        char *delim="_";
        char *p;
        char *q;
        char temp[20];
        scanf("%s",temp);
        strcpy(order,strtok(query,delim));
        strcat(order,temp);
        int i=1;
        while((p=strtok(NULL,delim)))
        {
                strcat(order,p);
                if(i<count)
                {
                        scanf("%s",temp);
                        i++;
                }
                else
                {
                        break;
                }
                strcat(order,temp);
        }
        strcpy(query,order);
}


void show()
{
        int t,r;
        strcpy(query," select * from qq");
        t=mysql_real_query(&mysql,query,(unsigned int)strlen(query));//执行指定为计数字符串的SQL查询。
        if(t)
        {
                printf("执行显示时出现异常: %s",mysql_error(&mysql));
        }
        res=mysql_store_result(&mysql);//检索完整的结果集至客户端。
        printf("姓名\t学号\t年龄\t\n");
        while(row=mysql_fetch_row(res))
        {
         
         
                for(t=0;t<mysql_num_fields(res);t++)
                {
                        printf("%s\t" ,row[t]);
                }
        printf("\n");


}
mysql_free_result(res);//释放结果集使用的内存。
}
void insert()
{
        int t,r;
        printf("请输入姓名、学号、年龄\n");//安一次回车为输入一项
        strcpy(query,"insert into qq(sname,sno,sage) values('_','_',_)");
        STRINSERT(3);//转化为命令函数
        t=mysql_real_query(&mysql,query,(unsigned int)strlen(query));
        if(t)
        {
                printf("执行插入时出现异常: %s",mysql_error(&mysql));
        }
        else
        {
                printf("添加成功\n");
        }
}
void delete()
{
        int t,r;
        printf("请输入你要删除学生的学号:\n");
        strcpy(query,"delete from qq where sno='_'");
        STRINSERT(1);
        t=mysql_real_query(&mysql,query,(unsigned int)strlen(query));
        if(t)
        {
                printf("执行删除时出现异常: %s",mysql_error(&mysql));
        }
}
void search()
{
        int t,r;
        printf("请输入你要查找学生的信息:\n");
        strcpy(query,"select * from qq where sno='_'");
        STRINSERT(1);
        t=mysql_real_query(&mysql,query,(unsigned int)strlen(query));//执行指定为计数字符串的SQL查询。
        if(t)
        {
                printf("执行查询时出现异常: %s",mysql_error(&mysql));
        }
        res=mysql_store_result(&mysql);//检索完整的结果集至客户端。
        printf("姓名\t学号\t年龄\t\n");
        while(row=mysql_fetch_row(res))
        {
         
                for(t=0;t<mysql_num_fields(res);t++)
                {
                        printf("%s\t" ,row[t]);
                }
                printf("\n");
         
        }
        mysql_free_result(res);//释放结果集使用的内存。
}
void updata()
{
        int t,r;
        printf("请输入新的学号和你要修改学生的学号:\n");
        strcpy(query,"update qq set sno='_' where sno='_'");
        STRINSERT(2);
        t=mysql_real_query(&mysql,query,(unsigned int)strlen(query));
        if(t)
        {
                printf("执行更新时出现异常: %s",mysql_error(&mysql));
        }
        else
        {
                printf("修改成功\n");
        }
}
void menu()
{
        printf("\t\t1、显示学生信息\n");
        printf("\t\t2、添加学生信息\n");
        printf("\t\t3、删除学生信息\n");
        printf("\t\t4、查找学生信息\n");
        printf("\t\t5、修改学生信息\n");
        printf("\t\t0、退出系统 \n");


}
void quit()
{
        mysql_close(&mysql);
        printf("数据库已关闭 \n");
        exit(1);
}
int main()
{
        mysql_init(&mysql);
        if (!mysql_real_connect(&mysql,"localhost", "root", NULL, "test",0,NULL,0))
        {


                printf( "Error connecting to database: %s",mysql_error(&mysql));


        }
        else
        {
                printf("Connected...\n");
        }
        int choice;
        while(1)
        {
                menu();
                printf("\n\t请选择:");
                scanf("%d",&choice);
                switch(choice)
                {
                        case 1:show();break;
                        case 2:insert();break;
                        case 3:delete();break;
                        case 4:search();break;
                        case 5:updata();break;
                        case 0:quit();
                }
        }
        return 0;
}
回复

使用道具 举报

ID:700459 发表于 2020-3-19 20:23 | 显示全部楼层
where is the database ?
回复

使用道具 举报

ID:700459 发表于 2020-3-23 20:09 | 显示全部楼层
thank you so much
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表