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

网站建设教程搭建湖南岚鸿网站 意义

网站建设教程搭建湖南岚鸿,网站 意义,虚拟币网站建设,网站搭建中企动力第一这次我们运用链表的基础知识#xff0c;增删改查#xff0c;实现对学生系统进行管理#xff0c;采用的多文件编程模式#xff0c;接下来介绍一下什么叫做多文件编程。 程序一般分三类文件#xff1a; 头文件( .h )。放置各种声明#xff0c;用于被文件包含。#xff0… 这次我们运用链表的基础知识增删改查实现对学生系统进行管理采用的多文件编程模式接下来介绍一下什么叫做多文件编程。 程序一般分三类文件 头文件( .h )。放置各种声明用于被文件包含。头文件的存在是为了联系多个源文件是源文件之间的接口。模块文件.c。放置一些函数定义也称为功能模块。主程序文件.c。包含main()的文件程序入口调用模块文件实现的方法在这里呢要给大家强调一下在我们包含自己所写的头文件时用  包含的头文件为标准库路径下的 为工作路径下的搜索范围是整个磁盘 头文件的完整流程描述 #pragma once//避免头文件重复引用 进行头文件引用把需要运用的都添加进来 #include stdio.h #includestdlib.h #includestring.h 首先需要定义一个结构体变量 student其中包括学生的id姓名年龄专业。 typedef struct Student{int id;char name[50];int age;char major[50];struct Student*next;}Stu;头文件也需要满足对后续函数的声名定义功能 111  主函数的完整流程描述 菜单printMenu.c的完整流程描述 功能打印操作菜单到控制台提示用户进行选择。实现 使用printf函数打印菜单的各个部分包括欢迎语句、各个操作选项以及一个提示用户输入选择的语句。菜单中的每个选项对应一个数字用户可以通过输入这个数字来选择对应的操作。菜单选项 添加学生允许用户输入新学生的详细信息如ID、姓名、年龄和专业并将这些信息添加到系统中。删除学生允许用户通过指定学生的ID来删除该学生的信息。更新学生允许用户修改已存在学生的信息如姓名、年龄和专业等。搜索学生允许用户通过学生的ID来搜索并查看该学生的详细信息。退出退出程序在退出前程序应该释放所有动态分配的内存资源确保没有内存泄漏。用户引导 在打印完菜单后最后一行输入您的选择 用于提示用户输入他们的选择。这是一个重要的交互步骤它告诉用户该怎么做来选择一个操作。 #include NodeList.h void printMenu(){printf(\n##########学生管理系统#######\n);printf(\n请进行选择操作\n);printf(1.添加学生\n):printf(2.删除学生\n):printf(3.更新学生\n):printf(4.搜索学生\n);printf(5.退出程序\n);printf(\n##################\n);}  appendStudent.c的完整流程描述 createStudent 函数 功能动态分配内存以创建一个新的Student结构体实例并初始化其成员变量。参数int id: 学生的ID。 char* name: 学生的姓名。int age: 学生的年龄。char* major: 学生的专业。返回值返回一个指向新创建的Student实例的指针。如果内存分配失败则返回NULL。 实现细节 使用malloc函数分配足够的内存来存储一个Student结构体实例。检查malloc是否成功分配了内存。如果没有即返回NULL则打印错误消息并返回NULL。使用参数值初始化新创建的Student实例的各个字段。将next指针设置为NULL因为这个新节点目前不指向任何其他节点。返回新创建的Student实例的指针。 #include NodeList.h Stu*creatStudent(int id,char *name,int age,char*major){Stu*student(Stu*)malloc(sizeof(Stu));if(studentNULL{printf(分配空间失败\n);return 0}student-idid;strcpy(student-name,name);studnet-ageage;strcpy(student-major,major);student-nextNULL;return student; appendStudent 函数 功能将一个新的Student节点添加到学生链表的末尾。参数Student** head: 指向链表头节点指针的指针。 其他参数id, name, age, major与createStudent函数相同用于创建新的学生节点。返回值无。 实现细节 调用createStudent函数创建一个新的学生节点。如果新节点创建成功检查链表是否为空即头指针是否为NULL。如果链表为空直接将头指针指向新节点。 如果链表不为空遍历链表找到最后一个节点然后将其next指针指向新节点从而将新节点添加到链表末尾。 #include NodeList.h void appendStudent(Student**head,int id,char*name,int age,char*major){Stu*newstucreatStudent(id,name,age,major);if(newstuNULL){ newstu*head;}else{Stu*temp*head;while(temp-next!NULL){temptemp-next;}temp-nextnewstu;}} deleteStudent.c的完整流程描述 deleteStudent 函数 功能从链表中删除具有指定ID的学生节点。参数 Student** head指向链表头节点指针的指针。使用指针的指针是为了能够在函数内部修改头节点指针的值例如当头节点被删除时。int id要删除的学生的ID。返回值无。 实现细节 检查链表是否为空首先检查头指针是否指向NULL如果是表示链表为空打印一条消息并直接返回。删除头节点的情况 如果链表不为空检查头节点是否就是要删除的节点通过比较id字段。如果是将头指针指向下一个节点*head  fast-next;释放原头节点占用的内存并打印一条删除成功的消息。查找要删除的节点 如果要删除的节点不是头节点遍历链表寻找匹配的id。使用两个指针fast和slow进行遍历fast用于指向当前检查的节点而slow用于记录temp的前一个节点。遍历过程中如果找到了匹配的节点fast-id  id则退出循环准备进行删除操作如果遍历结束也没有找到匹配的节点则temp将为NULL。处理学号不存在的情况 如果遍历结束fast为NULL表示链表中没有找到具有指定ID的学生打印一条消息说明找不到该学生并返回。删除找到的节点 如果找到了要删除的节点将slow-next指向fast-next这样就从链表中移除了fast指向的节点。然后释放fast节点占用的内存并打印一条删除成功的消息。 #includeNodeList.h void deleteSudent(Stu**head,int id){if(*headNULL){printf(链表为空\n);return ;}else{Stu*fasthead,*slow;if((*head)-idid){*headfast-next;printf(删除成功\n);free(fast);}else{while(fast!NULLfast-id!id){slowfast;fastfast-next;}if(fastNULL){pritnf(没有找到要删除的学生\n);return;}slow-nextfast-next;free(fast);printf(删除成功\n); }updateStudent.c的完整流程描述 updateStudent 函数 功能更新链表中具有指定ID的学生节点的信息。参数 Student* head链表头节点的指针。int id要更新的学生的ID。char* newName学生的新姓名。int newAge学生的新年龄。char* newMajor学生的新专业。返回值无。 实现细节 初始化变量 使用一个临时指针temp来遍历链表从头节点开始。使用一个标志变量found来记录是否找到了具有指定ID的学生节点。遍历链表 在链表不为空的情况下遍历每个节点。对于每个节点检查其ID是否与要更新的学生ID相匹配。更新学生信息 如果找到了匹配的节点使用strcpy函数将新姓名和新专业复制到该节点的相应字段中并直接更新年龄字段。更新完成后打印一条确认消息并将found标志设置为1然后跳出循环。处理未找到的情况 如果遍历完整个链表后没有找到匹配的节点即found仍为0打印一条错误消息说明找不到具有指定ID的学生。 #include NodeList.h void updataStudent(Stu*head,int id,char*newName,int newAge,char*newMajor){Stu*temphead;int found0;if(headNULL)return ;while(temp!NULL){if(temp-idid){strcpy(temp-name,newName);temp-agenewAge;strcpy(temp-major,newMajor);printf(更新完成\n);found1;break;}printf(\n);} searchStudent.c的完整流程描述 searchStudent 函数 功能在链表中搜索具有指定ID的学生并打印该学生的详细信息。参数 Student* head链表头节点的指针。int id要搜索的学生的ID。返回值无。 实现细节 初始化变量 使用一个临时指针temp来遍历链表从头节点开始。使用一个标志变量found来记录是否找到了具有指定ID的学生节点。遍历链表 在链表不为空的情况下遍历每个节点。对于每个节点检查其ID是否与要搜索的学生ID相匹配。打印学生信息 如果找到了匹配的节点使用printf函数打印该学生的详细信息包括ID、姓名、年龄和专业。打印完成后将found标志设置为1并跳出循环。处理未找到的情况 如果遍历完整个链表后没有找到匹配的节点即found仍为0打印一条错误消息说明找不到具有指定ID的学生。 #include NodeList.h void searchStudent(Stu*head,int id){Stu*temphead;int found0;if(tempNULL)return;while(temp!NULLtemp-id!id){temptemp-next;}if(tempNULL){printf(没有找到\n);return }printf(找到了id为%d的学生姓名为%s\n,id,name);printf(找到了id为%d的学生年龄为%d\n,id,age);printf(找到了id为%d的学生专业为%s\n,id,major);}
http://www.zqtcl.cn/news/654780/

