您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 91数据库课程设计说明书
课程设计说明书设计题目:数据库系统——插入和更新表的记录_专业:信息管理与信息系统班级:_设计人:_山东科技大学2011年7月1日课程设计任务书学院信息科学与工程学院专业班级姓名一、课程设计题目:(1)使用C#实现一个简单DBMS的部分功能——插入和更新表的记录(2)(3)二、课程设计主要参考资料:(1)《数据库系统概论(第四版)》,王珊、萨师煊主编,高等教育出版社(2)ASP.NET(C#)基础教程(3)三、课程设计应解决的主要问题:(1)用界面实现建立新表结构。(2)实现对现有所有表的现实以及打开表。(3)实现对表的插入及修改(4)实现删除现有表四、课程设计相关附件(如:图纸、软件等):(1)DBMS文件夹(2)(3)五、任务发出日期:2011-4-29课程设计完成日期:2011-7-01指导教师签字:系主任签字:指导教师对课程设计的评语指导教师签字:2011年月日山东科技大学学生课程设计第1页一、设计要求:(1)设计内容创建表:实现:CREATETABLE表名(列名数据类型[列完整性约束条件][,列名数据类型[列完整性约束条件]…][,表完整性约束条件])表的新增和编辑:实现:INSERTINTO表名[(属性列1[,属性列2…)]VALUES(常量1[,常量2]…)说明:在最后一条记录后插入新的记录实现:UPDATE表名SET列名=表达式[,列名=表达式]…[WHERE条件]说明:一次更新一条记录(2)设计要求1、表的物理文件采用Access、VFP等系统的文件;2、有两个以上的关系模式,关系模式要满足实体完整性和参照完整性。3、语句以命令行或图形化界面两种形式实现;4、分析设计内容,画出程序流程图,设计表的存储结构;5、提交课程设计报告。(3)任务步骤1、根据要求实现创建图形界面;2、创建一个表文件,写入表结构信息;3、打开一个表文件,查看记录;4、编辑表的记录;5、删除表;二、需求分析:数据库系统能够有效地组织和管理大量的数据。研究数据库管理系统的实现技术,对于掌握数据库系统的原理和技术,了解数据库系统的内部结构,开发高效的数据库应用系统,具有重要意义。在建立了数据库之后,就应实现对表的建立、修改、删除,并对每个表插入记录、修改记录、删除记录。该系统要进行必要的异常处理,从而保证系统的稳定性并且尽量使界面和谐美观,满足用户的需求。三、设计思想:(1)总体思路此课程设计主要要完成的任务是创建表、删除表以及对表插入和更新记录。系统整体功能结构图如下:山东科技大学学生课程设计第2页运行MyDBMS.exe新建表设计表结构输入表信息(列名、数据类型、是否为空、是否主键)保存弹出“表明输入”窗体表保存成功输入表名并判断调用显示对现有表进行表操作选择表打开表编辑表删除插入修改表删除表弹出“确认删除”窗体(2)主要结构四、程序流程图:点击“新建表”判断列名为空显示dGVnew输入应填信息,并点击“保存”NY显示提示N判断主键,可为空?Y显示提示弹出“输入表名”窗体输入表名“确定”“取消”添加节点并保存xml文件重新输入山东科技大学学生课程设计第3页山东科技大学学生课程设计第4页接下图接上图五、主要源程序:山东科技大学学生课程设计第5页(1)定义表结构体typedefstruct{chartable_name[10];//表名intproperty_num;//属性的个数charproperty_name[10000][10];//属性名intproperty_type[1000];//属性类型(1=int,2=char)intproperty_null[100];//属性是否为空(1=允许,2=不允许)intproperty_key[10];//是否主码(1=是主键,2=不是主键)}TABLE;(2)读取表信息voidread_from_file(){alfp1=fopen(table.txt,r);fscanf(alfp1,%d,&table_num);for(inti=0;itable_num;i++){fscanf(alfp1,%s,&table[i].table_name);fscanf(alfp1,%d,&table[i].property_num);for(intj=0;jtable[i].property_num;j++){fscanf(alfp1,%s,&table[i].property_name[j]);fscanf(alfp1,%d,&table[i].property_type[j]);fscanf(alfp1,%d,&table[i].property_null[j]);fscanf(alfp1,%d,&table[i].property_key[j]);}}fclose(alfp1);}(3)写入表信息voidwrite_to_file(){alfp1=fopen(table.txt,w);fprintf(alfp1,%d\n,table_num);for(inti=0;itable_num;i++)//表{fprintf(alfp1,%s%d\n,table[i].table_name,table[i].property_num);for(intj=0;jtable[i].property_num;j++)//属性fprintf(alfp1,%s%d%d%d\n,table[i].property_name[j],table[i].property_type[j],table[i].property_null[j],table[i].property_key[j]);山东科技大学学生课程设计第6页fprintf(alfp1,\n);}fclose(alfp1);}(4)创建表voidcreatetable(){TABLEnewtable;//用来存储新创建的表//step1:输入表名inttablename_is_right=0;while(!tablename_is_right){system(cls);gotoxy(4,3);printf(表名:);gotoxy(10,3);scanf(%s,&newtable.table_name);//判断表名是否已经存在intname_is_equal=0;for(inti=0;itable_num;i++){if(compare(newtable.table_name,table[i].table_name)==0)name_is_equal=1;}if(name_is_equal==1){gotoxy(4,5);printf(表%s已经存在,按任意键返回重新输入......,newtable.table_name);getch();}elsetablename_is_right=1;}//表名while//step2:输入属性个数intpropertynum_is_right=0;while(!propertynum_is_right){system(cls);gotoxy(4,3);printf(表名:%-10s\n,newtable.table_name);gotoxy(4,4);printf(属性个数:);gotoxy(14,4);scanf(%d,&newtable.property_num);//判断属性个数是否正确if(newtable.property_num=0){gotoxy(4,6);printf(您输入的属性个数有误,按任意键重新输入......\n);getch();山东科技大学学生课程设计第7页}elsepropertynum_is_right=1;}//属性个数whileinti;//i代表循环中的属性intj;//j代表在i之前的属性for(i=0;inewtable.property_num;i++)//i代表属性个数0,1,2......{//step3:输入属性名intpropertyname_is_right=0;while(!propertyname_is_right){system(cls);gotoxy(4,3);printf(表名:%-10s\n,newtable.table_name);gotoxy(4,4);printf(属性个数:%d\n,newtable.property_num);printf(-----------------------------------------------------\n);printf(属性名属性类型是否允许为空是否为主键\n);printf((1=int2=float)(1=是2=否)(1=是2=否)\n);printf(-----------------------------------------------------\n);for(j=0;ji;j++){gotoxy(4,9+j);printf(属性%2d:%-10s%d%d%d,j+1,newtable.property_name[j],newtable.property_type[j],newtable.property_null[j],newtable.property_key[j]);}gotoxy(4,i+9);printf(属性%2d:,i+1);gotoxy(15,i+9);scanf(%s,&newtable.property_name[i]);//判断属性名是否存在intname_is_equal=0;for(j=0;ji;j++){if(compare(newtable.property_name[i],newtable.property_name[j])==0)name_is_equal=1;}if(name_is_equal==1){gotoxy(4,10+newtable.property_num);printf(属性%s已经存在,按任意键返回重新输入......,newtable.property_name[i]);getch();}elsepropertyname_is_right=1;}//属性名while//step4:选择属性类型intpropertytype_is_right=0;while(!propertytype_is_right)山东科技大学学生课程设计第8页{system(cls);gotoxy(4,3);printf(表名:%-10s\n,newtable.table_name);gotoxy(4,4);printf(属性个数:%d\n,newtable.property_num);printf(-----------------------------------------------------\n);printf(属性名属性类型是否允许为空是否为主键\n);printf((1=int2=float)(1=是2=否)(1=是2=否)\n);printf(-----------------------------------------------------\n);for(j=0;ji;j++){gotoxy(4,9+j);printf(属性%2d:%-10s%d%d%d,j+1,newtable.property_name[j],newtable.property_type[j],newtable.property_null[j],newtable.property_key[j]);}gotoxy(4,i+9);printf(属性%2d:%-10s,i+1,newtable.property_name[i]);gotoxy(31,i+9);scanf(%d,&newtable.property_type[i]);//判断选择的属性类型是否正确if(newtable.property_type[i]!=1&&newtable.prope
本文标题:91数据库课程设计说明书
链接地址:https://www.777doc.com/doc-3467383 .html