ImageVerifierCode 换一换
格式:DOC , 页数:40 ,大小:206.50KB ,
资源ID:9899405      下载积分:8 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9899405.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(学位论文-—数据库报告.doc)为本站上传会员【可****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

学位论文-—数据库报告.doc

1、 课程设计说明书 课程名称: 数据库系统课程设计 专 业: 班级: 设 计 人: 学 号: 201年 7 月 24 日 课 程 设 计 任 务 书 一、 课程设计题目:       数据库课程设计                      二

2、 设计原始资料:  《数据库系统概论》 王珊、萨师煊                                  《C++面向对象程序设计》                                                                  三、 设计应解决下列各主要问题:                         1、设计特定的数据结构,用于存储数据表、视图、索引等数据库对象的信息,即建立数据库系统的数据字典;                                       2、设计特定的数据结构,用于存储数据表中的数

3、据;                                  3、执行CREATE语句,创建数据表、视图、索引等数据库对象;创建数据表时需要包含主码、外码、唯一性约束、非空约束等完整性约束的定义;                                      4、执行SELECT语句,从自主设计的数据表中查询数据,并输出结果;在SELECT语句中需要支持GROUP BY、HAVING和ORDER BY子句,需要支持5种聚集函数;   5、用户登录时,需要输入用户名;如果用户没有被授权,则拒绝执行用户查询或更新操作,并给出提示信息;             

4、                                                    四、 设计说明书应附有下列图纸: 无                                                                                                五、 小组分工说明: 无                                                               

5、    六、命题发出日期: 2015-7-19      设计完成日期: 2015-7-26                           指导教师评语 成绩:       指导教师(签章)

6、                       年  月  日 40 目 录 1需求分析说明 ………………………………………………………5 1.1课程设计的目的…………………………………………………………5 1.2课程设计的要求………………………………………………5 2 概要设计说明…………………………………………………… …………6 2.1 程序的数据结构…………………………………………………………6 2.2 模块调用图 ………………………………………………………………7 2.3DBMS程序模块的组成……………………… …………

7、………………8 3 详细设计说明………………………………… ……………………………8 3.1主函数模块…………………………………………………………………8 3.2 用户登录检查………………………………………………………………8 3.3数据库,数据表的建立……………………………………………………9 3.4 SELECT语句的实现………………………………………………………11 3.5 UPDATE和DELETE语句的实现………………………………………13 4 调试分析…………………………………………………………14 5 用户使用说明……………………………………

8、…………………14 6 课程设计总结…………… …………………………… ………19 7源代码………………………………………19 1需求分析说明 1.1.课程设计的目的 《数据库系统课程设计》是一门实践性课程,要求学生在教师的指导下,充分利用所学的数据库、数据结构、C/C++语言等相关知识,从底层做起,实现数据库的组织、存储、检索、更新和索引等功能。目的是让学生深刻理解关系数据库系统中数据和元数据的组织方式、存储方式、检索方式、更新方式和索引方式,同时培养学生的逻辑思维能力和锻炼学生的动手编程能力。 1.2.课程设计的要求 1、 设计特定的数据结构,用于存储数据表、视图、索引等

9、数据库对象的信息,即建立数据库系统的数据字典; 2、 设计特定的数据结构,用于存储数据表中的数据; 3、 设计特定的数据结构,用于存储索引数据; 4、 设计特定的数据结构,分别用于存储用户和访问权限的信息; 5、 输入“help database”命令,输出所有数据表、视图和索引的信息,同时显示其对象类型;输入“help table 表名”命令,输出数据表中所有属性的详细信息;输入“help view 视图名”命令,输出视图的定义语句;输入“help index 索引名”命令,输出索引的详细信息; 6、 解析CREATE、SELECT、INSERT、DELETE、UPDATE等SQL

