欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——教學(xué)計劃編制(精選多篇)

      時間:2019-05-15 05:13:32下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——教學(xué)計劃編制》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——教學(xué)計劃編制》。

      第一篇:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——教學(xué)計劃編制

      攀枝花學(xué)院課程設(shè)計論文 教學(xué)計劃編制問題

      摘 要

      教學(xué)計劃(課程計劃)是課程設(shè)置的整體規(guī)劃,它規(guī)定不同課程類型相互結(jié)構(gòu)的方式,也規(guī)定了不同課程在管理學(xué)習(xí)方式的要求及其所占比例,同時,對學(xué)校的教學(xué)、生產(chǎn)勞動、課外活動等作出全面安排,具體規(guī)定了學(xué)校應(yīng)設(shè)置的學(xué)科、課程開設(shè)的順序及課時分配,并對學(xué)期、學(xué)年、假期進(jìn)行劃分。

      根據(jù)一定的教育目的和培養(yǎng)目標(biāo)制定的教學(xué)和教育工作的指導(dǎo)文件。它決定著教學(xué)內(nèi)容總的方向和總的結(jié)構(gòu),并對有關(guān)學(xué)校的教學(xué)、教育活動,生產(chǎn)勞動和課外活動校外活動等各方面作出全面安排,具體規(guī)定一定學(xué)校的學(xué)科設(shè)置、各門學(xué)科的教學(xué)順序、教學(xué)時數(shù)以及各種活動等。教學(xué)計劃、教學(xué)大綱和教科書互相聯(lián)系,共同反映教學(xué)內(nèi)容。

      近代以來,特別是在實(shí)行學(xué)科課程的條件下,教學(xué)計劃主要是學(xué)科的計劃,或只是學(xué)科表。隨著社會經(jīng)濟(jì)和科學(xué)技術(shù)的新發(fā)展,教育結(jié)構(gòu)不斷發(fā)生變革,現(xiàn)代教育和教學(xué)理論主張對教學(xué)計劃的結(jié)構(gòu)實(shí)行改革。除了教學(xué)以外,生產(chǎn)勞動、科技活動、發(fā)展體力和增進(jìn)健康的活動、藝術(shù)活動和社會活動等也應(yīng)列入教學(xué)計劃。下面就利用對此進(jìn)行程序設(shè)計,已達(dá)到預(yù)期的目的。

      關(guān)鍵字:數(shù)據(jù)結(jié)構(gòu),教學(xué)計劃編制,抽象數(shù)據(jù)類型,程序設(shè)計

      攀枝花學(xué)院課程設(shè)計論文 教學(xué)計劃編制問題

      2.概要設(shè)計:

      2.1流程圖

      void FindInDegree(ALGraph G, int indegree[])//求圖中各節(jié)點(diǎn)的入度(如下左圖)void CreatGraph(ALGraph *G)//構(gòu)件圖(如下右圖)。

      void TopologicalSort_1(ALGraph G,int numterm,int uplcredit)//有向圖G采用鄰接表存儲結(jié)構(gòu)(如下左圖);

      void TopologicalSort_2(ALGraph G,int numterm,int uplcredit)//有向圖G采用鄰接表存儲結(jié)構(gòu)(如下右圖)。

      攀枝花學(xué)院課程設(shè)計論文 教學(xué)計劃編制問題

      主函數(shù): void main()

      攀枝花學(xué)院課程設(shè)計論文 教學(xué)計劃編制問題

      數(shù)據(jù)關(guān)系:R1={﹤ai-1 ai﹥|ai-1,ai∈D,i=2,…,n} 基本操作: void InitStack(SqStack *S);int StackEmpty(SqStack S);void Push(SqStack *S, int);int Pop(SqStack *S, int *e);}ADT Stack 2.3主程序

      int main()//主函數(shù) { int numterm;//學(xué)期總數(shù)

      int uplcredit;//一個學(xué)期的學(xué)分上限 int selectway;ALGraph G;printf(“請輸入學(xué)期總數(shù):n”);scanf(“%d”,&numterm);printf(“請輸入一個學(xué)期的學(xué)分上限:n”);scanf(“%d”,&uplcredit);CreatGraph(&G);printf(“請選擇編排策略:1.課程盡可能集中到前幾個學(xué)期;2.課程盡量均勻分布n”);scanf(“%d”,&selectway);if(selectway==1)TopologicalSort_1(G,numterm,uplcredit);if(selectway==2)TopologicalSort_2(G,numterm,uplcredit);system(“pause”);return 0;} 2.4本程序只有兩個模塊,調(diào)用關(guān)系簡單

      主程序模塊→拓?fù)渑判蚰K

      攀枝花學(xué)院課程設(shè)計論文 教學(xué)計劃編制問題

      4.詳細(xì)設(shè)計

      4.1頭結(jié)點(diǎn)、表結(jié)點(diǎn)、鄰接表的定義

      #define MAX_VERTEX_NUM 100 //最大課程總數(shù) typedef struct ArcNode{ int adjvex;struct ArcNode *nextarc;}ArcNode;typedef struct VNode{ char name[24];//課程名 int classid;//課程號 int credit;//課程的學(xué)分 int indegree;//該結(jié)點(diǎn)的入度 int state;//該節(jié)點(diǎn)的狀態(tài)

      ArcNode *firstarc;//指向第一條依附該頂點(diǎn)的弧的指針 }VNode,AdjList[MAX_VEXTEX_NUM];typedef struct{ AdjList vertices;int vexnum, arcnum;}ALGraph;鄰接表的基本操作:

      void CreatGraph(ALGraph *);創(chuàng)建鄰接表

      void FindInDegree(ALGraph , int *);求一個結(jié)點(diǎn)的入度

      void TopologicalSort_1(ALGraph G,int numterm,int maxcredit);拓?fù)渑判騺砭幣耪n程

      void TopologicalSort_2(ALGraph G,int numterm,int maxcredit);拓?fù)渑判騺砭幣耪n程

      4.2棧的定義

      #define STACk_INIT_SIZE 100 //存儲空間的初時分配量 #define STACKINCREMENT 10 //存儲空間的分配增量

      -***攀枝花學(xué)院課程設(shè)計論文 教學(xué)計劃編制問題

      6.調(diào)試分析

      6.1實(shí)驗(yàn)過程中出現(xiàn)的問題及解決方法

      我們在實(shí)驗(yàn)過程中遇到的最大難題是兩個課程排序算法的編寫。剛開始的時候沒有任何的思路,網(wǎng)上也只有拓?fù)渑判虻乃惴ǎ瑢τ谡n程設(shè)計要求的排序算法沒有任何頭緒。經(jīng)過請教老師和同學(xué)以及翻閱了一些相關(guān)書籍,并在網(wǎng)上的搜索有了排序算法的大體思路。經(jīng)過三天的修改,終于寫出了符合要求的排序算法。

      6.2測試數(shù)據(jù)

      學(xué)期總數(shù):6;學(xué)分上限:10;該專業(yè)共開設(shè)12門課,課程號從01到12,學(xué)分順序?yàn)?,3,4,3,2,3,4,4,7,5,2,3。

      6.3測試結(jié)果(包含正確和錯誤的)

      正確測試結(jié)果:

      攀枝花學(xué)院課程設(shè)計論文 教學(xué)計劃編制問題

      錯誤測試結(jié)果:

      攀枝花學(xué)院課程設(shè)計論文 教學(xué)計劃編制問題

      6.4測試數(shù)據(jù)及程序運(yùn)行情況

      輸入的內(nèi)容如下: 課程編號 課程名稱 學(xué)分 先決條件 01 程序設(shè)計基礎(chǔ) 2 無 02 離散數(shù)學(xué) 3 01 03 數(shù)據(jù)結(jié)構(gòu) 4 01,02 04 匯編語言 3 01 05 語言的設(shè)計和分析 2 03,04 06 計算機(jī)原理 3 11 07 編譯原理 4 05,03 08 操作系統(tǒng) 4 03,06 09 高等數(shù)學(xué) 7 無 10 線性代數(shù) 5 09 11 普通物理 2 09 12 數(shù)值分析 3 09,10,01 兩種編排方法都輸出結(jié)果為: 第一學(xué)期學(xué)的課程有:高等數(shù)學(xué) 程序設(shè)計基礎(chǔ); 第二學(xué)期學(xué)的課程有:普通物理 線性代數(shù) 匯編語言; 第三學(xué)期學(xué)的課程有:數(shù)值分析 計算機(jī)原理 離散數(shù)學(xué); 第四學(xué)期學(xué)的課程有:數(shù)據(jù)結(jié)構(gòu);

      攀枝花學(xué)院課程設(shè)計論文 教學(xué)計劃編制問題

      第五學(xué)期學(xué)的課程有:操作系統(tǒng) 語言的設(shè)計和分析; 第六學(xué)期學(xué)的課程有:編譯原理。

      7.實(shí)驗(yàn)分工

      8.總結(jié)

      剛開始學(xué)的時候確實(shí)有很多地方我很不理解,每次上課時老師都會給我們出不同的設(shè)計題目,對于我們一個初學(xué)者來說,無疑是一個具大的挑戰(zhàn),撞了幾次壁之后,我決定靜下心來,仔細(xì)去寫程序。老師會給我們需要編程的內(nèi)容一些講解,順著老師的思路,來完成自己的設(shè)計,我們可以開始運(yùn)行自己的程序,可是好多處的錯誤讓人看的可怕,還看不出到底是哪里出現(xiàn)了錯誤,但是程序還是得繼續(xù)下去,我多次請教了老師和同學(xué),逐漸能自己找出錯誤,并加以改正。經(jīng)過了這次課程設(shè)計,現(xiàn)在已經(jīng)可以了解很多錯誤在英文里的提示,這對我來說是一個突破性的進(jìn)步,眼看著一個個錯誤通過自己的努力在我眼前消失,覺得很是開心。此次的程序設(shè)計能夠成功,是我和我的同學(xué)三個人共同努力作用的結(jié)果。在這一段努力學(xué)習(xí)的過程中,我們的編程設(shè)計有了明顯的提高。

      其實(shí)現(xiàn)在想起來,收獲還真是不少,雖然說以前非常不懂這門語言,在它上面花費(fèi)了好多心血,覺得它很難,是需用花費(fèi)了大量的時間編寫出來的?,F(xiàn)在真正的明白了一些代碼的應(yīng)用,每個程序都有一些共同點(diǎn),通用的結(jié)構(gòu),相似的格式。同時也對教學(xué)編制問題有了進(jìn)一步的認(rèn)識。只要努力去學(xué)習(xí),就會靈活的去應(yīng)用它。

      9.參考文獻(xiàn)

      [1]《數(shù)據(jù)結(jié)構(gòu)》(C語言版),嚴(yán)蔚敏,清華大學(xué)出版社,2003。

      攀枝花學(xué)院課程設(shè)計論文 教學(xué)計劃編制問題

      [2]《數(shù)據(jù)結(jié)構(gòu)題集》,嚴(yán)蔚敏,清華大學(xué)出版社,2005。[3]《數(shù)據(jù)結(jié)構(gòu)》(C語言版),劉大有,高等教育出版社,2004。[4]《Data Structure with C++》,William Ford.William Topp,清華大學(xué)出版社,2003。

      第二篇:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

      課 程 設(shè) 計 任 務(wù) 書

      信息 學(xué)院 信息管理與信息系統(tǒng) 專業(yè) 09級1班 班 孫鵬一、二、課程設(shè)計題目: 迷宮求解、一元多項(xiàng)式

      課程設(shè)計主要參考資料: 數(shù)據(jù)結(jié)構(gòu)(C語言版)嚴(yán)蔚敏、吳偉民 編著

      數(shù)據(jù)結(jié)構(gòu)題集(C語言版)嚴(yán)蔚敏、吳偉民、米寧 編著

      數(shù)據(jù)結(jié)構(gòu)課件

      三、設(shè)計應(yīng)解決下列各主要問題:

      1.實(shí)現(xiàn)迷宮的路徑求解,并輸出最終路徑,標(biāo)記走過卻未選擇的路徑和最終選擇的路徑

      2.對一元多項(xiàng)式實(shí)現(xiàn)加法,減法,乘法,求導(dǎo)的計算,并按指數(shù)由大到小排序輸出

      四、課程設(shè)計相關(guān)附件(如:圖紙、軟件等):

      五、命題發(fā)出日期:2011-3-15 設(shè)計應(yīng)完成日期: 2010-6-20

      設(shè)計指導(dǎo)教師(簽章):

      系主任(簽章):

      指導(dǎo)教師對課程設(shè)計的評語

      指導(dǎo)教師(簽章):

      年 月 日

      山東科技大學(xué)學(xué)生課程設(shè)計

      課程設(shè)計1 迷宮問題

      一、需求分析:

      1.2.3.4.以二維數(shù)組Maze[][]表示迷宮

      用戶輸入迷宮的數(shù)據(jù):構(gòu)建迷宮,行數(shù)m,列數(shù)n 迷宮的入口位置和出口位置可由用戶隨時設(shè)定

      若設(shè)定的迷宮存在通路,則以長方陣形式將迷宮及其通路輸出到標(biāo)準(zhǔn)輸出文件(即終端)上,其中,字符“#”表示障礙,字符“*”表示路徑上的位置,字符“@”表示“死胡同”,即曾經(jīng)途徑然而不能到達(dá)出口的位置,余者用空格符印出。若設(shè)定的迷宮不存在通路,則報告相應(yīng)信息。

      5.本程序只求出一條成功的通路。然而,只需要對迷宮求解的函數(shù)做小量修改,便可求得全部路徑。

      二、概要設(shè)計:

      抽象數(shù)據(jù)類型線性表的定義如下: ⒈ 設(shè)計棧的抽象數(shù)據(jù)類型定義:

      ADT Stack { 數(shù)據(jù)對象:D={ai:|ai∈PositionSet,i=1?n,n≥0} 數(shù)據(jù)關(guān)系:R1={|ai-1,ai∈d,i=2,?n} 基本操作:的初始化S GetTop(S,&e)素

      Push(&S,e)Pop(&S,e)

      返回其值 }ADT Stack;

      ⒉ 迷宮的抽象數(shù)據(jù)類型定義: ADT Maze{ 數(shù)據(jù)對象:D:={aij,Start,end|aij,Start,end∈{} 0≤i≤m+2,0≤j≤n+2,m,n≥0}

      數(shù)據(jù)關(guān)系:R={ROW.COL} Row={|ai-1,aij∈D i=1,?,m+2,j=1,?,n+2}

      第1頁

      操作結(jié)果

      構(gòu)造一個空棧,完成棧用e返回棧S的棧頂元將新的元素e壓入棧頂 刪除棧頂元素,并用eInitStack(&S)

      山東科技大學(xué)學(xué)生課程設(shè)計

      Col={|aijaij-1∈D}

      基本操作: masepath(int i,int j,int m,int n,sqstack &s)初始條件:已知目前迷宮狀態(tài), 傳過起始位置,和終止位置 操作結(jié)果:搜索迷宮,用sqstack s返回搜索所得路徑。如不存在,返回2 }ADT MAZE

      三、詳細(xì)設(shè)計:

      #include #include #include #define OVERFLOW-2 #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define STACK_INIT_SIZE 100 //存儲空間初始量 #define STACK_INCREMENT 10//存儲空間初始增量

      typedef int Status;

      typedef struct { int r;int c;}PostType;//坐標(biāo)位置

      迷宮的r行c列 typedef struct { int ord;//通道塊在路徑上的序號

      PostType seat;//通道塊的當(dāng)前坐標(biāo)位置

      int di;//通道塊指向下一通道塊的方向 }SElemType;//棧元素的類型 typedef struct { SElemType *base;//棧底指針

      SElemType *top;//棧頂指針

      int stacksize;//棧的最大容量 }Stack;//棧的類型

      第2頁 山東科技大學(xué)學(xué)生課程設(shè)計

      Status InitStack(Stack &S)//初始化棧 { S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!S.base)

      exit(OVERFLOW);//存儲分配失敗;S.top=S.base;S.stacksize=STACK_INIT_SIZE;return OK;}//InitStack

      Status StackEmpty(Stack S)//判斷棧是否為空,如果為空返回TRUE,否則返回FALSE { if(S.top==S.base)

      return TRUE;

      return FALSE;}//StackEmpty

      Status Push(Stack &S,SElemType e)//插入元素為e的棧頂元素 { if(S.top-S.base>=S.stacksize){

      S.base=(SElemType*)realloc(S.base,(S.stacksize+STACK_INCREMENT)*sizeof(SElemType));

      if(!S.base)

      exit(OVERFLOW);

      S.top=S.base+S.stacksize;

      S.stacksize+=STACK_INCREMENT;} *S.top++=e;return OK;}//Push

      Status Pop(Stack &S,SElemType &e)//刪除棧頂元素存入e { if(S.top==S.base)

      return ERROR;e=*--S.top;

      第3頁 山東科技大學(xué)學(xué)生課程設(shè)計

      return OK;}//Pop

      Status DestroyStack(Stack &S)//銷毀棧 { free(S.base);S.top=S.base;return OK;}//DestroyStack

      //maze.cpp #define MAXLEN 20//迷宮包括外墻最大行列數(shù)目 typedef struct{

      int r;

      int c;

      char adr[MAXLEN][MAXLEN];//可取' ''*' '@' '#' }MazeType;

      //迷宮類型

      Status InitMaze(MazeType &maze){ //初始化迷宮若成功返回TRUE,否則返回FALSE

      int m,n,i,j,k=1;

      printf(“輸入迷口的行數(shù)和列數(shù): ”);

      scanf(“%d%d”,&maze.r,&maze.c);//迷宮行和列數(shù)

      for(i=0;i<=maze.c+1;i++){//迷宮行外墻

      maze.adr[0][i]='#';

      maze.adr[maze.r+1][i]='#';

      }//for

      for(i=0;i<=maze.r+1;i++){//迷宮列外墻

      maze.adr[i][0]='#';

      maze.adr[i][maze.c+1]='#';

      }

      for(i=1;i<=maze.r;i++)

      for(j=1;j<=maze.c;j++)

      maze.adr[i][j]=' ';//初始化迷宮

      printf(“輸入障礙物%d的坐標(biāo)(以坐標(biāo)(0,0)結(jié)束輸入): ”,k);

      scanf(“%d%d”,&m,&n);

      k++;

      while(m!=0)

      {

      if(m>maze.r || n>maze.c)//越界

      第4頁 山東科技大學(xué)學(xué)生課程設(shè)計

      exit(ERROR);

      maze.adr[m][n]='#';//迷宮障礙用'#'標(biāo)記

      printf(“輸入障礙物%d的坐標(biāo)(以坐標(biāo)(0,0)結(jié)束輸入): ”,k);

      scanf(“%d%d”,&m,&n);

      k++;

      }

      return OK;}//InitMaze

      Status Pass(MazeType maze,PostType curpos){ //當(dāng)前位置可通則返回TURE,否則返回FALSE

      if(maze.adr[curpos.r][curpos.c]==' ')//可通

      return TRUE;

      else

      return FALSE;}//Pass

      Status FootPrint(MazeType &maze,PostType curpos){ //若走過并且可通返回TRUE,否則返回FALSE //在返回之前銷毀棧S

      maze.adr[curpos.r][curpos.c]='*';//“*”表示可通

      return OK;}//FootPrint

      PostType NextPos(PostType &curpos,int i){ //指示并返回下一位置的坐標(biāo)

      PostType cpos;

      cpos=curpos;

      switch(i){

      //1.2.3.4分別表示東,南,西,北方向

      case 1 : cpos.c+=1;break;

      case 2 : cpos.r+=1;break;

      case 3 : cpos.c-=1;break;

      case 4 : cpos.r-=1;break;

      default: exit(ERROR);

      }

      return cpos;}//Nextpos

      Status MarkPrint(MazeType &maze,PostType curpos){ //曾走過但不是通路標(biāo)記并返回OK

      第5頁 山東科技大學(xué)學(xué)生課程設(shè)計

      maze.adr[curpos.r][curpos.c]='@';//“@”表示曾走過但不通

      return OK;}//MarkPrint

      void PrintMaze(MazeType &maze)//將最后標(biāo)記好的迷宮輸出 { int i,j;printf(“n輸出迷宮的路徑:n”);for(i=0;i<=maze.c+1;i++)

      printf(“%4d”,i);//輸出列數(shù)

      printf(“n”);for(i=0;i<=maze.r+1;i++){

      printf(“%d”,i);//輸出行數(shù)

      for(j=0;j<=maze.c+1;j++)

      printf(“%4c”,maze.adr[i][j]);//輸出迷宮

      printf(“n”);} }//PrintMaze

      Status MazePath(MazeType &maze,PostType start,PostType end)//若迷宮從入口start到end的通道則求得一條存放在棧中 { Stack S;//初始化棧

      PostType curpos;int curstep;SElemType e;InitStack(S);curpos=start;curstep=1;do {

      if(Pass(maze,curpos))//當(dāng)前位置可通過而未曾走過留下足跡

      {

      FootPrint(maze,curpos);

      e.ord=curstep;e.seat=curpos;e.di=1;

      Push(S,e);//加入棧路徑中

      if(curpos.r==end.r && curpos.c==end.c)//到達(dá)出口返回TRUE

      {

      第6頁 山東科技大學(xué)學(xué)生課程設(shè)計

      if(!DestroyStack(S))

      exit(OVERFLOW);

      else return TRUE;

      }

      else

      {

      curpos=NextPos(curpos,1);//下一位置是當(dāng)前位置

      curstep++;//探索下一步

      }

      }//if

      else//當(dāng)前位置不能通過

      {

      if(!StackEmpty(S))

      {

      Pop(S,e);//提取前一位置

      while(e.di==4 &&!StackEmpty(S))//4個方向都不能通過則留下記號@ 提取前一個位置進(jìn)行判斷是否是能通過

      {

      MarkPrint(maze,e.seat);

      Pop(S,e);

      }

      if(e.di<4)//換下一個方向探索

      設(shè)定當(dāng)前位置為該新方向上的鄰位

      {

      e.di++;

      Push(S,e);

      curpos=NextPos(e.seat,e.di);

      }

      }//if

      } }while(!StackEmpty(S));if(!DestroyStack(S))

      exit(ERROR);else return FALSE;}//MazePath

      int main(){ MazeType maze;PostType start,end;char c;

      第7頁 山東科技大學(xué)學(xué)生課程設(shè)計

      do {

      printf(“**********迷宮求解**********n”);

      if(!InitMaze(maze))

      {

      printf(“n 初始化迷宮失??!!”);

      exit(ERROR);

      }

      do

      {

      printf(“n請輸入入口的坐標(biāo):”);

      scanf(“%d%d”,&start.r,&start.c);//輸入入口坐標(biāo)

      if(start.r>maze.r || start.c>maze.c)

      printf(“n輸入錯誤,請重新輸入入口的坐標(biāo)!n”);

      continue;

      }

      while(start.r>maze.r || start.c>maze.c);

      do

      {

      printf(“n請輸入出口的坐標(biāo):”);//輸入出口的坐標(biāo)

      scanf(“%d%d”,&end.r,&end.c);

      if(end.r>maze.r || end.c>maze.c)

      printf(“n輸入錯誤,請重新輸入出口坐標(biāo)!n”);

      continue;

      }

      while(end.r>maze.r || end.c>maze.c);

      if(!MazePath(maze,start,end))

      printf(“n不能找到一條路徑!!n”);

      else PrintMaze(maze);//輸出迷宮

      printf(“是否要繼續(xù)?(y/n):”);

      scanf(“%s”,&c);} while(c=='y' || c=='Y');}。測試結(jié)果:

      第8頁

      四、山東科技大學(xué)學(xué)生課程設(shè)計

      課程設(shè)計2 一元多項(xiàng)式

      一、需求分析:

      第9頁 山東科技大學(xué)學(xué)生課程設(shè)計

      1.2.3.首先定義一個結(jié)構(gòu)體,其中定義一元多項(xiàng)式中的兩個參數(shù):系數(shù)和指數(shù)和鏈表中結(jié)點(diǎn)的指針域;

      然后一一羅列每個在主程序中用到的函數(shù),并一一實(shí)現(xiàn); 最后在主程序中主要完成用戶的輸入和相關(guān)函數(shù)的調(diào)用。

      二、概要設(shè)計:

      void insert(PLOYList *head,PLOYList *input)

      //查找位置插入新鏈節(jié)的函數(shù),且讓輸入的多項(xiàng)式呈降序排列 PLOYList *creat(char ch)//輸入多項(xiàng)式

      PLOYList *add(PLOYList *head,PLOYList *pre)//多項(xiàng)式相加,head為第一個多項(xiàng)式建立的鏈表表頭,pre為第二個多項(xiàng)式建立的鏈表表頭

      PLOYList *sub(PLOYList *head,PLOYList *pre)//多項(xiàng)式相減

      PLOYList *mul(PLOYList *head,PLOYList *pre)//多項(xiàng)式相乘

      PLOYList *der(PLOYList *head)//多項(xiàng)式求導(dǎo)

      void print(PLOYList *fun)//輸出多項(xiàng)式,fun指要輸出的多項(xiàng)式鏈表的表頭 void start()//用戶選擇界面

      三、詳細(xì)設(shè)計:

      #include #include typedef struct node

      //定義節(jié)點(diǎn)類型 { float coef;

      //多項(xiàng)式的系數(shù)

      int expn;

      //多項(xiàng)式的指數(shù)

      struct node * next;//結(jié)點(diǎn)指針域 }PLOYList;void insert(PLOYList *head,PLOYList *input)

      //查找位置插入新鏈節(jié)的函數(shù),且讓輸入的多項(xiàng)式呈降序排列 {

      PLOYList *pre,*now;

      int signal=0;

      pre=head;

      第10頁 山東科技大學(xué)學(xué)生課程設(shè)計

      if(pre->next==NULL){pre->next=input;} //如果只有一個頭結(jié)點(diǎn),則把新結(jié)點(diǎn)直接連在后面

      else {

      now=pre->next;//如果不是只有一個頭結(jié)點(diǎn),則設(shè)置now指針

      while(signal==0)

      {

      if(input->expn < now->expn)

      {

      if(now->next==NULL)

      {

      now->next=input;

      signal=1;

      }

      else

      {

      pre=now;

      now=pre->next;//始終讓新輸入的數(shù)的指數(shù)與最后一個結(jié)點(diǎn)中的數(shù)的指數(shù)比較,小于則插在其后面

      }

      }

      else if(input->expn > now->expn)

      {

      input->next=now;

      pre->next=input;

      signal=1;

      }//若新結(jié)點(diǎn)中指數(shù)比最后一個結(jié)點(diǎn)即now中的指數(shù)大,則插入now之前

      else//若指數(shù)相等則需合并為一個結(jié)點(diǎn),若相加后指數(shù)為0則釋放該結(jié)點(diǎn)

      {

      now->coef=now->coef+input->coef;

      signal=1;

      free(input);

      if(now->coef==0)

      {

      pre->next=now->next;

      free(now);

      }

      }//else } //while

      第11頁 山東科技大學(xué)學(xué)生課程設(shè)計

      }//else }//void

      PLOYList *creat(char ch)

      //輸入多項(xiàng)式 {

      PLOYList *head,*input;

      float x;

      int y;

      head=(PLOYList *)malloc(sizeof(PLOYList));

      //創(chuàng)建鏈表頭

      head->next=NULL;

      scanf(“%f %d”,&x,&y);//實(shí)現(xiàn)用戶輸入的第一個項(xiàng),包括其指數(shù)和系數(shù)

      while(x!=0)

      {

      input=(PLOYList *)malloc(sizeof(PLOYList));//創(chuàng)建新鏈節(jié)

      input->coef=x;

      input->expn=y;

      input->next=NULL;

      insert(head,input);//每輸入一項(xiàng)就將其排序,是的鏈表中多項(xiàng)式呈降序排列

      scanf(“%f %d”,&x,&y);

      } return head;}

      PLOYList *add(PLOYList *head,PLOYList *pre)

      //多項(xiàng)式相加,head為第一個多項(xiàng)式建立的鏈表表頭,pre為第二個多項(xiàng)式建立的鏈表表頭 {

      PLOYList *input;

      int flag=0;

      while(flag==0)

      {

      if(pre->next==NULL)

      flag=1;//若該鏈表為空,則無需進(jìn)行加法運(yùn)算,跳出循環(huán)

      else

      {

      pre=pre->next;

      input=(PLOYList *)malloc(sizeof(PLOYList));

      第12頁 山東科技大學(xué)學(xué)生課程設(shè)計

      input->coef=pre->coef;

      input->expn=pre->expn;

      input->next=NULL;

      insert(head,input);// 把g(x)插入到f(x)中,相當(dāng)于兩者相加,結(jié)果保存于f(x)

      }

      } return head;}

      PLOYList *sub(PLOYList *head,PLOYList *pre)//多項(xiàng)式相減 {

      PLOYList *input;

      int flag=0;

      while(flag==0)

      {

      if(pre->next==NULL)

      flag=1;

      else

      {

      pre=pre->next;

      input=(PLOYList *)malloc(sizeof(PLOYList));

      input->coef=0-pre->coef;//將第二個多項(xiàng)式里的數(shù)變?yōu)槠湎喾磾?shù),再用和加法一樣的方法實(shí)現(xiàn)減法

      input->expn=pre->expn;

      input->next=NULL;

      insert(head,input);

      }

      } return head;}

      PLOYList *mul(PLOYList *head,PLOYList *pre)//多項(xiàng)式項(xiàng)乘 { PLOYList *hf,*pf,*qa,*qb;

      qa = head-> next;

      qb = pre-> next;//定義指針指向表頭后一個元素,即鏈表中第一個元素

      hf =(PLOYList *)malloc(sizeof(PLOYList));//新創(chuàng)建一個結(jié)點(diǎn),當(dāng)做表頭

      hf-> next = NULL;for(;qa;qa = qa-> next)

      第13頁 山東科技大學(xué)學(xué)生課程設(shè)計

      {

      for(qb = pre-> next;qb;qb= qb-> next)//用兩個循環(huán),實(shí)現(xiàn)兩個多項(xiàng)式之間每個項(xiàng)相乘,結(jié)果用insert函數(shù)進(jìn)行排序與合并

      {

      pf =(PLOYList *)malloc(sizeof(PLOYList));

      pf-> coef = qa-> coef * qb-> coef;//系數(shù)相乘

      pf-> expn = qa-> expn + qb-> expn;//指數(shù)相加

      pf-> next = NULL;

      insert(hf,pf);

      } } return hf;}

      PLOYList *der(PLOYList *head)//多項(xiàng)式求導(dǎo) { PLOYList *p;p = head-> next;while(p){

      p-> coef = p-> coef * p-> expn;

      p-> expn = p-> expn--;

      p = p-> next;} return head;}//將多項(xiàng)式的每項(xiàng)系數(shù)和指數(shù)相乘得到新的系數(shù),指數(shù)減一得到新的指數(shù)即完成求導(dǎo)

      void print(PLOYList *fun)//輸出多項(xiàng)式,fun指要輸出的多項(xiàng)式鏈表的表頭 {

      PLOYList *printing;

      int flag=0;

      printing=fun->next;

      if(fun->next==NULL)//若為空表,則無需輸出

      {

      printf(“0n”);

      return;

      }

      while(flag==0)

      {

      第14頁 山東科技大學(xué)學(xué)生課程設(shè)計

      if(printing->coef>0&&fun->next!=printing)

      printf(“+”);

      if(printing->coef==1);

      else if(printing->coef==-1)

      printf(“-”);

      else

      printf(“%f”,printing->coef);

      if(printing->expn!=0)printf(“x^%d”,printing->expn);

      else if((printing->coef==1)||(printing->coef==-1))

      printf(“1”);

      if(printing->next==NULL)

      flag=1;

      else

      printing=printing->next;

      } printf(“n”);}

      void start()//用戶選擇界面 { printf(“

      #n”);

      printf(“

      用戶選擇界面

      n”);

      printf(“ ************************************n”);

      printf(“ *

      *n”);

      printf(“ *

      1.兩個一元多項(xiàng)式相加

      *n”);

      printf(“ *

      2.兩個一元多項(xiàng)式相減

      *n”);

      printf(“ *

      3.兩個一元多項(xiàng)式相乘

      *n”);

      printf(“ *

      4.對一個一個一元多項(xiàng)式求導(dǎo) *n”);

      printf(“ *

      0.退出系統(tǒng)

      *n”);

      printf(“ *

      *n”);

      printf(“ ************************************n”);

      printf(“

      n”);

      printf(“ 注釋:輸入多項(xiàng)式格式(可無序):系數(shù)1 指數(shù)1 系數(shù)2 指數(shù)2 ??,并以0 0 結(jié)束:n”);

      printf(“

      n”);

      printf(“ 請選擇操作: ”);}

      int main(){ PLOYList *f,*g,*pf,*hf,*p;

      第15頁 山東科技大學(xué)學(xué)生課程設(shè)計

      int sign=-1;

      start();

      while(sign!=0)

      {

      scanf(“%d”,&sign);

      switch(sign)

      {

      case 0:

      break;

      case 1://多項(xiàng)式相加

      {

      printf(“ 你選擇的操作是多項(xiàng)式相加:n”);

      printf(“ 請輸入第一個多項(xiàng)式f(x):”);

      f=creat('f');

      printf(“ 第一個多項(xiàng)式為:f(x)=”);

      print(f);

      printf(“ 請輸入第二個多項(xiàng)式g(x):”);

      g=creat('g');

      printf(“ 第二個多項(xiàng)式為:g(x)=”);

      print(g);

      printf(“ 結(jié)果為:F(x)=f(x)+g(x)=”);

      f=add(f,g);

      print(f);

      printf(“nn”);

      printf(“ 繼續(xù)請選擇相應(yīng)操作,退出請按0.break;

      }

      case 2://多項(xiàng)式相減

      {

      printf(” 你選擇的操作是多項(xiàng)式相減:n“);

      printf(” 請輸入第一個多項(xiàng)式f(x):“);

      f=creat('f');

      printf(” 第一個多項(xiàng)式為:f(x)=“);

      print(f);

      printf(” 請輸入第二個多項(xiàng)式g(x):“);

      g=creat('g');

      printf(” 第二個多項(xiàng)式為:g(x)=“);

      print(g);

      printf(” 結(jié)果為:F(x)=f(x)-g(x)=“);

      f=sub(f,g);

      print(f);

      ”);第16頁

      山東科技大學(xué)學(xué)生課程設(shè)計

      printf(“nn”);

      printf(“ 繼續(xù)請選擇相應(yīng)操作,退出請按0.”);

      break;

      }

      case 3://多項(xiàng)式相乘

      {

      printf(“ 你選擇的操作是多項(xiàng)式相乘:n”);

      printf(“ 請輸入第一個多項(xiàng)式f(x):”);

      f=creat('f');

      printf(“ 第一個多項(xiàng)式為:f(x)=”);

      print(f);

      printf(“ 請輸入第二個多項(xiàng)式g(x):”);

      g=creat('g');

      printf(“ 第二個多項(xiàng)式為:g(x)=”);

      print(g);

      printf(“ 結(jié)果為:F(x)=f(x)* g(x)=”);

      pf=mul(f,g);

      print(pf);

      printf(“nn”);

      printf(“ 繼續(xù)請選擇相應(yīng)操作,退出請按0.”);

      break;

      }

      case 4://多項(xiàng)式求導(dǎo)

      {

      printf(“您選擇的是對一個一元多項(xiàng)式求導(dǎo):n”);

      printf(“請輸入一個一元多項(xiàng)式:”);

      f = creat('f');

      printf(“這個多項(xiàng)式為:f(x)= ”);

      print(f);

      printf(“求導(dǎo)結(jié)果為:F(x)=f'(x)= ”);

      f=der(f);

      print(f);

      printf(“nn”);

      printf(“ 繼續(xù)請選擇相應(yīng)操作,退出請按0.”);

      break;

      }

      }//swith

      }//while }//void

      四、測試結(jié)果:

      第17頁 山東科技大學(xué)學(xué)生課程設(shè)計

      第18頁

      第三篇:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

      南京航空航天大學(xué)金城學(xué)院

      《數(shù)據(jù)結(jié)構(gòu)》 課程設(shè)計報告

      題目:一元多項(xiàng)式的加減乘法運(yùn)算

      班級: 20100232 學(xué)號: 2010023220 姓名: 祁博 成績:

      指導(dǎo)教師: 葉延風(fēng)

      完成日期: 2012年 2月18 日

      課程設(shè)計的主要內(nèi)容 需求分析

      1.1課程設(shè)計題目

      用線性表實(shí)現(xiàn)一元多項(xiàng)式的加法減法與乘法。

      1.2課程設(shè)計的任務(wù)及要求

      任務(wù):利用所學(xué)線性表知識來完成計算器中一元多項(xiàng)式的加法減法與乘法的運(yùn)算。要求:能自己創(chuàng)建線性表,能自主的進(jìn)行線性表的有關(guān)插入刪除操作,并且可以在此基礎(chǔ)上實(shí)現(xiàn)線性表之間的加減乘除運(yùn)算。

      1.3課程設(shè)計思想

      首先要定義一個結(jié)構(gòu)體,其中定義一元多項(xiàng)式的兩個參數(shù),系數(shù)和指數(shù)和鏈表中的指針域,然后一一羅列每個在主程序中得到的函數(shù),并一一實(shí)現(xiàn),最后在主程序中主要完成用戶的輸入和相關(guān)程序的調(diào)用。

      1.4軟件開發(fā)的環(huán)境

      VC++6.0。

      ? 2.程序源代碼

      #include #include

      typedef struct node{//定義節(jié)點(diǎn)類型

      float coef;int expn;

      struct node * next;}Ployn;

      void menu()//用戶選擇界面

      {

      printf(“************************************n”);

      printf(“ 兩個一元多項(xiàng)式的相加/相減,相乘:n”);

      printf(“************************************n”);

      printf(“請選擇操作:n”);

      printf(“0.退出n”);

      printf(“1.兩個一元多項(xiàng)式相加n”);

      printf(“2.兩個一元多項(xiàng)式相乘n”);

      printf(“3.兩個一元多項(xiàng)式相減n”);

      }

      void insert(Ployn *head,Ployn *inpt)//查找位置插入新鏈節(jié)程序

      {

      Ployn *pre,*now;

      int signal=0;

      pre=head;//pre定義為現(xiàn)在的前一個鏈節(jié)

      if(pre->next==NULL){pre->next=inpt;}

      else {now=pre->next;while(signal==0){

      if(inpt->expn>now->expn)//當(dāng)新鏈節(jié)小于現(xiàn)在的連接時向后移一個鏈節(jié)

      {

      if(now->next==NULL)

      {

      now->next=inpt;

      signal=1;

      }

      else

      {

      pre=now;

      now=pre->next;

      }

      }

      else if(inpt->expnexpn)//如果發(fā)現(xiàn)比現(xiàn)在的鏈節(jié)大了就插入到這個連接的前面

      {

      inpt->next=now;

      pre->next=inpt;

      signal=1;

      }

      else

      {

      now->coef=now->coef+inpt->coef;

      signal=1;

      free(inpt);//與當(dāng)前鏈節(jié)相等指數(shù)

      if(now->coef==0)

      {

      pre->next=now->next;

      free(now);

      }

      } } } }

      Ployn *creat(char ch)//輸入多項(xiàng)式

      {

      Ployn *head,*inpt;

      float x;

      int y;

      head=(Ployn *)malloc(sizeof(Ployn));//創(chuàng)建鏈表頭

      head->next=NULL;

      printf(“請輸入一元多項(xiàng)式%c:(格式是:系數(shù) 指數(shù);以0 0 結(jié)束!)n”,ch);

      scanf(“%f %d”,&x,&y);

      while(x!=0)

      {

      inpt=(Ployn *)malloc(sizeof(Ployn));//創(chuàng)建新鏈節(jié)

      inpt->coef=x;

      inpt->expn=y;

      inpt->next=NULL;

      insert(head,inpt);//不然就查找位置并且插入新鏈節(jié)

      printf(“請輸入一元多項(xiàng)式%c的下一項(xiàng):(以0 0 結(jié)束!)n”,ch);

      scanf(“%f %d”,&x,&y);

      }

      return head;}

      Ployn *addPloyn(Ployn *head,Ployn *pre)//多項(xiàng)式相加

      {

      Ployn *inpt;

      int flag=0;

      while(flag==0)

      {

      if(pre->next==NULL)

      flag=1;//當(dāng)現(xiàn)在指向空時跳出循環(huán)

      else

      {

      pre=pre->next;

      inpt=(Ployn *)malloc(sizeof(Ployn));//創(chuàng)建新鏈節(jié)

      inpt->coef=pre->coef;

      inpt->expn=pre->expn;

      inpt->next=NULL;

      insert(head,inpt);

      }//否則把當(dāng)前“g(x)”的鏈節(jié)插入到“y(x)”中

      }

      return head;}

      Ployn *minusPloyn(Ployn *head,Ployn *pre)//多項(xiàng)式相加

      {

      Ployn *inpt;

      int flag=0;

      while(flag==0)

      {

      if(pre->next==NULL)

      flag=1;//當(dāng)現(xiàn)在指向空時跳出循環(huán)

      else

      {

      pre=pre->next;

      inpt=(Ployn *)malloc(sizeof(Ployn));//創(chuàng)建新鏈節(jié)

      inpt->coef=0-pre->coef;

      inpt->expn=pre->expn;

      inpt->next=NULL;

      insert(head,inpt);

      }//否則把當(dāng)前“g(x)”的鏈節(jié)插入到“y(x)”中

      }

      return head;}

      Ployn *byPloyn(Ployn *head1,Ployn *head2)//多項(xiàng)式相乘

      {

      Ployn *inpt,*res,*pre;

      int flag=0;

      res=(Ployn *)malloc(sizeof(Ployn));//創(chuàng)建鏈表頭

      res->next=NULL;

      head1=head1->next;

      pre=head2;

      while(flag==0)

      {

      if(pre->next==NULL)

      {

      pre=head2;//當(dāng)現(xiàn)在指向空時跳出循環(huán)

      head1=head1->next;

      continue;

      }

      if(head1==NULL)

      {

      flag=1;//當(dāng)現(xiàn)在指向空時跳出循環(huán)

      continue;

      }

      pre=pre->next;

      inpt=(Ployn *)malloc(sizeof(Ployn));//創(chuàng)建新鏈節(jié)

      inpt->coef=pre->coef*head1->coef;

      inpt->expn=pre->expn+head1->expn;

      inpt->next=NULL;

      insert(res,inpt);//把當(dāng)前“g(x)”的鏈節(jié)插入到“y(x)”中

      }

      return res;}

      void print(Ployn *fun)//輸出多項(xiàng)式

      {

      Ployn *printing;

      int flag=0;

      printing=fun->next;//正在被打印的鏈節(jié)

      if(fun->next==NULL)//如果函數(shù)為空打印0

      {

      printf(“0n”);

      return;}

      while(flag==0)

      {

      if(printing->coef>0 && fun->next!=printing)

      printf(“+”);//為正數(shù)且不為第一項(xiàng)時打印“+”號

      if(printing->coef==1);//如果為“1”就不用打印系數(shù)了

      else if(printing->coef==-1)

      printf(“-”);//如果為“-1”就打印“-”號就行了

      else

      printf(“%f”,printing->coef);//其余情況都得打印

      if(printing->expn!=0)//如果指數(shù)為“0”不打印指數(shù)項(xiàng)

      { if(printing->expn==1)printf(“x”);

      else printf(“x^%d”,printing->expn);

      }

      else if((printing->coef==1)||(printing->coef==-1))

      printf(“1”);

      if(printing->next==NULL)

      flag=1;//如果現(xiàn)在的鏈節(jié)沒有下一個就結(jié)束

      else

      printing=printing->next;

      }

      printf(“n”);}

      void main(){

      Ployn *f,*g;

      int sign=-1;//設(shè)置標(biāo)志

      menu();

      while(sign!=0)

      {

      scanf(“%d”,&sign);

      switch(sign){

      case 0: break;//退出

      case 1:

      {

      printf(“你選擇的操作是多項(xiàng)式相加:n”);

      f=creat('f');//輸入多項(xiàng)式f(x)

      printf(“f(x)=”);

      print(f);

      g=creat('g');//輸入多項(xiàng)式g(x)

      printf(“g(x)=”);

      print(g);

      printf(“F(x)=f(x)+g(x)=”);

      f=addPloyn(f,g);//兩個多項(xiàng)式相加

      print(f);

      sign=-1;//復(fù)位標(biāo)志

      menu();//回復(fù)用戶選擇界面

      break;

      }

      case 2:

      {

      printf(“你選擇的操作是多項(xiàng)式相乘:n”);

      f=creat('f');//輸入多項(xiàng)式f(x)

      printf(“f(x)=”);

      print(f);

      g=creat('g');//輸入多項(xiàng)式g(x)

      printf(“g(x)=”);

      print(g);

      printf(“F(x)=f(x)*g(x)=”);

      f=byPloyn(f,g);//兩個多項(xiàng)式相加

      print(f);

      sign=-1;//復(fù)位標(biāo)志

      menu();//回復(fù)用戶選擇界面

      break;

      }

      case 3:

      {

      printf(“你選擇的操作是多項(xiàng)式相減:n”);

      f=creat('f');//輸入多項(xiàng)式f(x)

      printf(“f(x)=”);

      print(f);

      g=creat('g');//輸入多項(xiàng)式g(x)

      printf(“g(x)=”);

      print(g);

      printf(“F(x)=f(x)-g(x)=”);

      f=minusPloyn(f,g);//兩個多項(xiàng)式相加

      print(f);

      sign=-1;//復(fù)位標(biāo)志

      menu();//回復(fù)用戶選擇界面

      break;

      }

      default:

      {

      printf(“輸入有誤!請重新選擇操作!n”);//選擇錯誤,返回選擇界面

      menu();

      break;

      }

      }

      } }

      ? 3.心得體會

      每次做課設(shè)都有很大的收獲。課設(shè)不僅是對課本知識的理論實(shí)踐,更是對自我的一種挑戰(zhàn)。

      這次課設(shè)過程中,遇到很多的問題,讓我有種無從下手的感覺,但是辦法總比困難多,于是,在老師、同學(xué)的幫助下,以及自己在翻書、上網(wǎng)找資料的情況下,順利解決問題。于是,我又上課的認(rèn)識到,團(tuán)隊的重要性。

      第四篇:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

      河海大學(xué)計算機(jī)與信息學(xué)院(常州)

      數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

      課程設(shè)計題目:

      多 項(xiàng) 式 問 題

      專業(yè)、年級:計算機(jī)科學(xué)與技術(shù)09級 學(xué)

      號:

      0962810226

      名:

      目 錄

      一、問題描述-------------3

      二、需求分析-------------4

      三、概要設(shè)計-------------4 1.概要設(shè)計目的與要求--4 2.概要設(shè)計內(nèi)容--------4 3.功能算法描述與數(shù)據(jù)結(jié)構(gòu)說明-------------------------5

      四、詳細(xì)設(shè)計-------------5

      五、系統(tǒng)測試-------------8

      六、使用說明-------------9

      七、總結(jié)及心得體會-----10

      多項(xiàng)式問題

      一.問題描述

      給你九個整數(shù),這九個整數(shù)分別是x的8次方至0次方的系數(shù),請你按照多項(xiàng)式的一半形式合理地構(gòu)造(去除不必要的)。例如九個系數(shù)分別是為0,0,0,1,22,-333,0,1,-1,你要構(gòu)造并輸出一行多項(xiàng)式:x^5 + 22x^4 – 333x^3 + x – 1。

      它的格式規(guī)則如下:

      1.多項(xiàng)式的項(xiàng)必須按其指數(shù)從高到低排列。2.指數(shù)必須跟在符號“^”后顯示。3.有常數(shù)的只顯示常數(shù)項(xiàng)(無需跟x^0)。

      4.只顯示系數(shù)不為0的項(xiàng);若系數(shù)全為0,需顯示常數(shù)項(xiàng)。

      5.在多項(xiàng)式中唯一需要空格的地方是項(xiàng)與項(xiàng)之間的加號或減號的兩邊需加上空格。

      6.如果首項(xiàng)的系數(shù)是正數(shù),則系數(shù)前不加符號;如果首項(xiàng)的系數(shù)是負(fù)數(shù),則符號與數(shù)字之間不加空格,就如:-3x^2 +-2x。

      7.系數(shù)為1,指數(shù)為0時,系數(shù)的1才顯示(推廣到系數(shù)為-1)。

      輸入/輸出說明

      1.輸入/輸出方式為文件方式,輸入文件有一行或多行的系數(shù),系數(shù)之間有空格分隔。

      2.每行共有九個系數(shù),每個系數(shù)的絕對值為小于1000的整數(shù)。輸出文件包含構(gòu)造完地多項(xiàng)式,每行一個多項(xiàng)式。

      輸入范例

      0 0 0 1 22-333 0 1-1 0 0 0 0 0 0-55 5 0

      輸出范例

      x^5 + 22x^4 – 333x^3 + x – 1-55x^2 + 5x

      二.需求分析

      2.1可行性研究

      該程序主要從技術(shù)的角度來分析可行性。技術(shù)上的可行性研究主要分析技術(shù)條件能否順利完成開發(fā)工作,硬、軟件能否滿足開發(fā)者的需要等。該系統(tǒng)采用了Windows 7操作系統(tǒng)結(jié)合Visual C++ 6.0等軟件開發(fā)平臺已成熟可行。硬件方面,科技飛速發(fā)展的今天,硬件更新的速度越來越快,容量越來越大,可靠性越來越高,其硬件平臺也比較能滿足此系統(tǒng)的需要。

      2.2結(jié)構(gòu)與主要功能模塊

      從實(shí)現(xiàn)多項(xiàng)式輸出過程的角度來分析,至少需要這樣一些子功能模塊。如: 1.多項(xiàng)式創(chuàng)建功能;

      2.多項(xiàng)式輸出功能;

      3.釋放多項(xiàng)式功能;

      4.操作界面顯示功能;

      三.概要設(shè)計

      1.概要設(shè)計目的與要求

      通過多項(xiàng)式程序設(shè)計,使我們進(jìn)一步掌握和利用C++語言進(jìn)行結(jié)構(gòu)化程序設(shè)計的能力;進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程設(shè)計的思想和方法;初步掌握開發(fā)一個小型系統(tǒng)程序設(shè)計的基本方法;學(xué)會調(diào)試一個較長程序的基本方法;以及掌握書寫課程設(shè)計開發(fā)文檔的能力(書寫課程設(shè)計報告)。總之,通過本課程設(shè)計加深對《C++語言》及《數(shù)據(jù)結(jié)構(gòu)》課程所學(xué)知識的理解,進(jìn)一步鞏固C++語言語法規(guī)則,在程序中體現(xiàn)出算法的思想,提高程序的運(yùn)行效率。學(xué)會編制結(jié)構(gòu)清晰、風(fēng)格良好、數(shù)據(jù)結(jié)構(gòu)適當(dāng)?shù)腃++語言程序,從而具備解決綜合性實(shí)際問題的能力。

      2.概要設(shè)計內(nèi)容

      多項(xiàng)式輸出程序具有以下基本功能:

      1.創(chuàng)建多項(xiàng)式。接收輸入的數(shù)據(jù),并保存到鏈表中。

      2.Txt文檔輸入輸出功能。

      3. 清除內(nèi)存內(nèi)容,釋放創(chuàng)建的鏈表,退出程序。

      3.功能算法描述與數(shù)據(jù)結(jié)構(gòu)說明

      該多項(xiàng)式程序除了main()函數(shù)外,主要有以下函數(shù):

      node *CreatePolyn()

      void firstnode(node *p)

      void othernode(node *p)

      void PrintPolyn(node *Pa)

      void deletechain(node *h)

      下面對這些函數(shù)逐一介紹。①.main()函數(shù)

      main函數(shù)主要調(diào)用其他函數(shù),用來實(shí)現(xiàn)輸入、顯示功能。

      在main()函數(shù)中,定義一維數(shù)組p[]用來保存多項(xiàng)式的系數(shù),Pa定義程序所需鏈表的頭指針。在程序開始要求輸入多項(xiàng)式的系數(shù),隨后創(chuàng)建鏈表以保存多項(xiàng)式,再顯示出構(gòu)建的符合要求的多項(xiàng)式。②.node *CreatePolyn()該函數(shù)功能是創(chuàng)建新的多項(xiàng)式鏈表。使用for語句,控制輸入多項(xiàng)式的每一項(xiàng)。

      ③.void firstnode(node *p)該函數(shù)功能是判斷輸出多項(xiàng)式第一項(xiàng)。對于第一項(xiàng)的系數(shù)為1或-1,指數(shù)為0或-1等五種情況進(jìn)行討論。④.void othernode(node *p)該函數(shù)功能是判斷輸出多項(xiàng)式除第一項(xiàng)外的其它項(xiàng)。對于第一項(xiàng)的系數(shù)為1或-1,指數(shù)為0或-1等五種情況進(jìn)行討論。⑤.void PrintPolyn(node *Pa)該函數(shù)功能:顯示構(gòu)造的符合要求的多項(xiàng)式鏈表。在該函數(shù)中調(diào)用③、④函數(shù),進(jìn)行多項(xiàng)式的輸出。⑥.void deletechain(node *h)該函數(shù)的功能是釋放掉創(chuàng)建的鏈表,釋放內(nèi)存。

      四.詳細(xì)設(shè)計

      下面討論重要函數(shù)具體實(shí)現(xiàn)過程:

      1.node *CreatePolyn()定義int i=9計數(shù),當(dāng)i>0時,for語句反復(fù)提示用戶輸入該多項(xiàng)式的每一項(xiàng)的指數(shù)。當(dāng)i=1時,輸入完畢,該鏈表也創(chuàng)建完畢。詳細(xì)的實(shí)現(xiàn)過程如下:

      node *CreatePolyn(){ node *head,*pa,*s;int i;

      pa=head=new node;//創(chuàng)建一個新的結(jié)點(diǎn)

      head->next=NULL;

      for(i = 9;i >0;i--)// 依次輸入9項(xiàng)

      {

      s=new node;

      s->next=NULL;

      s->coef = p[9-i];

      s->exp=i-1;//x指數(shù)從8遞減到0

      if(s->coef!=0)//系數(shù)不為零時,結(jié)點(diǎn)p鏈接s

      {

      pa->next=s;

      pa=s;

      } } return head;} 2.void firstnode(node *p)對多項(xiàng)式第一項(xiàng)輸出可能性進(jìn)行多種分類討論。

      void firstnode(node *p)//輸出多項(xiàng)式第一個結(jié)點(diǎn) { //指數(shù)不為1且不為0,系數(shù)絕對值不為1(正常的輸出)if(p->exp!=1&&p->exp&&fabs(p->coef)!=1)

      {

      if(p->coef>0)

      {

      outfile<

      coef<<“X^”<

      exp;

      }

      else

      {

      outfile<

      coef<<“X^”<

      exp;

      } } if(p->exp==0)//指數(shù)為0,即常數(shù)項(xiàng)

      {

      if(p->coef>0)

      {

      outfile<

      coef;

      }

      else

      {

      outfile<

      coef;

      } }

      //指數(shù)大于0且不為1,系數(shù)絕對值為1 if(p->exp>0&&fabs(p->coef)==1&&p->exp!=1){

      if(p->coef>0)

      {

      outfile<<“X^”<

      exp;

      }

      else

      {

      outfile<<“-X^”<

      exp;

      } } if(p->exp==1&&fabs(p->coef)!=1)//指數(shù)為1且系數(shù)絕對值不為1 {

      if(p->coef>0&&p->coef!=1)

      {

      outfile<

      coef<<“X”;

      }

      if(p->coef<0&&p->coef!=-1)

      {

      outfile<

      coef<<“X”;

      } } if(p->exp==1&&fabs(p->coef)==1)//指數(shù)為1且系數(shù)絕對值為1 {

      if(p->coef==1)

      outfile<<“X”;

      else

      outfile<<“-X”;} }

      3.void PrintPolyn(node *Pa)該函數(shù)有一個參數(shù),該指針指向多項(xiàng)式鏈表的頭指針,以下是實(shí)現(xiàn)插入的關(guān)鍵代碼: void PrintPolyn(node *Pa){ node *p;if(Pa->next==NULL)//首項(xiàng)判斷,如果首項(xiàng)無,則顯示“0”

      outfile<<“0”;

      return;else {

      firstnode(Pa->next);} p=Pa->next->next;//定義指針p指向Pa的下下個指針

      while(p!=NULL){

      othernode(p);

      p=p->next;

      //將p指向下個一個結(jié)點(diǎn)

      }

      outfile<

      五.系統(tǒng)測試

      該程序在VC6.0中調(diào)試通過,沒有錯誤和警告,運(yùn)行結(jié)果經(jīng)過檢驗(yàn)為正確。以下圖為該程序運(yùn)行結(jié)果效果圖:

      圖5-1 范例

      圖5-2 一行輸出

      圖5-3 多行輸出

      六.使用說明

      1.打開1.txt文件,在里面任意輸入9個整數(shù),每個數(shù)字間要有空格,可以輸入一行或者多行,輸入多行的時候需要換行。

      2.編譯運(yùn)行后,打開2.txt文件,即可看到輸出的符合要求的多項(xiàng)式。

      七.總結(jié)及心得體會

      通過這次課程設(shè)計練習(xí),使我更深刻地理解了C++語言的精髓-----指針的使用。完成整個程序設(shè)計有很大的收獲,對指針掌握的更加熟練。

      同時通過直接對單鏈表的操作,加深了對數(shù)據(jù)結(jié)構(gòu)的理解和認(rèn)識。并在完成課程設(shè)計的過程作主動查閱了相關(guān)資料,學(xué)到了不少課本上沒有的技術(shù)知識。

      經(jīng)過這次課程設(shè)計,我深刻認(rèn)識到算法在程序設(shè)計中的重要性,如何讓程序簡單、易讀是這個課程設(shè)計的難點(diǎn)。程序總是由若干個函數(shù)構(gòu)成的,這些相應(yīng)的函數(shù)體現(xiàn)了算法的基本思想。

      編程是一件枯燥乏味工作,但是只要認(rèn)真專研,我們會從中學(xué)到很多在課本上學(xué)不到或者無法在課堂上掌握的知識,同時也能從中感受到編程的樂趣。興趣是可以培養(yǎng)的,只要堅持下去,面對困難我們總能夠找到解決問題的方法。

      計算多項(xiàng)式的輸出-----該程序雖然不是很大,但是自己獨(dú)立完成這一任務(wù)也遇到不少的困難。另外也需要提出的是,非常感謝老師對我們的耐心指導(dǎo),尤其是上機(jī)的時候給了我很多鍛煉的機(jī)會。所以這次課程設(shè)計我才能夠順利的完成。

      第五篇:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

      一、課程題目:一元稀疏多項(xiàng)式計算器

      二、需求分析

      1、一元稀疏多項(xiàng)式簡單計算器的功能是:

      1.1 輸入并建立多項(xiàng)式;

      1.2 輸出多項(xiàng)式,輸出形式為整數(shù)序列:n,c1,e1,c2,e2,???cn,en,其中n是多項(xiàng)式的項(xiàng)數(shù),ci和ei分別是第i項(xiàng)的系數(shù)和指數(shù),序列按指數(shù)降序排列;

      1.3多項(xiàng)式a和b相加,建立多項(xiàng)式a+b;

      1.4 多項(xiàng)式a和b相減,建立多項(xiàng)式a-b。

      2、設(shè)計思路:

      2、設(shè)計思路:

      2.1 定義線性表的動態(tài)分配順序存儲結(jié)構(gòu); 2.2 建立多項(xiàng)式存儲結(jié)構(gòu),定義指針*next 2.3利用鏈表實(shí)現(xiàn)隊列的構(gòu)造。每次輸入一項(xiàng)的系數(shù)和指數(shù),可以輸出構(gòu)造的一元多項(xiàng)式

      2.4演示程序以用戶和計算機(jī)的對話方式執(zhí)行,即在計算機(jī)終站上顯示“提示信息”之后,由用戶在鍵盤上輸入演示程序中規(guī)定的運(yùn)行命令; 根據(jù)相應(yīng)的輸入數(shù)據(jù)(濾去輸入中的非法字符)和運(yùn)算結(jié)果顯示在其后。

      3、程序執(zhí)行的命令包括:

      1)輸入多項(xiàng)式a;2)輸入多項(xiàng)式b;3)求a+b;4)求a-b;5)求a*b;6)求a的導(dǎo)數(shù);7)求b的導(dǎo)數(shù);8)退出程序。

      4、測試數(shù)據(jù):

      1、(2x+5x^8-3.1x^11)+(7-5x^8+11x^9)=(-3.1x^11+11x^9+2x+7);

      2、(6x^-3-x+4.4x^2-1.2x^9+1.2x^9)-(-6x^-3+5.4x^2-x^2+7.8x^15)=(-7.8x^15-1.2x^9+12x^-3-x);

      3、(1+x+x^2+x^3+x^4+x^5)+(-x^3-x^4)=(1+x+x^2+x^5);

      4、(x+x^3)+(-x-x^3)=0;

      5、(x+x^100)+(x^100+x^200)=(x+2x^100+x^200);

      6、(x+x^2+x^3)+0=x+x^2+x^3.7、互換上述測試數(shù)據(jù)中的前后兩個多項(xiàng)式

      三、概要設(shè)計

      為了實(shí)現(xiàn)上述功能需用帶表頭結(jié)點(diǎn)的單鏈表存儲多項(xiàng)式。為此需要兩個抽象的數(shù)據(jù)類型:線性表和多項(xiàng)式。

      1.有序表的抽象數(shù)據(jù)類型定義為: ADT List{ 數(shù)據(jù)對象:D={ai|ai∈Elemset,i=1,2,?,n,n≥0} 數(shù)據(jù)關(guān)系:R1={|ai-1,ai∈D,i=2,?,n} 基本操作: PolyNode *p,*q,*r,*head;操作結(jié)果:構(gòu)造一個空的線性表。Listinsert(&L,i,e)初始條件:線性表L存在,0≤i≤L的元素個數(shù)。操作結(jié)果:在L中第i個位置之后插入新的結(jié)點(diǎn)e。}ADT List

      2、多數(shù)據(jù)類型定義為: ADT Polynomial { 數(shù)據(jù)對象:D={ai,bi|ai為不為0的實(shí)數(shù),bi為整數(shù),i=2,?,n} 數(shù)據(jù)關(guān)系:R1={ai,bi} 基本操作:

      PrintPolyn(Polyn p)操作結(jié)果:輸出多項(xiàng)式p。DestroyPolyn(Polyn p)操作結(jié)果:銷毀多項(xiàng)式p。

      Polyn CreatePolyn(Polyn head,int m)操作結(jié)果:創(chuàng)建一個m項(xiàng)的多項(xiàng)式。Polyn AddPolyn(Polyn pa,Polyn pb)初始條件:多項(xiàng)式鏈表pa,pb存在。

      操作結(jié)果:創(chuàng)建一新多項(xiàng)式鏈表p,其結(jié)點(diǎn)為pa,pb相加。Polyn SubtractPolyn(Polyn pa,Polyn pb)初始條件:多項(xiàng)式鏈表pa,pb存在。

      操作結(jié)果:創(chuàng)建一新多項(xiàng)式鏈表p,其結(jié)點(diǎn)為怕pa,pb相減。ValuePolyn(Polyn head,int x)操作結(jié)果:輸入x值,計算并返回多項(xiàng)式的值 }ADT Polynomial

      四、詳細(xì)設(shè)計

      1、元素類型、結(jié)點(diǎn)類型和指針類型 typedef int Status;typedef struct{ int coef;int expn;}Term;typedef Term ElemType;typedef struct LNode{ ElemType data;//數(shù)據(jù)域 struct LNode *next;//指針域 }LNode,* LinkList;

      2、主函數(shù)和其他函數(shù) void main(){ int m,n,a,x;int flag;Polynomial pa,pb,pc;printf(“ 歡迎使用多項(xiàng)式操作程序n”);

      //輸出菜單

      printf(“n 1: 創(chuàng)建多項(xiàng)式a n”);printf(“n 2: 創(chuàng)建多項(xiàng)式b n”);printf(“n 3: 輸出多項(xiàng)式a n”);printf(“n 4: 輸出多項(xiàng)式b n”);printf(“n 5: 輸出a+b n”);printf(“n 6: 輸出a-b n”);printf(“n 7: 輸出a的導(dǎo)數(shù) n”);printf(“n 8: 輸出b的導(dǎo)數(shù) n”);printf(“n 9: 代入x的值計算a n”);printf(“n 10: 代入x的值計算b n”);printf(“n 11: 輸出a*b n”);printf(“n 12:退出程序 n”);while(a){ printf(“n請選擇操作:”);scanf(“ %d”,&flag);

      switch(flag)

      {

      case 1 :

      {

      printf(“請輸入a的項(xiàng)數(shù):”);scanf(“%d”,&m);CreatePolyn(pa,m);

      break;

      }

      case 2 :

      {

      printf(“請輸入b的項(xiàng)數(shù):”);scanf(“%d”,&n);CreatePolyn(pb,n);

      break;

      }

      case 3 :

      {

      printf(“n 多項(xiàng)式a=”);

      PrintPolyn(pa);

      break;

      }

      case 4 :

      {

      printf(“n 多項(xiàng)式b=”);

      PrintPolyn(pb);

      break;

      } case 5 :

      {

      AddPolyn(pa,pb,pc);printf(“n a+b=”);

      PrintPolyn(pc);

      break;

      } case 6 :

      {

      SubtractPolyn(pa,pb,pc);printf(“n a-b=”);

      PrintPolyn(pc);

      break;

      } case 7 :

      {

      Polynomial_derivatePolyn(pa,pc);

      printf(“n 多項(xiàng)式a的導(dǎo)函數(shù)為:a'=”);

      PrintPolyn(pc);

      break;

      } case 8 :

      {

      Polynomial_derivatePolyn(pb,pc);

      printf(“n 多項(xiàng)式b的導(dǎo)函數(shù)為:b'=”);

      PrintPolyn(pc);

      break;

      } case 9 :

      {

      printf(“輸入x的值:x=”);

      scanf(“%d”,&x);

      printf(“n

      x=%da=%.3fn”,x,ValuePolyn(pa,x));

      break;

      } case 10 :

      {

      printf(“輸入x的值:x=”);

      scanf(“%d”,&x);

      printf(“n

      x=%d,時

      時b=%.3fn”,x,ValuePolyn(pb,x));

      break;

      }

      case 11 :

      {

      MultiplyPolyn(pa,pb,pc);printf(“n a*b=”);

      PrintPolyn(pc);

      break;

      }

      case'12':

      {

      printf(“n 感謝使用此程序!n”);

      DestroyPolyn(pa);

      DestroyPolyn(pb);

      a=0;

      break;

      } default:

      printf(“n 您的選擇錯誤,請重新選擇!n”);

      } } }

      3、建立一個頭指針為head、項(xiàng)數(shù)為m的一元多項(xiàng)式, 建立新結(jié)點(diǎn)以接收數(shù)據(jù), 調(diào)用Insert函數(shù)插入結(jié)點(diǎn)

      Status CreatePolyn(Polynomial &head,int m){ //建立一個頭指針為head、項(xiàng)數(shù)為m的一元多項(xiàng)式 int i;LNode *p;p=head=(Polynomial)malloc(sizeof(struct LNode));head->next=NULL;for(i=0;i

      printf(“請輸入第%d項(xiàng)的系數(shù)與指數(shù):”,i+1);scanf(“%d %d”,&p->data.coef,&p->data.expn);Insert(p,head);//調(diào)用Insert函數(shù)插入結(jié)點(diǎn) } return OK;}//CreatePolyn

      4、求解并建立多項(xiàng)式a+b Status AddPolyn(Polynomial pa,Polynomial pb,Polynomial &pc){ //求解并建立多項(xiàng)式a+b,返回其頭指針 LNode *qa=pa->next;LNode *qb=pb->next;LNode *headc,*hc,*qc;hc=(Polynomial)malloc(sizeof(struct LNode));//建立頭結(jié)點(diǎn) hc->next=NULL;headc=hc;while(qa||qb){ qc=(Polynomial)malloc(sizeof(struct LNode));switch(compare(qa,qb)){ case 1:

      { qc->data.coef=qa->data.coef;qc->data.expn=qa->data.expn;qa=qa->next;break;

      } case 0:

      { qc->data.coef=qa->data.coef+qb->data.coef;qc->data.expn=qa->data.expn;qa=qa->next;qb=qb->next;break;

      } case-1:

      { qc->data.coef=qb->data.coef;qc->data.expn=qb->data.expn;qb=qb->next;break;

      }

      } if(qc->data.coef!=0)

      { qc->next=hc->next;hc->next=qc;hc=qc;

      } else free(qc);//當(dāng)相加系數(shù)為0時,釋放該結(jié)點(diǎn)

      } pc=headc;return OK;}

      5、求解并建立多項(xiàng)式a-b Status SubtractPolyn(Polynomial pa,Polynomial pb,Polynomial &pc){ //求解并建立多項(xiàng)式a-b,返回其頭指針 LNode *h=pb;LNode *p=pb->next;LNode *pd,*pf;while(p){ //將pb的系數(shù)取反 p->data.coef*=-1;p=p->next;} AddPolyn(pa,h,pf);pd=pf;for(p=h->next;p;p=p->next)//恢復(fù)pb的系數(shù) p->data.coef*=-1;pc=pd;return OK;} float ValuePolyn(Polynomial head,int x){ //輸入x值,計算并返回多項(xiàng)式的值

      LNode *p;int i,t;float sum=0;for(p=head->next;p;p=p->next){ t=1;for(i=p->data.expn;i!=0;)

      { if(i<0){t/=x;i++;} //指數(shù)小于0,進(jìn)行除法 else{t*=x;i--;} //指數(shù)大于0,進(jìn)行乘法

      } sum+=p->data.coef*t;} return sum;}

      6、求解并建立導(dǎo)函數(shù)多項(xiàng)式

      Status Polynomial_derivatePolyn(Polynomial P,Polynomial &pc)//求導(dǎo) {

      LNode *p,*pf,*ph;//用于遍歷結(jié)點(diǎn)

      p=P->next;

      ph=(Polynomial)malloc(sizeof(struct LNode));

      ph->next=NULL;

      //pre=P;

      while(p!=NULL)

      {

      pf=(Polynomial)malloc(sizeof(struct LNode));

      if(p->data.expn==0)

      {

      p=p->next;

      //free(p);

      //p=pre->next;

      }

      else

      {

      pf->data.coef=p->data.coef*p->data.expn;

      pf->data.expn=p->data.expn-1;

      Insert(pf,ph);

      p=p->next;

      }

      }

      pc=ph;return OK;}

      7、求解并建立多項(xiàng)式a*b Status MultiplyPolyn(Polynomial pa,Polynomial pb,Polynomial &pc){ //求解并建立多項(xiàng)式a*b,返回其頭指針 LNode *hf,*pf;LNode *qa=pa->next;LNode *qb=pb->next;hf=(Polynomial)malloc(sizeof(struct LNode));//建立頭結(jié)點(diǎn) hf->next=NULL;for(;qa;qa=qa->next){ for(qb=pb->next;qb;qb=qb->next)

      { pf=(Polynomial)malloc(sizeof(struct LNode));pf->data.coef=qa->data.coef*qb->data.coef;pf->data.expn=qa->data.expn+qb->data.expn;Insert(pf,hf);//調(diào)用Insert函數(shù)以合并指數(shù)相同的項(xiàng)

      } } pc=hf;return OK;}

      8、函數(shù)的調(diào)用關(guān)系圖

      主函數(shù)Pa pb pc數(shù)meadreturn headc*h項(xiàng)回*h 建立鏈表Polyn CreatePolyn(Polyn head,int m)多項(xiàng)式相加Polyn AddPolyn(Polyn pa,Polyn pb)返回*hc返輸出多項(xiàng)式While{Printf(“”);

      四、調(diào)試分析

      5.1 運(yùn)行該程序的操作平臺: 5.1.1 硬件要求:

      此程序需在一臺PC機(jī)上運(yùn)行,要用INTER或AMD的CPU,其他沒多大要求。5.1.2 軟件要求:

      本程序能在Visual C++ 6.0下運(yùn)行。5.2 錯誤分析:

      1、函數(shù)名拼寫錯誤

      2、括號匹配錯誤

      3、變量類型名定義錯誤

      4、分號沒有在英文環(huán)境下輸出,導(dǎo)致運(yùn)行出錯

      5、參數(shù)表出現(xiàn)語法錯誤,函數(shù)調(diào)用的一組參數(shù)之間沒有以逗號隔開,并以一個右括號結(jié)束

      六、用戶手冊

      1、本程序的執(zhí)行文件為:Cpp1.exe。

      2、進(jìn)入演示程序后即顯示文本方式的用戶界面。

      3、根據(jù)提示數(shù)字執(zhí)行操作。如輸入數(shù)字“1”

      4、執(zhí)行相應(yīng)命令后顯示操作結(jié)果。

      七、測試結(jié)果

      1、最初的界面

      2、選擇操作“1”、“2”“3”、“4”,輸入數(shù)字得到的結(jié)果,即創(chuàng)建多項(xiàng)式a和b

      3、a+b

      4、a-b

      5、a*b

      6、求導(dǎo)

      7、帶入x值求a,b

      八、心得體會

      通過這次課程設(shè)計,我覺得我們對于《數(shù)據(jù)結(jié)構(gòu)》的學(xué)習(xí)不僅包括理論部分的學(xué)習(xí),還要勤動手,多實(shí)踐。真正將這個程序做出來很不容易,但只要只要用心去做,總會有收獲,特別是當(dāng)我遇到問題時,通過向同學(xué)請教,最后終于找到方法時,并理解代碼的含義時,心中是無比喜悅的。編寫程序中遇到問題再所難免,應(yīng)耐心探究其中的原因,從出現(xiàn)問題的地方起,并聯(lián)系前后程序,仔細(xì)推敲,逐個排查.直到最終搞清為止。

      下載數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——教學(xué)計劃編制(精選多篇)word格式文檔
      下載數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——教學(xué)計劃編制(精選多篇).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

        二○一三 ~二○一四 學(xué)年第 二 學(xué)期 信息科學(xué)與工程學(xué)院 綜合設(shè)計報告書 課程名稱: 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 班 級: 學(xué) 號: 姓 名: 指導(dǎo)教師:二○一四 年 六 月 一、實(shí)驗(yàn)內(nèi)容 (一)、單鏈......

        數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

        一,課程題目 (算符優(yōu)先法計算算數(shù)表達(dá)式)以字符序列的形式從終端輸入語法正確的、不含變量的整數(shù)表達(dá)式。利用教材表3.1(P53)給出的算符優(yōu)先關(guān)系,實(shí)現(xiàn)對于算術(shù)四則混合運(yùn)算(加、減......

        課程設(shè)計(數(shù)據(jù)結(jié)構(gòu))

        課程設(shè)計題目 1、 運(yùn)動會分?jǐn)?shù)統(tǒng)計 任務(wù):參加運(yùn)動會有n個學(xué)校,學(xué)校編號為1……n。比賽分成m個男子項(xiàng)目,和w個女子項(xiàng)目。項(xiàng)目編號為男子1……m,女子m+1……m+w。不同的項(xiàng)目取前五......

        數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

        數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 計算機(jī)科學(xué)與技術(shù)2008級1班 課程設(shè)計題目:圖書借閱管理系統(tǒng) 姓名: 學(xué)號: 一.需求分析說明 圖書借閱處理過程簡述處理過程主要包含:新增圖書上架、辦理圖證、圖......

        數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

        《數(shù)據(jù)結(jié)構(gòu)》 課程設(shè)計報告 學(xué) 號 姓 名 班 級 指導(dǎo)教師 XXX XXX XXX XXX 安徽工業(yè)大學(xué)計算機(jī)學(xué)院 2014年6月 利用棧實(shí)現(xiàn)迷宮問題的求解 一、問題描述 以一個M*N的長方陣表......

        數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

        數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 題目: 串的查找與替換 學(xué)院: 信息科學(xué)技術(shù)學(xué)院 目錄 一、設(shè)計任務(wù)書 ..............................1 二、課程設(shè)計題目:串的查找和替換 ............1......

        數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

        數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 1. 赫夫曼編碼器 設(shè)計一個利用赫夫曼算法的編碼和譯碼系統(tǒng),重復(fù)地顯示并處理以下項(xiàng)目,直到選擇退出為止。 要求: 1) 將權(quán)值數(shù)據(jù)存放在數(shù)據(jù)文件(文件名為data.......

        數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

        數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 利用棧求表達(dá)式的值 2013級計算機(jī)科學(xué)與技術(shù)系 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 目 錄 目 錄 ............................................................................