接到一单学校的教务管理系统,需要能根据条件自动进行课程安排,不知应采取何种算法?

解决方案 »

  1.   

    哦,我只是举个例子而已,当然这样的相互限制的条件非常多。我准备在没有得到具体的数学模型的情况下,针对该学校的实际情况按顺序排课,不过那样算法的效率实在太可怕了。说到底,第一次做这类软件,心里没底。这个项目将建立在Windows DNA上,所有的模块都将由COM组件构成,如果大家能帮我解决这一问题,我愿意将我在COM编程上的经验与大家分享。
      

  2.   

    1?×¢堸桫?
    鍯F霺?
    釩鬻釩鍯釩?鴚H ?疳C€(C鹷*鴚笺C颈黽H??€鍯鍯? ??鍯紺??Hw0w?閖a閖 ?▇遤?
    (e?鍯??矯遭C爐鄇?
    锈C紺??閖????臍???鍯笺C(惋j?閖貧?蹉Cyw 銫貧?劁C鹷*鴚桎C颈黽犮C銫秀C禁x鉉0蹉Cw般C??淬CM?襴??€€????€劂C貺襴??€HP???€C侺襴?? ?€HP???€(銫燛襴HP?€?H銫*P銫*?鴚h*扩?(銫€溴C鹷*鴚翦C颈黽hd枩d枩p8 H枩d銫 鍯鹷*鴚间C ?鴚? 葍?斾C{P鍯鹷*鴚`鍯颈黽?扩?H扩? 錍?鴚
    0丶滗C€犳C鹷*鴚版C颈黽
    扩?€扩?薅黽`錍
    ?鴚?
    05?8錍€翩C鹷*鴚鏑颈黽?扩?P:偊w薅黽h扩?村C3)鴚??愬C?D鍯鹷P)鴚T鍯薅黽h??ㄦC缄C戽CuT觲 ,鍯扩?觲扩?d枩p$鍯┏觲,鍯  *}€P? 枩H枩葍?`戽C鑂?鑂?0闏鹷€&鴚ゆC`3X'<襴T扩??偊w個襴扩?DR?扩?偊w躋?墟C燛襴R?DJ1M?諩醞拳

    L闏?偊wp鏑躋?扩?= 鏑襴R?<5?R?扩?C偊w+遤湗醞=欋j惌

    jL?(?0鏑€扈C鹷*鴚C颈黽?扩?扩?€5?€偊w扩?扮C 97uy 鏑` 茜C?7u 綻鐲?x@溼Czhx`袞?p莉%?uP顲(=u繇C8u辅Ap莉鐳Expert_Reply床餵p鐲I2豾h拆jL?滆C3?鴚3??t鐲%0闏鹷*鴚惕C?鴚H栏?よC€(`闏 ,鎗 闾闾p闏颈黽H€躩疖j碤?碤?闏怉闏怉镃??眞k遤<馘j葙錴闾€躩缄C棒`镃d镃?鴚?8鐠<镃€C鹷*鴚隒颈黽?pU??pU??惌
    棒犻C?隒T闏?犼C`隒L隒繮?p鉰,?闏?鴚h  ?=荛C€橂C鹷*鴚C颈黽h € 霤H瑷w€躩L`C0族j 闾€躩€闏?栏? 疖j疖j疖jx魿鹷綮C鶰xa 鞢囔C?綮CXLx. 鞢囔C?桡'
    ?(
    x隒$ 隒,隒,(鏁鴨 ?=鬍 ?S ?=S$C:?L?0茴蓪mpi@
    ??pi@
    葘n隒n
    餋 ^j(i鑠f€隒隒,$隒汝C须C痣C骢t鮰霤 鹴<霤 鹴(鏁?桡'
    説\"\燿 7\?廊?C8劈w洗黽P??辄OL鰿 ^j(iX霤?i??H言皺?(`?x霤Ci3%E犾CV%EP?忟宻?藹? ? ?  ?j瑞C€s?涑?
    2p?!?pH| 5( H蘴,鞢rWx 鞢w蘴?桡'
    ?(
    ?
    (
    B?)H鞢癑藅(
    A
    (
     (
    
    (
    t鞢譯藅?热?廊??i绊C`袜梧x?廊?热??靅??鐳FH E葤 袞?+辅勵C锛7u|頒p莉鬌A鐳HF榣_`頒x頒榣_葤 p莉`?d頒袞?HF葤 辅搭C?8u榣_p莉葤 痤C?7u祛C痤C37u榣_p莉葤 (罖
    袞?榣_\顲?7u@.=uH\?p莉0罁 .? p莉.=u堬C= =u旓C?u葤 豲E旔C€s?田C撒C田C豲EL鰿 =u燥C沎Eヰ豲E旔C€s?田C`]hs?€s?榏EmWE惒?
    \?揉?
    旔C€s?X餋D餋0岀`]hs?嬬 ^j旔C€嬬揉?
    ??惒?
    Ci寢?(TEP?撒C寢?樈`????CVA堭CK_?L鰿 ^j(i痧C?i??w?
    `?馛Ci涑?
    2E惒?
    4馛?EP??
    8C\噔?
    t馛E8C\w鸩?
    噔?
    ?E惒?
    惒?
    揉?
    \睧揉?
    |s?橊C罂E揉?
    惒?
    0岀`]?i??
    ?i?E湉 %E1EEhs?魿0岀€嬬H鯟 駽?鴚撒C`]惒?
    湶?
    鬋秉w?饻0祢C?F
    榗E+F愹C?E€嬬?E€嬬?Ed|驝魿寢?岕C撒C寢?
    濬`]d|驝魿€嬬镑C赧C惒?
    P?甠??甠切驝晓_撒C寢?覆?
    狊C?E狊CD鬋╮_< ?d?d帘pr_╮_爢F鬋Cpr_Pz9=
    鵀w`8眞Pz9=鬋鬋?E鬋Cpr_0鬋oF撒Cxr_pr_9獸C(魿榗E€嬬紱w梏Cd1@??梏C繤?隔C瘀C
    €岕C?F镑C鬋砌C€嬬镑C€嬬镑CCH€嬬魿x姳€嬬
    €
    €
    € ?E浒??E|r_xr_xr_堳CWF8岀€嬬F镑C0岀饻  滣C迢C迢C赧CdE0岀?Hx姳0岀 pr_孨鎤C?旜C蚌CO?8鯟?鴚x燻=鯟€眺C鹷*鴚颈黽x饻  €0?
    鵀w€0? 0宣C鹷&鴚`8眞 H 鹷撒C寢?寢?\鰿`聻u€嬬H3 镑C魿眺C狑Cx姳€嬬爑??h鰿 鰿h唇宣C1(T瀠竾?€嬬H3 镑C眺C狑C轩C鄫?€嬬犷泈谤?31G??怉憎C宣Cw鳦
    x?x8鳦?F鳾??Fx姳谤?X鳦A朒C €<x C谤?C?漸 ?鄫?€嬬轩C W2漸鄫?€嬬G?鳾?澌C?漸鄫?€嬬G?`'?伉C€旡C鹷*鴚C颈黽xEx姳pá湉????\鵆?鴚E?Ex汗4鵆€瘊C鹷*鴚澌C鸆o秉w谤?x姳鑊梩鸆鳯?鶦鳾???鳾? Jp?€嬬葧PH?h}漸鄫?x姳tf]h'?hG?pH?垙递?G?轩Cx姳@鶦萨C?漸宣C02CV箾w瘊C怱?瘊Cx汗G? 瘊C??怑?G?灌?屧?o怑?$xx鵆贴C?漸x姳 鄫?\垣鑜漸鄫?(l漸`'?p,泃x姳滬C`'?效??
    d鯘upf]鉦梩?
    ?
    pf]L麮pf]帑C禶梩p,泃?鎤pf]p,泃?鎤@*?Cpf]?C潆歵繹梩禧CM\梩(麮Q梩L麮'麮旤C(e??
    fH梩p麮歄梩@*?(e?旤CL麮?鎤(e?p,泃X麮|P' 圥' pf]@*?傈CLk梩@*?(e?旤C??h濕?
    ?
    ?
    ???@*?攸Cq梩怉X鼵﨏$鼵Z鏹
    w??????D鼵﨏葋遤 鼵P﨏猾獁Xl蘕P鏹??p肠L﨏?"鴚????l﨏﨏葋遤H﨏?X鼵x﨏€w蘕P鏹??葋遤p肠轧C3酣w蘕P鏹??葋遤?鴚萖="鴚?鴚萖="鴚劤?罋?h尶罋?$?t尶$???;鏹酤C嗠獁p肠P鏹??葋遤€03捩jp肠P鏹??葋遤?鴚p肠?鎗?鎗?C宁?萖=€0?竞h鋏孺€0_儍B€]鬊€`S潈燷儍C€刕儍I`鴚#e鐆宁?宁?瘐?C<早wy鎤Xj宁?h圇 K?璬?D `D 1眎 怞?€爚*€D肪D D
      

  3.   

    http://www.csdn.net/expert/topic/668/668481.xml?temp=.6498987
      

  4.   

    这个问题我好象遇到过,好象当年上《运筹学》时建过相应模型,
    到时我给你查查资料。关于N皇后问题是否与之有关,也没考虑,不过我这里有算法,贴一份
    大家看看。//n皇后问题
    #include <iostream.h>
    #include <iomanip.h>
    #include <conio.h>
    #define n 8
    int a[n+1],c[n+1];
    int l[2*n],r[2*n+1];
    int count=0;
    void place(int);
    int main()
    {
        int k;
    for(k=1;k<=n;k++)c[k]=1;
    for(k=1;k<=2*n-1;k++)l[k]=1;
    for(k=2;k<=2*n;k++)r[k]=1;
    place(1);
    if(count==0)cout<<"No Answer!"<<endl;
    cout<<"Program end."<<endl;
    getch();
    return 0;
    }
    void place(int I)
    {
        int j,k;
    for(j=1;j<=n;j++)
    {
        if((c[j]==1)&&(l[I-j+n]==1)&&(r[I+j]==1))
    {
        a[I]=j;
    c[j]=0;l[I-j+n]=0;r[I+j]=0;
    if(I<n) place(I+1);
    else
    {
        for(k=1;k<=n;k++)
        cout<<setw(4)<<a[k];
    count++;
    cout<<" count="<<count<<endl;
    if(count%20==0){cout<<"Press any key to continue."<<endl;getch();}
    }
    c[j]=1;l[I-j+n]=1;r[I+j]=1;
    }
    }
    }
      

  5.   

    多谢:along3000(飞龙)这里有一个链接
    http://202.101.90.1/gut/magazine/xb991/99xb1-4/99xb14-5.html里面讲到了基本思想,里面提到的排课策略定义和我想的差不多,不过没有讲具体的算法,如何定义公式是值得探讨的。我想再次申明的是:我希望最终得到的是一个能够适应不同情况,并且具有扩展性的算法,可能太难了点,但是努力的方向。
      

  6.   

    上面的链接是由 theng(手心忽然长出纠缠的曲线) 在算法论坛上提供的http://www.csdn.net/expert/topic/683/683547.xml?temp=.9069025
      

  7.   

    我现在也在做这个问题呢,而且只有个5天,以前都没有做过,真是要晕了,先做个标记先。这个问题在CSDN上问了好多次,不过多数连接已经打不开了,希望下次打开这个连接的时候还能打开。