版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、东莞理工学院城市学院数据结构课程设计指导书撰写人:彭义春2013 年 12 月一、课程设计的性质与目的课程设计是学生对课程所学知识的综合运用,它与课堂听讲、上机实验、课外练习、自学研究相辅相成,构成一个完整的课程教学体系。 数据结构是一门实践性强的课程,其中对算法设计和程序编写的掌握尤为重要。 学生虽然可以通过与课堂教学同步的上机实验完成相关内容的练习,但却往往局限于一些功能简单、彼此之间关系独立的算法和程序。课程设计是一种综合训练, 致力于培养学生全面、 灵活的算法设计思想和较高的编程能力, 为今后从事计算机开发与应用打下基础。 新世纪需要具有丰富科学知识、 独立解决实际问题、 有创造能力的
2、新型人才,这也是该课程设计的最终目的。通过本课程设计,巩固学生对数据结构课程中的几大数据类型:顺序表、链表、栈、队列、图、树的建立、添加、删除、查找以及排序的操作。使学生能够根据数据对象的特性,学会数据组织的方法, 能把现实世界中的实际问题在计算机内部表示出来, 并培养良好的程序设计技能。二、总体要求1、 课程设计总时间为2.5 天。2、 一个班分若干个组,每组3 人,课程设计题目由任课老师指定;3、 人员分工: 组长 1 人、组员 2 人。组长可由小组人员自行选出或自荐,组长的职责是负责与老师交流,合理安排分配本组的各项任务,任务有:系统总体设计、编码、测试、写文档。三、设计要求:1、要充分
3、认识课程设计对培养自己的重要性,认真做好设计前的各项准备工作。2、既要虚心接受老师的指导,又要充分发挥主观能动性。结合课题,独立思考,努力钻研,勤于实践,勇于创新。3、独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。4、课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩按不及格处理 。5、在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。6、小组成员之间,分工明确,但要保持联系畅通,密切合作,培养良好的互相帮助和团队协作精神。四、成绩评定1、同学平时表现占总成绩30,若迟到扣5 分,无故旷课每次扣10
4、 分,二次不到者总成绩以0 分计。2、课程设计报告占总成绩70,在规定时间内上交。3、严禁抄袭,复制设计内容,查出后相关同学设计成绩以零分处理。五、设计内容(除特别注明外,每组3 人,先自由组合,并选定1个题目,再由老师作适当调整)题目 1 校运会积分统计问题描述:参加运动会有n 个系,系编号为1n。比赛分成m 个男子项目和w 个女子项目。项目编号为男子1.m, 女子 m+1.m+w 。不同的项目取前五名或前三名积分;取前五名的积分分别为 :7、 5、3、 2、 1,前三名的积分分别为:5、 3、 2;哪些取前五名或前三名由学生自己设定。( m<=20,n<=20 )。功能要求:1
5、) 可以输入各个项目的前三名或前五名的成绩;2) 能统计各系总分,3) 可以按系编号、系总分、男女团体总分排序输出;4) 可以按系编号查询系某个项目的情况;可以按项目编号查询取得前三或前五名的学校。规定:输入数据形式和范围:20 以内的整数(如果做得更好可以输入系的名称,运动项目的名称)输出形式:有中文提示,各系分数为整形界面要求: 有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。编程提示:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。题目 2十进制四则运算器问题描述:设计一个简单的计算器,可以做加、减、乘、除等基本运算。功能要求:1)计算
6、任意一个算术表达式的加法、减法、除法以及乘法。2)运算数为整数和小数3)人机界面自定义,要友好。如用户输入错误在计算之前可以修改。编程提示:1)设置运算符栈和运算数栈辅助分析算符优先关系。2)在输入表达式的字符序列的同时,完成运算符和运算数(整数)的识别处理,以及相应的运算。3)在识别出运算数的同时,要将其字符序列形式转换成整数形式。题目 3飞机订票系统问题描述:1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)2)查询:可以查询某个航线的情况(如,输入航班号, 查询起降时间, 起飞抵达城市, 航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞
7、机航班情况;3)订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;4)退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。5)修改航班信息:当航班信息改变可以修改航班数据文件功能要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。编程提示:航班信息和订票信息定义为一个结构体,并用链表实现。题目 4哈夫曼编码 /译码器问题描述:设计一个哈夫曼编码文件(压缩文件,后缀名/译码系统,对一个文本文件中的字符进行哈夫曼编码,生成编码.cod);反过来,可将一个压缩文件译码还原为一
8、个文本文件(.txt) 。功能要求:1)输入一个待压缩的文本文件名,统计文本文件中各字符的个数作为权值,生成哈夫曼树;2) 将文本文件利用哈夫曼树进行编码,生成压缩文件(后缀名cod),3) 输入一个待解压的压缩文件名称,并利用相应的哈夫曼树将编码序列译码;4) 显示指定的压缩文件和文本文件;5) 界面友好,易与操作。采用菜单方式进行选择。编程提示:解本题要注意两个问题:1) 要熟悉 C 语言的文件操作。2) 掌握哈夫曼树的原理题目 5个人通讯录问题描述:设计散列表实现通讯录查找系统。功能要求:1) 设每个记录有下列数据项:电话号码、用户名、地址;2) 从键盘输入各记录,分别以电话号码为关键字
9、建立散列表;3) 采用二次探测再散列法解决冲突;4) 查找并显示给定电话号码的记录;5) 通讯录信息文件保存;6) 要求人机界面友好,使用图形化界面;编程提示:主函数:根据选单的选项调用各函数,并完成相应的功能。Menu() 的功能:显示英文提示选单。Quit() 的功能:退出选单。Create()的功能:创建新的通讯录。Append() 的功能:在通讯录的末尾写入新的信息,并返回选单。Find() :查询某人的信息,如果找到了,则显示该人的信息,如果没有则提示通讯录中没有此人的信息,并返回选单。Alter() 的功能: 修改某人的信息, 如果未找到要修改的人, 则提示通讯录中没有此人的信息,
10、并返回选单。Delete() 的功能: 删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。List() 的功能:显示通讯录中的所有记录。Save()的功能:保存通讯录中的所有记录到指定文件中。Load() 的功能:从指定文件中读取通讯录中的记录。题目 6猴子选大王问题描述:一堆猴子都有编号,编号是1,2,3 .m ,这群猴子( m 个)按照 1-m 的顺序围坐一圈,从第 1 开始数,每数到第N 个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。功能要求:输入数据:输入m,n m,n 为整数, n<m输出形式:中文提示按照m 个
11、猴子, 数 n 个数的方法, 输出为大王的猴子是几号,建立一个函数来实现此功能。编程提示:用循环队列实现。题目 7文本文件单词的检索与计数问题描述:建立一个文本文件, 每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;统计给定单词在文本文件中出现的次数;检索输出某个单词出现在文本中的行号、在该行中出现的次数以及位置。功能要求:1) 建立文本文件,文件名由用户用键盘输入;2) 给定单词的计数, 输入一个不含空格的单词,统计输出该单词在文本中的出现次数;3) 检索给定单词,输入一个单词,检索并输出该单词所在的行号、该行中出现的次数以及在该行中的相应位置。编程提示:关键是对字符数据结构(字
12、符串)进行操作。题目 8小型文本编辑器问题描述:实现一个类似于记事本的文本编辑器。功能要求:1)具有图形菜单界面;2)查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除3)可正确存盘、取盘;4)正确显示总行数。编程提示:关键是对字符数据结构(字符串)进行操作。题目 9校园导航问题问题描述:设计一个校园导游程序,为来访的客人提供各种信息查询服务。功能要求:(1) 设计城市学院的校园平面图,所含景点不少于10 个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。(2) 为来访客人提供图中任意景点相关信息的查询。(3
13、) 为来访客人提供图中任意景点的问路查询, 即查询任意两个景点之间的一条最短的简单路径。(并且景点不重复)编程提示:本题是求某个源点到其余顶点之间的最短路径。可由Dijkstra 算法求得。实训 10排序问题问题描述:利用随机函数产生N 个随机整数( 2000 以上),对这些数进行多种方法进行排序。功能要求:1)至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。并把排序后的结果保存在不同的文件中。2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。3)如果采用 4 种或 4 种
14、以上的方法者,可适当加分。编程提示:本题的关键是:1)随机数产生函数;2)程序运行时间统计函数。题目 11男女搭配问题问题描述:一班有 m 个女生, 有 n 个男生 (m 不等于 n),现要开一个舞会。男女生分别编号坐在舞池的两边的椅子上, 每曲开始时, 依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着等待下一曲找舞伴。功能要求:请设计一系统模拟动态地显示出上述过程,要求如下 :1)输出每曲配对情况;2)计算出任何一个男生(编号为 X) 和任意女生 (编号为 Y), 在第 K 曲配对跳舞的情况。至少求出K 的两个值。编程提示:本题用两个队列求解比较方便,一个男生队列,一个女生队列。题
15、目 12 交通咨询模拟系统问题描述:设计一个交通咨询模拟系统,能够让游客从任意一个城市到另外一个城市之间找到最短路径或者花费最低的路径,或者用时最少的路径。功能要求:1) 建立交通网络图的存储结构。2) 解决单源的最短路径问题。3) 实现任意两个城市之间的最短路径问题。如下图就是一个简单的交通网络,网络上的数字表示了各城市之间的路径长度。北京2553西安511郑州704349徐州8126511579成都23681385广州上海题目 13 约瑟夫生者死者游戏问题描述:约瑟夫游戏的大意是:每30 个旅客同乘一条船,因为严重超载,加上风高浪大,危险万分; 因此船长告诉乘客,只有将全船一半的旅客投入还
16、中,其余人才能幸免遇难。无奈,大家只得同意这种办法,并议定30 个人围成一圈,由第一个人数起,依次报数,数到第9人,便把他投入大海中,然后再从他的下一个人数起,数到第9 人,再将他扔进大海中,如此循环地进行,直到剩下15 个乘客为止。问哪些位置是将被扔下大海的位置。性能要求:必须分别采用顺序和链表两种方式分别实现,为了不失一般性,将30 改为一个任意输入的正整数N ,而报数上限(原为9)也为一个任选的正整数K 。编程提示:【采用顺序表】为了解决这一问题,可以用一个长度为30 的数组作为线性存储结构,并把该数组看成是一个首尾相接的环形结构,那么每投入大海一个乘客,就要在该数组的相应位置做一个删除
17、标记,该单元以后就不再作为计数单元。这样做不仅算法较复杂,而且效率低,还要移动大量的元素。【采用单循环链表】首先要定义链表结点,单循环链表的结点结构于一般单链表的结点结构完全相同,只是数据域用一个整数来表示位置;然后将它们组成一个具有30 个结点的单循环链表。 接下来从位置为1 的结点开始数, 数到第 8 个结点,就将下一个结点开始数起,数到第 8 个结点,再将其下一个结点删去,如此进行下去,直至剩下15 个结点为止。题目 14 学生信息管理问题描述:设计一个简单的学生信息管理系统功能要求:1)建立学生信息管理的数据文件至少包括:学号、姓名、年龄等stud.dat;文件中至少包含 15 个学生
18、的信息;每个学生 5 项内容(另 2 项自定),当再次运行程序时从该文件中读取数据;2)可以添加(插入、追加)学生信息;3)可以修改某个学生的某项信息。编程提示:1)参照附录 2:关于文件操作。2)学生信息管理的数据文件中的数据,建立一个索引: 每个学生信息记录在索引中有一个索引项,其包含该学生的学号、记录的位置(即记录在文件中的序号);索引文件采用平衡二叉( AVL )树。程序应能根据输入的学号通过索引进行查找;并且,你所建立的索引需要保存到文件中,以便重复使用。题目 15 学生成绩管理系统问题描述:在学生成绩管理中,经常会遇到求平均成绩,统计不及格学生成绩,统计优秀学生人数,以及按成绩对学
19、生进行排名等。现假设有某个班级的若干名学生,每个学生都考试完成了4门课程,试对所有学生的成绩完成以下工作:( 1)求每门课程的平均成绩。( 2)输出所有有不及格课程的学生的学号、姓名、全部课程的成绩、平均成绩。(3)输出所有平均分在90 分以上(含90 分)的学生学号、姓名。(4)对 4 门课程中的任何一门,可随意抽取功能要求:1 门按学生成绩进行排序。1、 对学生信息的查找、插入、删除、修改。2、 分别输出优秀学生和不及格学生的信息。3、显示每们课程的平均成绩。4、任意抽取一门课程后,可以按该课程学生成绩对学生信息进行排序题目 16 单位员工通讯录管理系统(线性表应用)问题描述:为某个单位建
20、立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。编程提示:可以采用单链表的存储结构,如可定义如下的存储结构:typedef struct /* 员工通讯信息的结构类型定义*/char num5;/* 员工编号*/char name10;/* 员工姓名*/char phone15;/* 办公室电话号码*/char call15;/* 手机号码*/DataType;/* 通讯录单链表的结点类型*/typedef struct node DataType data;/* 结点的
21、数据域*/struct node *next;/* 结点的指针域*/ListNode,*LinkList;题目 17 教学计划编制问题(图的应用)问题描述:大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两学期, 每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。编程提示:1、 输入参数应包括:学期总数,一学期的学分上限,每门课的课程号(可以是固定占3 位的字母数字串) 、学分和直接先修课的
22、课程号。2、 应允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中。3、 若根据给定的条件问题无解,则报告适当的信息;否则将教学计划输出到用户指定的文件中。计划的表格格式可以自己设计。4、 可设学期总数不超过12,课程总数不超过100。如果输入的先修课程号不在该专业开设的课程序列中,则作为错误处理。题目 18 电视大赛观众投票及排名系统(排序应用)问题描述:在很多的电视大赛中,通常当选手表演结束后,现场观众通过手中的按键对参赛选手进行投票,然后对选手获得的票数进行统计,从高到低进行降序排序,从而自动产生冠军、亚军和季军。现在要求编写一
23、程序模拟实现上述系统的功能。编程提示:在本例中,首先输入参赛选手的人数(范围为1-9 个),然后根据人数通过malloc 函数来开辟存放选手信息的顺序表。将选手的编号和姓名依此存入顺序表单元中,观众通过按键进行投票,按1为 1 号选手投票,按2为2 号选手投票,以此类推,以按0作为投票结束标志。投票结束后进行排序,在此采用希尔排序,然后为每个选手计算名次,得票相同的名次也相同,( 1)存储类型的定义参赛选手信息存储类型的定义:typedef struct nodechar name8; /* 选手姓名 */int num;/* 选手编号*/int score;/* 选手得分*/int tax;
24、/* 选手名次*/Node;题目 19 药店的药品销售统计系统(排序应用)问题描述:设计一系统, 实现医药公司定期对销售各药品的记录进行统计,可按药品的编号、 单价、销售量或销售额做出排名。编程提示:在本设计中, 首先从数据文件中读出各药品的信息记录,存储在顺序表中。各药品的信息包括:药品编号、药名、药品单价、销出数量、销售额。药品编号共4 位,采用字母和数字混合编号,如:A125 ,前一位为大写字母,后三位为数字,按药品编号进行排序时,可采用基数排序法。对各药品的单价、销售量或销售额进行排序时,可采用多种排序方法,如直接插入排序、冒泡排序、快速排序,直接选择排序等方法。在本设计中,对单价的排
25、序采用冒泡排序法,对销售量的排序采用快速排序法,对销售额的排序采用堆排序法。药品信息的元素类型定义:typedef struct node char num4;/* 药品编号 */char name10; /* 药品名称 */float price;/* 药品单价*/int count;/* 销售数量*/float sale;/* 本药品销售额*/DataType;存储药品信息的顺序表的定义:typedef struct DataType rMaxSize; int length;SequenList;题目 20 通信录查询系统(查找应用)问题描述:设计散列表实现通讯录查找系统。(1) 设每个
26、记录有下列数据项:电话号码、用户名、地址;(2) 从键盘输入各记录,分别以电话号码为关键字建立散列表;(3) 采用二次探测再散列法解决冲突;(4) 查找并显示给定电话号码的记录;(5) 通讯录信息文件保存;(6) 要求人机界面友好,使用图形化界面;编程提示:主函数:根据选单的选项调用各函数,并完成相应的功能。Menu() 的功能:显示英文提示选单。Quit() 的功能:退出选单。Create()的功能:创建新的通讯录。Append() 的功能:在通讯录的末尾写入新的信息,并返回选单。Find() :查询某人的信息,如果找到了,则显示该人的信息,如果没有则提示通讯录中没有此人的信息,并返回选单。
27、Alter() 的功能: 修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。Delete() 的功能:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。List() 的功能:显示通讯录中的所有记录。Save()的功能:保存通讯录中的所有记录到指定文件中。Load() 的功能:从指定文件中读取通讯录中的记录。六、课程设计考核方式课程设计成绩评定的依据有设计文档资料、具体实现设计方案的程序及课程设计考勤登记表,其中平时成绩占总成绩的20%。优:有完整的符合标准的文档,文档有条理、文笔通顺,格式正确,其中有总体设计思想的论述;程序完全实现设
28、计方案,设计方案先进,软件可靠性好;良:有完整的符合标准的文档,文档有条理、文笔通顺,格式正确;有完全实现设计方案的软件,设计方案较先进;中:有完整的符合标准的文档,有基本实现设计方案的软件,设计方案正确;及格:有完整的符合标准的文档,有基本实现设计方案的软件,设计方案基本正确;不及格:没有完整的符合标准的文档,软件没有基本实现设计方案,设计方案不正确。提交的电子文档和软件必须是由学生自己独立完成, 发现相同题目文档雷同者, 教师有权视其情况扣分或记零分。七、提交的资料课程设计报告,按照学号后三位 +姓名且组长在第一个的文件名保存。如: 101 张三 103 李四 109 王五 .doc,其中
29、,李四必须比王五完成的任务要多, 顺序与成绩有关系。具体格式要求,必须严格做到,作为评分重要依据一级标题 :四号、加粗、黑体二级标题 :小四号、加粗、宋体正文:五号、宋体图、表内文字 :小五号、宋体代码:放在单行单列的一个表格内,小五号、Time New Roman ,单倍行距。#include <stdio.h>#include <stdlib.h>#define MAXSIZE 20typedef int ElemType;typedefstruct ElemTypeaMAXSIZE;intlength;SqList;/*/* 数组最大界限/*数据元素类型*/*一维
30、数组子域*/* 表长度子域顺序存储的结构体类型*/*/*/正文的行间距:1.5 倍,段前段后:0 行报告结构,正文内容不超过15 页1 封面(见后面的附录,必须保持整洁)2 目录(自动生成,不能手动输入)3 具体任务安排(分5 个半天写,每个半天谁做了什么工作)如:时间周一上午工作进度表完成工作完成课程设计的需求分析完成人张三、李四组员分工2012XXXX张三(组长)2012XXXX李四2012XXXX王五1、 设计并编写界面部分代码;1 、 和队友共同讨论并优化1、编写课程设计报告和心2、 编写课程设计报告和心得算法;得体会;体会;2、 画算法的程序流程图;2、编写代码3、 算法分析与设计3
31、、测试4 软件开发环境5 算法设计思想及流程图6 源代码 (注:每行代码必须加注释,)7 运行结果8 收获及体会(每人必须写)9 参考文献如:1 严蔚敏 ,李冬梅 ,吴伟民数据结构( C 语言版) M 北京: 人民邮电出版社, 2011.02附录 1东莞理工学院城市学院数据结构课程设计报告题目:班级:2012 级软件工程班小组成员:指导教师:彭义春老师时间:2013.12.2013.12.地点:东莞理工学院城市学院计算机与信息科学系制2013 年 12 月附录 2:关于文件操作C 语言的文件操作主要有三个步骤:(一) 打开文件打开文件使用函数 fopen( “文件名 ”, ”方式 ”);其中,
32、 ”文件名 ”可以是字符串变量表示,它告诉系统要打开的文件的文件名,一般应为文件全名。“方式 ”为打开该文件欲进行什么操作,如“读 ” /r,或者 “写 ” /w等。该函数执行后返回所打开文件缓冲区指针。所以,一般需要:先定义一个文件类型的指针,如:FILE *fp;然后, fp=fopen( “D:mydata.dat ”, ”w”);若打开不成功,则指针值为NULL 。(二)文件读写读/ 写文件主要有如下几组函数:( 1) fprintf(fp, 格”式描述串 ”,<输出列表 >);- 写数据到文件fscanf(fp, 格式”描述串 ” ,<变量列表 >);- 从文
33、件读数据( 2) fwrite( 数”据缓冲区地址 ”,记”录字节数 ”,记”录数 ”,fp);- 写记录数据到文件(二进制)fread( 数”据缓冲区地址” ,记”录字节数 ” ,记”录数 ” ,fp);- 从二进制文件中读数据( 3) fputc(); 和 fgetc();读 /写数据为字符类型。当把文件中的数据读到内存后,可以对其中的数据进行所需要的操作(如通过赋值语句等对先观数据进行修改等) 。这阶段看作是对文件数据进行实质性操作的阶段。(三)关闭文件关闭文件用函数:close(fp);其中, fp 为你所要关闭的文件指针,当一个程序中对多个文件进行操作时,特别注意不要关闭不希望关闭的
34、文件。此外,数据存储到文件中时,数据的存储格式也有不同,即通常所说的“文本文件 ”和 “二进制文件 ”。下面给出一些示例:例一将 0-14 这15 个整数存入文件stud2.dat#include <stdio.h>#define max 15/* 以文本方式存储15 个整数 */void save_dat()FILE *fp;int i;if(fp=fopen("d:stud2.dat","w")=NULL) printf("cannot open filen"); return;for(i=0;i<max;i+)
35、fprintf(fp,"%d",i);printf("Data file savedn");fclose(fp);main()save_dat();当用记事本打开数据文件 stud2.dat,可以看到 0-14 这 15 个数以字符(文本)格式存储在文件中,并且,这 15 个数据是紧挨着存储的 -当再用 fscanf( “%d”,&i)从该文件中读取这些数据时、将不能正确读取、故需要注意数据存储格式。-可以修改fprintf()为:for(i=0;i<max;i+)fprintf(fp,"%6d",i);这样,每个整数占
36、6 位宽度,存储时各数据之间就留有空格,再用fscanf(取时,每个空格将成为数据的分界符;但是,如果将fscanf( “%d”,&i)修改为fscanf(“ %d,”),&i/*多一个逗号 */“%d”,&i)读那么,在读取数据时,将按格式描述串中约定的逗号作各个数据之间的分隔符,此时,需要将存储文件是的 fprintf() 对应地修改为:for(i=0;i<max;i+)fprintf(fp,"%d,",i);用该语句存储数据的结果 (从记事本打开看) ,可以看到每个数据之间也存储了逗号 (最后一个数据之后也有逗号) 。当然,这 15 个整
37、数也可以以二进制格式存储到文件中,如下程序即是:#include <stdio.h>#define max 15/* 用二进制方式存储0-14*/void save_dat()FILE *fp;int i;if(fp=fopen("d:stud3.dat","wb")=NULL) printf("cannot open filen");return;for(i=0;i<max;i+)fwrite(&i,sizeof(int),1,fp);printf("Data file savedn")
38、;fclose(fp);main()save_dat();stud3.dat,所看到的数据就不再是ASCII 码格式,而是运行该程序并用记事本打开文件以整数的内码(二进制补码)存储的了。因此,也只能采用对应的语句(fread)读取数据。例二存储记录(结构体)数据以下程序是定义了学生信息结构体,然后输入4 个学生信息、存入文件d:stud1.dat#include <stdio.h>#define size 4/* 建立学生信息 -结构体 -数据文件 */struct stud_type char name10; int num,age; char addr15;studsize;v
39、oid save_dat()FILE *fp;int i;if(fp=fopen("d:stud1.dat","wb")=NULL) printf("cannot open filen");return;for(i=0;i<size;i+)if(fwrite(&studi,sizeof(struct stud_type),1,fp)!=1)printf("file write error!n");fclose(fp);main()int i;printf("please Enter students information:n");for(i=0;i<size;i+)scanf("%s%d%d%s"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三年级词语搭配练习题
- 2026年宁夏小升初语文(真题)试卷及参考答案
- 2026年黑龙江哈尔滨市中小学教师招聘考试考试题库(含答案)
- 理科单招试题及答案
- 整车厂涂装废气RTO处理项目可行性研究报告
- 天津市河东区第七中学2025-2026学年高二年级第二学期5月月考英语试题(文字版含答案)
- 高中数学解题中的21个典型方法与技巧
- 2026届宜昌市高考语文倒计时模拟卷含解析
- 山东烟台市2025-2026学年第二学期高一期末自主练习+英语答案和解析
- 黔西南布依族苗族自治州册亨县2025年数学三年级下学期期中质量检测模拟试题含答案
- 2026重庆市璧山区七塘镇人民政府招聘非编聘用人员1人笔试备考试题及答案解析
- 220KV输电线路工程外包管理方案
- 2026年广告设计师全国统一考试大纲解析试题及真题
- 电力工程项目投标文件撰写模板
- GCP汇报课件教学课件
- 平房灭火救援授课课件
- 判决书不公开申请书模板
- GB/T 5780-2025紧固件六角头螺栓C级
- 《施工组织设计专项施工方案资料》铁路客运专线土建工程全套施工组织设计第八章-安全目标和安全保证体系及措施
- T/CBMCA 011-2020瓷质砖背胶
- DB4201-T 704-2024 武汉市党政机关物业管理服务规范
评论
0/150
提交评论