qq_27965507 2015-05-29 23:50 采纳率: 0%
浏览 1507

C(++)语言 碰到输出手法 不能搞定 求解答 (注 : 不用迭代 )

1.读取一个文件 链接起来 行,列;
2.利用这个链表,输出成员间的所有可能组合;
本人挤出的代码如下,供参考:

#include "stdafx.h"
#include
using namespace std;
class Teacher
{
public:
char name[20];
Teacher * tnext;
Teacher (char * name):tnext(tnext=NULL)
{
strcpy(this->name,name);
}
void Display()
{
cout<<name;
}
};
class Course
{
public:
char name[20];
Course * next;
Teacher * thead;

Course(char * name):thead(thead=NULL),next(next=NULL)
{
    strcpy(this->name,name);
}
void Display()
{
    cout<<name;
}

};

int _tmain(int argc, _TCHAR* argv[])
{
Course * head=NULL,*before;
Teacher * te=NULL,* pre;
FILE fp=fopen("文件test.txt","r");
do
{
char name[20];
fscanf(fp,"%s",name);
Course * temp= new Course (name);
do
{
fscanf(fp,"%s",name);
te=new Teacher (name);
if(strncmp(te->name,"end",3)==0)break;
else
{
if(NULL == temp->thead)
temp->thead=te;
else{pre->tnext=te;}
pre=te;
}
}
while (strncmp(te->name,"end",3)!=0);
if (NULL==head)
head= temp;
else
{
before->next=temp;
}
before=temp;
}
while(!feof(fp));
long int a=0;
Course * k=head,*u,*v,*w;
Teacher * p,
q,*r,*s;
for(p=k->thead;p!=NULL;p=p->tnext)
for(q=k->next->thead;q!=NULL;q=q->tnext)
for(r=k->next->next->thead;r!=NULL;r=r->tnext)
for(s=k->next->next->next->thead;s!=NULL;s=s->tnext)
{
a+=1;
printf ("%ld",a);
p->Display();q->Display();r->Display();s->Display();
printf("\n");
}

printf("=================================\n");

return 0;

}
输出没有扩展性
本人尝试过利用 类似进位的思想来解答,在行链表向下方访问并到达NULL时下个结点向一位,由此输出所有的可能组合;估计类的成员结构组成欠缺;
​如果文件格式如下
语文 李老师 黄老师 华老师 end
数学 黄老师 金老师 刘老师 end
国文 赵老师 钱老师 孙老师 end
算数 花老师 月老师 吴老师 end
则输出有81中组合:
如:李黄赵花;李黄赵月;李黄赵吴;李黄钱花;李黄钱月;李黄钱吴;李黄孙花;李黄孙月;李黄孙吴;。。。。。。。;
请给出通用性的手法 请不要使用数据库 数组 迭代等之类可能更便捷的方法 只能增加些类成员并输出出来

  • 写回答

4条回答

  • qq_27965507 2015-05-29 23:53
    关注

    原文件格式如下
    语文 李老师 黄老师 华老师 end
    数学 黄老师 金老师 刘老师 end
    国文 赵老师 钱老师 孙老师 end
    算数 花老师 月老师 吴老师 end

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站