相关文章:

  • 网站图片处理方案动漫制作这个专业怎么样
  • 做写手哪个网站好黄页网站建设黄页网站建设
  • 多语言企业网站免费模板网站哪个好
  • 拟一份饰品网站建设合同襄樊门户网站建设
  • 你对网站第一印象受欢迎的广州做网站
  • 网站开发项目的需求分析浙江省城乡建设网站证件查询
  • 整站seo定制简单 大气 网站模版
  • 网站界面设计策划书怎么做云匠网订单多吗
  • html教程 pdf网站建设优化兰州
  • 招聘网站可以同时做两份简历吗外贸网站示例
  • 黑链 对网站的影响企业融资计划书范本
  • 自己的简历怎么制作网站学院网站建设成效
  • 周口seo 网站郑州建站网站的公司
  • 网站布局模板北京装修大概多少钱一平方
  • 德阳网站建设ghxhwl风景网站模板
  • 昌邑网站建设拓者设计吧现代效果图
  • 学校网站建设成功案例网站开发需要学习哪些内容
  • 怎么让公司建设网站seo于刷网站点击
  • 网站建设合同严瑾建设网站宣传
  • 哪个网站做餐饮推广最好深圳市信任网站
  • 网站模板 整站源码广州网站vi设计报价
  • 百度速页建站wordpress审核插件
  • 怎么给网站wordpress专业的vi设计公司
  • 百度关键词在线优化寻找郑州网站优化公司
  • 网站建设适合什么单位网络推广员工作内容
  • 漂亮的网站维护页面wordpress加个微信登录
  • 网站设计是什么意思创建地址怎么弄
  • nas上建设网站文章网站哪里建设好
  • 消防网站模板广告设计专业需要学什么
  • 建设银行网站首页wordpress 登录函数