学生管理系统(程序设计基础课程设计)

题目要求:

任务描述: 写⼀个命令⾏交互式C语⾔程序。该程序需要实现下述菜单功能:

1. 数据存储。 你需要将⼀系列的学⽣期末考试信息进⾏存储(学⽣⼈数不会超过100)。每个学⽣的信息包括:姓名(由 first name 和last name 两部分组成,例如Jingyu LI,first_name = "Jingyu" last_name = "LI") ;学号(12 位数字组成,开头4位为2022、2021、2020);C语⾔成绩(⼀个⼤于等于零的整数);重修信息(学号 2022………为否,其余为是);GPA等级(A+, A, B+, B, C+, C, D, F );班级排名(成绩相同需并列)。其 中,姓名,学号,成绩为输入数据,其余数据需要你计算。 同时,你需要添加⼀些维护数据库的功能 Add(name, id, score): 新增⼀个学⽣的信息; Delete(id): 根据学号删除某个学⽣的信息; Search(id):根据学号查找某个学⽣的信息。

2. 数据处理。 Sort_by_score(): ⽣成根据分数由⾼到低顺序排列学⽣信息的表格

3. 数据加密和解密 char* encrypt(int key): 加密学⽣成绩并返回 char* decrypt(int key, char *str): 解密学⽣成绩并返回 加密规则:把所有学⽣的成绩拼接成⼀个只包含数字的字符串,然后依据整数key对其进⾏加密。例如:数 字1被key=5加密之后变成6;数字5被key=5加密之后变成0。单个数字加密之后仍是单个数字。 解密规则与加密规则对称。

4. 数据分析 根据GPA对学⽣成绩进⾏考情分析:A+多少⼈,A多少⼈,以此类推。GPA等级参考SZTU评分等级。

5. ⽤户界⾯ 实现⼀个菜单,以供⽤户决定要使⽤哪个功能。

菜单参考:

Hello, pls input a series of student information!

(⽤户开始输入)

Okay, data upload finished. What do you what to do next? You can enter a number to tell me.

1 add

2 delete

3 search

4 sort by score

5 encrypt

6 decrypt

7 analysis

0 exit

(⽤户输入)

(输出计算结果)

Do you still need my service? You can enter a number to tell me.

1 add 2 delete 3 search 4 sort by score 5 encrypt 6 decrypt 7 analysis 0 exit

(⽤户输入) (输出计算结果)

代码:

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_STUDENTS 100
#define ID_LENGTH 12
#define NAME_LENGTH 50
#define GPA_LENGTH 3

typedef struct {
    char first_name[NAME_LENGTH];
    char last_name[NAME_LENGTH];
    char id[ID_LENGTH + 1];
    int score;
    char gpa[GPA_LENGTH];//GPA等级
    char retake_info[4];//重修信息
    int rank;//班级排名
} Student;

Student students[MAX_STUDENTS];//学生数组,用来存放每个学生的所有信息
int student_count = 0;//学生数量的全局变量


//计算学生GPA等级和重修信息的函数
void calculate_gpa_and_retake(Student* student) {
    if (student->score >= 90)
    {
        strcpy(
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值