用C语言编写一个学生:查询、修改个人信息,查看是实习信息(要求显示:学生名称、实习名称、地点、实习岗位)的代码。
时间: 2024-06-09 17:09:00 浏览: 136
这个需求需要使用一个数据库来存储学生信息和实习信息,因此需要先选择一个适合的数据库系统,并创建相关表格。这里以MySQL为例,创建一个名为`students`的数据库,包含两个表格`student_info`和`internship_info`。
`student_info`表格包含以下字段:
- `id` 学生编号
- `name` 学生姓名
- `age` 学生年龄
- `gender` 学生性别
- `major` 学生专业
- `grade` 学生年级
`internship_info`表格包含以下字段:
- `id` 实习编号
- `name` 实习名称
- `location` 实习地点
- `position` 实习岗位
- `student_id` 学生编号(外键)
在这个基础上,可以使用C语言编写程序来实现学生信息的查询、修改和实习信息的查看功能。以下是一个简单的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <mysql/mysql.h>
#define HOST "localhost"
#define USER "root"
#define PASSWORD "password"
#define DATABASE "students"
void query_student_info(int id);
void update_student_info(int id);
void show_internship_info(int id);
int main()
{
int id, choice;
printf("请输入学生编号:");
scanf("%d", &id);
printf("请选择要执行的操作:\n");
printf("1. 查询个人信息\n");
printf("2. 修改个人信息\n");
printf("3. 查看实习信息\n");
scanf("%d", &choice);
switch (choice)
{
case 1:
query_student_info(id);
break;
case 2:
update_student_info(id);
break;
case 3:
show_internship_info(id);
break;
default:
printf("无效的选择!\n");
break;
}
return 0;
}
void query_student_info(int id)
{
MYSQL *conn;
MYSQL_RES *result;
MYSQL_ROW row;
char query[100];
conn = mysql_init(NULL);
mysql_real_connect(conn, HOST, USER, PASSWORD, DATABASE, 0, NULL, 0);
sprintf(query, "SELECT * FROM student_info WHERE id=%d", id);
mysql_query(conn, query);
result = mysql_store_result(conn);
if (mysql_num_rows(result) == 0)
{
printf("未找到该学生的信息!\n");
}
else
{
row = mysql_fetch_row(result);
printf("编号:%s\n", row[0]);
printf("姓名:%s\n", row[1]);
printf("年龄:%s\n", row[2]);
printf("性别:%s\n", row[3]);
printf("专业:%s\n", row[4]);
printf("年级:%s\n", row[5]);
}
mysql_free_result(result);
mysql_close(conn);
}
void update_student_info(int id)
{
MYSQL *conn;
char query[100];
char name[20], age[5], gender[5], major[20], grade[5];
printf("请输入新的个人信息:\n");
printf("姓名:");
scanf("%s", name);
printf("年龄:");
scanf("%s", age);
printf("性别:");
scanf("%s", gender);
printf("专业:");
scanf("%s", major);
printf("年级:");
scanf("%s", grade);
conn = mysql_init(NULL);
mysql_real_connect(conn, HOST, USER, PASSWORD, DATABASE, 0, NULL, 0);
sprintf(query, "UPDATE student_info SET name='%s', age='%s', gender='%s', major='%s', grade='%s' WHERE id=%d",
name, age, gender, major, grade, id);
mysql_query(conn, query);
printf("个人信息已更新!\n");
mysql_close(conn);
}
void show_internship_info(int id)
{
MYSQL *conn;
MYSQL_RES *result;
MYSQL_ROW row;
char query[100];
conn = mysql_init(NULL);
mysql_real_connect(conn, HOST, USER, PASSWORD, DATABASE, 0, NULL, 0);
sprintf(query, "SELECT * FROM internship_info WHERE student_id=%d", id);
mysql_query(conn, query);
result = mysql_store_result(conn);
if (mysql_num_rows(result) == 0)
{
printf("未找到该学生的实习信息!\n");
}
else
{
while ((row = mysql_fetch_row(result)))
{
printf("学生:%s\n", row[4]);
printf("实习名称:%s\n", row[1]);
printf("地点:%s\n", row[2]);
printf("岗位:%s\n", row[3]);
}
}
mysql_free_result(result);
mysql_close(conn);
}
```
该程序首先从用户输入中获取学生编号和操作选择,然后根据不同的选择调用不同的函数。`query_student_info`函数查询数据库中的学生信息,`update_student_info`函数修改学生信息,`show_internship_info`函数查询数据库中的实习信息。每个函数都使用MySQL C API来连接数据库、执行SQL查询和关闭连接。
阅读全文