学生信息管理系统(unix下用c对mysql进行操作)

46 篇文章 0 订阅
14 篇文章 0 订阅

学生信息管理系统,用c在unix下直接对数据库进行操作的版本。

头文件需要加上mysql.h,编译命令参见http://blog.csdn.net/martinue/article/details/53996835


#include<mysql.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int idd;
void add()
{
    idd++;
    char sex[10];
    char name[50];
    char tele[50];
    char mail[50];
    MYSQL *con;
    MYSQL_RES *res;
    MYSQL_ROW row;
    char sql_line[1024]="";
    int rt=0,index_field,count;
    con = mysql_init((MYSQL *)0);
    if(!mysql_real_connect(con,"localhost","root","123456","stusql",0,NULL,0))
    {
        printf("mysql connect failed !\n");
        system("pause");
        exit(-1);
    }
    printf("mysql connect successful!\n");
    printf("请输入学生姓名:");
    scanf("%s",name);
    printf("请输入学生性别(m||f):");
    scanf("%s",sex);
    printf("请输入学生电话:");
    scanf("%s",tele);
    printf("请输入学生邮箱:");
    scanf("%s",mail);
    int ch,ma,en;
    printf("请输入学生的语文成绩:");
    scanf("%d",&ch);
    printf("请输入学生的数学成绩:");
    scanf("%d",&ma);
    printf("请输入学生的英语成绩:");
    scanf("%d",&en);
    sprintf(sql_line,"insert into user(id,name,sex,telephone,email)  values('%d','%s','%s','%s','%s')",idd,name,sex,tele,mail);
    rt=mysql_real_query(con,sql_line,strlen(sql_line));
    if (rt)
    {
        printf("error:%s\n",mysql_error(con));
        return;
    }
    sprintf(sql_line,"insert into score(id,user_id,course_id,score,flag)  values('%d','%d','%d','%d','%d')",idd*3+0,idd,0,ch,0);
    rt=mysql_real_query(con,sql_line,strlen(sql_line));
    if (rt)
    {
        printf("error:%s\n",mysql_error(con));
        return;
    }
    sprintf(sql_line,"insert into score(id,user_id,course_id,score,flag)  values('%d','%d','%d','%d','%d')",idd*3+1,idd,1,ma,0);
    rt=mysql_real_query(con,sql_line,strlen(sql_line));
    if (rt)
    {
        printf("error:%s\n",mysql_error(con));
        return;
    }
    sprintf(sql_line,"insert into score(id,user_id,course_id,score,flag)  values('%d','%d','%d','%d','%d')",idd*3+2,idd,2,en,0);
    rt=mysql_real_query(con,sql_line,strlen(sql_line));
    if (rt)
    {
        printf("error:%s\n",mysql_error(con));
        return;
    }
    puts("add successful!");
    mysql_close(con);
}
void modify()
{
    char sex[10];
    char name[50];
    char tele[50];
    char mail[50];
    MYSQL *con;
    MYSQL_RES *res;
    MYSQL_ROW row;
    char sql_line[1024]="";
    int rt=0,index_field,count;
    con = mysql_init((MYSQL *)0);
    if(!mysql_real_connect(con,"localhost","root","123456","stusql",0,NULL,0))
    {
        printf("mysql connect failed !\n");
        system("pause");
        return;
    }
    printf("mysql connect successful!\n");
    printf("请输入要修改的学生的id:");
    int idd;
    scanf("%d",&idd);
    printf("请输入学生姓名:");
    scanf("%s",name);
    printf("请输入学生性别(m||f):");
    scanf("%s",sex);
    printf("请输入学生电话:");
    scanf("%s",tele);
    printf("请输入学生邮箱:");
    scanf("%s",mail);
    int ch,ma,en;
    printf("请输入学生的语文成绩:");
    scanf("%d",&ch);
    printf("请输入学生的数学成绩:");
    scanf("%d",&ma);
    printf("请输入学生的英语成绩:");
    scanf("%d",&en);
    sprintf(sql_line,"update user set name='%s',sex='%s',telephone='%s',email='%s'  where id=%d",name,sex,tele,mail,idd);
    rt=mysql_real_query(con,sql_line,strlen(sql_line));
    if (rt)
    {
        printf("error:%s\n",mysql_error(con));
        return;
    }
    sprintf(sql_line,"update score set score='%d' where user_id=%d and course_id=0",ch,idd);
    rt=mysql_real_query(con,sql_line,strlen(sql_line));
    if (rt)
    {
        printf("error:%s\n",mysql_error(con));
        return;
    }
    sprintf(sql_line,"update score set score='%d' where user_id=%d and course_id=1",ma,idd);
    rt=mysql_real_query(con,sql_line,strlen(sql_line));
    if (rt)
    {
        printf("error:%s\n",mysql_error(con));
        return;
    }
    sprintf(sql_line,"update score set score='%d' where user_id=%d and course_id=2",en,idd);
    rt=mysql_real_query(con,sql_line,strlen(sql_line));
    if (rt)
    {
        printf("error:%s\n",mysql_error(con));
        return;
    }
    printf("modify successful!");
    mysql_close(con);
}

