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

河南电力建设工程公司网站全球跨境电商平台排名

河南电力建设工程公司网站,全球跨境电商平台排名,wordpress做产品页教程视频,溧阳人才网 网站开发嗨~~欢迎来到Tubishu的博客#x1f338;如果你也是一名在校大学生#xff0c;正在寻找各种编程资源#xff0c;那么你就来对地方啦#x1f31f; Tubishu是一名计算机本科生#xff0c;会不定期整理和分享学习中的优质资源#xff0c;希望能为你的编程之路添砖加瓦⭐… 嗨~~欢迎来到Tubishu的博客如果你也是一名在校大学生正在寻找各种编程资源那么你就来对地方啦 Tubishu是一名计算机本科生会不定期整理和分享学习中的优质资源希望能为你的编程之路添砖加瓦⭐ 当然如果你也好的资源推荐欢迎在评论区分享让我们共同打造一个丰富的编程资源库 本文专栏 ➡️ 数据结构 学生管理系统 本实验是基于C结构体链表实现学生信息管理包括添加、修改、删除、查询、按学号输出等基本操作 实验目的 理解并掌握链表、栈、队列等基本数据结构的特点和应用场景。通过实际编程掌握链表在动态数据结构管理中的优势。 设计并实现一个功能完善的学生信息管理系统能够进行添加、删除、修改、查询等基本操作。 实验内容: 本次实验要求设计并实现一个学生信息管理系统具体需求如下 增加学生信息允许用户输入学生的基本信息学号、姓名并将其添加到系统中。 删除学生信息根据学号删除指定的学生信息。 修改学生信息根据学号修改指定学生的信息。 查询学生信息根据学号查询并显示学生的信息。 统计学生人数统计系统中学生人数。 显示所有学生信息列出系统中所有学生的信息。 实验产出 1.核心代码 在这里插入代码片2.运行结果 操作 实验产出 1.核心代码 #include stdio.h #include string.h #include stdlib.h #include stdbool.h#define NO_LENGTH 20 #define NAME_LENGTH 11/* 定义学生结构体的数据结构 */ typedef struct Student{char studentNo[NO_LENGTH];char studentName[NAME_LENGTH]; } st;/* 定义每条记录或节点的数据结构 */ typedef struct node {struct Student data; // 数据域struct node *next; // 指针域 } Node, *Link; // Node为node类型的别名, Link为node类型的指针别名void inputStudent(Link l){printf(请输入学生学号:);scanf(%19s, l-data.studentNo); // 防止缓冲区溢出printf(请输入学生的姓名:);scanf(%10s, l-data.studentName); // 防止缓冲区溢出// 每个新创建的节点的next域都初始化为NULLl-next NULL; }void inputStudentNo(char s[], char no[]){printf(请输入要%s的学生学号:, s);scanf(%19s, no); // 防止缓冲区溢出 }/* 显示学生记录 */ bool displayNode(Link head){Link p head-next;while (p ! NULL) {printf(学号%s 姓名%s\n, p-data.studentNo, p-data.studentName);p p-next;}if (head-next NULL) return false; return true; }/* 增加学生记录 */ bool addNode(Link head){Link p, q;Link node (Link)malloc(sizeof(Node));if (node NULL) {printf(内存分配失败。\n);return false;}inputStudent(node);q head;p head-next;if (head-next NULL) {// 链表为空时head-next node;} else {// 循环访问链表中的所有节点while (p ! NULL) {if (strcmp(node-data.studentNo, p-data.studentNo) 0) {// 如果node节点的学号比p节点的学号小则插在p的前面完成插入后提前退出子程序q-next node;node-next p;return true;} else {// 如果node节点的学号比p节点的学号大继续向后移动指针依然保持q p一前一后q p;p p-next;}}// 如果没能提前退出循环则说明之前没有插入那么当前node节点的学号是最大值此时插在链表的最后面q-next node;}return true; }/* 删除学生记录 */ bool deleteNode(Link head){char no[NO_LENGTH];inputStudentNo(删除, no);Link p head, q head;while (p-next ! NULL strcmp(p-next-data.studentNo, no) ! 0) {q p;p p-next;}if (p-next ! NULL strcmp(p-next-data.studentNo, no) 0) {Link temp p-next;p-next p-next-next;free(temp);return true;}return false; }/* 查询学生记录 */ bool queryNode(Link head){char no[NO_LENGTH];inputStudentNo(查询, no);Link p head-next;while (p ! NULL) {if (strcmp(p-data.studentNo, no) 0) {printf(学号%s 姓名%s\n, p-data.studentNo, p-data.studentName);return true;}p p-next;}return false; }/* 修改学生记录 */ bool modifyNode(Link head){char no[NO_LENGTH];inputStudentNo(修改, no);Link p head-next;while (p ! NULL) {if (strcmp(p-data.studentNo, no) 0) {printf(请输入新的姓名);scanf(%10s, p-data.studentName); // 防止缓冲区溢出return true;}p p-next;}return false; }/* 统计学生人数 */ int countNode(Link head){Link p head-next;int count 0;while (p ! NULL) {count;p p-next;}return count; }/* 清除链表 */ void clearLink(Link head){Link p, q;p head-next;while (p ! NULL) {q p-next;free(p);p q;}free(head); }// 显示菜单 void myMenu() {printf(\n\n\n); printf(\t* --菜单-- *\n);printf(\t**********************************\n);printf(\t* 1---------增加学生记录 *\n);printf(\t* 2---------删除学生记录 *\n);printf(\t* 3---------查询学生记录 *\n);printf(\t* 4---------修改学生记录 *\n);printf(\t* 5---------统计学生人数 *\n);printf(\t* 6---------显示学生记录 *\n);printf(\t* 7---------退出系统 *\n);printf(\t**********************************\n);}int Stu() {int select;int count;int num;Link head; // 定义链表// 建立head头结点在这个程序中head指向头结点头结点data部分没有内容其后续节点才有真正的数据head (Link)malloc(sizeof(Node));if (head NULL) {printf(内存分配失败。\n);return 1;}head-next NULL;while (1) {// myMenu();printf(请输入你的选择(1-7):); // 显示提示信息scanf(%d, select);switch (select) {case 1:// 增加学生记录printf(请输入需要添加的学生个数);scanf(%d, num);int n num;while(num) {addNode(head);num--;}if (!num)printf(成功插入%d个学生记录。\n\n, n);elseprintf(插入学生记录失败。\n\n);break;case 2:// 删除学生记录if (deleteNode(head))printf(成功删除一个学生记录。\n\n);elseprintf(没有找到要删除的学生节点。\n\n);break;case 3:// 查询学生记录if (queryNode(head))printf(成功找到学生记录。\n\n);elseprintf(没有找到要查询的学生节点。\n\n);break;case 4:// 修改学生记录if (modifyNode(head))printf(成功修改一个学生记录。\n\n);elseprintf(没有找到要修改的学生节点。\n\n);break;case 5:// 统计学生人数count countNode(head);printf(学生人数为%d\n\n, count);break;case 6:// 显示学生记录// displayNode(head);if(displayNode(head))printf(\n);elseprintf(链表为空没有学生记录。\n\n);break;case 7:// 退出前清除链表中的所有结点clearLink(head);printf(\t成功清除系统并退出);return 0;default:printf(输入不正确应该输入1-7之间的数。\n\n);break;}}return 0; }int main() { myMenu(); Stu(); } 2.运行结果 3.调试 显示添加0个记录的空系统、删除系统中不存在的学生记录、查询系统中不存在的学生记录、修改系统中不存在的学生记录等错误调试结果等待你亲自探索哦 如果你觉得这篇文章对你有所启发请为博客点赞、收藏⭐️、评论或分享你的支持是Tubishu不断前行的源泉✨衷心感谢你的鼓励与陪伴 若你有任何疑问、见解或补充欢迎随时留言让我们在交流中共同成长❤️ 愿各位大佬们在技术的道路上代码顺畅无阻思路清晰如光不断突破自我向着更高的目标迈进实现自己的梦想 再次感谢你的阅读
http://www.pierceye.com/news/409827/

