一个C语言实现的成绩查询系统

D1:

1.系统组成:

1.1一个初始登录界面,包含三个组件

1.登入
2.注册
3.退出

1.2一个账号系统登录界面,包括账号和密码,登录账号以后进入第三个界面

1.3学生系统

  学生系统包括:
    1.修改密码
    2.考试
        考试界面包括:
        1.习题页面以及习题判断页面
        2.完成答题以后的分数页面
        3.完成答题以后退出
    3.成绩查询
        成绩查询界面包括:
        1.考试时间
        2.考试成绩
        3.页面切换功能
    4.选择输入框
     退出到系统上一级

1.4管理员系统

  管理员系统包括
     1.修改密码
     2.用户查询
        用户查询系统包括
        1.全部查询
        2.条件查询
        3.退出系统
     3.成绩查询
          成绩查询包括
        1.考试时间
        2.考试成绩
        3.页面切换功能
     4.选择输入框
      退出到系统上一级

工程设计包括:

1.如何实现一个简单的gui界面
2.如何实现一个文件/系统的分段查询功能
3.如何打包成为一个exe文件
4.从哪个功能开始实现

模块化设计

1.习题模块设计

`//
// Created by Galaxy on 2026/1/5.
//

include"Main.h"

int kaoshixiti_1(int currentScore){
char userChoice;
// 输出考试系统信息
printf("考试系统\n\n");
printf("欢迎haha角色:学生\n");
printf("考试类型:C语言考试\n\n");
printf("日期:2024年12月2日\n\n");

// 输出题目信息
printf("第1题,分数20\n");
printf("题目:在16位系统中,C语言中,错误的int类型的常数的是()\n\n");

// 输出选项
printf("A)32768\n");
printf("B)0\n");
printf("C)037\n");
printf("D)0xAF\n\n");

// 获取用户选择
printf("请选择 ");
scanf(" %c", &userChoice);
// 检查答案(正确答案是a)
if (userChoice == 'a') {
    currentScore += 20;
} else {
    currentScore += 0;
}
return currentScore;

}

int kaoshixiti_2(int currentScore){
char userChoice;
// 输出考试系统信息
// 输出考试系统信息
printf("考试系统\n\n");
printf("欢迎haha 角色:学生 日期:2024年12月2日\n");
printf("考试类型:C语言考试\n\n");

// 输出题目信息
printf("第2题,分数20\n");
printf("题目:C语言程序的模块化是通过以下哪个选项实现的()\n\n");

// 输出选项
printf("A)变量\n");
printf("B)语句\n");
printf("C)函数\n");
printf("D)程序行\n\n");

// 获取用户选择
printf("请选择 ");
scanf(" %c", &userChoice);
// 检查答案(正确答案是c)
if (userChoice == 'c') {
    currentScore += 20;
} else {
    currentScore += 0;
}
return currentScore;

}

int kaoshixiti_3(int currentScore){
// 输出考试系统信息
char userChoice;
printf("考试系统\n\n");
printf("欢迎haha角色:学生\n");
printf("考试类型:C语言考试\n\n");
printf("日期:2024年12月2日\n\n");

// 输出题目信息
printf("第3题,分数20\n");
printf("题目:以下选项中叙述正确的是()\n\n");

// 输出选项
printf("A)函数体必须由 [ 开始 ]\n");
printf("B)C 程序必须由 main 语句开始 ▲\n");
printf("C)C 程序中的注释可以嵌套\n");
printf("D)C 程序中的注释必须在一行完成\n\n");

// 输出提示
printf("请选择");
// 检查答案(正确答案是a)
scanf(" %c", &userChoice);
if (userChoice == 'a') {
    currentScore += 20;
} else {
    currentScore += 0;
}
return currentScore;

}
int kaoshixiti_4(int currentScore){
char userChoice;
printf("考试系统\n\n");
printf("欢迎haha 角色:学生\n");
printf("考试类型:C语言考试\n\n");
printf("日期:2024年12月2日\n\n");

// 输出题目信息
printf("第4题,分数20\n");
printf("题目:C语言中整数-8在内存中存储形式是()\n\n");

// 输出选项(注意保持选项中的空格格式)
printf("A) 1111 1111 1111 1000\n");
printf("B) 1000 0000 0000 1000\n");
printf("C) 0000 0000 0000 1000\n");
printf("D) 1111 1111 1111 0111\n\n");

// 输出提示
printf("请选择");
scanf(" %c", &userChoice);
// 检查答案(正确答案是B)
if (userChoice == 'B') {
    currentScore += 20;
} else {
    currentScore += 0;
}
return currentScore;

}

int kaoshixiti_5(int currentScore){
char userChoice;
// 显示题目
printf("\n考试系统 - C语言考试\n");
printf("====================\n");
printf("题目:以下对C语言的描述中,正确的是()\n\n");
printf("A) C语言源程序中可以有重名的函数\n");
printf("B) 一个C项目可以有一个或多个.c文件构成\n");
printf("C) 最小的C语言源程序中没有任何内容\n");
printf("D) 一行只能写一条语句\n\n");

// 获取用户选择
printf("请选择 ");
scanf(" %c", &userChoice);
// 检查答案(正确答案是B)
if (userChoice == 'B') {
    currentScore += 20;
} else {
    currentScore += 0;
}
return currentScore;

}

int kaoshichengji()
{
int current_score = 0;
current_score = kaoshixiti_1(current_score);
current_score = kaoshixiti_2(current_score);
current_score = kaoshixiti_3(current_score);
current_score = kaoshixiti_4(current_score);
current_score = kaoshixiti_5(current_score);

printf("最终得分: %d\n", current_score);
return current_score;

}

`

2.数据对象设计

1.四张表格:
表格1-学生成绩查询表
表格2- 系统管理员查询信息表
表格3,系统管理员条件查询表
表格4-系统管理员查询学生成绩表

3.数据读写模块设计

4.exe封装模块设计

实际问题解决
1.多文件开发问题
解决方案:利用C语言设置.h文件以及.c文件并将.c文件加入Cmake文件来实现
2.项目顺序问题:
解决方案:从依赖度低的部分开始,即满足拓扑排序准则
项目顺序:首先实现那两个习题
3.考试习题的输入和输出是什么?是分数 0/20
4.接受传参问题
问题描述:函数没有接受返回值的参数,导致current_score的值一直是0.
5.如何保存全局变量:使用一个额外的.h文件进行保存
6.如何一一对应sql对象与结构体对象//该问题似乎无法解决(无法配置mysql环境),修改为配置文件环境
clion使用侧边栏链接到数据库以后如何使用、、最终决定放弃该方案并采用文件系统进行操作

7.文件系统读写
1.学习如何读写文件
1.1 文件流, 缓冲区 ,打开及关闭文件
单行文件读取
文件读取
多行文件读取
多行文件读取
按照字节读取
按照字节读取所有内容

1.2写入文件
文件写入

2.文件标准化输入输出
这里有一个很重要的问题,如何标准化读出流程呢?fscanf()

3.写数据库/文件问题
1.成绩写文件问题

4.数据库问题
1.数据库时间戳

posted @ 2026-01-07 22:03  舟_舟_舟  阅读(5)  评论(0)    收藏  举报