void delete()
{
    MYSQL *con;
    MYSQL_RES *res;
    MYSQL_ROW row;
    char sql_line[1024]="";
    int rt=0,index_field,count;
    con = mysql_init((MYSQL *)0);
    if(!mysql_real_connect(con,"localhost","root","123456","stusql",0,NULL,0))
    {
        printf("mysql connect failed !\n");
        return;
    }
    printf("connect successful!\n");
    printf("请输入删除的学生的id:");
    int xx;
    scanf("%d",&xx);
    sprintf(sql_line,"delete from user where id = '%d' ",xx);
    rt=mysql_real_query(con,sql_line,strlen(sql_line));
    if (rt)
    {
        printf("mysql_real_query error !\n");
        return;
    }
    sprintf(sql_line,"delete from score where user_id = '%d' ",xx);
    rt=mysql_real_query(con,sql_line,strlen(sql_line));
    if(rt)
    {
        printf("mysql_real_query error !\n");
        return;
    }
    puts("delete successful!");
    mysql_close(con);
}
void watch()
{
    MYSQL mysql;
    MYSQL_RES *res = NULL;
    MYSQL_ROW row;
    char query_str[1024];
    int rc=0, i, fields;
    int rows;
    if (NULL == mysql_init(&mysql))
    {
        printf("mysql_init(): %s\n", mysql_error(&mysql));
        return ;
    }
    if (NULL == mysql_real_connect(&mysql,"localhost","root","123456","stusql",0,NULL,0))
    {
        printf("mysql_real_connect(): %s\n", mysql_error(&mysql));
        return;
    }
    printf("Connected MySQL successful! \n");
    printf("请输入要查询的学生的id:");
    int xx;
    scanf("%d",&xx);
    sprintf(query_str,"select user.name,user.sex,user.telephone,user.email,course.name,score.score from user,score,course where user.id=score.user_id and user.id=%d and score.course_id=course.id;",xx);
    rc = mysql_real_query(&mysql, query_str, strlen(query_str));
    if (0 != rc)
    {
        printf("mysql_real_query(): %s\n", mysql_error(&mysql));
        return;
    }
    res = mysql_store_result(&mysql);
    if (NULL == res)
    {
        printf("mysql_restore_result(): %s\n", mysql_error(&mysql));
        return ;
    }
    rows = mysql_num_rows(res);
    printf("The total rows is: %d\n", rows);
    fields = mysql_num_fields(res);
    printf("The total fields is: %d\n", fields);
    while ((row = mysql_fetch_row(res)))
    {
        for (i = 0; i < fields; i++)
        {
            printf("%s\t", row[i]);
        }
        printf("\n");
    }
    mysql_close(&mysql);
}
void print()
{
    printf("----学生信息管理系统----\n");
    printf("     0.查看学生信息\n");
    printf("     1.录入学生信息\n");
    printf("     2.修改学生信息\n");
    printf("     3.删除学生信息\n");
    int x;
    scanf("%d",&x);
    if(x==1)
        add();
    else if(x==2)
        modify();
    else if(x==3)
        delete();
    else
        watch();
}
int  main()
{
    idd=0;
    while(1)
        print();
    return 0;
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值