c语言基于命令行的数据库

上传人:飞*** 文档编号:43753431 上传时间:2018-06-07 格式:DOC 页数:91 大小:205.50KB
返回 下载 相关 举报
c语言基于命令行的数据库_第1页
第1页 / 共91页
c语言基于命令行的数据库_第2页
第2页 / 共91页
c语言基于命令行的数据库_第3页
第3页 / 共91页
c语言基于命令行的数据库_第4页
第4页 / 共91页
c语言基于命令行的数据库_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《c语言基于命令行的数据库》由会员分享,可在线阅读,更多相关《c语言基于命令行的数据库(91页珍藏版)》请在金锄头文库上搜索。

1、#include #include #include #include #include #include#define ORDERLEN 200 #define FILENAMELEN 128 #define TABLENAMELEN 128 #define TEMPLEN 200 #define COLUNMENAMELEN 128 #define STEMPLEN 100extern void Mystrcpy(char *s,char *p); extern char Mystrlen(char *s); extern char * _cdecl Mystrcat (char * ds

2、t, const char * src); extern int _cdecl Mystrcmp (char *src,char *dst); extern void help(); int update(char *Filename); extern int mydelete(char *Filename); extern void getfilename(char *string,char *filename); extern int creat(char *filename); extern void tabfilename(char *string,char *p1,char *p2)

3、; extern void Myprint(); extern int import(char *Table_name,char *Filename); extern int select(char *Filename) ; extern void Mystrlwr(char *s); extern int quit(); extern char *Mystrstr(char *str, char *sub); extern struct Database *Datalist; extern iCount; extern char *Tablename; extern struct Datab

4、asechar *CContent; extern struct Databasefloat *FContent; extern int iDatanum;struct Database char *column_name; int datatype; /1 float 2 char int datalenth;int datanull; /0 代表可以空 1 代表不可以为空 ;struct Databasefloat float fContent; Databasefloat *fnext; ; struct Databasechar char *sContent; Databasechar

5、 *snext; ; extern void help(); int update(char *Filename); extern int mydelete(char *Filename); extern void getfilename(char *string,char *filename); extern int creat(char *filename); extern void tabfilename(char *string,char *p1,char *p2); extern void Myprint(); extern int import(char *Table_name,c

6、har *Filename); extern int select(char *Filename) ; FILE *fp=NULL; char *String=NULL; char *Filename=NULL; char *Table_name=NULL; struct Database *Datalist=NULL; int iCount=0; char *Tablename=NULL; struct Databasefloat *FContent=NULL; struct Databasechar *CContent=NULL; int iDatanum=0; int main( ) M

7、yprint(); char Command; Tablename=(char *)malloc(sizeof(char)*TABLENAMELEN); String=(char *)malloc(sizeof(char)*ORDERLEN); if(String=NULL)printf(“error!“) ;return 0; Filename=(char *)malloc(sizeof(char)*FILENAMELEN); Table_name=(char *)malloc(sizeof(char)*TABLENAMELEN); if(Table_name=NULL)printf(“ER

8、ROR!n“); return 0; printf(“DB1=“); gets(String);while(Mystrcmp(String,“-q“)!=0) /对输入的命令进行判断 Command=String1;switch (Command) case c:getfilename(String,Filename);creat (Filename); /从 Filename 文件里读取命令 行break;case i:tabfilename(String,Table_name,Filename);import(Table_name,Filename);break;case s:getfil

9、ename(String,Filename);select(Filename);break;case u:getfilename(String,Filename);update(Filename);break;case d: getfilename(String,Filename);mydelete(Filename); break;case h:help();break; default:printf(“-please input right order!-n“);printf(“-if you need any help,please input -h-n“); printf(“DB2-“

10、);gets(String); quit(); printf(“-Bye-!n“); free(String); String=NULL; return 0; int creat(char *filename) FILE *fp=NULL;char *sTemp=NULL; sTemp=(char *)malloc(sizeof(char)*TEMPLEN); if(sTemp=NULL) printf(“error!n“); return 1; char ch;int i=0; int j=0; int k=0; int iFlag=0;char *Temp=NULL;Temp=(char

11、*)malloc(sizeof(char)*TEMPLEN); if (Temp=NULL) printf(“error!n“); return 1; char cTemp=0; fp=fopen(filename,“r“); if(fp=NULL)printf(“cant open the file!n“); return 1; while(cTemp=fgetc(fp)!=EOF) if(cTemp=;)iCount+; /统计要建立多少列数据的数据库表; FContent=(struct Databasefloat*)malloc(sizeof(struct Databasefloat)

12、*(iCount+1); /这里多开一列 作为输出时判断列这样可以省好多的代码。 。 。if(FContent=NULL)printf(“error!“);return 1; CContent=(struct Databasechar*)malloc(sizeof(struct Databasechar)*iCount);if(CContent=NULL)printf(“error!“);return 1; for(i=0;ifnext=NULL; CContenti=(struct Databasechar*)malloc(sizeof(struct Databasechar); if(CC

13、ontenti=NULL)printf(“error!“); return 1; CContenti-snext=NULL; FContentiCount=(struct Databasefloat*)malloc(sizeof(struct Databasefloat); if (FContentiCount=NULL) printf(“error!n“); Datalist=(struct Database*)malloc(sizeof(struct Database)*iCount); if (Datalist=NULL) printf(“error!“); return 1; rewi

14、nd(fp);i=0; ch=fgetc(fp); while(ch= ) ch=fgetc(fp);while(ch!= ) Tempi+=ch;ch=fgetc(fp); Tempi=0; i=0; Mystrlwr(Temp); if(Mystrcmp(Temp,“create“)!=0) printf(“format error!n“);return 1; while (ch= ) ch=fgetc(fp); while(ch!= ) Tempi+=ch;ch=fgetc(fp); Tempi=0; i=0; Mystrlwr(Temp); if (Mystrcmp(Temp,“tab

15、le“)!=0) printf(“format error!n“); return 1; while (ch= ) ch=fgetc(fp); while(ch!= ch=fgetc(fp); Tablenamei=0; i=0; while(ch!=() ch=fgetc(fp); ch=fgetc(fp);for(i=0;ifnext=(struct Databasefloat*)malloc(sizeof(struct Databasefloat);if (fnowj-fnext=NULL)printf(“error!n“);return 1;fnowj=fnowj-fnext;fnowj-fContent=atof(Temp);fnowj-fnext=NULL; elsecnowj-snext=(struct Databasechar*)malloc(sizeof(struct Databasechar);if (cnowj-snext=NULL)printf(“error!n“);return

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号