c语言 sqlite创建一个可以用scanf输入显示学生信息的管理系统
时间: 2024-10-22 15:24:10 浏览: 22
学生成绩管理系统(大一 C语言).zip
在C语言中,我们可以利用SQLite数据库来创建一个简单的学生信息管理系统。首先,你需要安装SQLite库并包含头文件,然后按照以下步骤操作:
1. **连接数据库**:
使用`sqlite3_open()`函数打开数据库,并检查是否成功。
```c
#include <sqlite3.h>
sqlite3 *db;
if (sqlite3_open("student_management.db", &db) != SQLITE_OK) {
// 处理错误
}
```
2. **创建表**:
编写SQL查询来创建一个名为`students`的表,用于存储学生信息,比如姓名、学号等字段。
```c
const char *sql_create_table = "CREATE TABLE IF NOT EXISTS students (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, student_number INTEGER);";
sqlite3_exec(db, sql_create_table, NULL, NULL, NULL);
```
3. **添加数据**:
使用`sqlite3_exec()`执行插入学生的`INSERT INTO` SQL语句,通过`scanf()`获取用户输入。
```c
int id, student_number;
char name[100];
printf("请输入学生姓名:");
fgets(name, sizeof(name), stdin);
name[strcspn(name, "\n")] = '\0'; // 移除换行符
printf("请输入学生学号:");
scanf("%d", &student_number);
// ...在这里拼接完整的insert语句,并执行
```
4. **查询和显示数据**:
查询数据库,可以使用`sqlite3_exec()`执行`SELECT`语句,并将结果遍历出来展示。
```c
const char *sql_select = "SELECT * FROM students;";
sqlite3_stmt *stmt;
sqlite3_prepare_v2(db, sql_select, -1, &stmt, NULL);
while (sqlite3_step(stmt) == SQLITE_ROW) {
int row_id = sqlite3_column_int(stmt, 0);
const char* name = (const char*)sqlite3_column_text(stmt, 1);
int number = sqlite3_column_int(stmt, 2);
printf("ID: %d, Name: %s, Student Number: %d\n", row_id, name, number);
}
sqlite3_finalize(stmt);
```
5. **关闭数据库**:
最后记得关闭数据库连接。
```c
sqlite3_close(db);
```
这只是一个基本的示例,实际应用中还需要处理错误、异常以及提供用户界面的交互。以下是整个程序的一个简化版框架:
```c
#include <stdio.h>
#include <sqlite3.h>
// ... 其他代码 ...
int main() {
// 打开数据库...
// 创建表...
// 添加数据循环...
// 获取输入...
// 插入数据...
// 查询和显示数据...
// 关闭数据库...
return 0;
}
```
阅读全文