c语言写教学信息管理系统的代码

时间: 2023-10-14 14:23:49 浏览: 47
好的,您可以参考以下代码实现基于C语言的教学信息管理系统: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> //定义学生结构体 typedef struct{ char name[20]; int age; char gender[5]; int id; }Student; //定义教师结构体 typedef struct{ char name[20]; char gender[5]; int id; }Teacher; //定义课程结构体 typedef struct{ char name[20]; int num; float credit; Teacher teacher; }Course; //定义节点结构体 typedef struct node{ Student student; struct node *next; }Node; //添加学生信息节点的函数 void addStudent(Node *head){ Node *p = head; //先找到链表尾部 while(p->next != NULL){ p = p->next; } //新建节点并输入学生信息 Node *newNode = (Node *)malloc(sizeof(Node)); printf("请输入学生姓名:"); scanf("%s", newNode->student.name); printf("请输入学生年龄:"); scanf("%d", &newNode->student.age); printf("请输入学生性别:"); scanf("%s", newNode->student.gender); printf("请输入学生学号:"); scanf("%d", &newNode->student.id); newNode->next = NULL; //将新节点加入链表的最后一个节点 p->next = newNode; printf("添加成功!\n"); } //删除学生信息节点的函数 void deleteStudent(Node *head, int id){ Node *p = head; Node *temp; //找到要删除的节点 while(p->next != NULL && p->next->student.id != id){ p = p->next; } if(p->next == NULL){ printf("没有找到要删除的节点!\n"); return; } //删除节点 temp = p->next; p->next = temp->next; free(temp); printf("删除成功!\n"); } //查找学生信息节点的函数 void findStudent(Node *head, int id){ Node *p = head; //找到要查找的节点 while(p->next != NULL && p->next->student.id != id){ p = p->next; } if(p->next == NULL){ printf("没有找到要查找的节点!\n"); return; } //输出节点信息 printf("姓名:%s\n", p->next->student.name); printf("年龄:%d\n", p->next->student.age); printf("性别:%s\n", p->next->student.gender); printf("学号:%d\n", p->next->student.id); } //添加课程信息的函数 void addCourse(Course *courses, int *count){ int index = *count; //输入课程信息 printf("请输入课程名称:"); scanf("%s", courses[index].name); printf("请输入课程号:"); scanf("%d", &courses[index].num); printf("请输入课程学分:"); scanf("%f", &courses[index].credit); printf("请输入教师姓名:"); scanf("%s", courses[index].teacher.name); printf("请输入教师性别:"); scanf("%s", courses[index].teacher.gender); printf("请输入教师工号:"); scanf("%d", &courses[index].teacher.id); (*count)++; printf("添加成功!\n"); } //删除课程信息的函数 void deleteCourse(Course *courses, int *count, int num){ int i, j; int index = -1; //找到要删除的课程在数组中的位置 for(i = 0; i < *count; i++){ if(courses[i].num == num){ index = i; break; } } if(index == -1){ printf("没有找到要删除的课程!\n"); return; } //将后面的课程向前移动 for(j = index + 1; j < *count; j++){ courses[j - 1] = courses[j]; } (*count)--; printf("删除成功!\n"); } //修改课程信息的函数 void modifyCourse(Course *courses, int count, int num){ int i, choice; int index = -1; //找到要修改的课程在数组中的位置 for(i = 0; i < count; i++){ if(courses[i].num == num){ index = i; break; } } if(index == -1){ printf("没有找到要修改的课程!\n"); return; } //选择要修改的内容 printf("请选择要修改的内容:\n"); printf("1.课程名称\n2.课程学分\n3.教师姓名\n4.教师性别\n5.教师工号\n"); scanf("%d", &choice); switch(choice){ case 1: printf("请输入新的课程名称:"); scanf("%s", courses[index].name); break; case 2: printf("请输入新的课程学分:"); scanf("%f", &courses[index].credit); break; case 3: printf("请输入新的教师姓名:"); scanf("%s", courses[index].teacher.name); break; case 4: printf("请输入新的教师性别:"); scanf("%s", courses[index].teacher.gender); break; case 5: printf("请输入新的教师工号:"); scanf("%d", &courses[index].teacher.id); break; default: printf("选择无效!\n"); break; } printf("修改成功!\n"); } //输出所有学生信息的函数 void outputStudents(Node *head){ Node *p = head->next; while(p != NULL){ printf("姓名:%s\n", p->student.name); printf("年龄:%d\n", p->student.age); printf("性别:%s\n", p->student.gender); printf("学号:%d\n", p->student.id); printf("\n"); p = p->next; } } //输出所有课程信息的函数 void outputCourses(Course *courses, int count){ int i; for(i = 0; i < count; i++){ printf("课程名称:%s\n", courses[i].name); printf("课程号:%d\n", courses[i].num); printf("课程学分:%f\n", courses[i].credit); printf("教师姓名:%s\n", courses[i].teacher.name); printf("教师性别:%s\n", courses[i].teacher.gender); printf("教师工号:%d\n", courses[i].teacher.id); printf("\n"); } } //主函数 int main(){ int choice, id, num; int count = 0; Node *head = (Node *)malloc(sizeof(Node)); head->next = NULL; Course *courses = (Course *)malloc(10 * sizeof(Course)); while(1){ printf("请选择要进行的操作:\n"); printf("1.添加学生信息\n2.删除学生信息\n3.查找学生信息\n4.添加课程信息\n"); printf("5.删除课程信息\n6.修改课程信息\n7.输出所有学生信息\n8.输出所有课程信息\n9.退出\n"); scanf("%d", &choice); switch(choice){ case 1: addStudent(head); break; case 2: printf("请输入要删除的学生学号:"); scanf("%d", &id); deleteStudent(head, id); break; case 3: printf("请输入要查找的学生学号:"); scanf("%d", &id); findStudent(head, id); break; case 4: addCourse(courses, &count); break; case 5: printf("请输入要删除的课程号:"); scanf("%d", &num); deleteCourse(courses, &count, num); break; case 6: printf("请输入要修改的课程号:"); scanf("%d", &num); modifyCourse(courses, count, num); break; case 7: outputStudents(head); break; case 8: outputCourses(courses, count); break; case 9: exit(0); default: printf("选择无效!\n"); break; } } return 0; } ``` 希望以上代码能够帮助您实现教学信息管理系统!

