资源简介
该系统使用C++编程语言实现DBMS系统的基本功能,包括建表,插入,删除,查询,更新表等,基本符合哈工大软件设计开发和实践二的要求。
代码片段和文件信息
#include
#include
#include
#include
#include
using namespace std;
void create_table( string str1 );
void insert_into( string str1 );
void delete_from( string str1 );
void select( string str1 );
void display( char* tablename );
void update_table( string str1 );
int number_of_property(string str); //计算属性的个数
int find_property_place( string cpname_1string tablename_1 ); //返回属性在文件中的位置是第几个
int readmodel(string tablename_1); //找是否有名为tablename_1的表
int complex_condition_ornot( string cpname_1string condition_1string cpvalue_1string shuxing_1);//判断是否满足条件
int check_keyword( string st1char* tablename ); //插入的元组中主键是否已经存在
string yuanzu;
int main()
{
string str1str2;
cout << “*******************Welcom to our database management system!*******************“ << endl
<< endl << “If you want to leave please input:leave.“ << endl << endl
<< endl << “*******************Let‘s open a fantistic database journey!********************“ << endl;
while(1)
{
cout << “sql->“;
getline(cin str1);
if(str1.compare(“leave“)==0)
{
cout << “See you next time!“ << endl;
break;
}
int i=0;
while(str1[i]!=‘ ‘)
i++;
str2=str1.substr(0i);
if( str2.compare( “create“ )==0 )
create_table(str1);
if( str2.compare( “insert“ )==0 )
insert_into(str1);
if( str2.compare( “delete“ )==0 )
delete_from(str1);
if( str2.compare( “select“ )==0 )
select(str1);
if( str2.compare( “update“ )==0 )
update_table(str1);
cout << endl << “******************************************************************************“ << endl;
}
return 0;
}
void create_table( string str1 )
{
char modelstr[50]; //存入model中的表的信息
str1.copy( modelstr str1.length()-13 13 );
modelstr[str1.length()-13] =‘\0‘;
FILE *fp;
if((fp=fopen(“D:\\model.txt““at+“))==NULL)
cout << “can‘t open the file!“ << endl;
fputs(modelstr fp);
fputc(‘\n‘fp);
fclose(fp);
string tmp=modelstr;
int i=0;
while( tmp[i]!=‘(‘ )
i++;
char filename[20];
tmp.copy( filename i 0);
filename[i]=‘\0‘;
char s[30];
sprintf(s “D:\\%s.txt“filename);
if((fp=fopen(s“at+“))==NULL)
cout << “can‘t open the file!“ << endl;
fclose(fp);
}
void insert_into( string str1 )
{
//找出表名
int i=0startend;
string property;
char property1[20];
while( str1[i]!=‘(‘)
i++;
char tablename[20];
str1.copy(tablenamei-1212);
i=0;
while( tablename[i]!=‘ ‘ )
i++;
tablename[i]=‘\0‘;
string tablename_1=tablename; //要插入的table的名字
FILE *fp;
char s[30];
sprintf(s “D:\\%s.txt“tablename);
if((fp=fopen(s“rt“))==NULL)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 998852 2013-11-01 16:14 DBMS_happy\bin\Debug\DBMS_happy.exe
文件 1065 2013-10-25 15:05 DBMS_happy\DBMS_happy.cbp
文件 266 2013-11-01 15:59 DBMS_happy\DBMS_happy.depend
文件 240 2013-11-02 14:39 DBMS_happy\DBMS_happy.layout
文件 41096 2013-11-01 16:14 DBMS_happy\main.cpp
文件 112361 2013-11-01 16:14 DBMS_happy\obj\Debug\main.o
文件 179251 2013-11-01 17:37 DBMS_happy\report.doc
目录 0 2013-11-18 19:33 DBMS_happy\bin\Debug
目录 0 2013-11-18 19:33 DBMS_happy\obj\Debug
目录 0 2013-11-18 19:33 DBMS_happy\bin
目录 0 2013-11-18 19:33 DBMS_happy\obj
目录 0 2013-12-16 21:45 DBMS_happy
----------- --------- ---------- ----- ----
1333131 12
- 上一篇:log4qt qt 日志
- 下一篇:C语言基于socket多人聊天
评论
共有 条评论