数据结构课程设计-航空订票系统

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cheng_cuo_tuo/article/details/85058255

这是我这学期的课程设计的内容。借此机会学习了c语言的文件操作的内容。
有需要的可以去我的资源下载,也可以查看下一篇博客,里面是源码,但是写成博客太麻烦,就不写了。

C语言的文件处理

1. FILE * fopen(const char * path, const char * mode);

返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码
存储到error中。
mode的类型
r 以只读方式打开文件,该文件必须存在。
r+ 以读/写方式打开文件,该文件必须存在。
rb+ 以读/写方式打开一个二进制文件,只允许读/写数据。
rt+ 以读/写方式打开一个文本文件,允许读和写。
w 打开只写文件,若文件存在则长度清为 0,即该文件内容消失,若不存在则创建该文件。
w+ 打开可读/写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留(EOF 符保留)。
a+ 以附加方式打开可读/写的文件。若文件不存在,则会建立该文件,如果文件存在,则写入的数据会被加到文件尾后,即文件原先的内容会被保留(原来的 EOF 符不保留)。
wb 以只写方式打开或新建一个二进制文件,只允许写数据。
wb+ 以读/写方式打开或建立一个二进制文件,允许读和写。
wt+ 以读/写方式打开或建立一个文本文件,允许读写。
at+ 以读/写方式打开一个文本文件,允许读或在文本末追加数据。
ab+ 以读/写方式打开一个二进制文件,允许读或在文件末追加数据。

2. access函数

头文件:unistd.h
功能:确认文件或文件的访问权限。即,检查某个文件的存取方式。如果存取方式有效,则
函数返回0否则返回-1
用法:int access(const char *filepath, int mode);或者int_access(const charpath, int mode);

参数说明:

filepath
文件或者文件夹的路径,当前目录直接使用文件呢或文件夹名
备注:当该参数为文件的时候,access函数能使用mode参数所有的值,当该参数为文件夹的时候,access函数值能判断文件夹是否存在。

mode
要判断的模式
在头文件unsited.h的预定义如下:
#define R_OK 4 /只判断是否有读权限/
#deifine W_OK 2 /只判断是否有写权限/
#define X_OK 1 /判断是否有执行权限/
#define F_OK 0 /判断是否存在/

3. feof()是C语言标准库函数

其原型在stdio.h中,其功能是检测流上的文件结束符,如果文件结束,则返回非0值,否则返回0
(即,文件结束:返回非0值,文件未结束,返回0值),文件结束符只能被clearerr()清除。

4. fread()函数

函数原型 size_t fread ( void* buffer, size_t size, size_t count, FILE *stream) ;

参数:
buffer 用于接收数据的内存地址
size 要读的每个数据项的字节数,单位是字节
count 要读count个数据项,每个数据项size个字节
stream 输入流

5. fwrite()函数

函数原型 size_t fwrite(const void* buffer, size_t size, size_t count, FILE *stream);
返回值:返回实际写入的数据块数目

参数:
buffer 是一个指针,对fwrite来说,是要获取数据的地址
size 是写入内容的单字节数
count 要进行写入size字节的数据项的个数
stream 目标文件指针

6. fseek()函数

函数原型:int fseek(FILE * stream, long offset, int fromwhere);函数设置文件指针stream的位置。
如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset取值大于等于210241024*1024,即long的正数范围2G),则不改变stream指向的位置,函数返回一个非0值。

fromwhere(偏移起始位置:文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))为基准,偏移offset(指针偏移量)个字节的位置。

完整内容已经上传到资源中
该课程设计的是参照了网上下载的360多行的代码,但是它的功能不齐全,业务逻辑也很差。
经修改,丰富了功能,梳理了业务逻辑。
功能模块图:
在这里插入图片描述
业务逻辑图:在这里插入图片描述
用户订票流程图:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/cheng_cuo_tuo/article/details/85058255
今日推荐