用rem做移动网站电脑室内装修设计软件

diannao/2026/1/24 14:58:39/文章来源:
用rem做移动网站,电脑室内装修设计软件,wordpress app插件下载,设计师 网站最近在复习数据结构,早上刚复习完链表#xff0c;就想到了学生信息管理系统这个经典的大作业,然后呢#xff0c;花了一早上加一中午的功夫给重新实现了一遍#xff0c;里面可能会有写的不好的地方#xff0c;但也代表了我实现的一些想法#xff0c;在这里我将分享出来。我… 最近在复习数据结构,早上刚复习完链表就想到了学生信息管理系统这个经典的大作业,然后呢花了一早上加一中午的功夫给重新实现了一遍里面可能会有写的不好的地方但也代表了我实现的一些想法在这里我将分享出来。我是在Ubuntu上用vim写的当然了这些代码window下也可以运行。文章最后有完整代码。一 实现功能1、查看学生信息 2、添加学生信息。3、删除学生信息 4、修改学生信息 5、保存学生信息到文件 6、刷新学生信息从文件中恢复学生信息 0、退出系统 二 表示学生的数据结构struct 三 实现菜单void meum() {printf(n ***************************** n);printf( 学生信息管理系统 n);printf( ***************************** n);printf( 系统菜单功能 n);printf( ***************************** n);printf( 1.查看学生信息 n);printf( 2.添加学生信息 n);printf( 3.删除学生信息 n);printf( 4.修改学生信息 n);printf( 5.保存学生信息 n);printf( 6.刷新学生信息 n);printf( 0.退出系统 n); } 四 实现增加学生的功能void creat_node(LinkList *L) {char name;LinkList *nodeNULL;LinkList *tempL-next; //作为链表连接的中间点node(LinkList *)malloc(sizeof(LinkList)); //分配内存if(nodeNULL){printf(分配普通节点内存出错!);exit(1);}memset(node,0,sizeof(LinkList));printf(n请输入学生序号:);scanf(%d,node-data.number);printf(n请输入学生名:);scanf(%s,node-data.name);printf(n请输入学生成绩:);scanf(%d,node-data.score);printf(n请输入学生年龄:);scanf(%d,node-data.age);L-nextnode; node-nexttemp; } 五 显示学生信息void show_student(LinkList *L) {LinkList *pL-next;int i0;printf(n ************************** n);printf( 学生信息 n);printf( ************************** n);printf( 序号 姓名 成绩 年龄 n);while(p){printf( %d %s %d %d n,p-data.number,p-data.name,p-data.score,p-data.age);i; pp-next;} } 六 删除学生可以选择1、按序号删除。2、按姓名删除。void delete_student(LinkList *L) {int x0;int number;char name[10];LinkList *temp,*pre;tempL-next;while(1){printf(n 请选择:);printf(n 1.按序号删除!);printf(n 2.按姓名删除!);printf(n 请输入选择:);scanf(%d,x);if(x1 || x2)break;else printf(n 输入错误,请重新输入!);}if(x1) //根据输入的序号找到学生并删除{printf(n 请输入要删除的学生序号:);scanf(%d,number);while(temp-data.number!number temp-next!NULL){pretemp;temptemp-next;}if(temp-data.numbernumber){pre-nexttemp-next;free(temp);}else{printf(n 没有所要删除的学生序号!);}}else if(x2) //根据输入的姓名找到学生并删除{printf(n 请输入要删除的学生名字:);scanf(%s,name);while(strcmp(temp-data.name,name)!0 temp-next!NULL){pretemp;temptemp-next;}if(strcmp(temp-data.name,name)0){pre-nexttemp-next;free(temp);}else{printf(n 没有要删除的学生姓名!);}} } 七 修改学生信息首先找到学生然后对找到的学生信息进行修改。可以选择按序号和按姓名来找学生。找到学生后可以选择修改学生的任意一项信息。void modify_student(LinkList *L) {int x0;int number;char name[10];LinkList *temp;tempL-next;while(1){printf(n 请选择:);printf(n 1.知道要修改学生的序号!);printf(n 2.知道要修改学生的名字!); printf(n 请输入选择:);scanf(%d,x);if(x1 || x2)break;elseprintf(n 输入错误,请重新输入!);}if(x1){printf(n 请输入要修改学生的序号:);scanf(%d,number);while(temp-data.number!number temp-next!NULL){temptemp-next;}if(temp-data.numbernumber){printf(n 已经找到要修改学生的信息!);}else{printf(n 没有要修改学生的序号!);}}else if(x2){printf(n 请输入要修改学生的名字:);scanf(%s,name);while(strcmp(temp-data.name,name)!0 temp-next!NULL){temptemp-next;}if(strcmp(temp-data.name,name)0){printf(n 已经找到要修改学生的信息!);}else{printf(n 没有要修改学生的姓名!);}}printf(n ************************);printf(n 姓名:%s 序号:%d 成绩:%d 年龄:%d,temp-data.name,temp-data.number,temp-data.score,temp-data.age);do{printf(n 请选择:);printf(n 1.修改序号!);printf(n 2.修改名字!);printf(n 3.修改成绩!);printf(n 4.修改年龄!);printf(n 请输入选择:);scanf(%d,x);}while(x1 || x4);if(x1){printf(n 请输入修改后的序号:);scanf(%d,temp-data.number);}if(x2){printf(n 请输入修改后的名字:);scanf(%s,temp-data.name);}if(x3){printf(n 请输入修改后的成绩:);scanf(%d,temp-data.score);}if(x4){printf(n 请输入修改后的年龄:);scanf(%d,temp-data.age);}} 八 保存到文件void save(LinkList *L) {FILE *fp;int i0;LinkList *temp; tempL-next;if((fpfopen(student.txt,a))NULL){printf(n 无法打开文件!);exit(1);} while(temp!NULL){i;fprintf(fp,%d %s %d %d n,temp-data.number,temp-data.name,temp-data.score,temp-data.age);printf(n 第%d个已经保存!,i);temptemp-next;}fclose(fp); } 九 从文件中恢复void refresh(LinkList *L) {FILE *fp;LinkList *nodeNULL; LinkList *tempL-next;node(LinkList *)malloc(sizeof(LinkList));if(nodeNULL){printf(分配普通节点内存出错!);exit(1);}memset(node,0,sizeof(LinkList)); fpfopen(student.txt,r);if(fpNULL){printf(n 无法打开文件!);exit(1);}while(!feof(fp)){fscanf(fp,%d %s %d %d,node-data.number,node-data.name,node-data.score,node-data.age);L-nextnode;node-nexttemp;tempnode;node(LinkList *)malloc(sizeof(LinkList));if(nodeNULL){printf(分配普通节点内存出错!);exit(1);}memset(node,0,sizeof(LinkList));} printf(n 已经成功刷新学生信息!); } 十 主函数主函数中先创建一个头节点不保存学生信息便于操作空链表然后进入主菜单功能选择模块被我独立成一个函数代码在主函数后面。void main() { int i;LinkList *LNULL;L(LinkList *)malloc(sizeof(LinkList));if(LNULL){ printf(分配头节点内存出错!);exit(1);}memset(L,0,sizeof(LinkList));L-nextNULL;int stop1;while(1){ meum();choice(stop,L);if(stop0)break;printf(n 下一步操作:);printf(n 1.返回主界面);printf(n 2.退出系统);printf(n 请输入操作:);scanf(%d,i);if(i2)break;} } void choice(int *stop,LinkList *L) {int num;printf(nn 请输入菜单选项:);scanf(%d,num);switch (num){case 0: *stop0; break;case 1: show_student(L); break;case 2: creat_node(L); break;case 3: delete_student(L); break;case 4: modify_student(L); break;case 5: save(L); break;case 6: refresh(L); break;default: printf( 请在0-6中间选择n);} } 十一 优化建议上面有一些写法可以进行优化的但是因为这只是一个小项目没必要分那么多函数分了引用次数也十分有限并且这样更符合我的思路一功能一模块就没有进行优化。可以优化的如下1、将有复用的代码段独立写成函数减少代码函数例如选择和分配节点空间那里独立成函数。2、将部分较长的函数进行功能分割便于阅读。十二 扩展建议一、增加排序功能。二、增加代码修改后写回文件时的检验是否修改的功能。三、扩展界面。十四 全部代码#includestdio.h #includestdlib.h #includestring.hstruct student { char name[10];int score;int number;int age; }; struct LNode { struct student data;struct LNode *next; }; typedef struct LNode LinkList;void meum(); void choice(int *stop,LinkList *L); void creat_node(LinkList *L); void show_student(LinkList *L); void delete_student(LinkList *L); void modify_student(LinkList *L); void save(LinkList *L); void refresh(LinkList *L);void main() { int i;LinkList *LNULL;L(LinkList *)malloc(sizeof(LinkList));if(LNULL){ printf(分配头节点内存出错!);exit(1);}memset(L,0,sizeof(LinkList));L-nextNULL;int stop1;while(1){ meum();choice(stop,L);if(stop0)break;printf(n 下一步操作:);printf(n 1.返回主界面);printf(n 2.退出系统);printf(n 请输入操作:);scanf(%d,i);if(i2)break;} }void choice(int *stop,LinkList *L) {int num;printf(nn 请输入菜单选项:);scanf(%d,num);switch (num){case 0: *stop0; break;case 1: show_student(L); break;case 2: creat_node(L); break;case 3: delete_student(L); break;case 4: modify_student(L); break;case 5: save(L); break;case 6: refresh(L); break;default: printf( 请在0-6中间选择n);} }void meum() {printf(n ***************************** n);printf( 学生信息管理系统 n);printf( ***************************** n);printf( 系统菜单功能 n);printf( ***************************** n);printf( 1.查看学生信息 n);printf( 2.添加学生信息 n);printf( 3.删除学生信息 n);printf( 4.修改学生信息 n);printf( 5.保存学生信息 n);printf( 6.刷新学生信息 n);printf( 0.退出系统 n); }void creat_node(LinkList *L) {char name;LinkList *nodeNULL;LinkList *tempL-next; //作为链表连接的中间点node(LinkList *)malloc(sizeof(LinkList)); //分配内存if(nodeNULL){printf(分配普通节点内存出错!);exit(1);}memset(node,0,sizeof(LinkList));printf(n请输入学生序号:);scanf(%d,node-data.number);printf(n请输入学生名:);scanf(%s,node-data.name);printf(n请输入学生成绩:);scanf(%d,node-data.score);printf(n请输入学生年龄:);scanf(%d,node-data.age);L-nextnode; node-nexttemp; }void show_student(LinkList *L) {LinkList *pL-next;int i0;printf(n ************************** n);printf( 学生信息 n);printf( ************************** n);printf( 序号 姓名 成绩 年龄 n);while(p){printf( %d %s %d %d n,p-data.number,p-data.name,p-data.score,p-data.age);i; pp-next;} }void delete_student(LinkList *L) {int x0;int number;char name[10];LinkList *temp,*pre;tempL-next;while(1){printf(n 请选择:);printf(n 1.按序号删除!);printf(n 2.按姓名删除!);printf(n 请输入选择:);scanf(%d,x);if(x1 || x2)break;else printf(n 输入错误,请重新输入!);}if(x1) //根据输入的序号找到学生并删除{printf(n 请输入要删除的学生序号:);scanf(%d,number);while(temp-data.number!number temp-next!NULL){pretemp;temptemp-next;}if(temp-data.numbernumber){pre-nexttemp-next;free(temp);}else{printf(n 没有所要删除的学生序号!);}}else if(x2) //根据输入的姓名找到学生并删除{printf(n 请输入要删除的学生名字:);scanf(%s,name);while(strcmp(temp-data.name,name)!0 temp-next!NULL){pretemp;temptemp-next;}if(strcmp(temp-data.name,name)0){pre-nexttemp-next;free(temp);}else{printf(n 没有要删除的学生姓名!);}} }void modify_student(LinkList *L) {int x0;int number;char name[10];LinkList *temp;tempL-next;while(1){printf(n 请选择:);printf(n 1.知道要修改学生的序号!);printf(n 2.知道要修改学生的名字!); printf(n 请输入选择:);scanf(%d,x);if(x1 || x2)break;elseprintf(n 输入错误,请重新输入!);}if(x1){printf(n 请输入要修改学生的序号:);scanf(%d,number);while(temp-data.number!number temp-next!NULL){temptemp-next;}if(temp-data.numbernumber){printf(n 已经找到要修改学生的信息!);}else{printf(n 没有要修改学生的序号!);}}else if(x2){printf(n 请输入要修改学生的名字:);scanf(%s,name);while(strcmp(temp-data.name,name)!0 temp-next!NULL){temptemp-next;}if(strcmp(temp-data.name,name)0){printf(n 已经找到要修改学生的信息!);}else{printf(n 没有要修改学生的姓名!);}}printf(n ************************);printf(n 姓名:%s 序号:%d 成绩:%d 年龄:%d,temp-data.name,temp-data.number,temp-data.score,temp-data.age);do{printf(n 请选择:);printf(n 1.修改序号!);printf(n 2.修改名字!);printf(n 3.修改成绩!);printf(n 4.修改年龄!);printf(n 请输入选择:);scanf(%d,x);}while(x1 || x4);if(x1){printf(n 请输入修改后的序号:);scanf(%d,temp-data.number);}if(x2){printf(n 请输入修改后的名字:);scanf(%s,temp-data.name);}if(x3){printf(n 请输入修改后的成绩:);scanf(%d,temp-data.score);}if(x4){printf(n 请输入修改后的年龄:);scanf(%d,temp-data.age);}}void save(LinkList *L) {FILE *fp;int i0;LinkList *temp; tempL-next;if((fpfopen(student.txt,a))NULL){printf(n 无法打开文件!);exit(1);} while(temp!NULL){i;fprintf(fp,%d %s %d %d n,temp-data.number,temp-data.name,temp-data.score,temp-data.age);printf(n 第%d个已经保存!,i);temptemp-next;}fclose(fp); }void refresh(LinkList *L) {FILE *fp;LinkList *nodeNULL; LinkList *tempL-next;node(LinkList *)malloc(sizeof(LinkList));if(nodeNULL){printf(分配普通节点内存出错!);exit(1);}memset(node,0,sizeof(LinkList)); fpfopen(student.txt,r);if(fpNULL){printf(n 无法打开文件!);exit(1);}while(!feof(fp)){fscanf(fp,%d %s %d %d,node-data.number,node-data.name,node-data.score,node-data.age);L-nextnode;node-nexttemp;tempnode;node(LinkList *)malloc(sizeof(LinkList));if(nodeNULL){printf(分配普通节点内存出错!);exit(1);}memset(node,0,sizeof(LinkList));} printf(n 已经成功刷新学生信息!); }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/88616.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站空间内存我的世界做壁纸的网站

