欧美色欧美亚洲高清在线观看,国产特黄特色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ì)報(bào)告 C語(yǔ)言[推薦閱讀]

      時(shí)間:2019-05-14 18:45:56下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《課程設(shè)計(jì)報(bào)告 C語(yǔ)言》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《課程設(shè)計(jì)報(bào)告 C語(yǔ)言》。

      第一篇:課程設(shè)計(jì)報(bào)告 C語(yǔ)言

      課 程 報(bào) 告 課 程 名 稱(chēng): 專(zhuān) 業(yè) 班 級(jí) : 學(xué) 生 姓 名 : 學(xué) 號(hào) : 程序設(shè)計(jì)實(shí)踐 ****** 20104683**** 任 課 教 師 : 學(xué) 2010期 :2010-2011 學(xué)年第二學(xué)期 課程報(bào)告任務(wù)書(shū) 課程報(bào)告任務(wù)書(shū) 報(bào)告 題 目 圖書(shū)信息管理系統(tǒng) 開(kāi)發(fā)一個(gè)圖書(shū)信息管理系統(tǒng),圖書(shū)信息包括:圖書(shū)編號(hào)、書(shū)名、作者、出版社、類(lèi)別、出版時(shí)間、價(jià)格等基本信息(也可以根據(jù)自己情況進(jìn)行擴(kuò)充,比如是否借出、庫(kù)存量 等)。使之能提供以下基本功能 基本功能 基本功能:(1)圖書(shū)信息錄入功能(圖書(shū)信息用文件保存)--輸入?(2)圖書(shū)信息瀏覽功能--輸出 主要 內(nèi)容(3)查詢(xún)功能(至少一種查詢(xún)方式)、排序功能(至少一種排序方式): ? ①按書(shū)名查詢(xún) ②按作者名查詢(xún) ③ 按照價(jià)錢(qián)排序 ④按出版時(shí)間排序等等(4)圖書(shū)信息的刪除與修改 擴(kuò)展功能:可以按照自己的程度進(jìn)行擴(kuò)展。比如(1)簡(jiǎn)單的權(quán)限處理(2)報(bào)表打 功能 印功能(3)甚至根據(jù)自己情況,可以加上學(xué)生信息,并擴(kuò)充為圖書(shū)借閱系統(tǒng)。(4)模糊查詢(xún)(5)綜合查詢(xún)(6)統(tǒng)計(jì)功能 比如統(tǒng)計(jì)處某一類(lèi)別的圖書(shū)信息 或 篩 選出小于指定數(shù)量庫(kù)存的圖書(shū)信息等等,總之,可以根據(jù)自己需求進(jìn)行分析功能。

      一、提交材料應(yīng)包括:(1)系統(tǒng)源代碼(2)課程報(bào)告

      二、整個(gè)設(shè)計(jì)過(guò)程具體要求(1)需求分析 需求分析 任務(wù) 要求 要求學(xué)生對(duì)案例系統(tǒng)進(jìn)行分析,設(shè)計(jì)出需要完成的功能,完善 各個(gè)模塊的調(diào)用關(guān)系;(2)設(shè)計(jì)過(guò)程 要求學(xué)生進(jìn)一步明確各模塊調(diào)用關(guān)系,進(jìn)一步完善模塊函數(shù)細(xì)節(jié) 設(shè)計(jì)過(guò)程(函數(shù)名、參數(shù)、返回值等)(3)實(shí)現(xiàn)過(guò)程 要求學(xué)生養(yǎng)成良好的編碼習(xí)慣、完成各個(gè)模塊并進(jìn)行測(cè)試,最終 實(shí)現(xiàn)過(guò)程 完成系統(tǒng)整體測(cè)試;(4)總結(jié)階段 按照要求完成系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)報(bào)告,并進(jìn)行總結(jié)、答辯??偨Y(jié)階段 報(bào)告撰寫(xiě)情況(報(bào)告撰寫(xiě)情況(30 分)內(nèi)容 規(guī)范程度 程序測(cè)試 20 分 5分 5分 系統(tǒng)完成情況(答辯情況(系統(tǒng)完成情況 30 分)答辯情況(40 分)完成 基本功能 擴(kuò)展功能 自述情況 答辯情況 20 分 10 分 10 分 30 分 成績(jī) 評(píng)定 總分 成績(jī)?cè)u(píng)定教師: 成績(jī)?cè)u(píng)定教師: 教師 1 需求分析 經(jīng)過(guò)大一上學(xué)期的理論學(xué)習(xí),在基礎(chǔ)實(shí)驗(yàn)的基礎(chǔ)上,本學(xué)期我們繼續(xù)開(kāi)設(shè)了 C 語(yǔ)言程序 設(shè)計(jì)實(shí)踐課。課程要求我們對(duì)已經(jīng)學(xué)習(xí)的基礎(chǔ)實(shí)驗(yàn)進(jìn)行整合與銜接處理,并最終形成一個(gè)系 統(tǒng)性質(zhì)的規(guī)模較大的程序。本次課程設(shè)計(jì)要求我們達(dá)到能獨(dú)立完成一個(gè)圖書(shū)管理系統(tǒng),完成后要求實(shí)現(xiàn)的功能有對(duì) 圖書(shū)信息的錄入、刪除、修改,瀏覽(即輸出)按某種方式查詢(xún)(要求至少一種查詢(xún)方式),按某種方式排序(要求至少一種排序方式)。當(dāng)然,我們可以根據(jù)自己的能力對(duì)系統(tǒng)進(jìn)行完善 性的拓展,例如自己加入簡(jiǎn)單的權(quán)限處理,統(tǒng)計(jì)功能,模糊查詢(xún)等,甚至可以拓展為圖書(shū)借 閱系統(tǒng)。通過(guò)整個(gè)程序的開(kāi)發(fā)過(guò)程,最終使我們掌握利用計(jì)算機(jī)解決實(shí)際問(wèn)題的基本方法,熟悉 C 語(yǔ)言開(kāi)發(fā)的全過(guò)程,提高綜合應(yīng)用 C 語(yǔ)言的能力、編程和調(diào)試能力,為學(xué)習(xí)計(jì)算機(jī)和通信 專(zhuān)業(yè)的后續(xù)課程打好專(zhuān)業(yè)基礎(chǔ)。2 概要設(shè)計(jì)(1)圖書(shū)信息及數(shù)據(jù)格式 圖書(shū)信息: 圖書(shū)信息包括圖書(shū)編號(hào)、圖書(shū)類(lèi)別、圖書(shū)書(shū)名、作者、出版社、出版時(shí)間、圖 書(shū)價(jià)格。數(shù)據(jù)格式: 本系統(tǒng)采用單向鏈表來(lái)對(duì)圖書(shū)信息進(jìn)行各項(xiàng)操作。其中圖書(shū)的編號(hào)為整型數(shù) 據(jù),價(jià)格為雙精度浮點(diǎn)型,其余的類(lèi)別、書(shū)名、作者、出版社與出版時(shí)間均為字符 串類(lèi)型 struct tushu_node{ int num;char leibie[20];char name[30];char author[20];char press[20];char time[20];double price;struct tushu_node*next;};一個(gè)結(jié)點(diǎn)的示意圖如下圖所示: num leibie name author press time price next(2)程序的整體框架 主菜單 錄 入(刪 除 修改)按 不 同方 式 查詢(xún) 瀏覽 按 不 同方 式 排序 統(tǒng) 計(jì) 圖書(shū) 數(shù) 目 幫助 退出 創(chuàng) 建 刪 除 修 改 編 書(shū) 價(jià) 號(hào) 名 格 價(jià) 格 出版 時(shí)間 子菜單(3)模塊劃分

      1、int quanxian();

      2、int inputchioce();

      3、void save();

      4、void save1();核查權(quán)限的函數(shù) 顯示主菜單的函數(shù) 保存鏈表為文件的函數(shù) 覆蓋以前的信息 保存鏈表為文件的函數(shù) 不覆蓋以前的信息 只在創(chuàng)建時(shí)調(diào)用

      5、struct tushu_node* wjtolb();從文件中讀取數(shù)據(jù)并建立圖書(shū)信息的鏈表的函數(shù)

      6、int luruxinxi();錄入學(xué)生信息的函數(shù) 創(chuàng)建圖書(shū)信息的函數(shù) 插入圖書(shū)信息的函數(shù)

      7、struct tushu_node * luruxinxi_chuangjian();

      8、struct tushu_node * luruxinxi_charu();

      9、struct tushu_node * luruxinxi_shanchu();

      10、struct tushu_node * luruxinxi_xiugai();刪除圖書(shū)信息的函數(shù) 修改圖書(shū)信息的函數(shù)

      11、int liulantushu();瀏覽圖書(shū)信息的函數(shù)

      12、int chaxuntushu();

      13、void chaxuntushu_num();

      14、void chaxuntushu_name();

      15、void chaxuntushu_price();查詢(xún)圖書(shū)信息的函數(shù) 按編號(hào)查詢(xún)圖書(shū) 按書(shū)名查詢(xún)圖書(shū) 按價(jià)格查詢(xún)圖書(shū)

      16、void paixutushu();

      17、struct tushu_node* paixutushu_price();

      18、struct tushu_node* paixutushu_time();

      19、void sfjx();為圖書(shū)排序的函數(shù) 為圖書(shū)按價(jià)格排序的函數(shù) 為圖書(shū)按出版時(shí)間排序的函數(shù) 寫(xiě)個(gè)函數(shù) 判斷是否繼續(xù) 排序中使用 20、int tongjitushu_shumu();統(tǒng)計(jì)圖書(shū)數(shù)目的函數(shù)

      21、void shiyongshuoming();使用說(shuō)明的函數(shù) 3 詳細(xì)設(shè)計(jì) 程序的主體設(shè)計(jì)思想是根據(jù)結(jié)構(gòu)化程序設(shè)計(jì)思想分模塊進(jìn)行設(shè)計(jì),有一個(gè)主函數(shù)和多個(gè) 自定義函數(shù)構(gòu)成。主函數(shù) 對(duì)于本程序來(lái)說(shuō),主函數(shù)很簡(jiǎn)單,就是定義了一個(gè)變量 chioce 用來(lái)接受核查用戶(hù)是否 有使用該管理系統(tǒng)的權(quán)限的函數(shù) quanxian()函數(shù)返回的值,若為 1 即用戶(hù)獲得了使用權(quán)限)(,則調(diào)出顯示主菜單的函數(shù)進(jìn)行具體操作 int { int chioce;chioce=quanxian();核查用戶(hù)是否有使用該管理系統(tǒng)的權(quán)限的函數(shù) main()if(chioce==1){ system(“cls”);inputchioce();} exit(0);} 權(quán)限函數(shù) 若取得權(quán)限 則返回值為 1 用來(lái)顯示主菜單的函數(shù) 核查用戶(hù)權(quán)限的函數(shù)使用 do-while 語(yǔ)句來(lái)限制用戶(hù)輸入密碼的次數(shù)僅為三次,并且為了 使界面更具親切感,會(huì)在用戶(hù)輸入密碼錯(cuò)誤時(shí)進(jìn)行提示引起用戶(hù)注意及提示剩余輸入次數(shù)。int quanxian(){ int m=1,n=3,flag=0;char mima[20];do{ printf(“nn 你 好,歡 迎 使 本 圖 書(shū) 信 息 管 理 系 統(tǒng)!n”);printf(“n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n”);printf(“【現(xiàn)在進(jìn)行權(quán)限核查】 次輸入密碼的機(jī)會(huì)!n”);printf(“n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n if(n==2||n==1){printf(”注意:你已輸入錯(cuò)誤%d 次 密碼:“,3-n,n);} if(n==3)printf(”剩余輸入次數(shù): %d 請(qǐng)輸入密碼:“,n);剩余輸入次數(shù): %d ”);請(qǐng)輸入 n--------------------友情提醒:你共有 3 scanf(“%s”,mima);//第一次輸入和輸錯(cuò)密碼后再次輸入顯示的也賣(mài)弄不同 if(strcmp(mima,“chenbo0916”)==0){ flag=1;return flag;} m++;n--;system(“cls”);}while(strcmp(mima,“chenbo0916”)!=0&&m<=3);// 限制輸入次數(shù)在 3 次之內(nèi) printf(“nn 對(duì)不起,你連續(xù)三次輸入密碼錯(cuò)誤,沒(méi)有使用該圖書(shū)管理系統(tǒng)的權(quán)限!n”);exit(0);} 顯示主菜單的函數(shù) 本程序?qū)⒅鞑藛螁为?dú)作為一個(gè)函數(shù)是為了讓用戶(hù)進(jìn)入一次系統(tǒng)可以進(jìn)行多項(xiàng)操作(即為 在每次用戶(hù)完成一個(gè)具體的操作后,都會(huì)有對(duì)是否繼續(xù)或返回主菜單有相應(yīng)的詢(xún)問(wèn),讓用戶(hù) 在想退出系統(tǒng)時(shí)才退出),基本思路是通過(guò)函數(shù)的嵌套調(diào)用來(lái)實(shí)現(xiàn)多項(xiàng)操作。這個(gè)函數(shù)的功能 就是顯示主菜單并對(duì)用戶(hù)進(jìn)行的選擇調(diào)用不同的子菜單函數(shù)或進(jìn)入具體功能 int inputchioce(){ int mychioce,x=-1;printf(“n++++++++++++++歡 迎 你++++++++++++++++++nn”);printf(“**+++++++++++++ 主 菜 單 +++++++++++++++++++++**n”);printf(“**1--錄入(刪除 修改)圖書(shū)信息 ** **2--(按規(guī)則)查詢(xún)圖書(shū)信息 **n”);printf(“** printf(”** printf(“** 3--瀏覽圖書(shū)信息**** 5--統(tǒng)計(jì)圖書(shū)(數(shù)目)0--退出系統(tǒng) 4--為圖書(shū)(按規(guī)則)排序 **** 6--幫助 **n”);**n“);**n”);/* 主菜單 */ ** ** printf(“**++++++++++++++++++++++++++++++++++++++++++++++++++++++++**n”);printf(“n 恭喜你獲得使用權(quán)限,請(qǐng)你選擇:”);scanf(“%d”,&mychioce);switch(mychioce){ case 1: { case 2: { chaxuntushu();break;} luruxinxi();break;} case 3: { case 4: { case 5: { liulantushu();break;} paixutushu();break;} tongjitushu_shumu();printf(“nn 是否繼續(xù)操作? 請(qǐng)選擇(繼續(xù)-1/退出-0)”);scanf(“%d”,&x);if(x==1){ system(“cls”);inputchioce();} if(x==0){ printf(“nn 謝謝你的使用!exit(0);} if(x!=1&&x!=0){ system(”cls“);printf(”選擇有誤,默認(rèn)返回主菜單,請(qǐng)重新選擇: n“);inputchioce();} break;} 再見(jiàn)n”);case 6: { case 0: { printf(“ nn 謝謝你的使用!再見(jiàn) nn”);break;} shiyongshuoming();break;} default: { system(“cls”);printf(“n 選擇有誤,請(qǐng)重新選擇:n”);inputchioce();}break;} } 關(guān)于一些錄入(修改)查詢(xún)、、查詢(xún) 關(guān)于一些錄入(刪除 修改)查詢(xún)、排序等子菜單的原理及實(shí)現(xiàn)方法與主菜單那類(lèi)似、創(chuàng)建(插入)創(chuàng)建(插入)函數(shù) 算法如下圖: num 結(jié)束輸入控制條件 Num!=0 Leibie Name Author Press Time price p->num p->leibie p->name p->author p->press p->time p->price Head 為空 Head=p Head 不 為 空 Tail->next=p 保存為文件 Save()將鏈表數(shù)據(jù)保存為文件的函數(shù) 首先打開(kāi)文件以可讀寫(xiě)(也可以只寫(xiě)的方式打開(kāi) 區(qū)別在于是否覆蓋以前的信息)的方式,p1 作為形參來(lái)接受實(shí)參 head,只要不為空,寫(xiě)入 p1 后,下移一個(gè)節(jié)點(diǎn) void save1(struct tushu_node* p1){ /*將鏈表保存為文件的函數(shù) 不覆蓋前面信息 if((fpp=fopen(“1.txt”,“a”))==NULL){ printf(“打開(kāi)文件失??!”);exit(0);} while(p1!=NULL){ */ fprintf(fpp,“ %d %s %s %s %s %s %lfn”,p1->num,p1->leibie,p1-> name,p1->author,p1->press,p1->time,p1->price);p1=p1->next;} if(fclose(fpp)){ printf(“關(guān)閉文件失敗!n”);exit(0);} } 從文件中讀出數(shù)據(jù)并創(chuàng)建鏈表的函數(shù) 在調(diào)用從文件讀取數(shù)據(jù)創(chuàng)建鏈表的函數(shù)前,先定義 head 鏈表指針并賦值為空作為實(shí)參。打開(kāi)文件后,從文件中讀取一組數(shù)據(jù)賦給已經(jīng)被動(dòng)態(tài)分配內(nèi)存的結(jié)點(diǎn)指針 p 第一次 head 為空時(shí) Head P next p1 第二次以后 head head P1->next p2 P next p1 head P1->next P next p2 p1 刪除函數(shù) 刪除函數(shù)執(zhí)行流程圖及算法如下圖所示: 調(diào)瀏覽函數(shù)瀏覽 全部圖書(shū)方便看 需要?jiǎng)h除那一本 輸入需要?jiǎng)h除圖 書(shū)編號(hào) numm 調(diào)用讀取文件并 形成鏈表的函數(shù) 具體刪除過(guò)程 Head Head=NULL Return Head!=NULL Head->num 相等(即刪除頭結(jié)點(diǎn))Numm 比較 head=head->next 不相等(刪除其他結(jié)點(diǎn))Ptr1=head Ptr2=head->next Ptr2!=NULL(即不是鏈表結(jié)尾 循環(huán)結(jié)束條件)Ptr2->next=ptr1-> next 重新保存 覆蓋 原來(lái)文件中數(shù)據(jù) 選擇是否繼續(xù)操 作返回主菜單 While 循環(huán) Ptr2->num Numm 比較 相等 不相等 Ptr1=ptr2 Ptr2=ptr1->next Save()函數(shù) 重新保存文件 修改函數(shù) 修改函數(shù)執(zhí)行流程圖如下: 先遍歷所有圖書(shū)信息 方便選擇要修改編號(hào) 調(diào)用文件到鏈表函數(shù) 輸出一個(gè)顯示選擇修 改具體成分的界面 輸入需要修改的圖書(shū) 編號(hào) If(Head!=Null)Head->num Numm 比較 不相等 相等 選 擇 具體 修 改成分 while(p!=NULL&&p->n um!=numm){ p=p->next;} 直到相等 Swith 語(yǔ)句 輸入新的成分替 換原有圖書(shū)信息 的成分 Save()保存至文件 是 詢(xún) 問(wèn) 是否 繼 續(xù) 否 返回主菜單 瀏覽遍歷函數(shù) 重新定義一組變量 num、leibie、name、author、press、time、price,將從文件中讀 取一組數(shù)據(jù)后賦給這組變量并輸出它們,使用 while(!feof(fp)),一直執(zhí)行上述過(guò)程實(shí)現(xiàn) 遍歷瀏覽全部文件中的圖書(shū)信息。瀏覽完成后,同樣有對(duì)是否繼續(xù)其他操作的詢(xún)問(wèn),如果選 擇繼續(xù),則會(huì)返回主菜單。int liulantushu(){ int num;char leibie[10];char name[30];char author[20];char press[20];char time[20];double price;int x=-1;/* 瀏覽圖書(shū)信息的函數(shù) */ if((fpp=fopen(“1.txt”,“r”))==NULL){ printf(“ exit(0);} else{ printf(”nn 編號(hào) while(!feof(fpp)){ fscanf(fpp,“%d%s%s%s%s%s%lf”,&num,leibie,name,autho r,press,time,&price);printf(“%d %s %s %s %s %s %lfn 類(lèi)別 書(shū)名 作者 出版社 出版時(shí)間 價(jià)格n”);打開(kāi)文件失?。 ?;”,num,leibie,name,author,press,time,price);} } if(fclose(fpp)){ printf(”關(guān)閉文件失??!n“);exit(0);} printf(”nn 是否繼續(xù)操作? 請(qǐng)選擇(繼續(xù)-1/退出-0)“);scanf(”%d“,&x);if(x==1){ system(”cls“);inputchioce();} if(x==0){ printf(”nn 謝謝你的使用!exit(0);} if(x!=1&&x!=0){ system(“cls”);printf(“選擇有誤,默認(rèn)返回主菜單,請(qǐng)重新選擇:n”);inputchioce();} } 統(tǒng)計(jì)圖書(shū)數(shù)目的函數(shù) 統(tǒng)計(jì)函數(shù)簡(jiǎn)單的實(shí)現(xiàn)了對(duì)圖書(shū)數(shù)目的統(tǒng)計(jì),其實(shí)現(xiàn)思路可以看做在瀏覽函數(shù)的基礎(chǔ)上去 掉一些不必要的輸出而是另外加上一個(gè)變量 n 用在 while 中執(zhí)行一次循環(huán)就 n++一次,就能 統(tǒng)計(jì)出圖書(shū)的數(shù)目了,不再具體敘述。由于 feof()函數(shù)本身的原理,如果每次寫(xiě)入一行數(shù)據(jù) 到文件中時(shí)最后有換行符號(hào),則會(huì)出現(xiàn) n 多加一問(wèn)題或輸出時(shí)最后一行復(fù)制,只要將 n 減一 即為圖書(shū)實(shí)際上的數(shù)目。查詢(xún)函數(shù) 再見(jiàn)n“);查詢(xún)函數(shù)算法如下圖所示: found=0 p=head flag=0 輸入要查詢(xún)的圖書(shū) 的編號(hào)/書(shū)名/價(jià)格 P P!=NULL 比較 P 中相應(yīng)的部分 與要查詢(xún)的是否相 等 不相等 相等 輸出查詢(xún)到的信息 found=1 P=p->next 如果 found 依然為 0,則輸出“未找到某圖書(shū)” 是 詢(xún)問(wèn)是否繼續(xù) 否 返回主菜單 排序函數(shù) 排序函數(shù)算法敘述如下: 排序函數(shù)使用冒泡排序的算法,定義了 i j 兩個(gè)變量來(lái)控制實(shí)現(xiàn)雙層循環(huán),for(i=1;inext head A B C 輔助 P3 p1 p2 比較 p1 與 p2 的排序項(xiàng),如 p1 比 p2 小,上圖所有指針的指針均后移一位 相反,若上圖中 p1 比 p2 大,則變?yōu)?P3 A B C P3->next P2->next p1 p2 簡(jiǎn)單的說(shuō)———始終是 p1 與 p2 比較,其中一個(gè)為前一次比較中的的大的一個(gè),另一個(gè)向 后移動(dòng) 內(nèi)循環(huán)源程序 p4=(struct tushu_node*)malloc(size);p4->next=head;p3=p4;p1=head;p2=head->next;for(j=0;jprice>p1->price){ p3=p1;p1=p2;p2=p2->next;} else { p1->next =NULL;p1->next=p2->next;p3->next=p2;p2->next =p1;p3=p2;p2=p1->next;} } head=p4->next;free(p4);4 調(diào)試分析 程序的編寫(xiě)過(guò)程中調(diào)試時(shí)遇到的問(wèn)題及如何解決: 問(wèn)題一 界面不美觀(guān),進(jìn)入一次系統(tǒng)只能進(jìn)行一項(xiàng)操作的問(wèn)題)解決方法 通過(guò)將主菜單的顯示作為一個(gè)獨(dú)立的函數(shù)(inputchoice(),結(jié)合函數(shù)的嵌套調(diào) 用實(shí)現(xiàn),與清屏函數(shù)(system(“cls”)一起,在每次進(jìn)行完一次具體操作都有以下詢(xún)問(wèn))printf(”nn 是否繼續(xù)操作? 請(qǐng)選擇(繼續(xù)-1/退出-0)“);scanf(”%d“,&x);if(x==1){ system(”cls“);inputchioce();} if(x==0){ printf(”nn 謝謝你的使用!再見(jiàn)n“);exit(0);} if(x!=1&&x!=0){ system(”cls“);printf(”選擇有誤,默認(rèn)返回主菜單,請(qǐng)重新選擇:n");inputchioce();} 實(shí)現(xiàn)了每次操作完成后,使只顯示主菜單可繼續(xù)進(jìn)行其他操作 問(wèn)題二 權(quán)限系統(tǒng)以前是輸入學(xué)號(hào)后三位(int)進(jìn)行驗(yàn)證并且只有一次輸入機(jī)會(huì),一次輸入錯(cuò) 誤就退出系統(tǒng) 解決方法 在權(quán)限函數(shù)中使用字符串變量(char)來(lái)作為密碼,使用 do-while 語(yǔ)句來(lái)實(shí)現(xiàn)對(duì) 輸入次數(shù)的控制 問(wèn)題三 錄入時(shí)以前的思路是想在輸入的同時(shí)寫(xiě)入文件只有一組數(shù)據(jù)想存入文件 解決方法 將保存文件作為一個(gè)獨(dú)立的函數(shù)。在創(chuàng)建函數(shù)中有一組另外的參數(shù)來(lái)接收用戶(hù)輸 入的數(shù)據(jù),然后再調(diào)用保存函數(shù)將數(shù)據(jù)存入文件 問(wèn)題四 文件的保存與讀取問(wèn)題 解決方法 由于系統(tǒng)要求結(jié)合文件的知識(shí)使用戶(hù)的數(shù)據(jù)在一次輸入之后即使關(guān)閉退出系統(tǒng)后 在次進(jìn)入系統(tǒng)時(shí)原有數(shù)據(jù)依然能繼續(xù)使用。并且在對(duì)數(shù)據(jù)進(jìn)行創(chuàng)建、刪除、修改、排序等相 關(guān)的操作之后要重新保存,所以將將鏈表保存到文件和從文件讀取數(shù)據(jù)建立鏈表都重新寫(xiě)作 單獨(dú)的函數(shù),在進(jìn)行完相關(guān)的操作后都調(diào)用 save()重新保存,在再次進(jìn)行操作前就先調(diào)用 wjtolb()函數(shù)從文件中讀取數(shù)據(jù)創(chuàng)建鏈表,實(shí)現(xiàn)了對(duì)數(shù)據(jù)更及時(shí)的保存與利用 問(wèn)題五 保存數(shù)據(jù)時(shí)覆蓋不覆蓋原有數(shù)據(jù)的問(wèn)題 解決問(wèn)題 由于以前沒(méi)有注意細(xì)節(jié)問(wèn)題導(dǎo)致雖然數(shù)據(jù)被修改或是刪除后保存成功,但數(shù)據(jù)不 覆蓋原來(lái)的數(shù)據(jù)從而出現(xiàn)文件中數(shù)據(jù)重復(fù)保存的問(wèn)題,解決方法很簡(jiǎn)單,只要將打開(kāi)文件的 方式由可讀可寫(xiě)(a)改為只寫(xiě)方式打開(kāi)(w)就行 問(wèn)題六 輸入時(shí)無(wú)法結(jié)束輸入的問(wèn)題 解決方法 由于在輸入時(shí)時(shí)先輸入圖書(shū)的編號(hào),所以在輸入時(shí)除了輸入第一本圖書(shū)的信息,即在輸入第一本圖書(shū)之后在輸入時(shí)先輸入圖書(shū)的編號(hào),加上一個(gè)判斷循環(huán) while(num!=0)才 繼續(xù)輸入完這本圖書(shū)的其他信息,即 0 可以作為輸入結(jié)束標(biāo)志 問(wèn)題七 程序漏洞,只有第二本圖書(shū)信息無(wú)法修改的問(wèn)題 解決方法 程序設(shè)計(jì)思路有問(wèn)題及對(duì) do-while 語(yǔ)句了解不充分導(dǎo)致了問(wèn)題。修改函數(shù)的思路 是先讓用戶(hù)先輸入要修改的圖書(shū)編號(hào)再依次查詢(xún),先看頭結(jié)點(diǎn)的圖書(shū)編號(hào)與要修改的編號(hào)是 否相等,如果相等繼續(xù)選擇要修改的圖書(shū)信息成分修改,如果不相等,有個(gè)循環(huán)語(yǔ)句來(lái)使結(jié) 點(diǎn)后移只帶相等再選擇要修改的圖書(shū)信息成分修改。有問(wèn)題的寫(xiě)法是使用了 do { p=p->next;} while(p!=NULL&&p->num!=numm)從而導(dǎo)致了如果要修改的圖書(shū)不是第一本而是第二本時(shí),先執(zhí)行了后移一個(gè)結(jié)點(diǎn)直接到第三 個(gè)結(jié)點(diǎn)即無(wú)法修改第二本圖書(shū)的信息。解決后是用 while 循環(huán) while(p!=NULL&&p->num!=numm){ p=p->next;} 就不存在上述問(wèn)題 問(wèn)題八 要對(duì)圖書(shū)的信息進(jìn)行刪除后修改前必須先瀏覽圖書(shū)不然不知道要選擇哪本圖書(shū)進(jìn)行 操作的問(wèn)題 解決方法 由于上述修改與刪除的操作是通過(guò)用戶(hù)對(duì)圖書(shū)編號(hào)的選擇來(lái)完成的所以在瀏覽前 不知道圖書(shū)對(duì)于的編號(hào)就使操作具有盲目性即對(duì)圖書(shū)的信息進(jìn)行刪除后修改前必須先瀏覽圖 書(shū)。解決時(shí)時(shí)讓修改于刪除函數(shù)中讓用戶(hù)輸入編號(hào)前默認(rèn)直接輸出所有圖書(shū)(遍歷所有圖書(shū))5 測(cè)試結(jié)果 編號(hào) 類(lèi)別 4 2 傳記 英語(yǔ) 書(shū)名 讓世界因你而不同 四級(jí)詞匯 作者 李開(kāi)復(fù) 俞敏洪 出版社 北京工業(yè)出版社 群言出版社 出版時(shí)間 價(jià)格 2008.3 2008.9 28.000000 32.000000 5 3 1 6 7 8 漫畫(huà) 營(yíng)銷(xiāo) 雜志 教材 教材 教材 我兔斯基你 哈佛市場(chǎng)營(yíng)銷(xiāo)策略 電腦愛(ài)好者 思修 大學(xué)英語(yǔ) 高等數(shù)學(xué) 王卯卯 宋海峰 無(wú) 羅國(guó)杰 王大偉 蔣青 動(dòng)漫出版社 內(nèi)蒙古出版社 cfan 雜志社 高等教育出版社 外研社 高等教育出版社 2009.3 2010.4 2010.9 2006.8 2005.1 2007.6 32.000000 28.000000 6.000000 15.50 34.9 25.9 現(xiàn)在給出一組測(cè)試數(shù)據(jù)來(lái)全程展示本圖書(shū)管理系統(tǒng)的所有功能 功能一之核查用戶(hù)權(quán)限: 功能一之核查用戶(hù)權(quán)限: 首先進(jìn)入系統(tǒng),你會(huì)發(fā)現(xiàn)要求對(duì)用戶(hù)使用權(quán)限進(jìn)行核查的界面:(效果圖如下)若密碼為錯(cuò)誤密碼,那么你會(huì)看到提醒“注意”的界面 上圖密碼正確,則仍然可以順利進(jìn)入系統(tǒng)見(jiàn)到主菜單 如下圖 若三次輸入錯(cuò)誤 將無(wú)法進(jìn)入系統(tǒng) 功能二之瀏覽全部圖書(shū): 功能二之瀏覽全部圖書(shū): 在主菜單界面選擇 3 則可遍歷現(xiàn)有全部圖書(shū)信息 功能三之創(chuàng)建或添加圖書(shū): 功能三之創(chuàng)建或添加圖書(shū): 選擇 1 后進(jìn)入錄入(刪除 修改)子菜單 繼續(xù)選擇 1 進(jìn)入創(chuàng)建添加圖書(shū)功能 以 0 結(jié)束輸入 結(jié)束后自動(dòng)返回主菜單 再次選擇 3(瀏覽)可查看添加效果(瀏覽時(shí)剛才上圖添加的圖書(shū)信 息“9 IT FLASH8 尹浩瓊 電子工業(yè)出版社 2006.9 41”顯示在最后一行說(shuō)明程序已經(jīng)實(shí)現(xiàn)了 添加功能)功能四之為圖書(shū)按規(guī)則排序: 功能四之為圖書(shū)按規(guī)則排序: 選擇 4 后進(jìn)入排序子菜單進(jìn)一步選擇按何種規(guī)則排序(報(bào)告只演示按出版時(shí)間排序)當(dāng)選擇 2—按出版時(shí)間排序 然后回車(chē)鍵你會(huì)看到 選 1 繼續(xù)返回瀏覽看到圖書(shū)已經(jīng)按出版時(shí)間的先后排序完成 功能五之按規(guī)則查詢(xún)圖書(shū): 功能五之按規(guī)則查詢(xún)圖書(shū): 同排序一樣你可以在子菜單選擇按何種方式查詢(xún)(報(bào)告只演示按書(shū)名查詢(xún))選擇按書(shū)名查詢(xún)后你可以輸入書(shū)名 查詢(xún)圖書(shū)《當(dāng)代大學(xué)生》的結(jié)果是“沒(méi)有找到這本書(shū)” 選擇 1 繼續(xù)按書(shū)名查找其他圖書(shū) 查找到圖書(shū)《讓世界因你而不同》時(shí),這本圖書(shū)的信息將被全部輸出,如圖: 功能六之修改已有圖書(shū)信息: 功能六之修改已有圖書(shū)信息: 從錄入子菜單 1 進(jìn)入后選擇 3 可以進(jìn)入修改功能 方便你選擇要修改哪本圖書(shū) 首先你會(huì)看到目前文件中所有圖書(shū)的信息 上圖選擇了修改編號(hào)為 1 的圖書(shū) 現(xiàn)在編號(hào)為 1 的圖書(shū)的信息單獨(dú)顯示出來(lái) 提示界面選擇修改圖書(shū) 1 的哪一項(xiàng)成分 你可以再次根據(jù) 我們看到圖書(shū) 1 的作者為“無(wú)” 決定將它改為“陳波”(如下圖)完成后可以利用瀏覽函數(shù)同樣可以查看到修改后的效果 修改成功 功能七之按編號(hào)刪除某本圖書(shū): 功能七之按編號(hào)刪除某本圖書(shū): 選擇要?jiǎng)h除圖書(shū)的編號(hào)前你也會(huì)看到目前所有圖書(shū)的信息 現(xiàn)在選擇刪除編號(hào)為 8 的圖書(shū) 瀏覽看到編號(hào)為 8 的圖書(shū)已被成功刪除 功能八之簡(jiǎn)單的統(tǒng)計(jì)功能(統(tǒng)計(jì)圖書(shū)總數(shù)目)功能八之簡(jiǎn)單的統(tǒng)計(jì)功能(統(tǒng)計(jì)圖書(shū)總數(shù)目): 主菜單中選擇 5 即可統(tǒng)計(jì)出圖書(shū)總數(shù)目(上圖看出還剩余編號(hào)為 1、2、3、4、5、6、7、9)八本圖書(shū) i 統(tǒng)計(jì)正確 現(xiàn)在基本功能演示完畢 選擇 0 退出系統(tǒng) 為了完善 系統(tǒng)也設(shè)計(jì)了一個(gè)幫助功能對(duì)系統(tǒng)的使用方法做了簡(jiǎn)單的介紹 6 課程心得總結(jié) 經(jīng)歷了幾個(gè)星期的課程設(shè)計(jì),從設(shè)計(jì)前期的不知如何下手到開(kāi)始設(shè)計(jì)時(shí)的各種錯(cuò)誤的困 擾再到一個(gè)個(gè)的攻破各個(gè)問(wèn)題,最后到對(duì)程序的進(jìn)一步完善與課程報(bào)告的撰寫(xiě)。這一段時(shí)間 我們由被程序困擾到幾乎崩潰到最后成就感的油然而生;從一整天的坐在電腦屏幕面前到現(xiàn) 在的帶著喜悅一遍一遍運(yùn)行著程序;一遍遍的互相探討解決大家遇到的問(wèn)題到越來(lái)越發(fā)現(xiàn)編 程的有意思,我到現(xiàn)在真的感覺(jué)認(rèn)真自己做完這樣一個(gè)系統(tǒng)收獲頗大:(1)對(duì)結(jié)構(gòu)化程序設(shè)計(jì)與函數(shù)的嵌套調(diào)用有了更清晰具體的認(rèn)識(shí)(2)對(duì)鏈表的操作更加熟練,更清晰的認(rèn)識(shí)到鏈表與其他我們前面學(xué)習(xí)的數(shù)據(jù)類(lèi)型(如 結(jié)構(gòu)體)的區(qū)別與聯(lián)系,及使用方法上的異同(3)明確認(rèn)識(shí)到鏈表的循環(huán)操作要注意到的是前一部分對(duì)某某進(jìn)行操作處理,而后要 分析好對(duì)于如何實(shí)現(xiàn)對(duì)某某重新賦值等變化來(lái)實(shí)現(xiàn)繼續(xù)循環(huán)(4)引入了文件知識(shí)可以對(duì)電腦硬盤(pán)上的數(shù)據(jù)操作,改變了對(duì) C 語(yǔ)言的狹義認(rèn)識(shí),認(rèn) 識(shí) 到 C 語(yǔ)言實(shí)際上還可以實(shí)現(xiàn)更復(fù)雜豐富的功能來(lái)利用開(kāi)發(fā)的軟件來(lái)進(jìn)一步實(shí)現(xiàn) 對(duì)現(xiàn)實(shí)中的問(wèn)題的解決(5)學(xué)習(xí)到C語(yǔ)言的學(xué)習(xí)一定不不能忽視一個(gè)很小很小的細(xì)節(jié),因?yàn)橥耆珪?huì)導(dǎo)致不同 的結(jié)果(6)對(duì)如何用C語(yǔ)言來(lái)完成一個(gè)較大的系統(tǒng)的整體思路有清晰的認(rèn)識(shí)

      第二篇:C語(yǔ)言課程設(shè)計(jì)報(bào)告

      C語(yǔ)言課程設(shè)計(jì)報(bào)告

      級(jí):

      10電子本1

      學(xué)

      號(hào):

      10303033122

      名:

      指導(dǎo)老師:

      方文森

      完成日期:

      溫州大學(xué)城市學(xué)院課程設(shè)計(jì)

      目 錄

      1、課程設(shè)計(jì)目的和要求.....................................................................................................2

      2、課程設(shè)計(jì)任務(wù)內(nèi)容.........................................................................................................2

      3、詳細(xì)設(shè)計(jì)說(shuō)明.................................................................................................................3

      3.1分析.........................................................................................................................3 3.2軟件設(shè)計(jì).................................................................................................................3 3.3軟件調(diào)試(對(duì)編程中的錯(cuò)誤進(jìn)行記錄,并給出你的解決辦法).....................3

      4、軟件使用說(shuō)明.................................................................................................................4

      5、課程設(shè)計(jì)心得與體會(huì).....................................................................................................4 附錄1:參考文獻(xiàn)................................................................................................................5 附錄2:部分程序清單(帶有較詳細(xì)的注釋?zhuān)?...............................................................5

      溫州大學(xué)城市學(xué)院課程設(shè)計(jì)

      C語(yǔ)言課程設(shè)計(jì)報(bào)告

      1、課程設(shè)計(jì)目的和要求

      目的:(1)鞏固和加深學(xué)生對(duì)C語(yǔ)言課程的基本知識(shí)的理解和掌握(2)掌握C語(yǔ)言編程和程序調(diào)試的基本技能(3)利用C語(yǔ)言進(jìn)行基本的軟件設(shè)計(jì)(4)掌握書(shū)寫(xiě)程序設(shè)計(jì)說(shuō)明文檔的能力(5)提高運(yùn)用C語(yǔ)言解決實(shí)際問(wèn)題的能力 要求:(1)分析課程設(shè)計(jì)題目的要求(2)寫(xiě)出詳細(xì)設(shè)計(jì)說(shuō)明

      (3)編寫(xiě)程序代碼,調(diào)試程序使其能正確運(yùn)行(4)設(shè)計(jì)完成的軟件要便于操作和使用(5)設(shè)計(jì)完成后提交課程設(shè)計(jì)報(bào)告

      2、課程設(shè)計(jì)任務(wù)內(nèi)容

      1)一個(gè)班級(jí)有4個(gè)學(xué)生,共學(xué)習(xí)5門(mén)課程(大學(xué)英語(yǔ)、高等數(shù)學(xué)、C語(yǔ)言程序設(shè)計(jì)、VB程序設(shè)計(jì)、大學(xué)語(yǔ)文)。要求編寫(xiě)程序完成相應(yīng)功能。2)

      輸入并保存]5門(mén)課程名稱(chēng);

      3)

      輸入并保存]4個(gè)學(xué)生的學(xué)號(hào)及其[個(gè)人相關(guān)信息]; 4)

      輸入并保存]每個(gè)學(xué)生對(duì)應(yīng)的每門(mén)課程成績(jī); 5)求出每門(mén)功課的平均分;

      6)找出有兩門(mén)以上功課不及格的學(xué)生,輸出他們的學(xué)號(hào)和全部課程成績(jī)及該學(xué)生5門(mén)課程的平均成績(jī);

      7)找出平均成績(jī)?cè)?0分以上或者全部課程成績(jī)?cè)?5分以上的學(xué)生,輸出他們的學(xué)號(hào)和全部課程成績(jī)及該學(xué)生5門(mén)課程的平均成績(jī);

      8)計(jì)算每位學(xué)生的總分,并按總分進(jìn)行排名,按由高到低輸出他們的學(xué)號(hào)及總成績(jī); 9)對(duì)前面問(wèn)題進(jìn)行優(yōu)化,即在一維數(shù)駔的基礎(chǔ)上,考慮采用二維數(shù)組、函數(shù)及其參數(shù)傳遞的方式來(lái)解決相關(guān)問(wèn)題;

      10)對(duì)前面問(wèn)題進(jìn)行優(yōu)化,在學(xué)號(hào)的基礎(chǔ)上,增加學(xué)生的其它個(gè)人信息,包括:學(xué)號(hào)、姓名、年齡、性別,并采用結(jié)構(gòu)體形式加以表示; 11)利用文件實(shí)現(xiàn)對(duì)輸入及分析輸出數(shù)據(jù)的存取操作。

      12)參照教材P27頁(yè),3-11題引入選擇功能,輸入功能編號(hào)可以實(shí)現(xiàn)以上功能(考慮清屏函數(shù),自查)。

      溫州大學(xué)城市學(xué)院課程設(shè)計(jì)

      3、詳細(xì)設(shè)計(jì)說(shuō)明

      3.1分析

      3.2軟件設(shè)計(jì)

      開(kāi)始菜單(功能選擇)Key=?Key=1Key=2Key=3Key=4Key=5Key=0Key=99Key=6Key=7Key=8Key=9Key=10寫(xiě)入課程名讀取課程名輸入學(xué)生信息讀取學(xué)生信息建立了學(xué)生信息及課程名稱(chēng)?退出程序讀取課程、學(xué)生、成績(jī)讀取課程成績(jī)輸出功課的平均分兩門(mén)以上功課不及格的學(xué)生輸出高分的學(xué)生總分由高到低排序No保存保存Yes輸入課程成績(jī)(提示)必須輸入課程名稱(chēng)、學(xué)生信息才能建立成績(jī)保存清屏

      3.3軟件調(diào)試(對(duì)編程中的錯(cuò)誤進(jìn)行記錄,并給出你的解決辦法)

      取地址。

      溫州大學(xué)城市學(xué)院課程設(shè)計(jì)

      4、軟件使用說(shuō)明

      1.2.3.4.5.6.7.8.9.10.11.12.[99]讀取課程、學(xué)生、成績(jī) [1]輸入課程名稱(chēng).[2]讀取課程名稱(chēng).[3]輸入學(xué)生信息.[4]讀取學(xué)生信息.[5]輸入課程成績(jī).[6]讀取課程成績(jī).[7]功課的平均分.[8]兩門(mén)以上功課不及格的學(xué)生 [9]-高分的學(xué)生-.[10]學(xué)生總分排序.[0]退出應(yīng)用程序.5、課程設(shè)計(jì)心得與體會(huì)

      在大家的共同努力下,忙碌了兩個(gè)星期,我們順利完成了對(duì)此程序的編譯及試運(yùn)行。在設(shè)計(jì)程序的過(guò)程中,我們了解到要設(shè)計(jì)一個(gè)完整的程序,其中最難的可能就屬設(shè)計(jì)整個(gè)程序的框架,其中可能會(huì)需要經(jīng)過(guò)很多次的修改與調(diào)試,所以必須要有耐心,直至最后設(shè)計(jì)出自己想要的程序。

      另外平時(shí)學(xué)習(xí)c語(yǔ)言的基礎(chǔ)也很關(guān)鍵,因?yàn)槿绻綍r(shí)學(xué)得就不怎么樣,那么你面對(duì)這么一個(gè)比較有難度的程序,可能會(huì)望而卻步,看懂他人的程序都是個(gè)難點(diǎn),更別說(shuō)讓自己去設(shè)計(jì)。為了解決此類(lèi)問(wèn)題,最好就是多向同學(xué),老師請(qǐng)教,查找資料。

      設(shè)計(jì)一個(gè)程序的過(guò)程就是解決一個(gè)實(shí)際問(wèn)題的過(guò)程,從解決實(shí)際問(wèn)題的角度,我們可以這樣來(lái)看:首先要了解這個(gè)問(wèn)題的基本要求,即輸入、輸出、完成從輸入到輸出的要求是什么;在次我們必須捋清思路,逐一的解決問(wèn)題的各個(gè)方面,即從輸入開(kāi)始入手,著重考慮如何從輸入導(dǎo)出輸出,在這個(gè)過(guò)程中,可確定所需的變量、數(shù)組、函數(shù),然后確定處理過(guò)程--算法。

      感謝這次的課程設(shè)計(jì),它使我更加深刻地體會(huì)到c語(yǔ)言程序編寫(xiě)過(guò)程的嚴(yán)謹(jǐn)與細(xì)致,還有就是無(wú)論做任何事都要有耐心。當(dāng)然團(tuán)隊(duì)合作也是非常重要的一個(gè)環(huán)節(jié),這會(huì)使你在學(xué)習(xí)過(guò)程中倍感輕松

      總的來(lái)說(shuō),這次程序設(shè)計(jì)讓我獲益匪淺,對(duì)C語(yǔ)言也有了進(jìn)一步的認(rèn)識(shí):C語(yǔ)言功能高、表達(dá)能力強(qiáng)、使用靈活方便、目標(biāo)程序效率高等等。C語(yǔ)言是在國(guó)內(nèi)外廣泛使用的一種計(jì)算機(jī)語(yǔ)言,相信除了以上優(yōu)點(diǎn),還有許多我們還未發(fā)現(xiàn),希望能在以后的學(xué)習(xí)中有更深入的認(rèn)

      溫州大學(xué)城市學(xué)院課程設(shè)計(jì)

      識(shí)。

      附錄1:參考文獻(xiàn)

      《C語(yǔ)言程序設(shè)計(jì)與實(shí)踐教程》

      附錄2:部分程序清單(帶有較詳細(xì)的注釋?zhuān)?/p>

      #include #include

      #define N 4 #define M 5 #define Debug 1

      typedef struct { char SNo[5];char SName[10];}Student;

      void ScoreRead(float Score[][M],char FileName[],char FileType[]){ int i,j;FILE *fp;fp=fopen(FileName,FileType);if(fp==NULL){ printf(“Errorn”);exit(0);} else { for(i=0;i

      溫州大學(xué)城市學(xué)院課程設(shè)計(jì)

      void ScoreWrite(float Score[][M],char FileName[],char FileType[]){ int i,j;FILE *fp;fp=fopen(FileName,FileType);if(fp==NULL){ printf(“Errorn”);exit(0);} else { for(i=0;i

      void CoureseRead(char Cname[][20],char FileName[],char FileType[]){ FILE *fp;int i,j;char ch;fp=fopen(FileName,FileType);if(fp==NULL){ printf(“Errorn”);exit(0);} i=0;j=0;while(1){ ch = fgetc(fp);if(ch==EOF)break;if(ch=='n'){ Cname[i][j]='