C语言成绩查询系统的设计与实现
在当前的教育环境中,成绩管理是学校日常管理的重要组成部分,传统的成绩管理方式主要依赖于人工操作,这种方式不仅效率低下,而且容易出错,随着计算机技术的发展,越来越多的学校开始采用计算机进行成绩管理,本文将介绍一种基于C语言的成绩查询系统,该系统可以有效地提高成绩管理的效率和准确性。
系统设计
本系统主要包括以下几个模块:用户登录模块、成绩查询模块、成绩修改模块和数据管理模块。
1、用户登录模块:该模块主要用于验证用户的合法性,用户需要输入用户名和密码才能进入系统,如果用户名和密码正确,用户将被允许进入系统;否则,用户将被拒绝访问。
2、成绩查询模块:该模块主要用于查询学生的成绩,用户可以通过输入学生的学号或姓名来查询学生的成绩,系统将返回学生的所有课程的成绩。
3、成绩修改模块:该模块主要用于修改学生的成绩,用户可以通过输入学生的学号或姓名来查询学生的成绩,然后对成绩进行修改,修改后的成绩将被保存到数据库中。
4、数据管理模块:该模块主要用于管理系统中的数据,包括数据的添加、删除、修改和查询等操作。
系统实现
本系统采用C语言编写,使用MySQL数据库存储数据,以下是部分关键代码的实现。
1、用户登录模块的实现:
#include <stdio.h> #include <string.h> #include "mysql.h" void login() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char user[20]; char passwd[20]; printf("请输入用户名:"); scanf("%s", user); printf("请输入密码:"); scanf("%s", passwd); conn = mysql_init(NULL); mysql_real_connect(conn, "localhost", user, passwd, "test", 0, NULL, 0); if (mysql_query(conn, "select * from users")) { printf("Error: %s ", mysql_error(conn)); return; } res = mysql_use_result(conn); row = mysql_fetch_row(res); if (row == NULL) { printf("用户名或密码错误! "); } else { printf("登录成功! "); } mysql_free_result(res); mysql_close(conn); }
2、成绩查询模块的实现:
void queryScore() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char id[20]; char name[20]; printf("请输入学号或姓名:"); scanf("%s", id); conn = mysql_init(NULL); mysql_real_connect(conn, "localhost", "root", "root", "test", 0, NULL, 0); if (strlen(id) > 6) { // 假设学号为6位数字,姓名长度不限 sprintf(name, "select * from students where id='%s'", id); // 查询学号为id的学生信息 } else { sprintf(name, "select * from students where name='%s'", id); // 查询姓名为id的学生信息 } if (mysql_query(conn, name)) { // 执行SQL语句,查询学生信息 printf("Error: %s ", mysql_error(conn)); // 如果出错,输出错误信息并返回 return; } else { // 如果成功,获取查询结果集并输出学生信息 res = mysql_use_result(conn); // 使用结果集函数获取结果集指针res,指向查询结果的第一行数据之前的位置(即结果集头) while ((row = mysql_fetch_row(res)) != NULL) { // 循环遍历结果集,每次取出一行数据,赋值给row指针,直到所有数据都取出为止(即结果集尾)
发表评论