- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 企业工会助推企业高质量发展.docx VIP
- 细说通电直导线附近的场摘要:一无限长通电直导线,周围没有电场.DOC
- 昆山联江发纸业有限公司扩建项目.pdf
- 基于bp神经网络的引线键合模型 wire bonding model based on bp neural network.pdf VIP
- 透过“人车家”战略,看小米加码大家电对白电行业影响几何.pdf VIP
- 华师大版科学九年级上册 1-4章化学模块练习(含答案).doc VIP
- 绘本《小鹿历险记》.ppt VIP
- 八年级地理中国海洋资源.ppt VIP
- 纪念与象征——空间中的实体艺术.pptx VIP
- rca医疗案例分析ppt.pptx VIP
文档评论(0)