c语言文件系统统实验报告Word文档格式.docx
《c语言文件系统统实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《c语言文件系统统实验报告Word文档格式.docx(6页珍藏版)》请在冰点文库上搜索。
1.熟悉位运算的基本操作方法。
(以教材例11-1为基础)
2.了解和熟悉位运算的基本应用。
(以教材例11-2~11-6为基础)
3.熟悉文件操作的基本步骤。
(以例12-1~12-7为基础)
4.了解文件的读、写函数的使用方法。
(以例12-8~12-10为基础)
三、实验预备
(1)复习有关位运算和文件操作的基本知识;
(2)仔细分析教材所提供的各程序实例及其可能执行结果;
四、实验步骤
(1)上机执行各实例程序,并做相应测试和分析;
(2)总结基于位运算的程序设计特点及其可能的应用领域;
总结文件的基本结构及其操作步骤,以及应用文件的主要问题领域。
(3)编写实验报告。
五、实验结果分析与评价
(1)根据测试目标写出测试报告;
(2)测试结果分析说明;
(3)测试程序代码清单。
1.熟悉位运算的基本操作方法。
(以教材例11-1为基础)
?
只有~为单目运算符
位运算只能用于整型或字符型数据
位运算符可以与赋值运算符结合组成扩展的赋值运算,即
~=,>
=,&
=,^=,|=
两个长度不同的数据进行位运算时,系统先将二者右端对齐,然
后将短的一方进行扩充。
对无符号数,按无符数则以0扩充;
对有
符号数,按符号扩充
例题:
11-1按位进行基本位操作
结果分析:
按位逻辑与通过&
操作符完成。
它通过对其左右两个操作符逐位与后获得一个新值,作为逻辑与的结果;
按位逻辑或的运算,按位逻辑非也是同样道理的;
对于有符号数,左移或右移后右边或左边空出的位以符号位填充。
(1)掩码技术(Mask)
用一个二进制bit串来覆盖另一个二进制串bit串,使被覆盖者保持某种性质
的技术
使某个二进制位串保持某种特征
指定某个二进制位的0/1状态
(2)位的打开:
打开位串中的特定位而保持其他位不变
(3)位的关闭:
将指定位赋予0值而不影响其他位操作。
(4)位的翻转:
对指定位的状态进行求反操作。
(5)位的检查:
利用掩码技术屏蔽其他bit位,从而查看指定bit位的状态。
例题11-2写一程序,实现将给定整数值转换为二进制字符串并分节输出转换结果。
运行结果如下:
Pleaseinputaninteger:
567
0000,0010,0011,0111
结果分析:
因为C语言没有直接提供二进制形式的I/O操作,要将给定整数值转换为二进制字符串形式要用到掩码技术和逻辑左移或右移运算。
掩码用于对指定bit位进行状态检测,左移或右移使待转换整数的二进制位串的下一bit移动到掩码中状态为1的bit位处。
以上程序对整数number右移而掩码0x0001固定不变完成转换;
也可以对掩码左移而整数number固定不变来完成。
(1)缓冲文件系统的文件信息区结构及指向文件的指针
声明文件指针变量的格式:
FILE*文件结构体指针变量名;
注意:
缓冲文件系统中,所有对文件的操作都必须通过指向文件结构体指针
变量完成
只要将文件信息对应的结构体变量之起始地址值赋给文件指针变量,
就可以达到操作和管理文件的目的
(2)缓冲文件系统的读写文件方法
fgetc()和fputc()
fputc()intfputc(intch,FILE*stream);
功能:
把一字节的ch写入文件stream中。
写入正常时,返回ch;
写入出错时,返回EOF。
fgetc()intfgetc(FILE*stream);
从stream中读取一个字节的代码。
正常读取时,返回读到的代码值;
读到文件尾或出错时返回EOF。
fgets()和fputs()
fgets()char*fgets(char*str,intn,FILE*stream);
从stream获取n-1个字符并将第n个字符置为'
\0'
或在遇到'
\n'
时结束读入动作并在后面加上'
。
读取结果存于str所在存储空间。
读取成功时将str首地址作为函数返回值,否则返回NULL。
intfputs(constchar*str,FILE*stream);
将串str写入文件stream。
'
不属于文件内容,它不写入文件。
fscanf()和fprintf()
intfscanf(FILE*stream,constchar*format,...);
intfprintf(FILE*stream,constchar*format,...);
按指定的格式对文件stream进行读写操作。
读写成功时,返回成功读写的数据项个数。
读写出错或遇到文件尾时,返回EOF。
fread()和fwrite()
size_tfread(void*ptr,size_tsize,size_tn,FILE*stream);
size_tfwrite(constvoid*ptr,size_tsize,size_tn,FILE*stream);
功能:
按指定大小从ptr读/写n个数据块。
成功时,返回已读/写的块数;
出错或遇到文件尾时,返回0值。
注意1:
fread()和fwrite()进行文件读写时,文件必须以2#方式打开。
注意2:
ptr是要读写数据块的首地址,size为数据块的大小,n为要读写的数据块数,stream是要读写的文件指针。
例题12-2
分析:
因为以上程序执行时所带文件名参数argc和argv[],以上程序不能在C语言编译环境下直接执行,只能在操作系统界面下执行可执行文件并带文件名参数:
否则程序将提示输入文件名的信息如下
程序应用了打开程序的函数fopen(),关闭fclose(),用键盘输入内容的函数fputc()或者是fgetc(),他们的应用分别是FILE*fopen(constchar*path,constchar*mode).关闭intfclose(FILE*stream),intfput(intch,FILE*stream).出了这些还有fgetc()fgets()fputs()fscanf()fprintf()
篇二:
通讯录管理系统实验报告(C语言)
通讯录管理系统实验报告
学院:
物理与电子工程学院专业:
电子信息科学与技术学号:
1319XX11姓名:
朱大神
日期:
XX年6月12日
一.题目要求
?
用C(本文来自:
小草范文网:
c语言文件系统统实验报告)设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。
?
功能要求
(1)查看功能:
选择此功能时,列出下列三类选择。
A办公类,B个人类,C商务类,当选中某类时,显示出此类中的所有数据。
(2)增加功能:
能录入新数据,一个结点包括:
姓名、电话号码、分类(可选项有:
A办公类,B个人类,C商务类)、电子邮件。
例如:
杨春商务类。
当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;
录入的新数据能按递增的顺序自动进行条目编号。
(3)修改功能:
选中某个人的姓名时,可对此人的相应数据进行修改。
(4)删除功能:
选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。
二.程序功能
主要包含以下功能:
1.建立功能——建立通讯录2.保存功能——保存通讯录3.读取功能——读取文件4.查找功能——查找联系人5.删除功能——删除联系人6.添加功能——添加联系人7.修改功能——修改联系人8.退出功能——退出系统
三.系统功能模块
主菜单
建立通讯录
保存通讯录
读取文件
查找联系人
删除联系人
添加联系人修改联系人
退出系统
建立功能:
在主菜单中输入1,进入建立功能。
用户输入联系人姓名,电话,类别,邮箱,建立一个新的通讯录。
在输入姓名处输入“*”结束添加。
保存功能:
在主菜单中输入2,进入保存功能。
将已创建的通讯录保存到文件中。
读取功能:
在主菜单中输入3,进入读取功能。
读取已经存在的通讯录文件。
查找功能:
在主菜单中输入4,进入查找功能。
创建通讯录或读取文件之后才能进行查找。
查找方式有三种:
1.按姓名查找2.按类型查找3.查看所有人。
删除功能:
在主菜单中输入5,进入删除功能。
创建通讯录或读取文件之后才能进行删除。
用户输入待删除联系人的姓名,系统显示待删除联系人的信息,并提示是否删除该联系人。
添加功能:
在主菜单中输入6,进入添加功能。
创建通讯录或读取文件之后才能按提示添加联系人。
修改功能:
在主菜单中输入7,进入修改功能。
创建通讯录或读取文件之后才能进行修该。
通过姓名查找到联系人进行修改。
退出功能:
在主菜单中输入8,退出通讯录管理系统。
四.函数流程图
1.建立通讯录(单链表)
2.保存通讯录
3.读取文件
篇三:
C语言实验报告-文件处理基础