当前位置: 首页 > news >正文

8.20作业

1.使用数据库实现学生系统

#include <25061head.h>int stu_add(sqlite3 *ppDb)
{int numb;char name[50];char sex[20];double score;printf("请输入学号:");scanf("%d",&numb);printf("请输入姓名:");scanf("%s",name);printf("请输入性别:");scanf("%s",sex);printf("请输入成绩:");scanf("%lf",&score);getchar();char sql[256]="";sprintf(sql,"insert into Stu_Info values(%d,\"%s\",\"%s\",%.2lf);",numb,name,sex,score);char *errmsg=NULL;if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK){printf("插入失败:%s\n",errmsg);sqlite3_free(errmsg);return -1;}printf("完成\n");return 0;
}int stu_delete(sqlite3 *ppDb)
{int numb;printf("输入删除学生的学号:");scanf("%d",&numb);char sql[128]="";sprintf(sql,"delete from Stu_Info where numb=\"%d\";",numb);char *errmsg=NULL;if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK){printf("删除失败:%s\n",errmsg);sqlite3_free(errmsg);return -1;}printf("完成\n");return 0;	
}int stu_modify(sqlite3 *ppDb)
{int numb;int new_numb;char name[50];char sex[20];double score;printf("输入修改学生的学号:");scanf("%d",&numb);printf("请输入学号:");scanf("%d",&new_numb);printf("请输入姓名:");scanf("%s",name);printf("请输入性别:");scanf("%s",sex);printf("请输入成绩:");scanf("%lf",&score);getchar();char sql[512]="";sprintf(sql,"update Stu_Info set numb=%d,name=\"%s\",sex=\"%s\",score=%.2lf where numb=\"%d\";",new_numb,name,sex,score,numb);char *errmsg=NULL;if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK){printf("更新失败:%s\n",errmsg);sqlite3_free(errmsg);return -1;}printf("完成\n");return 0;	
}int callback(void* arg,int clos,char **msgtext,char **msgheader)
{if(*((int *)arg)==0){*((int *)arg)=1;for(int i=0;i<clos;i++){printf("%s\t",*(msgheader+i));}printf("\n");}for(int i=0;i<clos;i++){printf("%s\t",*(msgtext+i));}printf("\n");return 0;
}int stu_search(sqlite3 *ppDb)
{char *sql="select * from Stu_Info;";char *errmsg=NULL;int flag=0;if(sqlite3_exec(ppDb,sql,callback,&flag,&errmsg)!=SQLITE_OK){printf("查询失败:%s\n",errmsg);sqlite3_free(errmsg);return -1;}return 0;
}int main(int argc, const char *argv[])
{sqlite3 *ppDb=NULL;if(sqlite3_open("./file.db",&ppDb)!=SQLITE_OK){printf("sqlite3_open error errcode=%d errmsg=%s\n",sqlite3_errcode(ppDb),sqlite3_errmsg(ppDb));return -1;}char *sql="create table if not exists Stu_Info(numb int,name text,sex char,score double);";char *errmsg=NULL;if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK){printf("数据表创建失败: %s\n",errmsg);sqlite3_free(errmsg);return -1;}printf("学生信息表创建成功\n");int menu=-1;while(1){system("clear");printf("/**********************     主菜单   ***********************/\n");printf("/**********************1.添加学生信息***********************/\n");printf("/**********************2.删除学生信息***********************/\n");printf("/**********************3.修改学生信息***********************/\n");printf("/**********************4.查询学生信息***********************/\n");printf("/**********************0.    退出    ***********************/\n");printf("选择使用功能:");scanf("%d",&menu);getchar();switch(menu){case 1:stu_add(ppDb);break;case 2:stu_delete(ppDb);break;case 3:stu_modify(ppDb);break;case 4:stu_search(ppDb);break;case 0:sqlite3_close(ppDb);exit(0);default:printf("输入有误,重新输入\n");}printf("输入任意按键后回车结束\n");while(getchar()!='\n');}sqlite3_close(ppDb);return 0;
}

2.思维导图

3.

http://www.dtcms.com/a/341380.html

相关文章:

  • [Mysql数据库] 用户管理选择题
  • IIS访问报错:HTTP 错误 500.19 - Internal Server Error
  • rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(一)基本代码
  • python的校园顺路代送系统
  • Seaweed-APT:AI视频生成模型,单步生成2秒钟的1280x720 24fps视频
  • 46.安卓逆向2-补环境-使用unidbg(使用apk文件补环境)
  • 面试记录5 .net
  • 电商大数据的采集过程详解​【采集内容|采集渠道|采集步骤|注意事项】
  • 算法第34天|动态规划:打家劫舍Ⅰ、打家劫舍Ⅱ、打家劫舍Ⅲ
  • 为了更强大的空间智能,如何将2D图像转换成完整、具有真实尺度和外观的3D场景?
  • (双类别检测:电动车 + 头部,再对头部分类)VS 单类别检测 + ROI 分类器 方案
  • 小迪安全v2023学习笔记(六十七讲)—— Java安全JNDI注入五大不安全组件RCE不出网
  • 2025年中高级后端开发Java岗八股文最新开源
  • 利用 PHP 爬虫获取店铺所有商品实战指南
  • Spring Boot 3.4.x 性能优化实战:用 Undertow 替换 Tomcat 全指南​
  • 自动驾驶汽车机器学习安全实用解决方案
  • 三坐标性能的创新重构,“高精度、紧凑型、高稳定性”三位一体
  • 鸿蒙中Profiler的使用
  • STM32学习笔记16-SPI硬件控制
  • MySQL 语法基础入门:从零开始掌握数据库操作
  • CoreShop微信小程序商城框架开启多租户-添加一个WPF客户端以便进行本地操作(5)
  • 读《精益数据分析》:规模化(Scale)—— 复制成功,进军新市场
  • VMware Workstation | 安装Ubuntu18.04.5
  • 波纹干涩 shader
  • 零知开源——基于STM32F103RBT6与ADXL362三轴加速度计的体感迷宫游戏设计与实现
  • 【Unity3D优化】平衡 Hide 与 Destroy:基于性能等级与 LRU 的 UI 管理策略与实践思考
  • PostgreSQL Certified Master 专访 | 第四期 贾桂军
  • 【Techlog】01入门-井筒数据整合软件的基本认识
  • 控制器调用服务层出现Cannot invoke ... 显示服务层bean对象为null
  • PostgreSQL 流程---更新