实现判别一个分解的无损连接分解课程设计文档.docxVIP

实现判别一个分解的无损连接分解课程设计文档.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目录 TOC \o 1-5 \h \z \o Current Document 设计目的 (3) 设计要求 (4) \o Current Document 设计说明 (5) 运算结果与分析 (11) 总结 (16) 摘要 为了实现判别一个分解的无损连接分解,而编写的程序,此文档为解说此程序而编 写。主要有设计目的,设计要求,设计说明,运行结果分析,和总结。以便更好的了解 此程序,内容、作用、使用方法和不足。 此程序因吋间关系,写得较短,只在一定程度上完成了这种功能,应有不足和缺陷。 只要严格按照说明使用,此程序已达到要求。为求精简,是程序不会过于复杂,对错误 输入不作处理,请谨慎使用。 为了节省存储空间,减少计算量,提高运算按速率,对关系的内容要求精简,属性 名只许一个字母。 此程序完成粗略,但至今未出现问题,关于设计,内容很容易理解。 此文档对程序做了尽可能的解说。有例子说明,更易懂。 关键词:无损连接分解 数据存储 函数设计 功能测试 设计总结 一、 设计目的 a)用一种高级语言实现判别一个分解的无损连接性: 设计要求 a) 按算法5.2和定理5.4实现(P190); b) 能给出根据模式的分解形成初始表格; c) 给出根据每一个函数依赖表格的变化情况; 三、 设计说明 数据结构设计 typedef struct Date//用丁?存储表格内的数据 { char name;//存储 a 或 b intnum;//存储下标,若下表为01、02等均省略0记为1、2 }; typedef struct Function//用 丁存储函数依赖 { charx[5],y[5]; struct Function *next; }; typedef struct Relation//用于存储关系 { char U[ll];//用于存储属性组,属性名称必须为单个字母,属性组内不超过 10个属性 Function F; }; Date d[10][10],dl[10][10];//用于存储 n 列 k 行的表 函数设计 void showR();显示关系R的内容 void InitR();建立关系 R void Initd(int n,int k);建立一张 n 列 k 行的表 int locate(char s[l 1 ],char m);查询字母m在字符串s中的位置 void showd(int n,int k);显示表中的内容 void dof(char x[5],char y[5],int k);函数依赖对表的操作 void copy(int n,int k);表的复制 int compare(int n,int k);表的比较 void InitR() { cout?H输入 U(例如,ABCDEF,)u?endl; 〃输入格式必须按照格式输入 cin?R.U; char a; cout?H输入 F(例如(AB - C , D - E ),)H?endl;cin?a; 〃输入格式必须按照格式输入,每个单元必须用空格隔开 Function *q=R.F; while(l) { cin?q-x; cin?a?a; cin?q-y; cin?a; if(a==))break; Function *p; p=new Function; q-next=p; q=q-next; q-next=NULL; void Initd(int n,int k) cout?n 输入分解组(AB,AC,DEF,)H?endl; 〃输入格式必须按照格式输入,最后一个,不能省 int i,j; for(i=0;in;i++) { for(j=0;jk;j++) { dfj]fi].name=b; d[j][i].num 二j*10+i; } I char m; for(i=0;ik;i++) { while(l) { //cout?====…========?endl; cin?m; // cout?*-==...=======M?endl; if(m==,,)break; // cout?======;;====?endl; j=locate(R.U,m); dfi][j].name=a; d[i][j].num=j; void dof(char x[5],char y[5],int k) { int a=strlen(x),b=strlen(y); int i,j,p,q; int m[5],n[5]; for(i=0;ia;i+4-)m[i]=locate(R.U,x[i]);记录属性在表屮的列 for(i=0;ib;i++)n[i]=locate(R.U,y[i]); for(i=0;ik-1 ;i++)寻找有相同分量的列, { for(j=i

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档