共两个不同设计例子,都含详细的文档资料。
任务2.设计一个简单的二级文件系统设计要求:在任一OS下,建立一个大文件,把它假象成硬盘,在其中实现一个简单的模拟文件系统。
编写一管理程序对此空间进行管理,要求:1.实现盘块管理2.实现文件的读写操作3.每组最多2人,小组内要有明确分工,课程设计报告中设计部分可以相同,个人实现部分不同参考建议:将模拟硬盘的文件空间划分为目录区,文件区;
采用位示图进行空间管理,盘块的分配使用显示链接(FAT表)的方式。
设计技术参数(数据结构)参考:#defineMaxSize100#defineDisk512//每个盘块大小为512bit#defineNumDisk2048//有2048个盘块,既可分配空间为1M/*************目录和文件的结构定义***********************/structDirectoryNode{charname[9];/*目录或文件的名字*/inttype;/*0代表目录,1代表普通文件*/structDirectoryNode*next;/*指向下一个兄弟结点的指针*/structDirectoryNode*preDirFile;/*指向父结点的指针*/structDirectoryNode*subFile;/*指向第一个子结点的指针*/intsize;/*如果是文件则表示文件的大小*/intfirst;/*起始盘块号*/intlast;/*末尾盘块号*/intorder;/*备用*/};//连续分配structFileSys{intVacTable[NumDisk];//空闲表,0为空闲,1为被用structDirectoryNoderoot;//根目录structDirectoryNodeDirectory[NumDisk];}*filesys;typedefstruct{structDirectoryNode*DirFile;charname[9];}DataType;//包含一个指向目录的指针和名字typedefstruct{//队列结构的实现DataTypedata[MaxSize];intfront,rear;//分别表示队列的头结点和尾结点}Tp;voidInitQueue(Tp*sq)//队列初始化intEnAddQueue(Tp*sq,DataTypedata)//在队列中增加元素DataTypeEnDelQueue(Tp*sq)//从队列中删除一个元素intEmpty(Tp*sq)//判断队列是否为空,返回0表示队列为空①.Dir:显示目录内容命令,显示当前目录下的文件和子目录。
②.Md:创建目录操作。
③.Create:创建文件,在当前目录下创建一个文件。
④.all:显示从根目录开始的所有目录和文件及其层次结点。
⑤.Cd:改变目录。
⑥.Del:删除文件操作。
⑦.Rd:删除目录操作,删除当前目录下的子目录。
⑧.Ren:重命名函数⑨.Exit:退出命令
1
题目:7.集合运算(单循环链表)1.问题描述:设有两个带头结点的单循环链表存储的集合A、B,其元素类型为字符或者整形,且以非递减方式存储,其头结点分别为ha、hb。
要求下面各问题中的结果集合同样以非递减方式存储,结果集合不影响原集合。
2.实现要求:⑶编写集合元素测试函数IN_SET,如果元素已经在集合中返回0,否则返回1;
⑷编写集合元素输入并插入到单链表中的函数INSERT_SET,保证所输入的集合中的元素是唯一且以非递减方式存储在单循环链表中;
⑶编写求集合A、B的交C=A∩B的函数,并输出集合C的元素;
⑷编写求集合A、B的并D=A∪B的函数,并输出集合D的元素;
⑸求集合A与B的对称差E=(A-B)∪(B-A)的函数,并输出集合D的元素;
⑹设计一个菜单,具有输入集合元素、求集合A、B的交C、求集合A、B的并D、求集合A与B的对称差E、退出等基本的功能。
3.测试数据:字符型和整形由同学们自定,但集合A、B的元素个数不得少于15个。
2025/3/20 4:44:03 374KB 数据结构
1
%author:JerryNg%time:2019.01.03%place:NanchangUniversity%头结点编号要比尾节点编号大%利用尾节点没有子节点的特点生成前推回代顺序表%每将一个支路加入前推回代顺序表,就将该支路的尾节点删去
2025/2/14 4:46:06 6KB 配电网 潮流计算 matlab 前推回代
1
项目描述: 主函数分为两部分:1.登录函数 2.主菜单功能函数 一、登录函数运用到坐标读取,bmp图片显示,文件读写等操作,其中,注册用户用到了文件的写入, 把注册的信息写入到用户信息文本。
登录时,用到文件的读,把存放用户信息的文本内容读取出来并存放在单向链表中, 登录时,通过字符串比较函数匹配账号密码时候正确 二、是主菜单功能函数,该函数主要有四部分功能函数组成,分别为音乐播放函数,视频播放函数,电子相册,2048小游戏函数组成 音乐播放函数:主要利用递归读取目录把读到的.mp3后缀名的文件的路径名用双向循环链表存放起来,利用madplay相关命令进行播放,暂停等操作。
视频播放函数:主要利用递归读取目录把读到的.mp4或者.avi后缀名的文件的路径名用双向循环链表存放起来,利用mplayer相关命令进行播放,暂停等操作。
电子相册:主要利用归读取目录把读到的.bmp后缀名的文件的路径名用双向循环链表存放起来,利用读取坐标判断点击或者滑动的相关操作进行图片显示 其中,进入电子相册,默认路径下的所有图片均按一定比例缩放在一定区域浏览,可通过滑动翻至另外预览图片页, 也可通过点击预览图片进入原始比例大小查看,在原始比例大小查看期间,可点击放大或者缩小,也可以通过滑动显示下一张图片的原始比例大小的查看。
在图片显示过程中,图片显示效果主要是由中间向两边扩散。
不足之处:图片缩放利用的是直接改变前54字节头结点的信息,当图片宽度w*3%4不等于0时 缩放图片变形(原因:bmp图片特点导致,利用该方法无法解决该缺点) 2048小游戏:利用二维数组表示每行每列的数字,通过方向键或者左右上下滑动来确定数字要移动的方向,通过左右移,上下移的函数算法,进行相应的逻辑处理 最后以图片显示和打印的结果显示。
在每一次改变后,把改变后的二维数组,以及剩余的空白格子数存放在栈式链中,利用栈的后进先出的逻辑实现 返回上一步的功能
2024/8/8 4:46:45 33KB 文件io 音视频 相册 2048小游戏
1
用带表头的链表存放输入的数据,每读入一个数,按升序顺序插入到链表中,链表中允许两个结点有相同值。
链表的头结点存放链表后面的结点个数,初始化时就生成头结点(初值为0)。
链表翻转是把数据逆序(变成降序),注意,头结点不动。
翻转后要再翻转一次,恢复升序后才能插入新元素,否则会出错。
2024/5/24 22:27:56 43KB 链表
1
目录1. C语言中的指针以及内存泄露 52. C语言难点阐发收拾 103. C语言难点 184. C/C++实现冒泡排序算法 325. C++中指针以及援用的差距 356. constchar*,charconst*,char*const的差距 367. C中可变参数函数实现 388. C法度圭表标准内存中组成部份 419. C编程拾粹 4210. C语言中实现数组的动态削减 4411. C语言中的位运算 4612. 浮点数的存储格式: 5013. 位域 5814. C语言函数二维数组传递方式 6415. C语言繁杂表白式的实施步骤 6616. C语言字符串函数大全 6817. C语言宏定义本领 8918. C语言实现动态数组 10019. C语言面试-运算符以及表白式 10420. C语言编程原则之平稳篇 10721. C语言编程罕有下场阐发 10822. C语言编程易犯缺陷群集 11223. C语言缺陷与骗局(条记) 11924. C语言提防缓冲区溢出方式 12625. C语言高效编程秘籍 12826. C运算符优先级口诀 13327. do/while(0)的妙用 13428. exit()以及return()的差距 14029. exit子法度圭表标准阻滞函数与return的差距 14130. extern与static存储空间矛盾 14531. PC-Lint与C\C++代码品质 14732. spirntf函数使用大全 15833. 二叉树的数据结构 16734. 位运算使用口诀以及实例 17035. 内存对于齐与ANSIC中struct内存方案 17336. 冒泡以及遴选排序实现 18037. 函数指针数组与返回数组指针的函数 18638. 右左法则-繁杂指针剖析 18939. 回车以及换行的差距 19240. 堆以及堆栈的差距 19441. 堆以及堆栈的差距 19842. 若何写出业余的C头文件 20243. 打造最快的Hash表 20744. 指针与数组学习条记 22245. 数组不是指针 22446. 尺度C中字符串联系的方式 22847. 汉诺塔源码 23148. 洗牌算法 23449. 深入知道C语言指针的怪异 23650. 游戏外挂的编写原理 25451. 法度圭表标准实例阐发-为甚么会陷入去世轮回 25852. 空指针终于指向了内存的哪一其中间 26053. 算术表白式的盘算 26554. 结构体对于齐的详尽含意 26955. 连连看AI算法 27456. 连连看寻路算法的思绪 28357. 重新见识:指向函数的指针 28858. 链表的源码 29159. 高品质的子法度圭表标准 29560. 低级C语言法度圭表标准员测试必过的十六道最佳题目+谜底详解 29761. C语言罕有差迟 32062. 超强的指针学习条记 32563. 法度圭表标准员之路──对于代码作风 34364. 指针、结构体、松散体的清静尺度 34665. C指针教学 35266. 对于指向指针的指针 36867. C/C++误区一:voidmain() 37368. C/C++误区二:fflush(stdin) 37669. C/C++误区三:欺压转换malloc()的返回值 38070. C/C++误区四:charc=getchar(); 38171. C/C++误区五:查验new的返回值 38372. C是C++的子集吗? 38473. C以及C++的差距是甚么? 38774. 无前提轮回 38875. 暴发随机数的方式 38976. 秩序表及其操作 39077. 单链表的实现及其操作 39178. 双向链表 39579. 法度圭表标准员数据结构条记 39980. Hashtable以及HashMap的差距 40881. hash表学习条记 41082. C法度圭表标准方案罕用算法源代码 41283. C语言有头结点链表的典型实现 41984. C语言惠通面试题 42885. C语言罕用宏定义 450
2023/4/9 12:36:18 1.28MB C语言 难点 C语言
1
1、问题描述通讯录的制作:用《数据结构》中的双向链表作数据结构,结合C语言基本知识。
编写一个通讯录管理系统。
以把所学数据结构知识应用到实际软件开发中去。
2、功能需求分析本系统应完成一下几方面的功能:1)输入信息——enter();2)显示信息———display();3)查找以姓名作为关键字———search();4)删除信息———delete();5)存盘———save();6)装入———load()设计要求:1)每条信息至包含:姓名(NAME)街道(STREET)城市(CITY)邮编(EIP)国家(STATE)几项2)作为一个完整的系统,应具有友好的界面和较强的容错能力3)上机能正常运行,并写出课程设计报告二、概要设计1、总体设计思路(1)用菜单函数调用所设立的功能和使用界面的清屏小代码,使程序愈加清楚和界面更美观。
(2)采用结构体类型定义和链式存储结构分别对输入信息和双链表定义,充分运用双链表结构的特点。
(3)输入通讯录信息的实现:思路:先初始化创建双链表,创建头结点来辅助双链表的插入操作,再运用c程序设计中输入输出语句,达到输入信息的功能(4)对通讯录信息的输出显示功能的实现:思路:简单运用c程序设计中的输入scanf函数、输出printf函数和for循环。
2016/7/8 9:50:21 1.02MB 数据结构 C语言 通讯录的制作 代码
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