C语言设计一个简单的学籍管理系统将学号 姓名 性别 宿舍号码 电话号码 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分顺序表存储实现录入功能

时间: 2024-02-15 20:06:12 浏览: 24
下面是一个简单的学籍管理系统的示例代码,实现了学生信息和课程信息的录入功能,使用了顺序表存储: ```c #include <stdio.h> #include <string.h> #define MAX_STUDENT_NUM 100 // 学生最大数量 #define MAX_COURSE_NUM 50 // 课程最大数量 #define MAX_NAME_LEN 20 // 姓名最大长度 #define MAX_ID_LEN 15 // 学号最大长度 #define MAX_COURSE_NAME_LEN 30 // 课程名称最大长度 // 学生信息结构体 typedef struct { char student_id[MAX_ID_LEN]; // 学号 char name[MAX_NAME_LEN]; // 姓名 char gender; // 性别 int dorm_num; // 宿舍号码 long phone_num; // 电话号码 } Student; // 课程信息结构体 typedef struct { char course_id[MAX_ID_LEN]; // 课程编号 char course_name[MAX_COURSE_NAME_LEN]; // 课程名称 int credit; // 学分 } Course; // 成绩信息结构体 typedef struct { char course_id[MAX_ID_LEN]; // 课程编号 int usual_score; // 平时成绩 int experiment_score; // 实验成绩 int final_score; // 卷面成绩 int comprehensive_score; // 综合成绩 int obtained_credit; // 实得学分 } Score; // 学籍管理系统结构体 typedef struct { Student students[MAX_STUDENT_NUM]; // 学生信息数组 Course courses[MAX_COURSE_NUM]; // 课程信息数组 int student_num; // 学生数量 int course_num; // 课程数量 } StudentManagementSystem; // 初始化学籍管理系统 void init_system(StudentManagementSystem *sys) { sys->student_num = 0; sys->course_num = 0; } // 录入学生信息 void input_student_info(StudentManagementSystem *sys) { int n; // 需要录入的学生数量 printf("请输入需要录入的学生数量:"); scanf("%d", &n); getchar(); // 读取换行符 for (int i = 0; i < n; i++) { printf("请输入第%d个学生的信息(学号、姓名、性别、宿舍号码、电话号码,用空格隔开):\n", i+1); scanf("%s %s %c %d %ld", sys->students[i].student_id, sys->students[i].name, &sys->students[i].gender, &sys->students[i].dorm_num, &sys->students[i].phone_num); getchar(); // 读取换行符 sys->student_num++; // 学生数量加1 } printf("学生信息录入成功!\n"); } // 录入课程信息 void input_course_info(StudentManagementSystem *sys) { int n; // 需要录入的课程数量 printf("请输入需要录入的课程数量:"); scanf("%d", &n); getchar(); // 读取换行符 for (int i = 0; i < n; i++) { printf("请输入第%d个课程的信息(课程编号、课程名称、学分,用空格隔开):\n", i+1); scanf("%s %s %d", sys->courses[i].course_id, sys->courses[i].course_name, &sys->courses[i].credit); getchar(); // 读取换行符 sys->course_num++; // 课程数量加1 } printf("课程信息录入成功!\n"); } int main() { StudentManagementSystem sys; init_system(&sys); // 初始化学籍管理系统 input_student_info(&sys); // 录入学生信息 input_course_info(&sys); // 录入课程信息 return 0; } ``` 这里定义了一个名为`StudentManagementSystem`的结构体,用于存储学生信息和课程信息,以及学生数量和课程数量等信息。在`main`函数中,首先调用`init_system`函数初始化学籍管理系统,然后分别调用`input_student_info`和`input_course_info`函数录入学生信息和课程信息。在`input_student_info`和`input_course_info`函数中,通过读取用户输入来录入学生信息和课程信息,并将它们存储到`StudentManagementSystem`结构体中。需要注意的是,这里只实现了录入功能,其他功能需要根据实际情况进行添加和修改。

相关推荐

最新推荐

recommend-type

学生成绩管理系统(数据结构)实验报告.docx

期末实践周必备(数据结构)学生成绩管理系统,基于C语言完成的,百分百作者原创,资源保证!
recommend-type

C语言程序设计实现学生成绩记录簿

1)C语言课程设计的主要目的是培养学生综合运用C语言程序设计课程所学到的知识,编写C程序解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。 2)通过课程设计的训练,学生应该能够了解程序设计的基本...
recommend-type

C语言课程设计-电话簿管理系统

用C语言实现的简单的电话簿管理系统,其中包含完整的代码以及程序的流程框图
recommend-type

C语言实现班档案管理系统课程设计

主要为大家详细介绍了C语言实现班档案管理系统课程设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

C语言实现简单学生学籍管理系统

主要为大家详细介绍了C语言实现简单学生学籍管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解释minorization-maximization (MM) algorithm,并给出matlab代码编写的例子

Minorization-maximization (MM) algorithm是一种常用的优化算法,用于求解非凸问题或含有约束的优化问题。该算法的基本思想是通过构造一个凸下界函数来逼近原问题,然后通过求解凸下界函数的最优解来逼近原问题的最优解。具体步骤如下: 1. 初始化参数 $\theta_0$,设 $k=0$; 2. 构造一个凸下界函数 $Q(\theta|\theta_k)$,使其满足 $Q(\theta_k|\theta_k)=f(\theta_k)$; 3. 求解 $Q(\theta|\theta_k)$ 的最优值 $\theta_{k+1}=\arg\min_\theta Q(
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。