C語(yǔ)言課程設(shè)計(jì)課程管理系統(tǒng)_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)課程管理系統(tǒng)_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)課程管理系統(tǒng)_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)課程管理系統(tǒng)_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)課程管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGEPAGE15課程設(shè)計(jì)報(bào)告課程名稱(chēng)C語(yǔ)言課程設(shè)計(jì)前言《C語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)是對(duì)學(xué)生的一種全面綜合訓(xùn)練,它包括問(wèn)題分析,總體結(jié)構(gòu)設(shè)計(jì),用戶界面設(shè)計(jì),程序設(shè)計(jì)基本技能和技巧,多人合作,以至一整套軟件工作規(guī)范的訓(xùn)練和科學(xué)作風(fēng)的培養(yǎng)。是與課堂聽(tīng)講、自學(xué)和練習(xí)相輔相成的必不可少的一個(gè)教學(xué)環(huán)節(jié)。通常,課程設(shè)計(jì)的課題比平時(shí)的習(xí)題復(fù)雜得多,也更接近實(shí)際。課程設(shè)計(jì)著眼于與應(yīng)用的結(jié)合點(diǎn),使學(xué)生學(xué)會(huì)如何把書(shū)上學(xué)到的知識(shí)用于解決實(shí)際問(wèn)題,培養(yǎng)軟件工作所需要的動(dòng)手能力;另一方面,能使書(shū)上的知識(shí)變“活”,使學(xué)生更好地深化理解和靈活掌握教學(xué)內(nèi)容。為了達(dá)到上述目的,本課程設(shè)計(jì)安排了八個(gè)設(shè)計(jì)課題,訓(xùn)練重點(diǎn)在于基本的程序設(shè)計(jì)方法和分析問(wèn)題的能力,而不強(qiáng)調(diào)面面俱到。學(xué)生可任選其中一題進(jìn)行設(shè)計(jì),設(shè)計(jì)完畢寫(xiě)出課程設(shè)計(jì)報(bào)告,用A4紙打印成冊(cè);并將課程設(shè)計(jì)報(bào)告與源程序存盤(pán)。學(xué)習(xí)委員將課程設(shè)計(jì)報(bào)告與磁盤(pán)收齊后交指導(dǎo)老師。一、目的全面熟悉、掌握C語(yǔ)言基本知識(shí),掌握C程序設(shè)計(jì)中的順序、分支、循環(huán)三種結(jié)構(gòu)及數(shù)組、函數(shù)和C語(yǔ)言基本圖形編程等方法,把編程和實(shí)際結(jié)合起來(lái),增強(qiáng)對(duì)不同的問(wèn)題運(yùn)用和靈活選擇合適的數(shù)據(jù)結(jié)構(gòu)以及算法描述的本領(lǐng),熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進(jìn)一步提高上機(jī)動(dòng)手能力,培養(yǎng)使用計(jì)算機(jī)解決實(shí)際問(wèn)題的能力,養(yǎng)成提供文檔資料的習(xí)慣和規(guī)范編程的思想,為以后在專(zhuān)業(yè)課程中應(yīng)用計(jì)算機(jī)系統(tǒng)解決計(jì)算、分析、實(shí)驗(yàn)和設(shè)計(jì)等學(xué)習(xí)環(huán)節(jié)打下較扎實(shí)的基礎(chǔ)。二、設(shè)計(jì)要求掌握結(jié)構(gòu)化程序設(shè)計(jì)的主體思想,以自頂向下逐步求精的方法編制程序解決一些實(shí)際的問(wèn)題,為將來(lái)編寫(xiě)軟件積累一些典型的案例處理經(jīng)驗(yàn)。設(shè)計(jì)正確,方案合理。界面友好,使用方便。程序精煉,結(jié)構(gòu)清晰。設(shè)計(jì)報(bào)告5000字以上,含程序設(shè)計(jì)說(shuō)明,用戶使用說(shuō)明,源程序清單及程序框圖。上機(jī)演示。按學(xué)號(hào)順序選課題號(hào),并在規(guī)定的時(shí)間內(nèi)獨(dú)自完成相關(guān)課題的C源程序編寫(xiě)、調(diào)整和運(yùn)行。源程序及編譯生成各文件均保存在軟盤(pán)中;按本任務(wù)書(shū)的要求,按附錄的要求編寫(xiě)《課程設(shè)計(jì)報(bào)告》(Word文檔格式)。并用A4的復(fù)印紙打印并裝訂; 在2017年1月3日之前,請(qǐng)各班學(xué)習(xí)委員收齊課程設(shè)計(jì)報(bào)告和源程序交王穎老師,聯(lián)系電話三、進(jìn)度安排具體安排如下:星期時(shí)間班級(jí)內(nèi)容地點(diǎn)第17周土木工程1501/02/03任務(wù)布置第18周土木工程1501/02/03第一次上機(jī)第18周土木工程1501/02/03第二次上機(jī)第18周土木工程1501/02/03第三次上機(jī)四、設(shè)計(jì)內(nèi)容設(shè)計(jì)課題八:課程信息管理系統(tǒng)一、問(wèn)題描述:本系統(tǒng)可以用來(lái)進(jìn)行簡(jiǎn)單的課程信息管理,具體管理操作包括:課程信息的錄入、添加、顯示、查找、刪除、修改、排序和保存等功能。二、功能描述:1、本系統(tǒng)采用結(jié)構(gòu)體數(shù)組,每個(gè)數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括課程號(hào)、課程名、承擔(dān)課程系別、課程性質(zhì)、學(xué)分等。2、系統(tǒng)功能:信息錄入:即添加新的課程信息記錄。信息顯示:按課程編號(hào)順序顯示或按課程名順序顯示信息查詢:(1)按課程名查詢或(2)按課程號(hào)查詢或(3)按課程性質(zhì)查詢信息修改:即修改已錄入的信息記錄。信息刪除:即刪除不需要的課程信息。信息保存:當(dāng)添加、修改、刪除信息后,應(yīng)該將其存入文件。g.退出系統(tǒng)。3、系統(tǒng)使用說(shuō)明:執(zhí)行一個(gè)具體的功能之后,程序?qū)⒅匦嘛@示功能菜單。系統(tǒng)的功能并不限于上述,可以對(duì)其進(jìn)行擴(kuò)充完善,如在對(duì)信息進(jìn)行修改和刪除時(shí),可以考慮系統(tǒng)的安全性,在執(zhí)行前若輸入正確密碼,才可進(jìn)行操作。三、測(cè)試數(shù)據(jù):課程數(shù)>=10課程設(shè)計(jì)報(bào)告規(guī)范需求分析1、程序的功能。2、輸入輸出的要求。概要設(shè)計(jì)1、程序由哪些模塊組成以及一個(gè)模塊之間的層次結(jié)構(gòu)、模塊的調(diào)用關(guān)系;每個(gè)模塊的功能。2、課題的總體數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫(kù)結(jié)構(gòu);即要存儲(chǔ)什么數(shù)據(jù),這些數(shù)據(jù)是什么樣的結(jié)構(gòu),它們之間有什么關(guān)系等。詳細(xì)設(shè)計(jì)1、采用C語(yǔ)言定義相關(guān)的數(shù)據(jù)類(lèi)型。2、寫(xiě)出各模塊的類(lèi)C碼算法。3、畫(huà)出函數(shù)的調(diào)用關(guān)系圖。調(diào)試分析以及設(shè)計(jì)體會(huì)1、測(cè)試數(shù)據(jù):準(zhǔn)備典型的測(cè)試數(shù)據(jù)和測(cè)試方案,包括正確的輸入及輸出結(jié)果和含有錯(cuò)誤的輸入及輸出結(jié)果。2、程序調(diào)試中遇到的問(wèn)題以及解決問(wèn)題的方法。3、課程設(shè)計(jì)過(guò)程經(jīng)驗(yàn)教訓(xùn)、心得體會(huì)。使用說(shuō)明用戶使用手冊(cè):說(shuō)明如何使用你編寫(xiě)的程序,詳細(xì)列出每一步的操作步驟。書(shū)寫(xiě)格式設(shè)計(jì)報(bào)告要求用A4紙打印成冊(cè):標(biāo)題和正文要求見(jiàn)附1封面格式如下頁(yè)。附錄1、參考書(shū)目2、源程序清單(帶注釋?zhuān)└?:課程設(shè)計(jì)報(bào)告裝訂順序:封面、任務(wù)書(shū)、目錄、正文、附件(A4大小的圖紙及程序清單)、評(píng)分。正文的格式:一級(jí)標(biāo)題用3號(hào)黑體,二級(jí)標(biāo)題用四號(hào)宋體加粗,正文用小四號(hào)宋體;行距為22。正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫(huà)出模塊圖);三、主要功能的實(shí)現(xiàn)(至少要有一個(gè)主要模塊的流程圖);四、程序調(diào)試;五、總結(jié);六、附件(所有程序的原代碼,要求對(duì)程序?qū)懗霰匾淖⑨專(zhuān)?。正文總字?jǐn)?shù)要求在5000字以上(不含程序原代碼)。PAGEPAGE15目錄TOC\o"1-2"\h\z\u一、需求分析 21.1系統(tǒng)功能需求分析 21.2程序功能結(jié)構(gòu)分析 2二、設(shè)計(jì)概況 32.1程序主要流程 32.2函數(shù)調(diào)用關(guān)系 4三、詳細(xì)設(shè)計(jì) 53.1程序定義說(shuō)明 53.2模塊函數(shù)設(shè)計(jì) 6四、系統(tǒng)調(diào)試和使用說(shuō)明 84.1系統(tǒng)調(diào)試分析 84.1系統(tǒng)使用說(shuō)明 13五、設(shè)計(jì)心得 145.1設(shè)計(jì)總結(jié) 145.2致謝 15六、附錄 166.1參考文獻(xiàn) 166.2源程序代碼及注釋 166.3課程設(shè)計(jì)評(píng)分表 38PAGEPAGE15需求分析1.1系統(tǒng)功能需求分析1.1.1用戶分析課程信息管理系統(tǒng)的宏觀功能是對(duì)一個(gè)學(xué)院或一個(gè)系的課程信息進(jìn)行系統(tǒng)的管理,系統(tǒng)的使用對(duì)象應(yīng)該分為管理員和游客(即學(xué)員)。對(duì)于管理員的需求,系統(tǒng)應(yīng)該具備包括課程信息的錄入、增加、排序、顯示、查找、修改、刪除等功能;對(duì)于游客身份的需要,系統(tǒng)應(yīng)該具備課程信息的排序、顯示、查找、導(dǎo)出到文件等功能。因?yàn)橄到y(tǒng)本身是一個(gè)開(kāi)放的平臺(tái),所以對(duì)于游客身份而言可以自由進(jìn)入和退出,但對(duì)于管理員身份涉及到系統(tǒng)中課程信息的改變,所以對(duì)于使用管理員身份進(jìn)入系統(tǒng)的用戶需要設(shè)計(jì)口令。1.1.2課程信息分析對(duì)于系統(tǒng)中的課程應(yīng)該包括課程編號(hào)、課程名稱(chēng)、課程學(xué)時(shí)、課程學(xué)分、課程性質(zhì)、課程承擔(dān)教學(xué)的單位等信息。1.2程序功能結(jié)構(gòu)分析1.2.1程序模塊分析結(jié)合系統(tǒng)的課程信息存儲(chǔ)需求,在程序中應(yīng)該定義一個(gè)結(jié)構(gòu)體來(lái)存儲(chǔ)課程信息,并且結(jié)構(gòu)體至少包含6個(gè)變量名來(lái)接收和區(qū)分錄入的課程信息。結(jié)合系統(tǒng)的功能需求,程序至少分為6個(gè)大模塊,分別為信息錄入模塊、信息顯示模塊、信息查找模塊、信息修改模塊、信息排序模塊以及信息保存模塊。其中信息錄入模塊必須包括從文件數(shù)據(jù)庫(kù)中錄入和鍵盤(pán)錄入兩小塊;信息查找要包括按課程編號(hào)方式查找、按課程名稱(chēng)查找以及按課程性質(zhì)查找三小塊;信息排序模塊要包括按課程編號(hào)排序和按課程名稱(chēng)排序兩小塊。1.2.2菜單模塊分析結(jié)合系統(tǒng)的用戶需求,應(yīng)該設(shè)計(jì)3個(gè)菜單,即身份選擇菜單、游客業(yè)務(wù)菜單和管理業(yè)務(wù)菜單,除此之外還有有5個(gè)界面,即登錄界面、游客菜單界面、管理員菜單界面、程序功能切換界面和離開(kāi)界面。設(shè)計(jì)概況2.1程序主要流程圖2.2函數(shù)調(diào)用關(guān)系read(cou,n);讀取文件函數(shù)denglu();登錄函數(shù)(main();)yuwu_student(cou,n);學(xué)生業(yè)務(wù)函數(shù)主函數(shù)模塊yuwu_guanli(cou,n);管理員業(yè)務(wù)函數(shù)pass();密碼函數(shù)leave();離開(kāi)界面函數(shù)menu_student();學(xué)生業(yè)務(wù)菜單函數(shù)find(cou,n);查詢菜單函數(shù)學(xué)生業(yè)務(wù)模塊Display(cou,n);顯示菜單函數(shù)WritetoText(cou,n);自由保存信息到文件函數(shù)Leave();離開(kāi)界面函數(shù)menu_guanli();管理員業(yè)務(wù)菜單函數(shù)Input(cou,n);鍵盤(pán)輸入信息函數(shù)Display(cou,n);顯示菜單函數(shù)函數(shù)管理員業(yè)務(wù)find(cou,n);查詢菜單函數(shù)模塊Change(cou,n);修改函數(shù)Delete(cou,n);刪除函數(shù)write(cou,n);固定存儲(chǔ)函數(shù)leave();離開(kāi)界面函數(shù)qiehuan();切換間界面函數(shù)顯示模塊sort_num(cou,n);按課程編號(hào)排序函數(shù)sort_name(cou,n);按課程名稱(chēng)排序函數(shù)qiehuan();切換間界面函數(shù)find_num(cou,m,n);按課程編號(hào)查找函數(shù)查找模塊find_name(cou,m,n);按課程姓名查找函數(shù)find_nature(cou,m,n);按課程形成查找函數(shù)putout(cou,i);課程輸出函數(shù)qiehuan();切換間界面函數(shù)自由存儲(chǔ)模塊sort_num(cou,n);按課程編號(hào)排序函數(shù)sort_name(cou,n);按課程名稱(chēng)排序函數(shù)詳細(xì)設(shè)計(jì)3.1程序定義說(shuō)明3.1.1數(shù)據(jù)結(jié)構(gòu)說(shuō)明#definePS"123456"http://宏定義密碼intn;//定義一個(gè)全局變量structcourse//定義結(jié)構(gòu)體{ intnum;//課程序號(hào) charname[20];//課程名稱(chēng) inthours;//課程學(xué)時(shí) intcredit;//課程學(xué)分 charcollege[20];//課程性質(zhì) charnature[20];//課程承擔(dān)學(xué)院 };structcoursecou[150];//定義存儲(chǔ)結(jié)構(gòu)數(shù)組3.1.2函數(shù)名說(shuō)明intmenu_guanli();//管理員主屆面intmenu_student();//學(xué)生主界面voidleave();//離開(kāi)界面voiddenglu();//登錄界面voidqiehuan();//切換界面intInput(course,int);//輸入函數(shù)voidexchange(course,int,int);//字符交換位置voidsort_num(course,int);//課程編號(hào)號(hào)排序voidsort_name(course,int);//課程名排序voidDisplay(course,int);//課程顯示函數(shù)intDelete(course,int);//刪除課程函數(shù)voidputout(course,int);//課程輸出voidfind_num(course,int,int);//按課程序號(hào)查詢voidfind_name(course,int,int);//按課程序號(hào)查詢voidfind_nature(course,int,int);//按課性質(zhì)查詢voidfind(course,int);//查詢課程業(yè)務(wù)voidChange(course,int);//修改課程函數(shù)voidWritetoText(course,int);//自定義存儲(chǔ)課程函數(shù)intread(course,int);//讀取數(shù)據(jù)庫(kù)voidwrite(course,int);//自動(dòng)存儲(chǔ)intpass();//密碼、voidyuwu_student(course,int);//學(xué)生業(yè)務(wù)調(diào)用voidyuwu_gaunli(course,int);//管理員業(yè)務(wù)調(diào)用3.2模塊函數(shù)設(shè)計(jì)3.2.1添加課程模塊在函數(shù)中inti=0,j。j為將要添加的課程門(mén)數(shù),從鍵盤(pán)上輸入,也為輸入for語(yǔ)句的終止條件,當(dāng)i=j時(shí),停止輸入。定義整型變量i,j定義整型變量i,j輸入要添加輸入要添加的課程數(shù)賦值給j在for循環(huán)中進(jìn)行第一次循環(huán)在for循環(huán)中進(jìn)行第一次循環(huán)輸入課程的編號(hào)名稱(chēng)學(xué)時(shí)學(xué)分承擔(dān)學(xué)院添加成功添加成功任意鍵返回菜單3.2.2刪除模塊用戶從鍵盤(pán)上輸入想要?jiǎng)h除的課程編號(hào),用比對(duì)的方法找到課程所在的數(shù)組,然后將后一個(gè)數(shù)組值往前復(fù)制即可實(shí)現(xiàn)課程的刪除。選擇刪除功能選擇刪除功能輸入輸入要?jiǎng)h除的課程編號(hào)查找到該課程數(shù)組地址,將后面值往前移動(dòng),全局變量n-1。查找到該課程數(shù)組地址,將后面值往前移動(dòng),全局變量n-1。添加添加成功用white語(yǔ)句判斷是否繼續(xù)刪除操作輸入y繼續(xù)刪除操作輸入y繼續(xù)刪除操作輸入n會(huì)主菜單輸入n會(huì)主菜單3.2.3顯示模塊1.按課程編號(hào)排序1.按課程編號(hào)排序顯示命令輸出函數(shù)顯示命令輸出函數(shù)2.按課程名稱(chēng)排序2.按課程名稱(chēng)排序3.2.4查詢模塊1.編號(hào)查詢1.編號(hào)查詢輸出函數(shù)輸出函數(shù)2.名稱(chēng)查詢查詢命令2.名稱(chēng)查詢查詢命令3.性質(zhì)查詢3.性質(zhì)查詢3.2.5密碼模塊正確正確管理員業(yè)務(wù)輸入密碼開(kāi)始與宏密碼比對(duì)管理員業(yè)務(wù)輸入密碼開(kāi)始結(jié)束錯(cuò)誤結(jié)束錯(cuò)誤3.2.6存儲(chǔ)和讀取模塊1.自定義存儲(chǔ)路徑1.自定義存儲(chǔ)路徑存儲(chǔ)函數(shù)存儲(chǔ)函數(shù)2.指定路徑存儲(chǔ)2.指定路徑存儲(chǔ)存儲(chǔ)和讀取都涉及文件操作,都是通過(guò)文件指針的移動(dòng)來(lái)實(shí)現(xiàn)。3.2.7排序模塊兩種排序方式,一是按課程名稱(chēng)排序,一是按課程編號(hào)排序。都是通過(guò)字符串比對(duì),根據(jù)返回值移動(dòng)改變數(shù)組值來(lái)實(shí)現(xiàn)。Srtcmp(數(shù)組1,數(shù)組2)Srtcmp(數(shù)組1,數(shù)組2)返回值少于等于0返回值大于0返回值少于等于0返回值大于0值不變數(shù)組1,數(shù)組2,值互換。值不變數(shù)組1,數(shù)組2,值互換。系統(tǒng)調(diào)試與使用說(shuō)明4.1系統(tǒng)調(diào)試分析4.1.1登陸界面的實(shí)現(xiàn)此界面為登錄界面,它是通過(guò)輸入(scanf)一個(gè)數(shù)字來(lái)判斷決定使用系統(tǒng)身份,程序中通過(guò)white語(yǔ)句使它可以在輸入錯(cuò)誤是重新輸入,這里還使用了switch語(yǔ)句,三個(gè)case來(lái)區(qū)分登錄界面的三個(gè)走向。當(dāng)輸入1時(shí),系統(tǒng)自動(dòng)轉(zhuǎn)向?qū)W生業(yè)務(wù)界面;當(dāng)輸2時(shí),系統(tǒng)就調(diào)用密碼函數(shù),進(jìn)行密碼驗(yàn)證才能進(jìn)入管理員業(yè)務(wù)界面;當(dāng)輸入0時(shí),系統(tǒng)調(diào)用離開(kāi)界面函數(shù),結(jié)束。學(xué)生業(yè)務(wù)界面學(xué)生業(yè)務(wù)界面密碼輸入界面密碼輸入界面管理員業(yè)務(wù)界面管理員業(yè)務(wù)界面4.1.2密碼對(duì)比的實(shí)現(xiàn)當(dāng)選擇管理身份時(shí),系統(tǒng)跳轉(zhuǎn)密碼輸入界面,這時(shí)候用戶就可以通過(guò)個(gè)getch輸入一個(gè)字符串即密碼,在輸入過(guò)程中,還通過(guò)退格’\b’,在輸入”*”保證密碼的安全性,當(dāng)輸入完畢時(shí),程序就會(huì)通過(guò)函數(shù)strcmp對(duì)比輸入的字符串和宏定義的密碼,當(dāng)比對(duì)結(jié)果一致返回1,就可以調(diào)用管理員業(yè)務(wù);當(dāng)比對(duì)結(jié)果不一致就會(huì)提示重新輸入,在密碼函數(shù)中還inti=3,每輸入一次密碼,i會(huì)自減,當(dāng)i=0時(shí),系統(tǒng)會(huì)結(jié)束,轉(zhuǎn)到離開(kāi)界面。密碼正確密碼正確密碼輸入錯(cuò)誤密碼輸入錯(cuò)誤輸入3次錯(cuò)誤密碼輸入3次錯(cuò)誤密碼4.1.2課程輸入的實(shí)現(xiàn)當(dāng)選擇課程添加時(shí),系統(tǒng)會(huì)提示需要添加幾門(mén)課程,當(dāng)輸入一個(gè)值時(shí),成為添加課程的終止條件,這里使用for語(yǔ)句循環(huán)來(lái)實(shí)現(xiàn)幾門(mén)課程的輸入,輸入課程到結(jié)構(gòu)數(shù)組中時(shí),每次在全局變量n的基礎(chǔ)上加1,便可保持整個(gè)系統(tǒng)的一致性。當(dāng)添加結(jié)束后系統(tǒng)通過(guò)一個(gè)getch輸入時(shí)系統(tǒng)暫停。4.1.3課程顯示的實(shí)現(xiàn)當(dāng)用戶要求顯示課程時(shí),系統(tǒng)就提示用戶選擇顯示的排序方式,當(dāng)選擇1,系統(tǒng)就會(huì)調(diào)用編號(hào)排序函數(shù),先排序后在顯示屏上輸出;當(dāng)選擇2時(shí),系統(tǒng)就會(huì)調(diào)用名稱(chēng)排序函數(shù),排序后輸出,系統(tǒng)暫停。4.1.4課程排序的實(shí)現(xiàn)課程排序的實(shí)現(xiàn)是通過(guò)字符串比較,調(diào)結(jié)構(gòu)數(shù)組位置來(lái)實(shí)現(xiàn)的,這里所用的排序規(guī)則,都是從小到大的規(guī)則。期程序如下:(右邊為函數(shù)exchange()的內(nèi)容)4.1.5課程讀取與導(dǎo)出的實(shí)現(xiàn)一個(gè)系統(tǒng)本身應(yīng)該存在信息,但是不能全部寫(xiě)在預(yù)定的數(shù)組中,這時(shí)候可以通過(guò)文件操作來(lái)實(shí)現(xiàn)信息庫(kù)的建立,讀取和保存,通過(guò)指針fp的移動(dòng)來(lái)實(shí)現(xiàn)讀取文件中的信息,或者將結(jié)合數(shù)組信息寫(xiě)到文件中,代碼如下:調(diào)試結(jié)果如下:按名稱(chēng)排序?qū)说叫碌奈募募袛?shù)據(jù)庫(kù)按名稱(chēng)排序?qū)说叫碌奈募募袛?shù)據(jù)庫(kù)讀取后按編號(hào)排序顯示讀取后按編號(hào)排序顯示4.1.6課程查詢的實(shí)現(xiàn)當(dāng)選擇查詢功能時(shí),要手動(dòng)選取查詢方式,有find_num()、find_name(t)、find_nature()供選擇,第一個(gè)是按編號(hào)查詢,第二個(gè)是按名稱(chēng)查詢,第三個(gè)是按課程性質(zhì)查詢,它們都是通過(guò)white語(yǔ)句來(lái)控制課程的輸出達(dá)到查詢的效果。4.1.7刪除功能的實(shí)現(xiàn)所謂的刪除是把原來(lái)數(shù)組值用空值代替,但是為了保證全局變量的一致性,要把刪除點(diǎn)的數(shù)組后面的信息往前移動(dòng),保證輸出正常,然后通過(guò)存儲(chǔ)功能把移動(dòng)后的數(shù)組寫(xiě)到數(shù)據(jù)庫(kù)中,保證下一次使用的時(shí)候,信息已經(jīng)改變。刪除前后的比較。刪除前后的比較。4.1.8修改功能的實(shí)現(xiàn)修改功能的實(shí)現(xiàn)跟刪除功能的實(shí)現(xiàn)思想是相似的,通過(guò)對(duì)比尋找要修改的課程所在的數(shù)組,然后通過(guò)鍵盤(pán)輸入把新的信息賦值到數(shù)組上,在通過(guò)文件存儲(chǔ)函數(shù)把新的信息寫(xiě)入文件中就達(dá)到修改的目的。調(diào)試如下:修改前修改前修改后修改后4.2系統(tǒng)使用說(shuō)明4.2.1學(xué)生使用說(shuō)明進(jìn)入登錄系統(tǒng)中,選擇1進(jìn)入學(xué)生業(yè)務(wù)菜單,根據(jù)提示選擇相應(yīng)的功能進(jìn)行操作,導(dǎo)出的課程信息可以在所建立的工程文件夾中你所命名的TXT文件查看。4.2.2管理員使用說(shuō)明使用前你可以在所建立的工程文件夾的data.TXT文件中預(yù)輸入課程信息,也可以在系統(tǒng)中輸入。進(jìn)入登入系統(tǒng),選擇2后,輸入密碼:1234進(jìn)入管理員業(yè)務(wù)菜單,根據(jù)提示選擇相應(yīng)的功能進(jìn)行操作。需要注意的是退出系統(tǒng)要選擇按0退出才能對(duì)你所進(jìn)行的功能操作結(jié)果進(jìn)行保存,結(jié)果在下次使用有效。設(shè)計(jì)心得5.1設(shè)計(jì)總結(jié)課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)我們的實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程.隨著科學(xué)技術(shù)發(fā)展的日新月異,當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)生來(lái)說(shuō)掌握程序開(kāi)發(fā)技術(shù)是十分重要的,而C語(yǔ)言又是最常見(jiàn),功能最強(qiáng)大的一種高級(jí)語(yǔ)言,因此做好C語(yǔ)言課程設(shè)計(jì)是十分必要的?;仡櫰鸫舜握n程設(shè)計(jì),至今我們?nèi)愿锌H多,的確,自從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,在整整半個(gè)月的日子里,不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我們懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從實(shí)踐中得出結(jié)論,才能提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到諸多問(wèn)題,可以說(shuō)得是困難重重,我想應(yīng)該可以理解的,畢竟這是大學(xué)來(lái)第一次做的課程設(shè)計(jì)。同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)一些前面學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,通過(guò)這次課程設(shè)計(jì)之后,我們把前面所學(xué)過(guò)的知識(shí)又重新溫故了一遍。我做的是課程管理信息系統(tǒng),雖然是很簡(jiǎn)單的一個(gè)小的程序,但對(duì)我一個(gè)初學(xué)者來(lái)說(shuō)卻是一個(gè)很大的困難。更加是第一次做課程設(shè)計(jì),雖然在機(jī)房編程之前我翻閱了許多文獻(xiàn)資料,但是星期天下午在機(jī)房做了一個(gè)下午卻絲毫沒(méi)有進(jìn)展,最主要是不知從何開(kāi)始,這個(gè)時(shí)候才知道上課老師們不厭其煩的教導(dǎo)是多么的寶貴,這個(gè)時(shí)候才后悔上課的時(shí)候沒(méi)有認(rèn)真的聽(tīng)講??墒乾F(xiàn)在一切都晚了,還好時(shí)間還算是充裕,我只好硬著頭皮去請(qǐng)教老師設(shè)計(jì)思路。雖然老師大概講了一下設(shè)計(jì)方向,但是畢竟是個(gè)新手,還是不知如何下手,于是就在網(wǎng)上下了一篇類(lèi)似的程序,經(jīng)過(guò)仔細(xì)的研究,終于讀懂了C語(yǔ)言編程的基本過(guò)程和方法。經(jīng)過(guò)一波三折,終于開(kāi)始正式編程。編程是一件很枯燥很無(wú)聊的事情,但是出于完成作業(yè),得到學(xué)分的壓力,還必須強(qiáng)迫自己堅(jiān)持下去,按照老師所說(shuō)的模塊化思想,分部分的進(jìn)行編寫(xiě)。而且編程是一件高精度、模范化的事情,稍有疏乎都會(huì)影響全局,比如:我在編寫(xiě)文件讀寫(xiě)過(guò)程中判斷調(diào)節(jié)按書(shū)上的if(fgetc(fp)=EOF)停止文件操作,但是讀出來(lái)文件還是不完整,最后經(jīng)過(guò)老師的指導(dǎo)使用while(!feof(fp))判斷條件才是文件讀寫(xiě)功能實(shí)現(xiàn);除此之外,也可能因?yàn)槟骋惶幍男〉腻e(cuò)誤而導(dǎo)致整個(gè)程序的無(wú)法運(yùn)行,比如:可能由于我的初心,在printf輸出語(yǔ)句輸出數(shù)據(jù)用了地址符號(hào)&導(dǎo)致系統(tǒng)輸出亂碼,怎么也找不出錯(cuò)誤,最后還是老師細(xì)心的幫忙找出來(lái)的。雖然這次課程設(shè)計(jì)的設(shè)計(jì)內(nèi)容不是很新穎,但是無(wú)論如何都是自己的勞動(dòng)成果,是自己經(jīng)過(guò)努力得到的成績(jī),同時(shí)也是學(xué)習(xí)C語(yǔ)言的一次實(shí)踐作業(yè),自己進(jìn)步的證明。通過(guò)這次課程設(shè)計(jì),使我對(duì)C語(yǔ)言有了更進(jìn)一步的認(rèn)識(shí)和了解,要想學(xué)好它要重在實(shí)踐,要通過(guò)不斷的上機(jī)操作才能更好地學(xué)習(xí)它,我也發(fā)現(xiàn)我的好多不足之處,首先是自己在敲打代碼時(shí)候,經(jīng)常按錯(cuò)字母,導(dǎo)致程序無(wú)法識(shí)別運(yùn)行;再有對(duì)C語(yǔ)言的一些標(biāo)準(zhǔn)庫(kù)函數(shù)不太了解,還有對(duì)函數(shù)劃分規(guī)則不夠熟悉,還有對(duì)C語(yǔ)言中經(jīng)常出現(xiàn)的錯(cuò)誤也不了解,通過(guò)實(shí)踐的學(xué)習(xí),我認(rèn)識(shí)到學(xué)好計(jì)算機(jī)要重視實(shí)踐操作,不僅僅是學(xué)習(xí)C語(yǔ)言,還有其他輔助軟件的學(xué)習(xí),以及其它專(zhuān)業(yè)方面的知識(shí)都要重在實(shí)踐,所以在以后學(xué)習(xí)過(guò)程中,我會(huì)更加注視實(shí)踐操作,使自己更好的掌握理論知識(shí)。在課程設(shè)計(jì)過(guò)程中,收獲知識(shí),提高能力的同時(shí),我也學(xué)到了很多人生的哲理,懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過(guò)程中怎么樣去克服心理上的不良情緒。因此在以后的生活和學(xué)習(xí)的過(guò)程中,我一定會(huì)把課程設(shè)計(jì)的精神帶到生活中,學(xué)會(huì)耐心的分析問(wèn)題,而不是半途而廢。5.2致謝在這次課程設(shè)計(jì)的過(guò)程中,我得到了許多人的幫助。首先我要感謝老師在課程設(shè)計(jì)上給予我的指導(dǎo)、提供給我的支持和幫助,這是我能順利完成這次設(shè)計(jì)的主要原因,更重要的是老師幫我解決了許多技術(shù)上的難題,幫我尋找程序錯(cuò)誤,讓我能把系統(tǒng)做得更加完善。在此期間,我不僅學(xué)到了許多新的知識(shí),而且也開(kāi)闊了視野,提高了自己的設(shè)計(jì)能力,鍛煉了自己的耐心。同時(shí),我要感謝我的同學(xué),在我編程的時(shí)候給我提醒,讓我不犯更多的錯(cuò)誤,順利完成本次課程設(shè)計(jì)。最后,感謝網(wǎng)上提供課程設(shè)計(jì)模板的前輩以及書(shū)籍資料的編者給我提供參考。附錄6.1參考文獻(xiàn)《語(yǔ)言程序設(shè)計(jì)》,陳世清主編,上海交通大學(xué)出版社,2014《語(yǔ)言程序設(shè)計(jì)實(shí)踐教程》,陳世清主編,上海交通大學(xué)出版社,2014《C程序設(shè)計(jì)(第四版)》,譚浩強(qiáng)主編,清華大學(xué)出版社,2010《C程序設(shè)計(jì)(第四版)學(xué)習(xí)輔導(dǎo)》,譚浩強(qiáng)主編,清華大學(xué)出版社,20106.2源程序代碼#include<stdio.h>//C語(yǔ)言標(biāo)準(zhǔn)頭文件#include<stdlib.h>//清屏system("cls")頭文件#include<string.h>//字符串操作頭文件#include<conio.h>//getch頭文件#definePS"1234"http://宏定義密碼intn;structcourse//數(shù)據(jù)結(jié)構(gòu){ intnum;//課程序號(hào) charname[20];//課程名稱(chēng) inthours;//課程學(xué)時(shí) intcredit;//課程學(xué)分 charcollege[20];//課程性質(zhì) charnature[20];//課程承擔(dān)學(xué)院 };structcoursecou[150];intmenu_guanli();//管理員主屆面intmenu_student();//學(xué)生主界面voidleave();//離開(kāi)界面voiddenglu();//登錄界面voidqiehuan();//切換界面intInput(course,int);//輸入函數(shù)voidexchange(course,int,int);//字符交換位置voidsort_num(course,int);//課程編號(hào)號(hào)排序voidsort_name(course,int);//課程名排序voidDisplay(course,int);//課程顯示函數(shù)intDelete(course,int);//刪除課程函數(shù)voidputout(course,int);//課程輸出voidfind_num(course,int,int);//按課程序號(hào)查詢voidfind_name(course,int,int);//按課程序號(hào)查詢voidfind_nature(course,int,int);//按課性質(zhì)查詢voidfind(course,int);//查詢課程業(yè)務(wù)voidChange(course,int);//修改課程函數(shù)voidWritetoText(course,int);//自定義存儲(chǔ)課程函數(shù)intread(course,int);//讀取數(shù)據(jù)庫(kù)voidwrite(course,int);//自動(dòng)存儲(chǔ)intpass();//密碼、voidyuwu_student(course,int);//學(xué)生業(yè)務(wù)調(diào)用voidyuwu_gaunli(course,int);//管理員業(yè)務(wù)調(diào)用intmenu_guanli()//管理員主屆面{ charc; while(c<'0'||c>'6') { system("cls"); printf("\t|************************************|\n"); printf("\t|***土木系課程管理信息系統(tǒng)***|\n"); printf("\t|**********作者:常華嚴(yán)**********|\n"); printf("\t|************************************|\n"); printf("\t|****1.增加課程****2.顯示課程****|\n"); printf("\t|************************************|\n"); printf("\t|****3.查詢課程****4.修改課程****|\n"); printf("\t|************************************|\n"); printf("\t|****5.刪除課程****0.退出系統(tǒng)****|\n"); printf("\t|************************************|\n"); printf("\t|**溫馨提示:如需幫助請(qǐng)聯(lián)系作者**|\n"); printf("\t|************************************|\n\n"); printf("\t歡迎您使用本系統(tǒng),請(qǐng)選擇系統(tǒng)功能:"); c=getchar();//選取功能 } return(c-'0');}intmenu_student()//學(xué)生主界面{ charc; while(c<'0'||c>'3') { system("cls"); printf("\t|************************************|\n"); printf("\t|***土木系課程管理信息系統(tǒng)***|\n"); printf("\t|**********作者:常華嚴(yán)**********|\n"); printf("\t|************************************|\n"); printf("\t|****1.查詢課程****2.顯示課程****|\n"); printf("\t|************************************|\n"); printf("\t|****3.導(dǎo)出課程****0.退回系統(tǒng)****|\n"); printf("\t|************************************|\n"); printf("\t|**溫馨提示:如需幫助請(qǐng)聯(lián)系作者!**|\n"); printf("\t|************************************|\n\n"); printf("\t歡迎您使用本系統(tǒng),請(qǐng)選擇系統(tǒng)功能:"); c=getchar(); } return(c-'0');}voidleave()//離開(kāi)界面{chara; printf("\t┌──────────────────┐\n"); printf("\t│************************************│\n"); printf("\t│***土木系課程管理信息系統(tǒng)***│\n"); printf("\t│**********作者:常華嚴(yán)**********│\n"); printf("\t│************************************│\n"); printf("\t│***謝謝您的使用!***│\n"); printf("\t│***歡迎下次再來(lái)!***│\n"); printf("\t│***祝你萬(wàn)事如意!***│\n"); printf("\t│***再見(jiàn)!***│\n"); printf("\t│************************************│\n"); printf("\t└──────────────────┘\n"); a=getch();//暫停系統(tǒng) exit(0);//退出}voiddenglu()//登錄界面{ printf("\t|************************************|\n"); printf("\t|**歡迎進(jìn)入土木系課程管理信息系統(tǒng)**|\n"); printf("\t|**********作者:常華嚴(yán)**********|\n"); printf("\t|************************************|\n"); printf("\t|****1.學(xué)生****2.管理員****|\n"); printf("\t|************************************|\n"); printf("\t|**溫馨提示:如需幫助請(qǐng)聯(lián)系作者**|\n"); printf("\t|**退出系統(tǒng)請(qǐng)輸入“0”!**|\n"); printf("\t|************************************|\n\n"); printf("\t請(qǐng)選擇使用身份:");}voidqiehuan()//切換界面{ printf("\t|************************************|\n"); printf("\t|***土木系課程管理信息系統(tǒng)***|\n"); printf("\t|**********作者:常華嚴(yán)**********|\n"); printf("\t|************************************|\n");}intInput(coursecou[],intn)//課程輸入函數(shù){ inti,j; chara; qiehuan(); printf("\t請(qǐng)輸入要添加的課程門(mén)數(shù):"); scanf("%d",&j); system("cls"); for(i=1;i<=j;i++) { qiehuan(); printf("\t請(qǐng)輸入第%d門(mén)課程!\n",i); printf("\t課程編號(hào):"); scanf("%d",&cou[n+i].num); printf("\t課程名稱(chēng):"); scanf("%s",cou[n+i].name); printf("\t課程學(xué)時(shí):"); scanf("%d",&cou[n+i].hours); printf("\t課程學(xué)分:"); scanf("%d",&cou[n+i].credit); printf("\t課程性質(zhì):"); scanf("%s",cou[n+i].nature); printf("\t承擔(dān)課程學(xué)院:"); scanf("%s",cou[n+i].college); i++; system("cls"); } n+=j;qiehuan(); printf("\t\t課程信息添加成功!"); a=getch();//暫停 return(n);}voidexchange(coursecou[],inti,intj)//字符交換位置{ inttemp1; chartemp2[20]; temp1=cou[i].num;//交換序號(hào) cou[i].num=cou[j].num; cou[j].num=temp1; strcpy(temp2,cou[i].name);//交換姓名 strcpy(cou[i].name,cou[j].name); strcpy(cou[j].name,temp2); temp1=cou[i].hours;//交換學(xué)時(shí) cou[i].hours=cou[j].hours; cou[j].hours=temp1; temp1=cou[i].credit;//交換學(xué)分 cou[i].credit=cou[j].credit; cou[j].credit=temp1; strcpy(temp2,cou[i].college);//交換性質(zhì) strcpy(cou[i].college,cou[j].college); strcpy(cou[j].college,temp2);strcpy(temp2,cou[i].nature);//交換學(xué)院 strcpy(cou[i].nature,cou[j].nature); strcpy(cou[j].nature,temp2);}voidsort_num(coursecou[],intn)//課程編號(hào)號(hào)排序{ inti,j; for(i=0;i<=n-1;i++) for(j=i+1;j<=n;j++) if(cou[i].num>cou[j].num) exchange(cou,i,j);}voidsort_name(coursecou[],intn)//課程名排序{ inti,j; for(i=0;i<=n-1;i++) for(j=i+1;j<=n;j++) if(strcmp(cou[i].name,cou[j].name)>0) exchange(cou,i,j);}voidDisplay(coursecou[],intn)//課程顯示函數(shù){ chara; inti,m; qiehuan(); printf("\t┌──────────────────┐\n"); printf("\t│**1.課程編號(hào)**2.課程名稱(chēng)**│\n"); printf("\t│**0.返回菜單**│\n"); printf("\t└──────────────────┘\n");printf("\t請(qǐng)選擇顯示課程排序方式:");scanf("%d",&m);while(m!=1&&m!=2&&m!=0){ printf("\t輸入錯(cuò)誤,請(qǐng)重新選擇:"); scanf("%d",&m); } if(m==1||m==2) { if(m==1) sort_num(cou,n); if(m==2) sort_name(cou,n); printf("++\n");/*格式*/ printf("\t課程編號(hào)課程名稱(chēng)課程學(xué)時(shí)課程學(xué)分課程性質(zhì)承擔(dān)課程學(xué)院\n"); printf("++\n"); for(i=0;i<n+1;i++) printf("\t%d\t%s\t%d\t%d\t%s\t\t%s\n",cou[i].num,cou[i].name,cou[i].hours,cou[i].credit,cou[i].nature,cou[i].college); printf("\n"); printf("\t\t系統(tǒng)中共有%d門(mén)課!\n",i); a=getch(); } else;}intDelete(coursecou[],intn)//刪除課程函數(shù){ inta; while(a!=0) { ints; inti=0,j; qiehuan(); printf("\t請(qǐng)輸入想刪除課程信息的課程編號(hào):"); scanf("%d",&s); while(cou[i].num!=s&&i<=n) i++; if(i==(n+1)) { printf("\t系統(tǒng)中沒(méi)有該課程信息!\n"); return(n); } for(j=i;j<n+1;j++) { cou[j].num=cou[j+1].num; strcpy(cou[j].name,cou[j+1].name); cou[j].hours=cou[j+1].hours; cou[j].credit=cou[j+1].credit; strcpy(cou[j].nature,cou[j+1].nature); strcpy(cou[j].college,cou[j+1].college); } printf("\t該課程信息已經(jīng)成功刪除!\n"); n--; printf("\n\t是否繼續(xù)查詢?(是請(qǐng)輸入1,否請(qǐng)輸入0):"); scanf("%d",&a); system("cls"); } returnn;}voidputout(coursecou[],inti)//課程輸出{ printf("\t++\n"); printf("\t課程編號(hào):%d\n",cou[i].num); printf("\t課程名稱(chēng):%s\n",cou[i].name); printf("\t課程學(xué)時(shí):%d\n",cou[i].hours); printf("\t課程學(xué)分:%d\n",cou[i].credit); printf("\t課程性質(zhì):%s\n",cou[i].nature); printf("\t承擔(dān)課程學(xué)院:%s\n",cou[i].college); printf("\t++\n");}voidfind_num(coursecou[],intm,intn)//按課程序號(hào)查詢{ chars; inti=0; system("cls"); qiehuan(); printf("\t請(qǐng)輸入想查詢的課程編號(hào):"); scanf("%d",&s); while(cou[i].num!=s&&i<n) i++; if(i==n) { printf("\t系統(tǒng)中沒(méi)有這個(gè)課程信息!\n"); return; } for(i=0;i<=n;i++) { if(cou[i].num==s) putout(cou,i); }}voidfind_name(coursecou[],intm,intn)//按課名稱(chēng)查詢{ chars[20]; inti=0; system("cls"); qiehuan(); printf("\t請(qǐng)輸入想查詢的課程名稱(chēng):"); scanf("%s",s); while(strcmp(cou[i].name,s)!=0&&i<n) i++; if(i==n) { printf("\t系統(tǒng)中沒(méi)有該課程信息!\n"); return; } for(i=0;i<=n;i++) { if(strcmp(cou[i].name,s)==0) putout(cou,i); }}voidfind_nature(coursecou[],intm,intn)//按課性質(zhì)查詢{ chars[20]; inti=0; system("cls"); qiehuan(); printf("\t請(qǐng)輸入想查詢的課程性質(zhì):"); scanf("%s",s); while(strcmp(cou[i].nature,s)!=0&&i<n) i++; if(i==n) { printf("\t系統(tǒng)中沒(méi)有該課程信息!\n"); return; } for(i=0;i<=n;i++) { if(strcmp(cou[i].nature,s)==0) putout(cou,i); }}voidfind(coursecou[],intn)//查詢課程業(yè)務(wù){(diào) inta,m; while(a!=0) { qiehuan(); printf("\t┌──────────────────┐\n"); printf("\t│**1.課程編號(hào)**2.課程名稱(chēng)**│\n"); printf("\t│**3.課程性質(zhì)**0.返回菜單**│\n"); printf("\t└──────────────────┘\n"); printf("\t請(qǐng)選擇查詢方式:"); scanf("%d",&m); while(m!=1&&m!=2&&m!=3&&m!=0) { printf("\t輸入錯(cuò)誤,請(qǐng)重新選擇:"); scanf("%d",&m); } if(m==1)//按課程編號(hào)查詢 find_num(cou,m,n); if(m==2)//按課程名稱(chēng)查詢 find_name(cou,m,n); if(m==3)//按課程性質(zhì)查詢 find_nature(cou,m,n); if(m==0) return; printf("\n\t是否繼續(xù)查詢?(是請(qǐng)輸入1,否請(qǐng)輸入0):"); scanf("%d",&a); system("cls"); }}voidChange(coursecou[],intn)//修改課程函數(shù){ chars[20]; inti=0,a,b; while(a!=0)//判斷是否繼續(xù)修改 { qiehuan(); printf("\t請(qǐng)輸入想修改的課程信息的課程名稱(chēng):"); scanf("%s",s); while(strcmp(cou[i].name,s)!=0&&i<=n) i++; if(i==n+1) printf("\t系統(tǒng)中沒(méi)有該科目!\n"); if(i!=n+1) { for(i=0;i<=n+1;i++) { if(strcmp(cou[i].name,s)==0) { printf("\t┌──────────────────┐\n"); printf("\t│**1.課程編號(hào)**2.課程學(xué)時(shí)**│\n"); printf("\t│**3.課程學(xué)分**4.課程性質(zhì)**│\n"); printf("\t│**5.課程承擔(dān)學(xué)院**│\n"); printf("\t└──────────────────┘\n"); printf("請(qǐng)輸入要修改的課程信息項(xiàng)目!\n"); scanf("%d",&b); if(b==1) { printf("\t請(qǐng)輸入正確課程編號(hào):"); scanf("%d",&cou[i].num); } if(b==2) { printf("\t請(qǐng)輸入正確的課程學(xué)時(shí):"); scanf("%d",&cou[i].hours); } if(b==3) { printf("\t請(qǐng)輸入正確的課程學(xué)分:"); scanf("%d",&cou[i].credit); } if(b==4) { printf("\t1請(qǐng)輸入正確的課程性質(zhì):"); scanf("%s",cou[i].nature); } if(b==5) { printf("\t課程承擔(dān)學(xué)院:"); scanf("%s",cou[i].college); } printf("\t修改成功!\n"); } } } printf("\n\t是否繼續(xù)修改?(是請(qǐng)輸入1,否請(qǐng)輸入0):"); scanf("%d",&a); system("cls"); }}voidWritetoText(coursecou[],intn)//自定義存儲(chǔ)課程函數(shù){intm; qiehuan(); printf("\t┌──────────────────┐\n"); printf("\t│**1.課程編號(hào)**2.課程名稱(chēng)**│\n"); printf("\t└──────────────────┘\n"); printf("\t請(qǐng)選擇所保存課程信息的排序方式:"); scanf("%d",&m); if(m==1) sort_num(cou,n); if(m==2) sort_name(cou,n); chara; inti=0; FILE*fp;//定義FILE結(jié)構(gòu)指針變量 charFileName[20];//定義文件名 printf("\t請(qǐng)給所保存課程信息的文件命名:"); scanf("%s",&FileName); fp=fopen(FileName,"w"); fprintf(fp,"*****************************************課程信息管理系統(tǒng)*******************************\n"); fprintf(fp,"課程編號(hào)課程名稱(chēng)課程學(xué)時(shí)課程學(xué)分課程性質(zhì)承擔(dān)課程學(xué)院\n"); fprintf(fp,"\n"); while(i<=n) { fprintf(fp,"%-12d%-12s%-15d%-15d%-15s%s\n",cou[i].num,cou[i].name,cou[i].hours,cou[i].credit,cou[i].nature,cou[i].college); i++; } fprintf(fp,"\n"); fprintf(fp,"***************************************共有%d條記錄****************************************\n",n+1); fclose(fp); system("cls"); qiehuan(); printf("\t++\n"); printf("\t|課程信息成功導(dǎo)出,請(qǐng)?jiān)谖募胁榭?|\n"); printf("\t++\n"); a=getch();}intread(coursecou[],intn)//讀取數(shù)據(jù)庫(kù){ FILE*fp; inti=0; if((fp=fopen("course.txt","r+"))==NULL) {

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論