相关文章:

  • 网站前台用什么开发襄阳谷城网站建设
  • 网站icp备案号怎么查北京 网站建设 SEO
  • 西安做网站哪里好wordpress用户前端化
  • 宁波网站优化如何免费加速器
  • 一佰互联自助建站网站公司建设网站价格
  • 外贸网站模板免费下载wordpress英文显示改中文字体
  • 长春电商网站建设公司电话微博内容放到wordpress
  • 网站销售怎么样的商务网站模块设计时前台基础设施建设
  • 进空间的网站吗帝国建站教程
  • 做网站 业务流程图如何选择丹阳网站建设
  • 金属东莞网站建设技术支持开放平台产品经理
  • 全网营销型的网站苏州网站设计多少钱
  • 河南教育平台网站建设北京市工程建设信息交易网站
  • 正规品牌网站设计推荐如何上传自己的做的网站
  • 企业网站优化甲薇g71679做同等效果下拉词制作手机网站哪家好
  • 物流运输做网站的素材多用户商城系统价格
  • 营销型网站建设流程电脑怎么建网站
  • 郑州市汉狮做网站360免费建站
  • 安阳哪里有学做网站的学校做个公众号需要多少钱
  • 建站seo是什么成都做营销型网站
  • 网站建设哪个wordpress分类title
  • 建手机网站多少钱挂机软件定制
  • 网站建设 提案 框架河南一般建一个网站需要多少钱
  • 福建省建设人才市场网站深圳营销型网站建设优化
  • 晋城购物网站开发设计宣传网站有哪些
  • 在哪人网站要以接it项目做企业为什么要分析环境
  • 达令的网站建设wordpress上传视频
  • 织梦免费网站模块下载地址南充楼盘网
  • 深圳极速网站建设服务器做网站 然后百度推广
  • 西充县住房和城乡建设局网站深圳建设局网站打不开