• 大小: 148KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: C/C++
  • 标签: C++  DBMS  源码  

资源简介

这是用C++模拟的一个数据库管理系统,适合初学者学习。

资源截图

代码片段和文件信息

/******************************
 * 数据库实验RDBMS -- TurboSQL *
 * 作者:田敏求                *
 * 班级:计科0305              *
 * 学号:03281138              *
 * 日期:2006.5                *
 *******************************/

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include “TurboSQL.h“

using namespace std;

int main()
{
Table InputTable;
Column InputColumn;
string tempInputStringopstringfilepath;
ifstream inifin;
FILE * tempfp=NULL;
time_t ltime;
int ij;
int NumOfColumnTempStringIndexSemicolonIndex;

cout<<“数据库实验RDBMS --- TurboSQL“< cout<<“计科0305班 田敏求 03281138“< cout<<“Copyright(C) 2006 All rights reserved.“< cout<<“[Version : 1.0]“< time( <ime );
cout<<“Production on “<
inifin.open(“Settings.ini“);
if(!inifin.is_open())
ExceptionProc();
inifin>>rootpath;
inifin.close();

fTABout.open(string(rootpath+“tab.xdb“).c_str()ios_base::out | ios_base::app);
fTABin.open(string(rootpath+“tab.xdb“).c_str()ios_base::in);
if(!fTABout.is_open() || !fTABin.is_open())
ExceptionProc();
while(fTABin>>InputTable.tname)
{
fTABin>>NumOfColumn;
InputTable.Tablefp = NULL;
InputTable.ColumnList.clear();
for(i=0;i {
fTABin>>InputColumn.cname;
fTABin>>InputColumn.attribute;
InputTable.ColumnList.push_back(InputColumn);
}
TableList.push_back(InputTable);

filepath = rootpath + InputTable.tname + “.xdb“;
if((tempfp = fopen(filepath.c_str()“r+“))==NULL)
ExceptionProc();
TableList.back().Tablefp = tempfp;
}
fTABin.clear();


for(i=0;i
while(!feof(TableList[i].Tablefp))
{
for(j=0;j {
if((TableList[i].ColumnList[j].attribute & 1)==0)
{
char * stringkey = new char[100];
fscanf(TableList[i].Tablefp“%s“stringkey);
TableList[i].ColumnList[j].charkey.push_back(string(stringkey));
delete stringkey;
}
else
{
int numkey;
fscanf(TableList[i].Tablefp“%d“&numkey);
TableList[i].ColumnList[j].intkey.push_back(numkey);
}
}
}
rewind(TableList[i].Tablefp);
for(j=0;j {
if((TableList[i].ColumnList[j].attribute & 1)==0)
TableList[i].ColumnList[j].charkey.pop_back();
else
TableList[i].ColumnList[j].intkey.pop_back();
}
}

do
{
InputString.erase();
cout<<“\nSQL>“;

while(cin>>tempInputString)
{
for(TempStringIndex=0;(TempStringIndex = tempInputString.find(“(“TempStringIndex)) != string::npos;TempStringIndex += 3)
tempInputString.replace(TempStringIndex1“ ( “);
for(TempStringIndex=0;(TempStringIndex = tempInputString.find(“)“TempStringIndex)) != string::npos;TempStringIndex += 3)
tempInputString.replace(TempStringIndex1“ ) “);
for(TempSt

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件         67  2006-06-01 10:46  TurboSQL\Data\course.xdb

     文件         90  2006-06-01 10:46  TurboSQL\Data\sc.xdb

     文件         83  2006-06-01 10:46  TurboSQL\Data\student.xdb

     文件        109  2006-06-01 10:46  TurboSQL\Data\tab.xdb

     文件     193024  2006-06-08 18:34  TurboSQL\Doc\数据库实验(RDBMS)文档—计科0305_田敏求_03281138.doc

     文件         17  2006-05-28 23:07  TurboSQL\Settings.ini

     文件      74474  2006-06-26 15:33  TurboSQL\TurboSQL.cpp

     文件       4371  2006-05-25 15:51  TurboSQL\TurboSQL.dsp

     文件        522  2006-05-25 15:48  TurboSQL\TurboSQL.dsw

     文件       1067  2006-06-26 15:33  TurboSQL\TurboSQL.h

     文件      66560  2006-06-26 15:35  TurboSQL\TurboSQL.ncb

     文件      53760  2006-06-26 15:35  TurboSQL\TurboSQL.opt

     文件       4279  2006-06-26 15:35  TurboSQL\TurboSQL.plg

     目录          0  2006-07-15 22:06  TurboSQL\Data

     目录          0  2007-06-06 18:19  TurboSQL\Doc

     目录          0  2007-06-07 19:50  TurboSQL

----------- ---------  ---------- -----  ----

               398641                    17


评论

共有 条评论