目录 前言: 题单: P3386 【模板】二分图最大匹配 P1525 [NOIP2010 提高组] 关押罪犯 P3385 【模板】负环 P3371 【模板】单源最短路径(弱化版) SPFA写法 Dij写法: P3385 【模板】负环 P5960 【模板】差分约束…

中小学生做试卷的网站6阿联酋网站后缀

当我们使用float来使元素并排显示的时候,可以使用margin来控制元素之间的距离,而在很多版式里(例如产品图片的列表),需要浮动的元素达到两端对齐的效果,如图1所示。 图1 两端对齐的版式 单纯使用float:left…

做美食直播哪个网站最好网站备案不通过怎么解决

RTlinux主要的api函数实时应用程序分为两部分,内核部分和应用部分,应用部分需要和内核部分通过FIFO进行数据交换和控制,除此之外和一般应用程序没有太多区别,内核部分比较复杂,程序以模块方式挂入内核,这部分程序的编写需要对底层的东西有较高的要求,除了掌握RTLinux的API以外还…

Mac怎么搭建网站开发环境科技创新导报

一、JVM 1、jvm的内存组成 五大内存区域,分1.7和1.8 1.堆内存:引用类型的数据,内部组成:1.新生代(伊甸区和幸存者区)2.老年代。该区域经常发生垃圾回收的操作 堆是JVM中最大的一块内存区域,用…

