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

中煤建设集团网站路由器做服务器做网站

中煤建设集团网站,路由器做服务器做网站,wordpress 侧边栏修改,如何管理建好的网站文章目录 1-5题题目例题8#xff08;难度★ ★ ★ ★ ☆#xff09; 答案例题8答案1解析 答案2解析 1-5题 C语言基础例题1-3题-指针篇 C语言基础例题4-5题-二维数组篇 C语言基础例题6-7题-结构体篇 题目 例题8#xff08;难度★ ★ ★ ★ ☆#xff09; 编写一个学生成… 文章目录 1-5题题目例题8难度★ ★ ★ ★ ☆ 答案例题8答案1解析 答案2解析 1-5题 C语言基础例题1-3题-指针篇 C语言基础例题4-5题-二维数组篇 C语言基础例题6-7题-结构体篇 题目 例题8难度★ ★ ★ ★ ☆ 编写一个学生成绩管理系统实现以下功能 添加学生信息从键盘输入学生的姓名和成绩将学生信息添加到系统中。删除学生信息从键盘输入要删除的学生姓名若学生存在则将其从系统中删除。查找学生信息从键盘输入要查询的学生姓名若学生存在则显示学生姓名和成绩否则提示查无此人。修改学生成绩从键盘输入要修改成绩的学生姓名和新的成绩若学生存在则将其成绩修改为新的成绩。显示所有学生信息显示系统中所有学生的姓名和成绩。退出程序结束学生成绩管理系统。 运行结果如下所示 答案 例题8 答案1 #include stdio.h #include stdlib.h #include string.h// 定义学生信息结构体 typedef struct {char name[20];int score; } Student;// 定义链表节点结构体 typedef struct Node {Student data;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-data.name);printf(请输入成绩);scanf(%d, (newNode-data.score));newNode-next NULL;p-next newNode;printf(添加成功\n); }// 根据学生姓名删除节点 void deleteStudent(Node *head) {char name[20];printf(请输入要删除的学生姓名);scanf(%s, name);Node *p head-next;Node *prev head;while (p ! NULL){if (strcmp(p-data.name, name) 0){ // 学生姓名匹配删除节点prev-next p-next;free(p);printf(删除成功\n);return;}prev p;p p-next;}printf(查无此人\n); }// 根据学生姓名查找学生信息 void findStudent(Node *head) {char name[20];printf(请输入要查询的学生姓名);scanf(%s, name);Node *p head-next;while (p ! NULL){if (strcmp(p-data.name, name) 0){ // 学生姓名匹配显示学生信息printf(姓名%s\t成绩%d\n, p-data.name, p-data.score);return;}p p-next;}printf(查无此人\n); }// 根据学生姓名修改学生成绩 void modifyScore(Node *head) {char name[20];int newScore;printf(请输入要修改成绩的学生姓名);scanf(%s, name);printf(请输入新的成绩);scanf(%d, newScore);Node *p head-next;while (p ! NULL){if (strcmp(p-data.name, name) 0){ // 学生姓名匹配修改成绩p-data.score newScore;printf(修改成功\n);return;}p p-next;}printf(查无此人\n); }// 显示所有学生信息 void displayStudents(Node *head) {Node *p head-next;while (p ! NULL){printf(姓名%s\t成绩%d\n, p-data.name, p-data.score);p p-next;} }int main() {Node *head (Node *)malloc(sizeof(Node));head-next NULL;int option;do{printf(【菜单】\n);printf(1. 添加学生信息\n);printf(2. 删除学生信息\n);printf(3. 查找学生信息\n);printf(4. 修改学生成绩\n);printf(5. 显示所有学生信息\n);printf(6. 退出程序\n);printf(\n请选择菜单选项);scanf(%d, option);switch (option){case 1:addStudent(head);break;case 2:deleteStudent(head);break;case 3:findStudent(head);break;case 4:modifyScore(head);break;case 5:displayStudents(head);break;case 6:printf(程序结束\n);break;default:printf(错误没有此选项\n);break;}} while (option ! 6);// 释放链表内存Node *p head;while (p ! NULL){Node *temp p-next;free(p);p temp;}return 0; }解析 struct _StudentItem定义了学生信息的结构体。它包含一个char数组name用于存储学生姓名一个int变量score用于存储成绩。 struct Node定义了链表节点的结构体。它包含了一个Student类型的数据成员data用于存储学生信息以及一个指向下一个节点的指针next。 addStudent在链表末尾添加新节点学生信息。该函数首先遍历链表找到最后一个节点然后创建一个新节点要求用户输入学生的姓名和成绩并将新节点添加到链表末尾。 deleteStudent根据学生姓名删除节点。该函数要求用户输入要删除的学生姓名然后从链表头开始遍历每个节点寻找匹配的学生姓名。如果找到匹配的节点则删除该节点并释放内存。如果没有找到匹配的节点输出查无此人。 findStudent根据学生姓名查找学生信息。该函数要求用户输入要查询的学生姓名然后从链表头开始遍历每个节点寻找匹配的学生姓名。如果找到匹配的节点则输出该学生的姓名和成绩。如果没有找到匹配的节点输出查无此人。 modifyScore根据学生姓名修改学生成绩。该函数要求用户输入要修改成绩的学生姓名和新的成绩然后从链表头开始遍历每个节点寻找匹配的学生姓名。如果找到匹配的节点则修改该节点的成绩为新的成绩。如果没有找到匹配的节点输出查无此人。 displayStudents显示所有学生信息。该函数从链表头开始遍历每个节点并输出每个节点的学生姓名和成绩。 在主函数里我们首先创建了一个链表头指针head然后使用一个菜单循环等待用户输入菜单选项。根据用户的选择调用相应的函数执行相应的功能。直到用户选择退出程序为止。最后释放了链表的内存。 答案2 #include stdio.h #include stdlib.h #include string.h // 定义学生信息结构体 typedef struct _StudentItem {char name[9];float grade; } StudentItem; // 定义链表节点结构体 typedef struct _StudentNode {StudentItem item;struct _StudentNode *next; } StudentNode; // 在链表开头添加新节点学生信息 void AddStudent(StudentNode **student); // 根据学生姓名删除节点 void DeleteStudent(StudentNode **student, char *name); // 根据学生姓名修改学生成绩 void ModifyGrades(StudentNode *student, float grade); // 显示所有学生信息 void displayStudents(StudentNode **student); // 根据学生姓名查找学生信息 StudentNode *FindStudent(StudentNode **student, char *name); // 释放链表内存 void FreeNode(StudentNode **student);int main(void) {StudentNode *student NULL, *target;int selection;char name[9];float grade;printf(【菜单】\n1.添加学生信息\n2.删除学生信息\n3.查找学生信息\n4.修改学生成绩\n5.显示所有学生信息\n6.退出程序\n);while (scanf(%d, selection) 1 selection ! 6){switch (selection){case 1:AddStudent(student);break;case 2:printf(请输入要删除的学生名);scanf(%s, name);DeleteStudent(student, name);break;case 3:printf(请输入要查询的学生名);scanf(%s, name);target FindStudent(student, name);if (target NULL)printf(查无此人\n);elseprintf(姓名%s\t成绩%f\n, target-item.name, target-item.grade);break;case 4:printf(请输入要修改成绩的学生名);scanf(%s, name);target FindStudent(student, name);if (target NULL)printf(查无此人\n);else{printf(请输入新的成绩);scanf(%f, grade);ModifyGrades(target, grade);puts(修改成功);}break;case 5:displayStudents(student);break;default:printf(错误没有此选项\n);break;}printf(继续输入选项\n);}FreeNode(student);getchar();getchar();return 0; } void AddStudent(StudentNode **student) {StudentNode *temp (StudentNode *)malloc(sizeof(StudentNode));printf(请输入学生姓名);scanf(%s, temp-item.name);printf(请输入成绩);scanf(%f, temp-item.grade);temp-next *student;*student temp; } void DeleteStudent(StudentNode **student, char *name) {StudentNode *target *student, *prev;// 学生姓名匹配删除节点if (target ! NULL !strcmp(target-item.name, name)){*student target-next;}else{prev target;target target-next;while (target ! NULL){// 学生姓名匹配删除节点if (!strcmp(target-item.name, name)){prev-next target-next;break;}prev target;target target-next;}}if (target ! NULL){free(target);printf(删除成功\n);}else{printf(删除失败\n);} } void ModifyGrades(StudentNode *student, float grade) {student-item.grade grade; } StudentNode *FindStudent(StudentNode **student, char *name) {StudentNode *p *student;while (p ! NULL){// 学生姓名匹配返回学生节点if (!strcmp(p-item.name, name))break;p p-next;}return p; } void displayStudents(StudentNode **student) {const StudentNode *p *student;if (*student NULL){printf(没有学生数据\n);}else{while (p ! NULL){printf(姓名%s\t成绩%f\n, p-item.name, p-item.grade);p p-next;}} } void FreeNode(StudentNode **student) {StudentNode *target*student,*next;while(target!NULL){nexttarget-next;free(target);targetnext;} }解析 我们使用链表来存储学生的信息也就是姓名和成绩。根据题目要求需要实现添加学生、删除学生、查找学生、修改学生的成绩、显示所有学生的信息退出的功能。 首先我们定义了两个结构体StudentItem 和 StudentNode。StudentItem 用来存储学生的姓名和成绩而 StudentNode 用来表示链表中的节点它包含一个 StudentItem 类型的变量和一个指向下一个节点的指针。 然后我们实现一些函数来完成不同的操作。AddStudent 函数用于在链表开头添加一个新的学生节点DeleteStudent 函数用于根据学生的姓名来删除对应的节点ModifyGrades 函数根据学生的姓名来修改他们的成绩displayStudents 函数显示所有学生的信息FindStudent 函数根据学生的姓名来查找他们的信息最后FreeNode 函数用来释放链表的内存。 在主函数中我们通过一个循环来让用户选择要执行的操作。根据用户的输入我们会调用相应的函数来处理操作。比如如果用户选择添加学生我们会创建一个新的节点然后获取学生的姓名和成绩最后将其添加到链表的开头。 如果要删除学生我们先根据学生的姓名找到对应的节点然后将其从链表中删除并释放其内存。修改学生的成绩先根据学生的姓名找到对应的节点然后更改他的成绩。显示所有学生的信息就遍历链表并打印每个学生的姓名和成绩。 在程序结束时记得释放链表的内存。
http://wiki.neutronadmin.com/news/369892/

相关文章:

  • 菏泽做网站设计wordpress 循环两个交替
  • 外贸家具网站首页设计wordpress 自定义表单
  • 成立网站开发公司网站流量超了
  • 网站做用户记录表门户网站ui设计
  • 超炫个人业务网站源码上海专业的网站建设公司排名
  • 成都小企业网站设计网络推广服务公司外包
  • python云服务器网站开发实例国外经典logo设计案例分析
  • 河北城乡建设厅网站家教网站域名怎么做
  • 集美区建设局网站wordpress 翻译方案
  • 网站企业备案需要哪些防蜘蛛抓取网站代码
  • 做库房推广哪个网站好上海网页制作培训学校
  • 城市轨道建设规范下载网站wordpress密码原理
  • 成都网站建设备案黄骅港中铁招聘信息
  • 网站没收录可以做推广吗网站建设公司选择意见书
  • wordpress网站翻译插件设计师去哪个网站找工作
  • 网站建设重点茂名网站优化
  • 张家港英文网站制作上海最新新闻资讯
  • 大学生创业做网站的筹资方式婚纱摄影介绍
  • seo网站优化软件wordpress 上传网站吗
  • 达内培训网站开发信息产业部 备案网站
  • 自己做的网站如何发布简单html代码
  • 茶叶企业网站源码网站后台不更新
  • 建设网站用什么代码写好呢如何用国外网站做头条
  • 网站内页没有排名wordpress 清爽主题
  • 移动网站和定制网站太原做企业网站
  • 西宁建设网站价格低互联网十大创业项目
  • 太湖手机网站建设外包小程序
  • 中国建设网官方网站下载e路最新版国家住房和城乡建设部中国建造师网站
  • 重庆网站建站推广建筑证书兼职网站
  • 下拉网站导航用ps怎么做关键词在线下载