当前位置: 首页 > news >正文

C语言学生管理系统1.0

一、系统说明1、制作一个学生信息管理系统。2、学生信息包括班级、学号、姓名、(C语言)成绩等。3、实训信息增加、删除、查找、修改、显示、退出等功能。4、系统使用方法便捷、简单、功能容易实现。二、流程图三、实现效果#程序可复制直接使用四、头文件StudentManagement.h#define _CRT_SECURE_NO_WARNINGS #includestdio.h #includestdlib.h //定义学生信息结构体 typedef struct Student { char class[20]; char number[20]; char name[20]; char score[20]; }student; //定义学生信息表结构体 typedef struct StuInfoList { student info[1000];//结构体数组用于存放1000个学生的信息 int n;//当前已有n个学生信息 }list; //定义系统功能的枚举变量 enum Option { Exit,//0 Add,//1 Show,//2 Search,//3 Modify,//4 Delete//5 }; //函数声明 void Initial(list* p); void ADD(list* p); void SHOW(list* p); void SEARCH(list* p); void DELETE(list* p); void MODIFY(list* p);五、源文件1、主程序test.c#includeStudentManagement.h //菜单函数 void menu() { printf(*************************\n); printf(**********0. 退出********\n); printf(**********1. 录入********\n); printf(**********2. 显示********\n); printf(**********3. 查找********\n); printf(**********4. 修改********\n); printf(**********5. 删除********\n); } //主函数 int main() { int input 0; list stulist;//创建学生信息表 Initial(stulist);//初始化信息表 do { menu(); printf(请选择功能); scanf(%d, input); switch (input) { case Add: printf(录入\n); ADD(stulist); break; case Show: printf(显示\n); SHOW(stulist); break; case Search: printf(查找\n); SEARCH(stulist); break; case Modify: printf(修改\n); MODIFY(stulist); break; case Delete: printf(删除\n); DELETE(stulist); break; case Exit: printf(退出\n); system(cls);//清空 exit(0);//程序正常退出 break; default: printf(输入错误请重新选择\n); break; } system(pause); system(cls); }while (input); return 0; }2、函数StudentManagement.c#includeStudentManagement.h //学生信息表初始化函数 void Initial(list* p) { memset(p-info, 0, sizeof(p-info));//memset设置内存将info[1000]清0 p-n 0;//设置信息表最初只有0个元素 } //1.录入函数 void ADD(list* p) { if (p-n 1000) { printf(信息表已满无法再录入\n); } else { printf(请输入学生的班级); scanf(%s, p-info[p-n].class); printf(请输入学生的学号); scanf(%s, p-info[p-n].number); printf(请输入学生的姓名); scanf(%s, p-info[p-n].name); printf(请输入学生的成绩); scanf(%s, p-info[p-n].score); p-n; printf(录入信息成功\n); } } //2.显示函数 void SHOW(list* p) { if (p-n 0) { printf(信息表为空表\n); } else { int i 0; printf(--------------------------------------------------\n); printf(%-20s %-20s %-20s %-20s\n, 班级, 学号, 姓名, 成绩); for (i 0; i p-n; i) { printf(%-20s %-20s %-20s %-20s\n, p-info[i].class, p-info[i].number, p-info[i].name, p-info[i].score); } printf(--------------------------------------------------\n); } } //3.查找函数查找指定姓名的学生信息 void SEARCH(list* p) { char name[20]; printf(请输入要查找的学生姓名); scanf(%s, name); //int i FindName(p, name); //if (i -1)//没找到 //{ // printf(要查找的学生不在表中\n); //} int i 0; for (i 0; i p-n; i) { if (strcmp(p-info[i].name, name) 0)//字符串比较 { break;//若找到则跳出if } } if (i p-n)//没找到 { printf(要查找的学生不在表中\n); } else { printf(%-20s %-20s %-20s %-20s\n, 班级, 学号, 姓名, 成绩); printf(%-20s %-20s %-20s %-20s\n, p-info[i].class, p-info[i].number, p-info[i].name, p-info[i].score); } } //4.修改函数修改指定姓名的学生信息 void MODIFY(list* p) { //输入要修改学生的名字 char name[20]; printf(请输入要修改的学生姓名); scanf(%s, name); //先查找 int i 0; for (i 0; i p-n; i) { if (strcmp(p-info[i].name, name) 0)//字符串比较 { break;//若找到则跳出if } } if (i p-n)//没找到 { printf(要修改的学生不在表中\n); } else { printf(请输入学生的班级); scanf(%s, p-info[i].class); printf(请输入学生的学号); scanf(%s, p-info[i].number); printf(请输入学生的姓名); scanf(%s, p-info[i].name); printf(请输入学生的成绩); scanf(%s, p-info[i].score); printf(修改%s的信息完成\n,name); } } //5.删除函数删除指定姓名的学生信息 void DELETE(list* p) { char name[20]; printf(请输入要删除的学生姓名); scanf(%s, name); //查找要删除的学生姓名在信息表中的位置把要删除的姓名和表中的姓名一个个对比 int i 0; for (i 0; i p-n; i) { if (strcmp(p-info[i].name, name) 0)//字符串比较 { break;//若找到则跳出if } } if (i p-n)//没找到 { printf(要删除的学生不在表中\n); } else { //删除数据 //找到的学生信息下标为i,即info[i] //要删除的就是info[i],用info[i1]覆盖info[i] int j 0; for (j i; j p-n-1; j) { p-info[j] p-info[j 1]; } p-n--; printf(删除%s的信息成功\n,name); } } //根据姓名查找--为了实现查找、修改、删除不需要用户看到不用在头文件中申明 int FindName(list* p, char name[20]) { int i 0; for (i 0; i p-n; i) { if (strcmp(p-info[i].name, name) 0)//字符串比较 { return i;//若找到返回下标 } } //没找到 return -1; }
http://www.zskr.cn/news/1346571.html