网站开发研发工程师岗位职责成都网站推广哪家专业

1. ActionContext ActionContext是被存放在当前线程中的,获取ActionContext也是从ThreadLocal中获取的。所以在执行拦截器、 action和result的过程中,由于他们都是在一个线程中按照顺序执行的,所以可以可以在任意时候在ThreadLocal中获取 Act…

免费企业自助建站信息发布网网络营销的主要内容是什么

💡本篇内容:YOLOv8改进PIoU损失函数:PIoU v2损失增强了专注于中等质量锚盒的能力,v1版本使用非单调聚焦机制更直接、更快的边界框回归损失 💡附改进源代码及教程,用来改进🚀PIoU损失函数 Powerful-IoU损失函数论文地址:https://www.sciencedirect.com/science/art…

淘客网站开发源代码wordpress漂亮手机网站模板

之前的文章记录了oracle客户端和服务端的下载与安装,内容参见: 在Windows中安装Oracle_windows安装oracle 如果不想安装oracle客户端(或者是电脑因为某些原因无法安装oracle客户端),还想能够连接oracle远程服务&#…

健网站怎样建十大ui培训机构

DB-GPT:彻底改变数据库与私有LLM技术的交互 智能SQL生成:后端技术与LLM的完美结合 智能SQL生成:后端技术与LLM的完美结合_llm sql-CSDN博客 GitHub - eosphoros-ai/DB-GPT: AI Native Data App Development framework with AWEL(Agentic Wor…

后台网站下载做高端网站建设公司

学习了解PHP中Memcached扩展的使用 说实话,在目前的开发环境中,使用 Memcache 的项目还真的不多。在 Redis 大行其道的今天,Memcache 的衰退也可以说是大势所趋。不过,可能很多刚开始学习 PHP 的新同学不知道,当年在 L…

皮具网站设计把WordPress搬家

广度优先搜索(BFS)在JavaScript编程中有许多实际应用场景,特别是在解决图、树等数据结构相关问题时非常常见。在JavaScript中,可以使用队列来实现广度优先搜索算法。通过将起始节点加入队列,然后迭代地将节点的邻居节点…

教学网站建设与管理局网站

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到…

内蒙古网站建设电话网站页面设计与制作实践

网关和路由器是数据通信行业被广泛使用的通信设备,它们都是网络连接的组成部分。那么,4G物联网网关和传统工业路由器有哪些区别呢?接下来飞畅科技的小编就来为大家详细介绍下4G物联网网关和工业路由器的区别,一起来看看吧&#xf…

制作网站是什么专业注册个人工作室流程及费用

今天带大家做川菜系中的 水煮牛肉 这个菜是比较费辣椒的 制作成本相对一般菜来说 会高一些 一块牛肉 泡水划冰 从超时买的干腐竹 切成小片 温水浸泡五分钟 泡软它 然后捞出来 去干水分 牛肉切片 尽量切薄一点 三瓣左右蒜 一块生姜 去皮切末 牛肉中下入 一个鸡蛋 小半勺…

社保减员要怎么做 国税局网站全网搜索引擎

说到vivo X27,相信很多小伙伴都会第一时间想到其帅气的颜值以及强悍的拍照!的确,就颜值来说,vivo X27凭借着升降式摄像头、零界全面屏、不凸出的后置三摄以及孔雀纹理的确称的上是2019年的最美旗舰;而拍照就更不用说了…

广告加工厂临淄关键词网站优化哪家好

c#给定编码中的字符无效Input two strings and check whether they are equal or not using C# program. 输入两个字符串,并使用C#程序检查它们是否相等。 用于字符串比较的C#代码 (C# code for string comparison) Here, we are asking for…

大型网站服务器价格企业邮箱申请

不同的数据文档,会获得不同日期格式,常见的有str(20200101),datetime(20200101),又或者是2020-01-01,,2020-1-1,20-1-1,20-Apr_20th,2020/01/01,20/01/01等等,总之类型很多。因此需要我们对日期格式进行统一化。这里我…

我有域名和云服务器怎么做网站wordpress搬家_后台错乱

在 Uni-app 中,你可以使用本地缓存来存储应用程序的数据。Uni-app 提供了两种本地缓存方式:uni.setStorageSync 和 uni.setStorage。其中,uni.setStorageSync 同步方式存储数据,适合小数据量的存储;而 uni.setStorage …

在国内做推广产品用什么网站好营销型网站开发定制

20240115如何在线识别俄语字幕? 2024/1/15 21:25 百度搜索:俄罗斯语 音频 在线识别 字幕 Bilibili:俄语AI字幕识别 音视频转文字 字幕小工具V1.2 BING:音视频转文字 字幕小工具V1.2 https://www.bilibili.com/video/BV1d34y1F7…

整站seo公司网站开发模板

//声明: midiOutGetNumDevs: UINT; {无参数; 返回 MIDI 输出设备的数目}//举例: