山东科技大学学生课程设计
程序提示用户输入SQL语言;
checkfirst(str)用来判断输入的语句; 执行create函数或alter函数; 询问用户是否继续; }; 测试结束; }
2、 checkfirst函数模块
主函数将调用Checkfirst函数,checkfirst函数判断用户输入的语句是create还是alter或是其他,即是创建基本表还是修改基本表或是退出程序。简要代码如下:
int checkfirst(char *str)///检查输入的函数名是否正确 {
int i;
char temp[100];
for (i=0; str[i]!=' '; i++) {
temp[i]=tolower(str[i]);///变小写 头文件可以是ctype.h或者stdlib.h,常用ctype.h } flag=i+1;
temp[i]='\\0'; ///语句输入完成
9
山东科技大学学生课程设计
if (strcmp(temp,\是“create”,则执行create函数,创建基本表 {
create(str); }
else if (strcmp(temp,\是“alter”,则执行函数,修改基本表 {
alter(str); } else
printf(\输入的命令不对\\n\ return 0; }
3、create模块和alter模块
1)create函数 int create(char *str) {
num=0; ///属性个数
bnum++; ///当创建一个基本表的时候,bnum加1 if (输入的table有误)
printf(\你输入的'table'有误,请重新创建!\\n\
10
alter
山东科技大学学生课程设计
else ///输入的table 正确 {
提取表明,将此表名存入extable.table_name中,并在表明后加.txt do {
extable.shuxing[num].shuxing_type_leg=-1; ///值为-1
提取属性名 提取数据类型 提取数据长度 提取关键字 }
while (分号);///创建语句未结束 savedata();///保存数据 savet_name();///保存表名 输出 “建表成功”! }
2)alter函数
int alter(char *str)///修改基本表 {
TABLE altable; ///定义基本表类型变量 FILE *fp;
11
属性长度默认
山东科技大学学生课程设计
if (输入的table有误)
printf(\你输入的'table'有误,请重新创建!\\n\ else ///输入的table正确 {
提取表名 判断表名是否重复 if(表名存在) {
if(add函数) {
属性个数加1 提取添加的属性名 提取属性类型 提取属性长度
提取约束条件
将属性名、属性类型、属性长度和约束条件写入fp所指向的文件中 关闭文件
add成功; }
else if(modify函数) {
读数据
12