




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、湖南涉外經(jīng)濟(jì)學(xué)院課程設(shè)計(jì)報(bào)告課程名稱: C語言程序設(shè)計(jì) 報(bào)告題目: 學(xué)生選修課管理系統(tǒng) 學(xué)生姓名: 劉君瑋 所在學(xué)院: 信息學(xué)院 專業(yè)班級: 電信1302 學(xué)生學(xué)號: 134110225 指導(dǎo)教師: 周瑩蓮 2014年 6月 20日報(bào)告題目學(xué)生選修課管理系統(tǒng)完成時(shí)間4.14-6.20學(xué)生姓名劉君瑋專業(yè)班級電信1302班指導(dǎo)教師周瑩蓮職稱 講師設(shè)計(jì)目的1、熟練掌握C語言課程中所學(xué)的理論知識(shí);2、 通過綜合C語言的基本知識(shí)來解決實(shí)際問題;3、加強(qiáng)分析和解決問題的能力。設(shè)計(jì)內(nèi)容選修課信息包括課程名、編號、學(xué)科性質(zhì)、總學(xué)時(shí)、學(xué)分、(序號不重復(fù))。系統(tǒng)功能包括:(1) 系統(tǒng)以菜單方式工作; (2) 課程
2、信息和學(xué)生信息的錄入功能(課程信息有文件保存)-輸入; (3) 課程信息瀏覽功能-輸出; (4) 修改功能;(5) 刪除功能;(6) 查詢功能,多種查詢方式-算法; (7) 排序功能,按不同方式進(jìn)行排序; 設(shè)計(jì)步驟1、需求分析:對系統(tǒng)的應(yīng)實(shí)現(xiàn)的功能進(jìn)行分析。2、概要設(shè)計(jì):對系統(tǒng)功能進(jìn)行模塊分解,對模塊的功能及模塊之間的相互關(guān)系進(jìn)行說明(如用到函數(shù),則對函數(shù)間的接口進(jìn)行說明),對系統(tǒng)使用的數(shù)據(jù)結(jié)構(gòu)(各數(shù)組、主要變量的設(shè)置及其代表的含義)進(jìn)行說明。3、詳細(xì)設(shè)計(jì):用流程圖、偽代碼等方法對各主要算法進(jìn)行描述。4、編寫代碼:根據(jù)設(shè)計(jì)編寫。源程序要按照程序的格式規(guī)范來編寫,要求結(jié)構(gòu)清晰,界面友好,關(guān)鍵部分
3、有必要的注釋。5、調(diào)試分析:準(zhǔn)備充分的測試數(shù)據(jù)對系統(tǒng)進(jìn)行調(diào)試(對錯(cuò)誤的數(shù)據(jù)輸入也要進(jìn)行測試,保證程序的容錯(cuò)性),并通過測試對系統(tǒng)提出改進(jìn)設(shè)想。工作內(nèi)容及時(shí)間進(jìn)度安排第17周:周1:需求分析、小組分工周2-周4 :設(shè)計(jì)、實(shí)現(xiàn)及測試周5 :驗(yàn)收答辯課程設(shè)計(jì)成果1、與設(shè)計(jì)內(nèi)容對應(yīng)的軟件程序2、課程設(shè)計(jì)總結(jié)報(bào)告摘 要(小四、宋體、固定行距20磅)當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代,在各行各業(yè)中離不開信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息系統(tǒng)的環(huán)境。計(jì)算機(jī)的最到好處的于利用它能夠進(jìn)行信息管理,使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。 尤其對于復(fù)雜的信息管理,計(jì)算機(jī)能夠充
4、分發(fā)揮它的優(yōu)越性。計(jì)算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好學(xué)生選課信息而設(shè)計(jì)的。 數(shù)據(jù)處理手工操作,工作量大,出錯(cuò)率高,出錯(cuò)后不易更改,造成了時(shí)間上的浪費(fèi)。 基于這個(gè)問題,我認(rèn)為有必要建立一個(gè)學(xué)生選課系統(tǒng),使學(xué)生選課信息管理工作規(guī)范化、系統(tǒng)化、程序化,避免學(xué)生選課管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢和修改選課情況。關(guān)鍵字:選修課管理;用;隔開信息管理;用;隔開C程序目錄居中一、實(shí)現(xiàn)意義3二、需求分析42.1 本軟件具有如下功能:42.1本軟件功能描述:5三、系統(tǒng)設(shè)計(jì)53.1系統(tǒng)模塊53.
5、2登陸界面流程圖63. 3技術(shù)路線6四、詳細(xì)設(shè)計(jì)74.1登陸界面74.2錄入數(shù)據(jù)84.3選修課排序功能94.4選修課查詢功能104.5選修課修改功能:11五、結(jié)論與心得12六、參考文獻(xiàn)14七、附錄 程序源代碼字號可以是小5號0概述(四號、宋體、加粗)一、實(shí)現(xiàn)意義 現(xiàn)代的社會(huì)是信息化的社會(huì),信息無所不在。在生產(chǎn)領(lǐng)域、流通領(lǐng)域、各個(gè)部門每天都和信息打交道,如何處理如此多的信息成為了一個(gè)重要的課題。學(xué)生在學(xué)期開始選課是教學(xué)活動(dòng)中的一個(gè)重要環(huán)節(jié),該環(huán)節(jié)如果能管理好,它不僅能加快學(xué)生的選課速度,也提高了整個(gè)活動(dòng)的效率。 &
6、#160; 大學(xué)一般都有上千名學(xué)生,每學(xué)期開始學(xué)生都要選課,因而產(chǎn)生了大量的課程信息??紤]到用戶使用的方便和處理的信息量系統(tǒng)要完成錄入,保存,查詢,修改和刪除課程信息的各種過程,能打印出課程信息表。 對象: 系統(tǒng)的主要使用對象是需要選課的學(xué)生。學(xué)生在選課是要察看各個(gè)課程的詳細(xì)信息,還要選擇一些感興趣的課程,需要生成課表,在發(fā)現(xiàn)課程有沖突后能夠修改先前選擇的信息。需要隨學(xué)生選課的變化,計(jì)算相應(yīng)的總學(xué)分。在全部選定后,打印報(bào)表。系統(tǒng)還需要管理員來查看和修改學(xué)生的總體選課情況課程信息和學(xué)生信息。1.1成員及分工
7、組長劉君瑋:登陸界面,錄入、添加模塊,連接各個(gè)模塊。組員楊卓龍:排序模塊,整體布局。組員林澤宇:查詢模塊。組員李向陽:刪除模塊。1.2課題完成情況概述共10周:周9:需求分析、小組分工周10-周17 :設(shè)計(jì)、實(shí)現(xiàn)及測試二、需求分析2.1 本軟件具有如下功能:1)登陸驗(yàn)證;2)選修課信息詳細(xì)列表;3)選修課信息錄入;4)選修課信息添加與修改;5)選修課信息刪除;6)選修課信息查詢;7)選修課信息排序;2.1本軟件功能描述:1)登錄驗(yàn)證 對使用本軟件的用戶進(jìn)行驗(yàn)證,通過者才可進(jìn)入系統(tǒng)。2)選修課信息詳細(xì)列表 已錄入或添加的選修課信息列表展示。3)選修課信息錄入 錄入新的選修課信息。4)選修課信息添
8、加與修改 添加新的選修課信息或?qū)ζ溥M(jìn)行修改與保存。5)選修課信息刪除 對已有的選修課信息進(jìn)行刪除。6)選修課信息查詢 查詢已有的選修課信息,有多重查詢方式。7)選修課信息排序 對已有的選修課信息排序,有多重排序方式。三、系統(tǒng)設(shè)計(jì)3.1系統(tǒng)模塊1) 系統(tǒng)以菜單方式工作; (2) 課程信息和學(xué)生信息的錄入功能(課程信息有文件保存)-輸入; (3) 課程信息瀏覽功能-輸出; (4) 修改功能;(5) 刪除功能;(6) 查詢功能,多種查詢方式-算法; (7)
9、60;排序功能,按不同方式進(jìn)行排序; 3.2登陸界面流程圖按編號查詢按性質(zhì)查詢學(xué)時(shí)性質(zhì)學(xué)時(shí)性質(zhì)學(xué)分性質(zhì)性質(zhì)編號查詢、排序課程信息錄入課程信息瀏覽登陸界面當(dāng)你打開程序時(shí),你會(huì)進(jìn)入登陸界面,輸入正確的用戶名及密碼后即可進(jìn)入“學(xué)生選修課管理系統(tǒng)”。此時(shí)將進(jìn)入另一個(gè)選擇界面,如果輸入錯(cuò)誤則會(huì)退出界面。進(jìn)入選擇界面后會(huì)提供各種選擇,流程圖如圖1所示后面加。圖1登陸界面流程圖刪除、修改3. 3技術(shù)路線使用C語言編輯程序,采用的技術(shù)是用數(shù)組,結(jié)構(gòu)體數(shù)據(jù)等四、詳細(xì)設(shè)計(jì)4.1登陸界面(圖2)及主界面(圖3)簡要附加文字說明圖2登陸界面圖3主界面4.2錄入數(shù)據(jù)(圖4)和添加數(shù)據(jù)(圖5)圖4錄入數(shù)據(jù)圖5添
10、加數(shù)據(jù)4.3選修課排序功能(僅展示第一種排序方式)如圖6圖6選修課排序4.4選修課查詢功能:按編號查詢 如圖7圖7按編號查詢 按學(xué)科名查詢 如圖8圖8按學(xué)科名查詢4.5選修課修改功能:修改學(xué)科名:如圖9圖9選修課修改修改學(xué)科性質(zhì):如圖10圖10修改學(xué)科性質(zhì)五、結(jié)論與心得通過本期的C語言課程設(shè)計(jì),我受益匪淺,經(jīng)過半個(gè)月的周的學(xué)習(xí)與設(shè)計(jì),通過我們小組各成員之間的相互討論和合作,我們完成了學(xué)生選修課管理系統(tǒng)的程序設(shè)計(jì)。雖然我們已經(jīng)學(xué)習(xí)了C語言程序設(shè)計(jì)這門課,但是我所學(xué)的知識(shí)最多也就是在做作業(yè)的時(shí)候才會(huì)用到,平時(shí)沒有什么練習(xí)的機(jī)會(huì),這次的課程設(shè)計(jì)是我第一次通過自己構(gòu)思,和同學(xué)討論并且不斷查閱資料來設(shè)計(jì)
11、一項(xiàng)程序。這次設(shè)計(jì),不僅鞏固了我以前所學(xué)的知識(shí),還讓我對c語言有了更深一步的了解,掌握了更多的技巧和技能。對于這次實(shí)踐,我有如下心得體會(huì):字號與前面一樣大?。ㄒ唬┮匾晫?shí)踐環(huán)節(jié),上機(jī)調(diào)試成績非常重要。學(xué)習(xí)一門語言,就是要按照它的語法來編程。要編程,當(dāng)然就要上機(jī)操作來驗(yàn)證你程序的正確性。所以上機(jī)非常重要,通過執(zhí)行你所寫的程序,完成你所寫程序的目標(biāo),最終達(dá)到你的目的。而且通過執(zhí)行程序,你會(huì)發(fā)現(xiàn)程序中的錯(cuò)誤,從而使你了解你所學(xué)知識(shí)中的不足,同時(shí),要學(xué)會(huì)根據(jù)編譯時(shí)提示的錯(cuò)誤來改正程序中發(fā)生的錯(cuò)誤,以便下次不會(huì)再犯同樣的錯(cuò)誤。(二)基本語法學(xué)習(xí)雖然枯草乏味,但是它相當(dāng)于高樓大廈的一磚一瓦,一定要下硬功夫
12、讓學(xué)生掌握熟練。C語言的語法部分。這部分內(nèi)容是學(xué)好C語言的基礎(chǔ),只有學(xué)好了這些語法,才會(huì)寫程序,看程序。所以對一個(gè)初學(xué)者來說,這部分內(nèi)容是非常重要的,所以要扎實(shí)地熟悉每一個(gè)語法,并能根據(jù)這些語法來編程。(三)學(xué)習(xí)要抓住重點(diǎn),難點(diǎn)部分要多講、多學(xué)、多練。通過這次學(xué)習(xí)使得我對C語言的重點(diǎn),難點(diǎn),以及易出錯(cuò)的地方把握的更精準(zhǔn)了。當(dāng)然,這只是針對我個(gè)人而言。在C語言學(xué)習(xí)過程,重點(diǎn)就是數(shù)組,指針,以及結(jié)構(gòu)體了。總結(jié):字號與前面一樣大小在我們小組有解決不了的問題時(shí),我們會(huì)主動(dòng)查閱相關(guān)的資料,或向其他同學(xué)詢問,這不僅豐富了我們的知識(shí),還增進(jìn)了我們同學(xué)之間的友誼。為了增大信息的安全性,需要用文件來存儲(chǔ)信息,由
13、于我們在上課時(shí)不注重對文件的運(yùn)用,所以在這方面有較大的困難。我先將書本認(rèn)認(rèn)真真地看了一遍,又做了一下課后習(xí)題來驗(yàn)證和增進(jìn)自己的理解,終于,經(jīng)過我們的不懈努力,我們小組的程序有了突破,成功地實(shí)現(xiàn)了用文件來保存并查看學(xué)生的信息。 這次設(shè)計(jì)中,我的收獲還有就是學(xué)會(huì)了用流程圖來表達(dá)自己的想法,并根據(jù)流程圖來逐步實(shí)現(xiàn)程序的功能。開始的時(shí)候,我畫流程圖很是困難,需要一個(gè)多小時(shí)才能清楚的根據(jù)自己的想法畫出圖來,后來畫多了,就更加了解它的功能,十分得心應(yīng)手,能夠比較快而準(zhǔn)確的畫出來。 在這次課程設(shè)計(jì)中,我們首先對系統(tǒng)的整體功能進(jìn)行了構(gòu)思,然后用結(jié)構(gòu)化分析方法進(jìn)行分析,將整個(gè)系統(tǒng)清楚的劃分為
14、幾個(gè)模塊,再根據(jù)每個(gè)模塊的功能編寫代碼。而且盡可能的將模塊細(xì)分,最后在進(jìn)行函數(shù)的調(diào)用。我們在函數(shù)的編寫過程中,我們不僅用到了for循環(huán)、while循環(huán)和switch語句,還用到了函數(shù)之間的調(diào)用(包括遞歸調(diào)用)。由于我們是分工編寫代碼,最后需要將每個(gè)人的代碼放到一起進(jìn)行調(diào)試。因?yàn)槲覀兠總€(gè)人寫的函數(shù)的思想不都一樣,所以在調(diào)試的過程中也遇到了困難,但經(jīng)過我們耐心的修改,終于功夫不負(fù)有心人,我們成功了!六、參考文獻(xiàn)1 譚浩強(qiáng).C語言程序設(shè)計(jì)M.北京:清華大學(xué)出版社,20122 譚浩強(qiáng).C語言程序設(shè)計(jì)題解與上機(jī)指導(dǎo)M.北京:清華大學(xué)出版社,2000年11月3 陳朔鷹 陳英主編.C語言
15、趣味程序百例精解M北京理工大學(xué)出版社,1996年4 美Paul S. R. Chishohm, 張芳妮 呂波譯 等C語言編程常見問題解答,J清華大學(xué)出版社,2002年12月。5 譚浩強(qiáng).C語言程序設(shè)計(jì)題解與上機(jī)指導(dǎo)M清華大學(xué)出版社,2010年11月格式不對,修改34七、附錄 程序源代碼字號可以是小5號#include<stdio.h>#include<stdlib.h>#include<string.h>#include <conio.h>struct cla int num; char cname50; char xingzhi20; int
16、time,score; struct cla *next;struct cla *creatcla(); /創(chuàng)建鏈表struct cla *addcla(struct cla *head); /添加學(xué)科int yanzheng(struct cla *head,int m); /驗(yàn)證新添加的學(xué)科編碼是否已存在void deletecla(struct cla *head); /刪除學(xué)科void fprint(struct cla *head); /將鏈表寫入文件struct cla *load(); /從文件中讀取信息并建成鏈表void print_cla(struct cla *head);
17、 /將鏈表信息輸出void chaxun(struct cla *head); /查詢學(xué)科信息void num_chaxun(struct cla *head); /按學(xué)科編號查詢學(xué)科void xingzhi_chaxun(struct cla *head); /按性質(zhì)查詢學(xué)科void time_chaxun(struct cla *head); /按學(xué)時(shí)查詢學(xué)科void cname_chaxun(struct cla *head); /按學(xué)科名查詢學(xué)科void xiugai(struct cla *head); /修改學(xué)科信息void paixu(struct cla *head); /對學(xué)
18、科進(jìn)行排序void num_paixu(struct cla *head); /按學(xué)科編號排序void time_paixu(struct cla *head); /按學(xué)科學(xué)時(shí)排序void xingzhi_paixu(struct cla *head); /按學(xué)科性質(zhì)排序void cname_paixu(struct cla *head); /按學(xué)科名排序void score_paixu(struct cla *head); /按學(xué)科總學(xué)分排序int main() int i,choice,n,x,y=1,c; char v10,a,d,b10,b110="disanzu"
19、,c110="231349" struct cla *head=NULL; while(y) system("cls"); printf("nnnnnnn"); printf(" * 歡迎光臨 *nn"); printf(" * 選修課管理系統(tǒng) *nnn"); printf("nn"); printf(" =1-用戶登錄=n"); printf(" =0-退出系統(tǒng)=n"); printf(" 請輸入您的選擇:");
20、scanf("%d",&n); printf("n"); getchar(); switch(n) case 0: y=0; break; case 1: printf(" 請輸入您的用戶名:"); gets(b); printf("n"); printf(" 請輸入您的密碼:"); for (i = 0; i < 6; i+) vi = getch(); printf("*"); v6 = '0'if(strcmp(b,b1)!=0|strcm
21、p(v,c1)!=0) printf(" 驗(yàn)證失敗,請重新輸入!n"); scanf("%c",&d); getchar(); system("cls"); else printf(" 驗(yàn)證通過!請按Enter鍵進(jìn)入!n"); scanf("%c",&d); getchar(); x=1; while(x) system("cls"); printf(" -n"); printf(" *選修課管理系統(tǒng)*n"); prin
22、tf(" -nn"); printf(" *nn"); printf(" *nn"); printf(" | 1-添加選修課 2-刪除選修課 第三小組成員: |nn"); printf(" | 3-選修課排序 4-選修課查詢 劉君瑋 楊卓龍 |nn"); printf(" | 5-修改選修課 6-錄入數(shù)據(jù) 林澤宇 李向陽 |nn"); printf(" | 0-退出系統(tǒng) |nn"); printf(" *nn"); printf(&qu
23、ot; *nn"); printf("請輸入所選擇的序號:"); scanf("%d",&choice); getchar(); system("cls"); switch(choice) case 0: x=0;break; case 1: head=load(); if(head=NULL) printf("文件為空,請先錄入數(shù)據(jù)!n"); getchar(); break; else head=addcla(head); printf("添加成功!n"); printf(
24、"是否將新信息保存到文件?(y/n)n"); scanf("%c",&a); getchar(); switch(a) case 'n': break; case 'y': fprint(head); printf("保存成功!n"); getchar(); break; break; case 2: head=load(); if(head=NULL) printf("文件為空,請先錄入數(shù)據(jù)!n"); getchar(); break; else deletecla(hea
25、d); getchar(); break; break; case 3: head=load(); if(head=NULL) printf("文件為空,請先錄入數(shù)據(jù)!n"); getchar(); break; else paixu(head); getchar(); break; case 4: head=load(); if(head=NULL) printf("文件為空,請先錄入數(shù)據(jù)!n"); getchar(); break; else chaxun(head); getchar(); break; case 5: head=load(); i
26、f(head=NULL) printf("文件為空,請先錄入數(shù)據(jù)!n"); getchar(); break; else xiugai(head); getchar(); break; break; case 6: printf("注意:輸入學(xué)科編碼為0時(shí)結(jié)束!n"); head=creatcla(); printf("是否將輸入的信息保存到文件以覆蓋文件中已存在的信息?(y/n)n"); getchar(); scanf("%c",&a); getchar(); switch(a) case 'n
27、': break; case 'y': fprint(head); printf("保存成功!n"); getchar(); break; break; default: printf("您的輸入有誤,請重新輸入!n"); getchar(); break; break; default: printf(" 您的輸入有誤! 請重新輸入!n"); getchar(); break; /錄入數(shù)據(jù)并形成鏈表struct cla *creatcla() struct cla *head,*tail,*p; int nu
28、m,n,time,score; char cname50,xingzhi20; int size=sizeof(struct cla); head=tail=NULL; printf("請輸入學(xué)科編號:"); scanf("%d",&num); getchar(); printf("請輸入學(xué)科名:"); scanf("%s",cname); getchar(); printf("請輸入學(xué)科性質(zhì):"); scanf("%s",xingzhi); getchar(); p
29、rintf("請輸入總學(xué)時(shí):"); scanf("%d",&time); getchar(); printf("請輸入學(xué)分:"); scanf("%d",&score); getchar(); while(1) p=(struct cla *)malloc(size); p->num=num; strcpy(p->cname,cname); strcpy(p->xingzhi,xingzhi); p->time=time; p->score=score; p->n
30、ext=NULL; if(head=NULL) head=p; else tail->next=p; tail=p; do printf("請輸入學(xué)科編號:"); scanf("%d",&num); n=yanzheng(head,num); if(n=0) break; else printf("您輸入的編號已存在,請重新輸入!n"); while(1); if(num=0) break; else printf("請輸入學(xué)科編號:"); scanf("%d",&num)
31、; printf("請輸入學(xué)科名:"); scanf("%s",cname); getchar(); printf("請輸入學(xué)科性質(zhì):"); scanf("%s",xingzhi); getchar(); printf("請輸入總學(xué)時(shí):"); scanf("%d",&time); getchar(); printf("請輸入學(xué)分:"); scanf("%d",&score); getchar(); return head
32、;/插入結(jié)點(diǎn),并且插入后仍按一定順序struct cla *addcla(struct cla *head) struct cla *ptr,*p1,*p2,*p; char cname50,xingzhi20; int size=sizeof(struct cla); int num,time,score,n=1; do printf("請輸入學(xué)科編號:"); scanf("%d",&num); n=yanzheng(head,num); if(n=0) break; else printf("您輸入的編號已存在,請重新輸入!n&qu
33、ot;); while(1); printf("請輸入學(xué)科編號:"); scanf("%d",&num); printf("請輸入學(xué)科名:"); scanf("%s",cname); getchar(); printf("請輸入學(xué)科性質(zhì):"); scanf("%s",xingzhi); getchar(); printf("請輸入總學(xué)時(shí):"); scanf("%d",&time); getchar(); printf(&
34、quot;請輸入學(xué)分:"); scanf("%d",&score); getchar(); p=(struct cla *)malloc(size); p->num=num; strcpy(p->cname,cname); strcpy(p->xingzhi,xingzhi); p->time=time; p->score=score; p2=head; ptr=p; while(ptr->num>p2->num)&&(p2->next!=NULL) p1=p2; p2=p2->n
35、ext; if(ptr->num<=p2->num) if(head=p2) head=ptr; else p1->next=ptr; p->next=p2; else p2->next=ptr; p->next=NULL; return head;/驗(yàn)證添加的學(xué)科編號是否已存在int yanzheng(struct cla *head,int m) struct cla *p; p=head; while(p!=NULL) if(p->num=m) break; p=p->next; if(p=NULL) return 0; else r
36、eturn 1;/將新鏈表寫入文件中void fprint(struct cla *head) FILE *fp; char ch='1' struct cla *p1; if(fp=fopen("f1.txt","w")=NULL) printf("File open error!n"); exit(0); fputc(ch,fp); for(p1=head;p1;p1=p1->next) fprintf(fp,"%d %s %s %d %d %d n",p1->num,p1->
37、cname,p1->xingzhi,p1->time,p1->score); fclose(fp);/從文件中讀取學(xué)科信息struct cla *load() FILE *fp; char ch; struct cla *head,*tail,*p1; head=tail=NULL; if(fp=fopen("f1.txt","r")=NULL) printf("File open error!n"); exit(0); ch=fgetc(fp); if(ch='1') while(!feof(fp)
38、 p1=(struct cla *)malloc(sizeof(struct cla); fscanf(fp,"%d%s%s%d%d%dn",&p1->num,p1->cname,p1->xingzhi,&p1->time,&p1->score); if(head=NULL) head=p1; else tail->next=p1; tail=p1; tail->next=NULL; fclose(fp); return head; else return NULL; /將整個(gè)鏈表的信息輸出void prin
39、t_cla(struct cla *head) struct cla *ptr; if(head=NULL) printf("n沒有信息!n"); return; printf(" 學(xué)科信息列表如下n"); printf(" =n"); printf(" 編號 學(xué)科名 學(xué)科性質(zhì) 學(xué)時(shí) 總學(xué)分 n"); for(ptr=head;ptr;ptr=ptr->next) printf(" %d%s%s%d%dn",ptr->num,ptr->cname,ptr->xingzhi
40、,ptr->time,ptr->score); printf(" =n");/刪除學(xué)科信息void deletecla(struct cla *head) int a; char b,ch='1' struct cla *p1,*p2; FILE *fp; printf("請輸入要?jiǎng)h除的學(xué)科編號:"); scanf("%d",&a); p1=head; if(p1->num=a&&p1->next=NULL) /對于文件中只有一組數(shù)據(jù) printf("是否清空文
41、件!(y/n)n"); getchar(); scanf("%c",&b); getchar(); switch(b) case 'n': break; case 'y': if(fp=fopen("f1.txt","w")=NULL) printf("File open error!n"); exit(0); fclose(fp); printf("文件已清空!n"); else while(p1->num!=a&&p1-
42、>next!=NULL) p2=p1; p1=p1->next; if(p1->next=NULL) if(p1->num=a) p2->next=NULL; printf("是否刪除該學(xué)科信息?(y/n)n"); getchar(); scanf("%c",&b); switch(b) case 'n': break; case 'y': fprint(head); printf("刪除成功!n"); getchar(); break; else printf(&
43、quot;沒有找到要?jiǎng)h除的數(shù)據(jù)!n"); getchar(); else if(p1=head) head=p1->next; printf("是否刪除該學(xué)科信息?(y/n)n"); getchar(); scanf("%c",&b); switch(b) case 'n': break; case 'y': fprint(head); printf("刪除成功!n"); getchar(); break; else p2->next=p1->next; printf
44、("是否刪除該學(xué)科信息?(y/n)n"); getchar(); scanf("%c",&b); switch(b) case 'n': break; case 'y': fprint(head); printf("刪除成功!n"); getchar(); break; /學(xué)科查詢void chaxun(struct cla *head) int a; printf(" =n"); printf(" * 1-按學(xué)科編號查詢 2-按學(xué)科名查詢 *n"); p
45、rintf(" * 3-按學(xué)科性質(zhì)查詢 4-按學(xué)時(shí)查詢 *n"); printf(" * 0-退出查詢 *n"); printf(" =n"); printf("請輸入所選擇的編號:"); scanf("%d",&a); getchar(); switch(a) case 0: break; case 1: num_chaxun(head); break; case 2: cname_chaxun(head); break; case 3: xingzhi_chaxun(head); b
46、reak; case 4: time_chaxun(head); break; default: printf("您的輸入有誤!n"); break; /按編號查詢學(xué)科信息void num_chaxun(struct cla *head) int a; struct cla *p; printf("請選擇您要查詢的學(xué)科編號:"); scanf("%d",&a); getchar(); p=head; while(p!=NULL) if(p->num=a) break; p=p->next; if(p=NULL) p
47、rintf("沒有找到該編號的學(xué)科!n"); else printf(" 你所查詢的學(xué)科信息如下n"); printf(" =n"); printf(" * 編號 學(xué)科名 學(xué)科性質(zhì) 學(xué)時(shí) 學(xué)分 *n"); printf(" * %d %s %s %d %d *n",p->num,p->cname,p->xingzhi,p->time,p->score); printf(" =n"); /按學(xué)科名查詢學(xué)科信息void cname_chaxun(struct cla *head) char a50; int flag=0; struct cla
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校網(wǎng)絡(luò)安全主題教育
- 中學(xué)女生健康教育講座
- 2025年安全員C證考試題庫及答案
- 出納年終總結(jié)范文
- 2025年式樣的租賃合同-個(gè)人住宅租賃協(xié)議
- 家政公司加盟合同范本
- 2025年工廠設(shè)備租賃合同范文
- 墻面宣傳廣告合同
- 工程建設(shè)房屋拆遷安置合同書
- 2025房產(chǎn)中介的房屋租賃合同
- 離婚協(xié)議民政局貴州安順(2025年版)
- 高校講師個(gè)人學(xué)術(shù)發(fā)展計(jì)劃
- 2025屆四川省成都市高三二診生物試題(原卷版+解析版)
- 睪丸切除術(shù)課件
- 2025 年陜西省初中學(xué)業(yè)水平考試仿真摸底卷英語試卷(含解析無聽力部分)
- 2025年度粵醫(yī)云、國培衛(wèi)健全科醫(yī)學(xué)臨床醫(yī)學(xué)2月題目及答案
- 大學(xué)生舞蹈創(chuàng)新創(chuàng)業(yè)計(jì)劃書
- 人教版六年級下學(xué)期數(shù)學(xué)第四單元《比例》典型題型專項(xiàng)練習(xí)(含答案)
- 河南省駐馬店市2024-2025學(xué)年高一上學(xué)期1月期末英語試題【含答案解析】
- 發(fā)票紅沖申請書
- 大數(shù)據(jù)技術(shù)在醫(yī)療健康領(lǐng)域的應(yīng)用方案設(shè)計(jì)
評論
0/150
提交評論