10、语句的内容; 7、 检查SQL语句中的语法错误和语义错误; 8、 执行CREATE语句,创建数据表、视图、索引等数据库对象;创建数据表时需要包含主码、外码、唯一性约束、非空约束等完整性约束的定义; 9、 执行SELECT语句,从自主设计的数据表中查询数据,并输出结果;在SELECT语句中需要支持GROUP BY、HAVING和ORDER BY子句,需要支持5种聚集函数; 10、 执行INSERT、DELETE和UPDATE语句,更新数据表的内容;更新过程中需要检查更新后的数据表是否会违反参照完整性约束。如果是,则提示违反哪一条完整性约束,并拒绝执行更新操作;如果否,提示数据表更新成功,

11、并说明插入、删除或修改了几个元组。 11、 当数据表的内容更新后,根据索引的定义,自动更新索引表的内容; 12、 在有索引的数据表上执行查询语句时,首先利用索引找到满足条件的元组指针,然后通过指针到数据表中取出相应的元组; 13、 执行GRANT语句,为用户授予SELECT、INSERT、DELETE、UPDATE权限;执行REVOKE语句,收回上述权限; 14、 用户登录时,需要输入用户名;如果用户没有被授权,则拒绝执行用户查询或更新操作,并给出提示信息; 15、 将SELECT语句转化为关系代数表达式,再利用查询优化算法对关系代数表达式进行优化,输出优化后的关系代数表达式或SEL

12、ECT语句。 2概要设计说明 2.1 程序的数据结构 为了实现建立数据库的数据字典和存储数据表中的数据,设定了相应的类用来存储数据表的信息。 class database //定义一个database类 { public: void CreateDatabase(); //数据库 void CreateTable(); //表 void DatabaseShow(); //定义显示所有数据函数 void DatabaseShow2(); //定义显示所有数据函数----访客模式 void D

13、eleteTable(); //删除表中的信息 void DeleteRow(); //删除一个j记录内的信息 void Addrow(); //添加一行 void AddTable(); //添加一个表 void Change(); //更新数据 void select(); //选择语句 void grant(); //授权语句 private: string DatabaseName;

14、 //数据库的名字 string TableName; //表的名字 string LeixingName; //数据类型的名字 string TableShuju; //表中的数据 string path; //路径 string Allpath; //全局路径 string pathrecord="0"; // 全局记录路径默认为空 string x; char YN;

15、 //是否同意Y(同意)N(不同意) char a; //输入是否Y/N }; 2.2 模块调用图 main menu1 menu DBMS DBMS内的函数 2.3 DBMS程序模块的组成 DBMS由众多程序模块组成,它们分别实现DBMS复杂而繁多的功能。 1、建立数据库,建立表; 2、显示数据库; 3、授权; 4、删除行; 5、添加表,添加行; 6、更新,选择; 3详细设计说明 3.1 主函数模块 首先调用菜单,输出主菜单

16、然后采用了文件操作,运用调用函数实现关于数据库的各种操作。 3.2 用户登录检查 首先定义一个类,存储用户名和密码; class users { private: string name; string password; public: string n(){return name;} string p(){return password;} void n(string na){name=na;} void p(string pa){password=pa;} }; 然后实现登录; int get_users

