您的位置:首页 > 数据库 > MySQL

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

2017-01-04 19:55 429 查看
学生信息管理系统,用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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