- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
综合实验一: 分栏程序.doc
综合实验一: 分栏程序
分栏程序是对指定的源文件分栏、加行号显示在屏幕上,并保存为新文件。请综合运用C语言的基本知识,开发该程序,要求实现如下基本功能:
输入(源文件名、目标文件名);
程序中设定分栏数、栏宽、每页行数等;
分栏、编号(读出源文件对文件进行分栏、编号排版显示在屏幕上);
保存(将新分栏排版后的文档用目标文件名保存)。
完成上述基本功能后,将程序中分栏数、栏宽、每页行数等常数改为如下两种形式输入:
以菜单形式提示每页栏数、每行、每栏横向字符数、每页行数及每页上下留空行数等数据的输入,以键盘接收的信息作为参数。
从命令行给出参数,比如命令行的形式为:执行程序 分栏文件名 栏数 页宽 栏宽 行数 页上下留空数,其余参数可缺省,若缺省,则以预定的信息为参数。
在编译、连接与运行程序的过程中,应充分利用调试方法与工具,同时不断总结编写和调试较大型程序的经验与体会,按设计的要求写出设计报告。
实验目的
掌握结构化程序设计的基本思想;
掌握宏定义的使用;
熟练掌握数组、文件指针的设计和应用;
熟练掌握文件的存取方法;
掌握C语言程序的综合应用。
基本数据结构设计:
设定每行字符宽度,每栏字符数,每栏左右分别留的空格数。
用一个三维数组来存放每页的字符,其数组大小为栏数*每栏行数*每行字符数。
将分栏编号排版后的文档作新的文件方式保存。
常量定义及数据结构定义如下:
#define LW 80 /* 每页总字符宽度 */
#define COL 2 /* 每页栏数 */
#define CW LW/COL-空格数 /* 每栏字符宽度 */
#define PLN 60 /* 每页行数 */
#define BLN 3 /* 每页上下留空行数 */
char cbuff[COL][PLN][CW];
程序结构设计:
程序设计采用自顶向下的结构化方法,将每个模块自顶向下展开,根据功能要求设计功能模块结构如下:
模块设计:
1.分栏主程序模块
在这个模块中定义了基本的数据结构和全局变量,使各个模块之间有机的联系起来。主程序开始阶段需要打开源文件,源文件名、目标文件名通过键盘输入给出,调用processfile()函数对源文件进行处理。
处理源文件模块
读入源文件放入文件缓冲区,判断文件是否结束,文件没有结束,用一个二维数组(一维表示栏,一维表示行)存放行号;如果字符不是换行符且也不是文件结束符,将字符放入一三维数组(栏、行、序号)中,如果栏行字符数满了,二维数中放一个整数零。
输出、保存分栏文件模块
如果处理的字符满一页,就进行输出,先输出页眉,然后初始化存放分栏数据的一维数组,将两维数组中的整型数行号转为字符放入一维数组,再将字符逐一放入一维数组,输出一维数组,最后输出页脚,同时将字符逐一写入目标文件。
逐页输出,每页先输出页眉空行,然后输出分栏后文档,并写入目标文件中,最后输出页脚空行。
综合实验二 图书管理系统
综合运用C语言的基本知识和程序设计方法,开发一个简单的图书管理系统。具体功能要求如下:
图书管理:增加图书、修改图书、删除图书、统计图书;
借阅管理:查找图书、借阅图书、归还图书、借阅图书统计;
读者管理:申请读者卡、删除读者卡、修改读者卡;
馆员管理:添加管理员、修改管理员信息、删除管理员。
根据以上功能说明,设计馆员信息、读者信息、读者卡信息、图书信息的存储结构,数据存储在文件中,界面要求有合理的提示,每个功能可以设立菜单,根据提示可以完成相关的功能要求。在编译、连接与运行程序的过程中,应充分利用调试方法与工具,同时不断总结编写和调试较大型程序的经验与体会,按设计的要求写出设计报告。
实验目的:
掌握结构化程序设计的基本思想;
熟练掌握结构以及指针的设计和应用;
熟练掌握文件的存取方法;
了解综合系统设计的基本原理;
提高C语言程序设计的综合应用能力。
基本数据结构设计:
1. 数据结构设计需要满足的要求为读者卡的办理、图书借阅情况的记录、图书的查找、馆员的管理及各项数据的统计输出的要求;图书数据结构设计的目的是为图书的统计、查找、借阅及库存统计提供支持;读者卡数据结构设计的目的是为读者注册以及记录图书借阅情况提供查询支持;读者数据结构设计的目的是为图书借期、还期提供准确的数据依据。
2. 在设计系统时,充分考虑图书和读者数量,采用数组方式,方便数据的删除修改,数据不易破坏。数据采用文件方式保存。
struct reader /*读者类型*/
{
int cardnum;
char readername[10];
}r
文档评论(0)