




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告数据结构学 院 名 称 专 业 年 级 学 生 姓 名 学 号 任 课 教 师 二 一五 年 三 月吉林财经大学管理科学与信息工程学院数据结构课程设计期末成绩评分表学生姓名专业班级学 号课程设计题 目1数据库管理系统2大整数计算器3电文的编码和译码4校园导航评价指标评 价 要 点分 值评 分平时实验(1)保证出勤;(2)认真调试程序;(3)不做与课程设计无关的工作;(4)虚心与同学讨论问题20实验报告(1)文字表达流畅;(2)论文格式符合规范要求;(3)论文中有检测数据;(4)篇幅符合要求;(5)书写格式规范20程序质量(1)程序符合模块化设计思想;(2)代码中注释清晰;(3)程序整体装配合理;(4)利用外部文件存储数据40现场答辩(1)自述程序功能(2)程序功能演示(3)回答教师问题(4)临时突发问题解决能力20总 分100学术道德本项指标实行一票否决制:凡经认定为抄袭、雷同,论文即按不及格处理评价等级:教师签名: 年 月 日第一题课题内容和要求课题内容当今计算机技术飞速发展,信息管理领域日益扩大,数据库已被广泛应用于各个领域,它用科学的方法管理和处理数据,给人们的生活带来了巨大变化。用户建立自己的数据库,更能提高管理工作的效率,综合运用数据结构和C语言知识,建立一个数据库管理系统,能够让用户自己定义、创建和控制数据库。课题要求设计一个数据库管理系统,用户可以使用特定的命令自行定义和创建数据库,能够对数据库实现插入(追加)、浏览、浏览定位、按条件修改、按条件排序、删除和全部删除等功能,并能保存数据库信息到指定文件以及打开并使用已存在的数据库文件,但库结构定义后不允许修改。课题设计思想数据库管理系统对数据实行追加、浏览、按条件删除等命令都是按次序来进行的,由此可以判断我们可以用单链表的数据结构来设计本套数据库管理系统。使用的单链表的数据结构为:typedef struct LNode/定义单链表的节点类型ElemType data;/存放单链表的元素值struct LNode *next;/指向后继节点LinkList;执行各种命令时都可以将特定的指针定位到相应的位置,可以对相应位置的字段进行相应的操作,例如追加字段就是将指针定位到最后一个字段,删除字段就是将指针定位到特定字段内容处等等。问题分析主要思想首先定义一个单链表的结构用来存储数据库结构的每一条字段,然后再定义一个结构体数组以便在调用操作函数时用这个结构体数组来进行其他灵活操作。接下来编写主函数,在主函数的函数体中,首先调用Help()函数,以便展示数据库管理系统的各种操作命令,然后出现让用户输入命令的提示符。用户输入命令后可以进入各个编写的函数模块,对自己的数据库系统进行操作。当输入quit命令时退出数据库管理系统。数据结构的伪代码为:typedef struct _node /*定义数据库的类型*/ char data110;/*存储输入的数据*/ char type110;/*存储输入的数据类型*/ struct _node *next;Linklist;数据库的建立和存储数据库管理系统由数据库的结构和数据库的内容组成。由于呈现在我们眼前的数据库的数据是类似一个表的形式,所以我们可以定义一个字符型二维数组wjij来存储。这样,二维数组的第0行存储数据库管理系统的结构,即数据库的表头。其中,二维数组wj00自动存储字段名为“编号”的字符。时间复杂度为:O(n)数据库数据的添加当输入“append”命令时,主函数调用append添加函数,此时,需要在二维数组的最后一行进行存储和各种操作,程序执行时显示每一行对应的表头,后面就可以输入可添加的数据。每输入一行,编号值自动加1。时间复杂度为:O(com)数据库数据的查找先用go命令定位到指定编号的字段,再用disp命令来展示隶属该编号下所有字段的值。时间复杂度为:O(com)数据库信息筛选信息筛选主要靠locate命令,执行该命令时,将命令划分成3部分,分别是locate、for和for后面对应的字段。设计要求中有很多命令的执行都是同一种结构,即“命令+for+字段名=“字段内容”。所以首先要对命令进行筛选,看执行的是哪种命令,然后看输入的命令符不符合命令的格式,所以就划分了后面两个部分。再进行对应的筛选,先找到对应的字段名,再在对应的字段名下的字段进行筛选,如果遇到符合条件的字段则打印出来。时间复杂度为:O(row*com)数据库信息删除执行命令的过程和信息筛选的差不多,只是最后遇到符合条件的字段不是将它打印出来,而是直接删除掉。时间复杂度为:O(row-1-dingwei)*com);数据库信息的修改执行命令的过程和删除的差不多,但是最后遇到符合条件的字段时略有不同,当遇到符合条件的字段时,先进入该字段的存储,分别修改对应的字段名下字段的值,修改完毕后,打印修改成功。时间复杂度为:O(row-1-dingwei)*com);数据库信息的排序该命令运行时,也要将命令行字符划分为3部分,分别是sort on、字段名和/a(或/d)。先判断输入的命令,然后寻找对应的字段名,如果没有对应的字段名,则打印没有对应字段名。接下来再进行判断是要进行升序操作还是降序操作,最后再进行排序。时间复杂度为:O(row*row)数据库文件的打开和关闭运用文件的相关函数将创建数据库文件。时间复杂度为:O(1)概要设计伪代码描述如下:1) 构建一个二维数组wj00来存储数据库的数量:2) 屏幕上显示数据库的操作;3) 手动生成数据库的结构;4) 建立数据库的节点结构,用于存储数据库的节点;5) 建立完成后实现对数据库的各种操作;本程序包含以下几个函数:1. void Switch(char bian,int num) /*把数字转换为字符数组*/2. void Help()/*输出执行操作的各项命令,帮助用户正确使用各项命令*/3. void CreateStruct(Linklist *database,int *length)/*建立数据库的结构*/4. void Open(char app,int *com,int *row,char bian, char fabian)/*打开数据库文件并且将文件中的数据存入结构体二维数组中*/5. void append(char bian,int fanlen,char fabian,int bianlen,int *com, int *row )/*追加记录*/6. void Display(char mem,int *com,int *row)/*浏览写进数组中的数据*/7. void DispGo(int go,int *com,int *row)/*浏览指定位置的数据*/8. void Delete(char mem,int *com,int *row)/*删除函数*/9. void Locate(char mem,int *com,int *row)/*筛选特定字段的函数*/10. void Change(char mem,int *com,int *row)/*修改字段的函数*/11. void Px(char ziduan,char ch,int *com,int *row)/*排序函数*/12. void Sort(int *com,int *row)/*判断是升序还是降序的函数*/13. void Close(char secondinput,int *com,int *row,char mem,char bian)/*关闭函数*/流程图图1 数据库的创建和存储流程图图2 浏览数据库内容流程图图3 数据库内容添加流程图图4 浏览定位内容流程图图5 删除字段函数流程图图6 筛选定位函数执行流程图图 7 修改字段函数执行流程图伪代码描述Begin:If ( input = creat )creat 数据库;if (input =append) input 17:1$、2$.7$;type is “string” ;if ( input = brows)显示全部信息if(input= append)添加或追加信息if( input = go number (eg:go 1) ) then “disp”显示当前行信if ( input = locate for 字段名=字段内容)定位if (input = delete for 字段名=字段内容 )删除行if (input =zap )全部删除If (input = change for 字段名=字段内容 )更改信息If (input = sort on 字段名/a | 降序: sort on 字段名/d )排序If ( input =help )帮助END测试和分析1. 帮助界面:2. 当使用Create函数时会出现如下界面:3. 使用Append命令追加数据时,会出现如下界面:4. 使用Brows命令浏览数据库信息时,会出现如下界面:5. )使用go命令进行定位,并使用disp命令浏览定位信息时会出现如下界面:6. 使用locate for命令,按条件定位数据。界面如下:7. 使用delete命令,按条件删除数据时,会出现如下界面,再用brows命令显示结果:8. 使用sort on命令,按字段进行排序时会出现如下界面,注意默认为升序排序:9. 降序排序界面:10. 使用change for命令,按条件修改数据时,会出现如下界面,按提示修改即可:11. 使用zap命令删除数据库中的全部数据时会出现如下界面:12. 使用/use命令关闭数据库:13. 使用quit命令退出系统。界面如下:出现问题l 程序运行时,添加命令当编号大于10时,会出现重复编号的情况;l 删除命令时,当出现两个相同的字段时,只会删除第一个字段,而不会删除第二个字段。第二题课题内容设计一个计算器,范围是200位以内的整数。课题要求设计程序实现两个大整数的四则运算,输出这两个大整数的和、差、积、商及余数课题设计思想由于计算的整数范围太大,有些整数计算机无法表示,故我们可以使用字符型数组存储计算后得到的结果。整数计算的过程和对顺序串操作的过程有一些类似,所以可以用顺序串的数据结构,即:#define MaxSize 100typedef struct char dataMaxSize; int length; SqString;来编写相关程序。问题分析:本题是进行200位以内的整数的相关计算,由于数值太大 ,所以可以创建三个数组,分别用来存储第一个整数,第二个整数和两个整数运算后得出的结果。有些整数太大,计算机计算出结果后并不能显示,所以我们可以将输入的一个数的每一位数当成字符存储起来,两个整数1位1位进行运算,这样就可以显得方便许多。所用数据结构的伪代码为:加法运算程序本程序运行时,进行两数的相加,由于整数太大,所以我们可以1位1位进行相加,加出结果后,可以将得出的进位,即除10得到的数加到下一对数的运算。需要注意的是,再程序的开始对输入的两个整数进行长度的比较,取的是长度较小的数的长度,这样方便运算,可以让输入的两个数在做完同等长度的数值运算再做剩余的位数的运算,这样保证了运算的简便性,不用纠结在运算时取多大的长度。时间复杂度为:O(i);减法运算程序程序运行时同加法运算的过程差不多,只不过从1位1位加变成1位1位减,这时候判断大小的函数派上用场,可以使用它来判断得出的结果是正的还是负的。时间复杂度为:O(i-1)乘法运算程序运算程序的过程同加减法差不多,按位加变成按位乘。时间复杂度为:O(lenR*lenD);除法运算程序除法运算的过程略有不同,从最大1位开始,每一位和除数做运算,做完运算得到的余数和下一位的数连接起来,再做运算,直到运算到被除数的最后一位为0为止。时间复杂度为:O(strlen(dividend)-1);程序包含的函数如以下:1. int panduan(DataType *a,DataType *b)/判断输入的数中有没有小数2. int Compare(const DataType *a,const DataType *b)/两个整数长度比较的函数3. void DivisionInt(DataType *dividend, DataType *divisor, DataType *quotient, DataType *remainder)/除法运算函数4. void MultiplicationInt(DataType *multiplicand, DataType *multiplier, DataType *product)/乘法运算函数5. void SubtrationInt(DataType *minuend, DataType *subtrahend, DataType *difference)/减法运算函数6. void AdditionInt(DataType *augend,DataType *addend,DataType *sum)/加法运算函数流程图图8 加法算法流程图图9 减法算法流程图图10 乘法算法流程图图11 除法算法流程图伪代码加法Begin加数与被加数字符串 A B逆序存储A、B于C D求较长的字符串的长度lenWhile i9 SUMI+1+ END IFI+END WHILE逆序存储SUM于SUM2返回SUM2End减法Begin减数与被减数字符串A B逆序存储A B于 C D判断减数与被减数谁大IF 被减数小于减数C D的对应字符相减,存于 SUMIF SUMi0 SUMI+1I+SUMI=-ELSE C D的对应字符相减,存于 SUMIF SUMi0 SUMI+1I+返回SUMEnd乘法Begin乘数与被乘数字符串 A 、B结果为CP使结果为0I=0While i乘数的长度进位carry=0J=0While j被乘数的长度Mul=AI*BJ+CARRYCPJ=mul%10Carry=mul/10获取最后一个进位去掉多余的0逆序存储相应结果左移调用加法函数前后相加返回结果End除法Begin除数与被除数字符串A BBuf2逆序存储每一位数IF A=BReturn 1If ABReturn 0Else使product值为空While i被除数长度接上被除数的一位数,改变当前余数调用减法函数连减试商记录每一位得到的商值使product的值为空,去掉多余的0返回结果End分析和测试第三题课题内容从键盘接收一串电文字符,输出对应的Huffman编码。同时,能翻译由Huffman编码 生成的代码串,输出对应的电文字符串。课题要求l 构造一棵Huffman树。l 实现Huffman编码,并用 Huffman编码生成的代码串进行译码。l 程序中字符和权值是可变的,实现程序的灵活性。设计思想题目明显意见,我们可以使用哈夫曼的相关函数和变量来对题目的相关要求进行实现。哈夫曼树结点的结构 typedef struct DataType data; / 数据用字符表示 int weight; / 权值 int parent; / 双亲 int left; / 左孩子 int right; / 右孩子 HuffNode;哈夫曼编码的存储结构typedef struct DataType cdMAXNUM;/ 存放编码位串 int start; / 编码的起始位置 HuffCode;问题分析本题可利用哈夫曼树的相关函数来完成此题的相关要求。建立哈夫曼树该算法执行的时间复杂度为:O(n2)哈夫曼编码该算法执行的时间复杂度为:O(n)哈夫曼译码:该算法执行的时间复杂度为:O(n2);程序实现的相关函数如下:int HuffmanCreate(HuffNode *ht)/建立哈夫曼树void Encoding(HuffNode ht,HuffCode hcd,int n)/ 哈夫曼编码void Decoding(HuffNode ht,HuffCode hcd,int n)/ 哈夫曼译码流程图图12 建立哈夫曼树算法流程图图13 哈夫曼编码流程图译码过程是编码的逆过程,算法流程图此处省略。伪代码测试和分析1. 建立哈夫曼树:2. 哈夫曼编码:3. 哈夫曼译码:第四题课题内容当我们参观某校园时,就会遇到这样一个问题:从当前所处的位置出发去校园另外某个位置,要走什么样的路线距离最近(或最省时)?本课程设计实例在给出校园各主要建筑的名称信息及有路线连通的建筑之间的距离(或行进时间)的基础上,利用校园导航系统计算出给定的起点到终点之间距离最近(或进行时间最短)的行进路线。课题要求l 从地图文件中读取校园主要建筑信息及建筑间的距离(或行进时间)信息。l 计算给出定的起点到终点之间距离最近(或行进时间最短)的行进路线。l 输出该路线(包含路过哪些建筑)及其总距离(或总行进时间)。l 若输入错误,则给出提示信息。问题分析本题可利用狄克斯特拉算法算法的相关函数来完成此题的相关要求。读入校园网要求执行时需要建立1个文档文件,并置文件属性为可读,并将文件中的字符读入到文件中。执行该算法的时间复杂度为:O(n)最短路径查找迪克斯特拉算法的执行。该算法的时间复杂度为:O(m+nlogn)程序实现的相关函数如下:void Init(GraphMatrix *g)/ 初始化有向网,读入校园地图文件 void Dijkstra(GraphMatrix *pgraph, Path dist,int start)/狄克斯特拉算法的执行流程图图14 校园网读入新建数组流程图图15 狄克斯特拉算法流程图伪代码typedef struct int n; /* 图的顶点个数 */ VexType vexsMAXVEX; /* 顶点信息文字*/AdjType arcsMAXVEXMAXVEX;/*边信息 */ GraphMatrix;typedef struct/* 保存最短路径的结构体 */AdjType len;/* 最短路径长度 */ int pre;/* 前一顶点 */Path;Then read “campusnav.txt”读入网的顶点个数构造顶点向量初始化邻接矩阵Dijkstra算法在文件中查找路径测试和分析经过测试得知该程序查找正确。总程序1、问题描述将四个题目放在一个大程序中完成2、设计要求程序中要有菜单选择进入各个子功能,最好做到两级以上的菜单。能够利用文件处理的一定要用文件进行数据的存储。3、解题分析设计界面,并调用各个功能模块的主调用函数。4、数据结构描述switch(j)case 1:program1();break;case 2:program2();break;case 3:program3();break;case 4:program4();break;case 5:exit(0);5、算法流程图描述6、算法复杂度分析主函数的时间复杂度为O(1)。7、测试数据(1)主界面:(2):选择功能界面:附录程序清单总程序#include#include int program1(); int program2(); int program3(); int program4();int main()int c,a;printf(*请选择要进行的操作* n);printf(*1:程序功能选择 * n);printf(*2:退出 * n);while(1)scanf(%d,&c);if(c!=1&c!=2)printf(程序功能输入有误,请再输入一次。);scanf(%d,&c);else if(c=1)printf(*请选择要进行的功能* n);printf(*1:数据库管理系统 * n);printf(*2:大整数计算器 * n);printf(*3:电文的译码和编码* n);printf(*4:校园导航 * n);scanf(%d,&a);if(a!=1&a!=2&a!=3&a!=4)printf(您的输入有误,请重新输入! n);scanf(%d,&a);switch(a)case 1:program1();break;case 2:program2();break;case 3:program3();break;case 4:program4();break;else if(c=2)exit(0);scanf(%d,&c);return 0;第一题#include consts.h#include /*文件相关函数*/int length=1;int fangwen=0; int go;/*存储当前指向的记录的编号值*/typedef struct _node /*定义数据库的类型*/ char data110;/*存储输入的数据*/ char type110;/*存储输入的数据类型*/ struct _node *next;Linklist;struct _point char data20; struct _point wj20010;/*定义结构体型的二维数组以便用来与文件进行交互*/char mem110;/*分别存储文件的每一行,再复制给wj数组*/char ch; /*分别接收文件的每一个字符*/int row=0;/*wj数组的行数,也就是数据库中的记录数目*/int lie=0; int com=0;/*记录wj的列数*/int i,j,bianlen,fanlen=0;char member110;char bian100;/*自动生成的编号转换为相对应的字符串*/char fabian100;/*反向存储bian数组*/FILE *fp;void Switch(char bian,int num) /*把数字转换为字符数组*/ int l=0; int n=num; while(1) /*把数转化为相应的字符串并存放到bian数组中*/ if(n=0) break; n=num%10; bianl=n+48; l+; n=n/10; /*(1) 显示帮助界面函数输出命令一览表,帮助用户正确使用命令。*/void Help() printf( *命令一览表*n); printf(* 1,创建数据库命令语法格式-creat databasename *n); printf(* 2,追加字段的命令-mingling *n); printf(* 3,浏览数据库中所有字段命令-brows *n); printf(* 4,go-disp 命令语法格式- go number (eg:go 1) go定位浏览字段,用disp浏览定位的字段 *n); printf(* 5,条件定位命令语法格式- locate for 字段名=字段内容 *n); printf(* 6,按条件删除命令语法格式- delete for 字段名=字段内容 *n); printf(* 7,全部删除命令- zap *n); printf(* 8,按条件修改命令- change for 字段名=字段内容 *n); printf(* 9,按条件排序命令- 升序: sort on 字段名/a 降序: sort on 字段名/d *n); printf(* 10,打开帮助文档命令-help *n); printf(* 11,打开已创建的数据库文件-use 文件名(eg:use 1)*n); printf(* 12,关闭已打开的数据库文件-/use *n); printf(* 13,退出数据库管理系统-quit *n); /*(2)创建数据库函数模块首先为数据库分配内存,输入第0个字段为编号,以后每追加一条数据,都自动对其进行编号,方便之后进行定位,、删除等操作。编写一个while无限循环,引导用户定义字段,包括输入字段名和定义字段类型,直至输入$结束,跳出循环。字段类型可为:string,int,double,。用户每输入一个字段类型,程序调转执行到loop,也是一个无限while循环,判断字段类型是否规范。规范的字段类型包括:string,int,double。所有字段定义结束后,输出定义的全部字段及其类型,方便用户使用。*/void CreateStruct(Linklist *database,int *length)/*建立数据库类型*/ char ch110,type110,tou=编号 0;/*建立库结构时候自动建立编号字段*/ int row,i; database0=(Linklist *)malloc(sizeof(Linklist); strcpy(database0-data,tou);/*建立编号字段*/ strcpy(database0-type,char);/*建立库结构*/ printf(.请输入字段 %d 的名称 以$结束输入n,*length); printf(.); scanf(%s,ch);if(strcmp(ch,$)=0)printf(数据库没有构建成功!);else printf(.请输入字段 %d 的类型(string , int , double) n,*length); scanf(%s,type);loop:while(1) if(strcmp(type,string)=0|strcmp(type,int)=0|strcmp(type,double)=0)/*判断结构类型*/ break; else printf(您输入的类型非法!请重新输入n); printf(.请输入字段 %d 的类型(string , int , double) n,*length); scanf(%s,type); while(1) /*循环输入库结构类型 以$结束输入*/ row=strlen(ch); chrow= ; chrow+1=0; database*length=(Linklist *)malloc(sizeof(Linklist); strcpy(database*length-data,ch); strcpy(database*length-type,type); *length=*length+1; printf(.请输入字段 %d 的名称 以$结束输入n,*length); printf(.); scanf(%s,ch); if(strcmp(ch,$)=0) break; printf(.请输入字段 %d 的类型(string , int , double) n,*length); scanf(%s,type); goto loop;/*如果输入的类型不匹配则跳转到loop*/ for(i=0;idata,databasei-type); /*输入结束时输出数据库字段和类型*/*(3) 打开数据库函数模块以读写模式打开已经存在的文件,将其中数据读到数组ch中,然后将获得的数据按行存入二维数组wj中,。其中,以空格为字段值的分隔符,以回车为行的分隔符。*/void Open(char app,int *com,int *row,char bian, char fabian)/*打开数据库文件并且将文件中的数据存入结构体二维数组中*/ FILE *fp; char ch; char mem110; int lie=0; memset(bian,0,sizeof(bian);/*开始字符型数组初始化*/ memset(mem,0,sizeof(mem);/*开始字符型数组初始化*/ memset(fabian,0,sizeof(fabian);/*开始字符型数组初始化*/ fp=fopen(app,r+);/*打开相应的数据库文件*/ ch=fgetc(fp);/*获得文件中的每一个字符一直到文件末尾*/ while(ch!=EOF)/*把获取的字符按行存入到wj数组里*/ if(ch= ) /*如果遇到空格就把mem复制到wj的一个单元中*/ strcpy(wj*row*com.data,mem); *com=*com+1; memset(mem,0,sizeof(mem); /*把mem复制到wj的一行后初始化mem数组*/ lie=0; else if(ch=n) /*如果遇见回车则结束wj的一行,开始存储下一行*/ *row=*row+1; *com=0;/*列恢复0*/ else memlie=ch; /*把在数据库文件中读出的一行存放在mem数组中*/ lie+; ch=fgetc(fp);/*获取文件的下一个字符*/ *row=*row+1;/*每存完一行行数自加*/ /*(4) 追加数据函数模块首先为追加的数据自动生成编号:若数据库中已存在记录,则追加的数据标号为其上一个数据的编号+1。因此,先取出上一条数据的编号(字符型),将其转化成int型,然后+1,即为追加的数据的编号,再将其转化成字符型,存入数据库。若数据库中没有数据,则追加数据编号为1,存入数据库。其次,编辑for循环,引导用户输入对应字段的数据信息,将其存入数据库,追加数据操作完成。*/void append(char bian,int fanlen,char fabian,int bianlen,int *com, int *row )/*追加记录*/ int i,j,k=1,sum=0; memset(bian,0,sizeof(bian);/*初始化数组的值*/ if(*row1)/*自动生成编号的值*/ j=strlen(wj*row-10.data); for(i=j-1;i=0;i-)/*将数据库最后一条记录的编号值转化为整型*/ sum=sum+(wj*row-10.datai-0)*k; k*=10; sum+;/*追加记录的编号为其最后一条记录的编号加1*/ Switch(bian,sum); else Switch(bian,1);/*将其编号的值转化为相对应的字符串*/ fanlen=0; memset(fabian,0,sizeof(fabian); bianlen=strlen(bian); for(i=bianlen-1;i=0;i-) fabianfanlen+=biani;/*因为转化的字符串为该编号的逆序所以将其反向存贮*/ fabianfanlen=0; strcpy(wj*row0.data,fabian); for(i=1;i*com;i+)/*分别最加各条记录的值*/ printf(请输入:%s ,wj0i.data); scanf(%s,wj*rowi.data); *row=*row+1;/*追加成功后行数自加*/ printf(该数据添加成功!n);/*(5) 浏览数据库函数模块 此模块功能为:格式输出数据库中数据,起到浏览数据功能。首先编写嵌套for循环,记录每个字段值中最长的字段的长度maxlen。然后,再用嵌套for循环输出数据库中数据,按照最长的字段格式输出,不足的字段,以空格补充,使得浏览输出的数据整齐清晰。*/void Display(char mem,int *com,int *row)/*浏览写进数组中的数据*/ int i,j,k,flen,maxlen=-1; memset(mem,0,sizeof(mem); for(i=0;i*row;i+) /*记录每个字段值中最大的程度以便调整输出的格式*/ for(j=0;jmaxlen) maxlen=flen;/maxlen是输出的格式的标准 /输出的星号的个数是字段中含字符个数最多的字段的字符个数值 for(i=0;i*row;i+) /*输出wj中所有的字段内容*/ for(j=0;j*com;j+) printf(%s,wjij.data); for(k=strlen(wjij.data);k=maxlen;k+) printf( ); printf(n); printf(n);/*(6) 浏览定位函数模块DispGo浏览定位的数据,go为浏览定位编号。浏览数据时,首先记录最长字段的长度,以便调整输出格式。然后,以调整好的格式输出第一行,也就是输出数据库的字段名。最后,格式输出指定的编号为go的一行数据。*/void DispGo(int go,int *com,int *row)/*DispGo函数*/ int i,j,k,maxlen=-1,flen; for(i=0;i*row;i+)/*记录每个字段值中最大的程度以便调整输出的格式*/ for(j=0;jmaxlen) maxlen=flen; printf(n); for(i=0;i*com;i+)/*输出wj第一行,也就是数据库类型行*/ printf(%s,wj0i.data); for(k=strlen(wj0i.data);kmaxlen;k+) printf( ); printf(n); printf(n); for(j=0;j*com;j+)/*格式化输出go所指的字段值*/ printf(%s,wjgoj.data); for(k=strlen(wj
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年护士执业资格考试题及答案
- 2025年中草药销售员岗位操作规范考核题目及答案
- 2025年考试灯光模拟题及答案
- 嵌入式工程师硬件开发实操考核试卷及答案
- 2025年医美知识考试题及答案
- 莱阳市事业编考试试题及答案
- 政务服务综合窗口办事员五级技能考试题及答案
- 小型农业企业加盟合作协议
- 企业合同管理与归档工具
- 2025年传染病防控管理政策知识检测答案及解析
- 单位就业人员登记表
- 原始社会的解体和阶级社会的演进统编版高中政治必修1
- 万人计划青年人才答辩万人计划青年拔尖人才课件
- 干部人事档案审核情况登记表
- 【课件】什么是美术作品+课件-2023-2024学年高中美术湘美版(2019)美术鉴赏
- 村级民主议事制度
- 离婚协议书下载电子版完整离婚协议书下载
- GB/T 3098.6-2023紧固件机械性能不锈钢螺栓、螺钉和螺柱
- 入团积极分子培训
- 大众Polo 2014款说明书
- 新媒体运营全套PPT完整教学课件
评论
0/150
提交评论