数据库管理系统 山东科技大学文档格式.docx
- 文档编号:14487077
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:24
- 大小:364.15KB
数据库管理系统 山东科技大学文档格式.docx
《数据库管理系统 山东科技大学文档格式.docx》由会员分享,可在线阅读,更多相关《数据库管理系统 山东科技大学文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
表名>
[(<
属性列1>
[,<
属性列2>
…)]VALUES(<
常量1>
常量2>
]…)
(2)实现:
UPDATE<
SET<
列名>
=<
表达式>
]…[WHERE<
条件>
]。
四、课程设计相关附件(如:
图纸、软件等):
(1)codeblocks10.05
五、任务发出日期:
2013.6.1课程设计完成日期:
2013.6.25
指导教师签字:
系主任签字:
指导教师对课程设计的评语
2013年月日
一、设计要求:
设计和实现表的物理存储结构;
语句以命令行和图形化界面两种形式实现;
分析设计内容,画出程序流程图,设计表的存储结构;
提交课程设计报告。
二、需求分析:
选择一种高级语言实现一个简单的DBMS
设计实现表的物理存储结构;
三、设计思想:
由命令行输入SQL语句,通过对语句进行语法分析,分离关键字
以*.txt文件存放建立的表,一张表对应一个*.txt文件;
四、程序流程图:
程序主界面(命令行格式):
输入CREATE语句,建表:
输出表的信息:
输入alter语句add,修改:
再输入alter语句alter,修改:
再输入alter语句drop,修改:
退出
(5)主要源程序:
#include<
iostream>
cstdio>
cstring>
cstdlib>
conio.h>
sstream>
io.h>
usingnamespacestd;
#defineMAX1000
#defineN100
voidtolower(char*s)//将输入的大写字母转化为小写字母
{
intlen=strlen(s);
for(inti=0;
i<
len;
++i)
{
if(s[i]>
=65&
&
s[i]<
=90)s[i]+=32;
}
}
structField//表中每个域的结构:
charname[N];
chartype[N];
intlen;
charcondition[N];
Field()
len=0;
name[0]=type[0]=condition[0]=0;
};
charsql[MAX],sqltmp[MAX];
//读入的语句字符串
intread()//读入SQL语句,并进行格式化分离单词,以分号结束,ESC退出整个程序
charc;
inti;
for(i=0;
c=getch();
i++)
if(c==27)
exit(0);
//ESC退出
if(c==8)//退格
i-=2;
if(i<
-1)
i=-1;
system("
cls"
);
printf("
简单DBMS:
\n"
<
ESC键退出,'
outputtable_name'
输出表>
:
输入SQL语句:
>
"
for(intj=0;
j<
=i;
j++)
if(sqltmp[j]==13)
puts("
%c"
sqltmp[j]);
continue;
sqltmp[i]=c;
if(c=='
;
'
)
break;
if(c==13)//回车键
sql[i]='
'
elseif(c=='
('
||c=='
)'
\'
\n'
c);
'
sql[i+1]='
sql[i+2]='
i+=2;
else
sql[i]=c;
sql[i]=0;
tolower(sql);
return0;
voidadd(Fieldfield,char*table_name)//向表中添加域
if(access(table_name,0)==-1)
FILE*fp=fopen(table_name,"
w"
//向文件写入数据
fwrite(&
field,sizeof(Field),1,fp);
fclose(fp);
a"
//向文件添加数据
boolcreate()//建立表的函数,一个表对应一个*.txt文件,bool为布尔型,取值false和true
chartmp[N];
chartable_name[N];
boolerror=false;
chartype[6][10]={"
char"
"
int"
float"
double"
time"
date"
stringstreamss(sql);
ss>
tmp;
if(0!
=strcmp(tmp,"
create"
))
error=true;
\n\'
create\'
输入错误!
if(0!
table"
table\'
table_name;
intlen=strlen(table_name);
strcat(table_name,"
.txt"
if(access(table_name,0)==0)
表已存在,是否覆盖?
y/n\n"
c=getchar();
n'
returnfalse;
remove(table_name);
while(true)
Fieldfield;
if(tmp[0]=='
add(field,table_name);
strcpy(field.name,tmp);
if(!
(ss>
tmp))
boolflg=false;
6;
if(strcmp(tmp,type[i])==0)
flg=true;
strcpy(field.type,tmp);
flg)
\n数据类型错误(char,int,float,double,time,date)!
if(field.type[0]=='
c'
||field.type[0]=='
f'
d'
boolflg=true;
intlen=strlen(tmp);
intsum=0;
if(tmp[i]>
58||tmp[i]<
48)
flg=false;
elsesum=sum*10+tmp[i]-'
0'
\n类型长度错误!
elsefield.len=sum;
if(0==strcmp(tmp,"
primary"
charst[N];
st;
if(0==strcmp(st,"
key"
strcat(tmp,"
key"
strcpy(field.condition,tmp);
key\'
输入错误\n"
elseif(strcmp(tmp,"
unique"
)==0)
return(!
error);
boolalter()//修改表函数
alter"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库管理系统 山东科技大学 数据库 管理 系统 山东 科技大学