学生信息管理(数据库版(雏形))
来源:互联网 发布: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"); } }}
阅读全文
0 0
- 学生信息管理(数据库版(雏形))
- 学生信息管理系统(使用数据库)
- 学生信息管理(数组)
- 学生信息管理系统(第二版)
- 学生信息管理系统之数据库语句解析(一)
- JAVA学生信息管理系统(数据库版)
- 建立学生信息管理数据库
- 学生信息管理系统(一)
- 学生信息管理系统(c++)
- 学生信息管理系统(一)
- 学生信息管理系统(一)
- 学生信息管理系统(二)
- 学生信息管理系统(sqlite3)
- 学生信息管理系统(第一次.....)
- 学生信息管理系(二)
- 学生信息管理系统(三)
- 学生信息管理系统(四)
- 学生信息管理系统(三)
- 6.单选按钮和复选框的应用实例
- 河北移动保号套餐推荐
- nginx的http和https 301跳转
- Android UiAutomator 自動化測試,如何單獨執行指定的 test case ?
- js generator生成器已经使用的实际例子
- 学生信息管理(数据库版(雏形))
- 下载google play的安卓应用
- 数据采集第一阶段工作汇报与反思
- http与https的区别
- js中关于排序算法的实现
- Git-3、仓库内的文件操作
- jedis高级使用
- WPF转换器添加
- vue之mock.js模拟接口