相关推荐

帮我补全以下代码//主函数界面// viod zcd() { int n=o; char n; systen("cls");//清屏// printf("按任一键进入主菜单\n"); print("\n"); printf("\t\t皖江工学院欢迎您\n"); printf("\n\t\t----------欢迎使用简单成绩管理系统\n\t\t\t\n"); printf(" MENU *******************\n"); printf('\t1. 输入学生成绩信息 input the record\n"); printf("\t2. 显示学生成绩信息 print the record\n"); printf("\t3. 显示某门课程的最高分 print the highest score \n"); printf("\t4. 显示某门课程的最低分 print the lowest score\n"); printf("\t5. 显示某门课程的平均分 print the average score\n"); printf("\t6.显示某门课的成绩 print the score from high to lov\n"); printf("\t7. 按学号查找某个学生三门课程成绩 search record on mumber\n"); printf("\t8. 按姓名查找某个学生三门课程成绩 search record onname\n"); printf("\t9. 推出 quit\n") printf("**********************************\n"); printf("\t请输入你的选择 Enter your choice (1~9):"); fflvsh(stdio); n=getchar() do {svitch(n) { case '1':input();zcd();break; case '2':print();zcd();break; case '3':Max();zcd();break; case '4':Min();zcd():break; case '5':average();zcd();break; case '6':sort();zcd();break; case '7':search_num();zcd();break; case '8';search_name();zcd();break; case '9';exit(0); /如菜单返回值为9则程序结束/ defavlt:printf("错误命令“);getchar();zcd(): } }while(1); } int max=c_scorve[0];int i; for(i=1;I<Num:i++){ if(max<c_score[i])max #include <stdlib.h> #include <stdio.h> #include <string.h> #define NUM 2 int c_score [NUM],E_SCORE[NUM,m_score[NUM]; long xuehao[NUM]; char name[NUM]; int main() {void zcd();//申明zcd函数// system("pause"); return 0; } //输入学生学号,姓名,三门课成绩// void input() { int i; system("cls"); for(i=0;i<NUM;i==){ printf("\n请输入%d个学生的学号: ",i=1); fflush(stdin); scanf("1d',&xuehao[i]); fflush(stdin); printf("\n请输入%d个学生的姓名:",i=1); gets(name[i]); fflush(stdin); printf("\n请输入%d个学生的三门 课成绩:“,i+1); scanf("%d,%d'&c_score[i],&e_score[i],&m_score[i]); } } //输出学生信息函数// void print() { int i; printf(" 学号\t 姓名\t C语言\t 教学\n"); for(i=0;i<NUM;i++) printf (" d\t%s\t%d\t%d\t%d\n",xuehao[i],name[i],c_score[i],m_score[i]); system("pause"): } //求某门课程最高分函数,三门课选择其中一门即可 void MAX() { int

最新推荐

recommend-type

C语言实现简单航班管理系统

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

C语言实现电话簿管理系统

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

大一C语言课程设计图书信息管理系统.doc

大一C语言课程设计图书信息管理系统.doc
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

如何用python编写api接口

在Python中编写API接口可以使用多种框架,其中比较流行的有Flask和Django。这里以Flask框架为例,简单介绍如何编写API接口。 1. 安装Flask框架 使用pip命令安装Flask框架: ``` pip install flask ``` 2. 编写API接口 创建一个Python文件,例如app.py,编写以下代码: ```python from flask import Flask, jsonify app = Flask(__name__) @app.route('/api/hello', methods=['GET']) def hello():
recommend-type

JSBSim Reference Manual

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