相关文章:

  • 【Sora 2提示词工程权威指南】:20年AIGC实战者亲授7大高保真视频生成黄金法则
  • 应对异构AI计算资源碎片化挑战:HAMi平台高可用部署架构设计
  • 3个步骤掌握Python AUTOSAR ARXML生成:告别复杂商业工具
  • 三星固件下载器终极指南:跨平台免费工具5分钟快速上手
  • Subfinder 字幕下载工具:3分钟快速掌握智能字幕匹配技巧
  • Appium环境搭建:APP自动化落地的底层能力分水岭
  • 技术选型指南:Pentaho Data Integration 11.x企业级数据集成架构深度解析
  • Selenium动作链原理与Go语言高鲁棒性实践
  • Appium环境搭建四层技术栈深度解析与避坑指南
  • 为OpenClaw智能体工作流配置Taotoken聚合模型
  • Office自定义界面编辑器:打造你的专属Office工作台
  • Unity组件化通信三层次:事件、接口与消息总线实战
  • Unity 2D物理关节底层原理与实战避坑指南
  • Office Custom UI Editor终极指南:免费打造你的专属Office工作界面
  • 2026发票查验接口服务商综合实力排行榜:技术代差、场景渗透率与决策胜负手 - 速递信息
  • 如何快速使用PDF Arranger:免费PDF页面管理终极指南
  • 2026年IATA资质代办指南:广州米航如何帮企业破解申请难题 - 速递信息
  • Postman高阶实战:从手工点点点到可维护接口测试资产
  • ElegantBook终极指南:5分钟学会专业书籍排版,告别格式烦恼
  • Unity Dropdown字体高度适配全解:从结构原理到三套实操方案
  • 公司业务上云终极测评:为何制造业选择深信服托管云?
  • Blender导出Unity法线修复指南:解决穿模、闪烁与面消失
  • 前端工程化深度实战:从Webpack5到Vite5的构建工具演进与选型决策
  • Kali与Windows靶机网络连通避坑指南:仅主机模式实操配置
  • Godot Layer和Mask位掩码配置原理与工程实践
  • Godot插件下载失败?5分钟定位plugin.cfg配置错误
  • Godot Asset Library故障诊断全指南:从下载失败到运行崩溃
  • 抖音资源下载新体验:douyin-downloader一站式解决方案
  • Steam Deck多系统引导终极指南:3步完成图形化配置
  • 首次购买Token Plan套餐,在真实项目中的成本控制效果初探