17、string name,string pass) { ifstream FILE("users.txt"); string s; char line[100]; int i=0,k=0; while(FILE.getline(line,100)) { s=line; if(i%2==0) u[k].n(s); else if(i%2==1) { u[k].p(s); k++;

18、 } i++; } FILE.close(); for(int j=0;j

19、 char x; char s1[10],s2[10],s3[10],s4[10]; int option; string ShuxingName;//属性字符名 string Allpath2; if(pathrecord=="0") //判断当前是否建立数据库 { cout<<"ERROR!"<建立数据库"<>TableName;

20、 Allpath2=pathrecord+"shujuku.txt"; ofstream Tdfile2(Allpath2.c_str(),ios::app); Allpath=pathrecord+TableName+".txt"; //库路径 a='y'; Tdfile2<

21、str(),ios::app); ofstream Tdfile3(Allpath2.c_str(),ios::app); //输入信息流 cout<<"输入属性名称:"<>ShuxingName; cout<<"输入属性类型:"<>LeixingName; Tdfile<

22、gName<<":\t"<>TableShuju;

23、 Tdfile<

24、lint")|| (LeixingName=="SMALLINT") || (LeixingName=="INT")|| (LeixingName=="int")) { cout<<"请输入数据"<>shuju; if((shuju>=0)&&(shuju<=1000))

25、 { Tdfile<

26、"<>a; //在表内输入数据保证表数据完全 } cout<<" 请依次输入主码、外码、唯一值、非空值,没有输入NULL"<

27、 3.4 SELECT语句的实现 本程序只实现了SELECT语句的单表查询,对连接查询,聚集函数等没有实现。 void database::select() //进行选择语句 { string Table[MAX],shuxing[MAX],leixing[MAX],shuju[MAX]; string DatabaseName1,TableName1,Allpath1; cout<<"请输入库名:"<>DatabaseName1; cout<<"请输入表名:"<>Ta

28、bleName1; Allpath1="d:\\\\"+DatabaseName1+"\\\\"+TableName1+".txt"; Allpath="d:\\\\"+DatabaseName+"\\\\"+TableName+".txt"; if(strcmp(Allpath1.c_str(),Allpath.c_str())!=0) { cout<<"查找路径不存在!"<

29、llpath1<<"下的数据为:"<

30、le[j].find(',',0); shuxing[j]=Table[j].substr(0,k1); k2=Table[j].find(':',0); leixing[j]=Table[j].substr(k1+2,k2-k1-2); k3=Table[j].length(); shuju[j]=Table[j].substr(k2+1,k3-k2); } string xuanze; int flag; a='y'; //类似于之前的操作,在这个表中

31、全表遍历找出这个属性 while ((a=='y')||(a=='Y')) { flag=0; i=0; cout<<"请输入要选择的属性名:"<>xuanze; while(i

32、"<

33、) cout<<"没有该属性"<>a; if((a=='n')||(a=='N')) break; else if((a=='y')||(a=='Y')); else cout<<"您输入有误,请重新输入"<

34、创建表之后,数据表中数据的输出格式不美观。 2. 刚开始时曾忽略了一些变量参数的标识"&"和“*”,使调试程序时费时不少。今后应重视确定参数的变量和赋值属性的区分和标识。 3.开始时建立数据库和建立表没法成功的完成,最后在翻阅图书时才找到有效的解决方法。 4.通过本次试验学会通过路径查找文件的方法,很有用处,而且这样对数据库的理解更深刻。 5.开始对表的插入和删除存在不一致的现象,经过仔细调试,终于得以解决。 5用户使用说明 1. 本程序的运行环境为DOS操作系统,运行文件为:gkl.exe。 2. 首先建立一个名为“users.txt”的文件,用于存储用

35、户名和密码。 3. 进入程序后即显示文本方式的用户界面: 首先是访客登陆: 然后是管理员登录: 输入用户名和密码之后进入 建立数据库操作: 建立表: 显示数据库: 授权: 选择: 退出系统: 6课程设计总结 通过这次数据库课程设计,使我对软件的界面设计有了一个比较深刻的了解,对数据库的性能有了清晰的认识,使我感觉到到,一个优秀的软件,不仅仅是可以运行的,更应该具有人性化的界面,协调的布局,合理的结构,良好的性能和一定的容错性。一个人要完成所有的工作是非常困难和耗时的。在以后的学习中我会更加注意各个方面的能力的协

36、调发展,选择一两门技术进行深入研究,成为一个既可以统筹全局,又有一定技术专长的优秀的程序开发人员。 这次课程设计对我来说很不容易,平时都是放到整个学期来完成,而这次只有小学期一个周的时间。虽说最终做出来了,但是效果却不能令我满意。在这个过程中,我走了很多弯路,比如,C++中有许多可以直接调用的类,起初我不知道它们的存在,便自己编写,花费了时间而且没达到预期的效果,多次查找资料仔细分析后,直接调用了C++中的现有资源。 7 源代码 #include #include #include #include

37、 #include #include #define TABLE_LENTH 20 //表的长度 #define MAX_DATA_LEN 20 //最大字段数 #define MAX_NAME_LENTH 20 //字段名的最大长度 #define MAX_LEN_FILE_NANE 127 //文件名的最大长度 #define MAX_STRING_LENGTH 127 //字符串的最大长度 #define OK 1 #define ERROR 0 #define INITSTATUS -1 //初始状态 using

38、namespace std; int MAX=100; class users { private: string name; string password; public: string n(){return name;} string p(){return password;} void n(string na){name=na;} void p(string pa){password=pa;} }; users u[100]; users person; union Elemtype//定义元素类型 {

39、 char CHAR; //字符型 char STRINR[MAX_STRING_LENGTH]; //字符串型 int INT;//整数型 double DOUBLE;//浮点型 }; struct Node//定义元素节点类型 { union Elemtype arr[MAX_DATA_LEN]; struct Node *next; }; struct Data//字段基本信息 { char strName[MAX_NAME_LENTH]; //字段名 int nLen; //字段长度 char cType; //字段

40、类型 }; struct DataNode//记录字段基本信息的节点 { struct Data data;//字段基本信息结构体 struct DataNode *pNext;//指针 }; struct Table//记录所有字段信息的表结构体 { int nLen;//表的长度 struct Data Head[MAX_NAME_LENTH];//记录字段全部信息的数组 int nCount;//记录数据容量 }; struct File//定义文件结构 { struct Table *pTable;//表头指针 st

41、ruct Node *pHead;//数据区指针 int nCount;//数据区容量 }; class database //定义一个database类 { public: void CreateDatabase(); //数据库 void CreateTable(); //表 void DatabaseShow(); //定义显示所有数据函数 void DatabaseShow2(); //定义显示所有数据函数----访客模式 void DeleteTable(); /

42、/删除表中的信息 void DeleteRow(); //删除一个j记录内的信息 void Addrow(); //添加一行 void AddTable(); //添加一个表 void Change(); //更新数据 void select(); //选择语句 void grant(); //授权语句 private: string DatabaseName; //数据库的名字 strin

43、g TableName; //表的名字 string LeixingName; //数据类型的名字 string TableShuju; //表中的数据 string path; //路径 string Allpath; //全局路径 string pathrecord="0"; // 全局记录路径默认为空 string x; char YN; //是否同意Y(同意)N(

44、不同意) char a; //输入是否Y/N }; void database::CreateDatabase() //建一个数据库 { cout<<"请输入建立数据库名称: "<>DatabaseName; path="d:\\\\"+DatabaseName; //路径=在D盘内,加上数据库的名字 pathrecord=path+"\\\\"; //全局记录路径 path="md "+path;

45、 //MD创建路径 system(path.c_str()); //把字符串转入命令 } void database::CreateTable() //建表 { int sum=0; char x; char s1[10],s2[10],s3[10],s4[10]; int option; string ShuxingName;//属性字符名 string Allpath2; if(pathrecord=="0") //判断当前是否建立数据库 {

46、 cout<<"ERROR!"<建立数据库"<>TableName; Allpath2=pathrecord+"shujuku.txt"; ofstream Tdfile2(Allpath2.c_str(),ios::app); Allpath=pathrecord+TableName+".txt"; //库路径 a='y'; Tdfile2<

47、Name<>ShuxingName; cout<<"输入属性类型:"<

48、 cin>>LeixingName; Tdfile<

49、t<<"请输入数据"<>TableShuju; Tdfile<

50、 //文件流关闭 } } } //判断int和smallint是否符合输入要求 else if((LeixingName=="smallint")|| (LeixingName=="SMALLINT") || (LeixingName=="INT")|| (LeixingName=="int")) { cout<<"请输入数据"<

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服