資源簡介
這是用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
- 上一篇:ImageBasicDemo.rar
- 下一篇:用c編寫的最小二次方程序
評論
共有 條評論