




已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課 程 設(shè) 計(jì) 任 務(wù) 書課程名稱 C語言課程設(shè)計(jì) 課 題 班級(jí)檔案管理系 目錄1. 設(shè)計(jì)目的2. 總體設(shè)計(jì)3. 詳細(xì)設(shè)計(jì)4. 調(diào)試與測(cè)試:5. 總結(jié)與體會(huì)6評(píng)分 附:源程序清單和執(zhí)行1設(shè)計(jì)目的a)了解和掌握c語言面向?qū)ο蟪绦蛟O(shè)計(jì)的基本過程。b)進(jìn)一步熟悉C語言的特點(diǎn)。c)學(xué)會(huì)總體規(guī)劃一個(gè)程序,從各個(gè)部分把一個(gè)程序完成好。d)能夠使自己的程序?qū)崿F(xiàn)一定的功能,對(duì)C+產(chǎn)生一種濃厚的興趣。e)培養(yǎng)耐心,遇困難不退縮。f)了解團(tuán)隊(duì)精神的重要性,團(tuán)結(jié)合作。 加深對(duì)C語言課程所學(xué)知識(shí)的理解,進(jìn)一步鞏固C語言講法規(guī)則。學(xué)會(huì)編制結(jié)構(gòu)清晰、風(fēng)格良好、數(shù)據(jù)結(jié)構(gòu)適當(dāng)?shù)腃語言程序,從而具備解決綜合性實(shí)際問題的能力。 在熟練掌握C語言的基本知識(shí):數(shù)據(jù)類型(整形、實(shí)型、字符型、指針、數(shù)組、結(jié)構(gòu)等);運(yùn)算類型(算術(shù)運(yùn)算、邏輯運(yùn)算、自增自減運(yùn)算、賦值運(yùn)算等);程序結(jié)構(gòu)(順序結(jié)構(gòu)、判斷選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu));大程序的功能分解方法(即函數(shù)的使用)等。進(jìn)一步掌握各種函數(shù)的應(yīng)用,以及文件的讀寫操作等。2總體設(shè)計(jì) 主 菜 單 界 面學(xué)生檔案管理土木工程*班 *1.錄入學(xué)生信息2.顯示學(xué)生信息3.查詢學(xué)生信息4.刪除學(xué)生信息5.添加學(xué)生信息6.修改學(xué)生信息7退出7*謝謝使用* 信息錄入1按學(xué)號(hào)查詢 2按姓名查詢3按性別查詢 4按年齡查詢3.詳細(xì)設(shè)計(jì)本程序由一個(gè)Voidmain(),一個(gè)Voidinput(),一個(gè)VoidSave(),一個(gè)Voiddisplay(),一個(gè)VoidDelete() ,一個(gè)Void add和一個(gè)VoidSearch()共七個(gè)主要函數(shù)來實(shí)現(xiàn)該程序的編程的。其中在主函數(shù)Voidmain()中調(diào)用其他六個(gè)函數(shù),通過Switch語句來實(shí)現(xiàn)調(diào)用進(jìn)入各個(gè)函數(shù),進(jìn)入主菜單通過錄入函數(shù)錄入學(xué)生信息,并自動(dòng)保存在c中。學(xué)生信息輸入應(yīng)用了結(jié)構(gòu)數(shù)組,學(xué)生信息主要包括姓名,學(xué)號(hào),性別,年齡以及備注。其中年齡為整型,其他為字符型。調(diào)用函數(shù)時(shí),學(xué)生信息運(yùn)用了指針數(shù)組,如voidModfiy(structstudent*arr,intn)在VoidDelete()調(diào)用函數(shù)中,當(dāng)boolflag=ture是該學(xué)生不存在,即已被刪除。在Voidsearch()調(diào)用函數(shù)中,當(dāng)boolflag=ture是該學(xué)生存在,即已被查詢到。當(dāng)flag=false時(shí)則說明沒有該學(xué)生信息。在查詢系統(tǒng)中,有四種查詢方式,分別是按姓名查詢,按學(xué)號(hào)查詢,按性別查詢和按年齡查詢。四種查詢方式用Switch語句連接起來,進(jìn)入每種查詢方式要輸入所需信息才能進(jìn)入。該程序最大的特點(diǎn)是Switch連接各調(diào)用函數(shù)和各查詢方式以及結(jié)構(gòu)數(shù)組的運(yùn)用,將各函數(shù)有序的連接起來。各個(gè)調(diào)用函數(shù)功能的實(shí)現(xiàn)如下:1)信息的錄入主要運(yùn)用循環(huán)語句將各個(gè)學(xué)生信息依次輸入2)信息的顯示也是用循環(huán)語句將各個(gè)學(xué)生信息顯示出來。3)信息的保存是將信息重寫到保存到的文件位置,其中信息保存在c:4)信息的刪除是運(yùn)用字符串復(fù)印函數(shù),將空格復(fù)印到信息字符上達(dá)到刪除效果。5)信息的修改是輸入學(xué)號(hào)用循環(huán)語句將需修改的信息顯示出來,然后再輸入新的信息6)信息的查詢是通過Switch語句將查詢方式連接起來,并在各個(gè)查詢方式中用循環(huán)語句將要查詢的信息顯示出來。4調(diào)試與測(cè)試 初步調(diào)試的結(jié)果出現(xiàn)問題較多,經(jīng)過多次修正和調(diào)試解決了許多問題,調(diào)試完成后進(jìn)入主菜單按1錄入學(xué)生信息,錄入學(xué)生信息后可以通過提示按學(xué)號(hào),姓名,性別,年齡進(jìn)行查詢。還能按5添加學(xué)生信息,按6修改學(xué)生信息,按7退出。5心得與體會(huì)終于可以松口氣了,經(jīng)過一個(gè)思考,查資料,寫源程序,上機(jī)調(diào)試,現(xiàn)在終于告一段落了??吹阶约旱膭趧?dòng)成果,心中不免有些驚喜,沒想到自己還能獨(dú)立完成初次的課程設(shè)計(jì)。這種課程設(shè)計(jì)是枯燥無味的,但對(duì)C語言這門程序語言的掌握卻有非常大的作用.。從開始對(duì)題目的分析,就注定擺在我這樣一個(gè)對(duì)C語言了解不多的新手面前的是一段艱難的旅程.但最終很慶幸的是我居然能夠堅(jiān)持下來,而且完成了設(shè)計(jì)工作。 C語言是很難學(xué)的,這也許是因人而異,但對(duì)我來說確實(shí)是一個(gè)障礙。如今要自己完成一個(gè)課程設(shè)計(jì),無疑是對(duì)自己的一個(gè)挑戰(zhàn).先是上網(wǎng)查找有關(guān)的資料,分析題目所需的數(shù)據(jù),要用到哪些函數(shù)等等,星期二上網(wǎng)初步調(diào)試,將函數(shù)用些結(jié)構(gòu)和語句連接起來,做這個(gè)工作時(shí),又將書本翻閱了一遍,重新獲得許多東西。如帶參函數(shù)的特點(diǎn),以及一些語句的運(yùn)用及特點(diǎn)等等。將工作分配到每塊是我完成這個(gè)設(shè)計(jì)的主要方法,然而將每塊都完成看起來比較輕松,但實(shí)際操作起來卻是比較麻煩的。由于平時(shí)對(duì)C語言知識(shí)的積累較為匱乏,(這可能是最主要的原因了),所以操作起來真是寸步難行,沒辦法,只有拿出課本找到相應(yīng)的知識(shí)點(diǎn),臨陣磨槍.費(fèi)了一番功夫,再上機(jī)調(diào)試時(shí)就是最痛苦的時(shí)候了,錯(cuò)誤一大堆,要一個(gè)一個(gè)的修改。經(jīng)過幾翻調(diào)試修改之后終于可以執(zhí)行了,那時(shí)還興奮了好長(zhǎng)時(shí)間呢!然而執(zhí)行出來的結(jié)果是不令人滿意的,界面不美觀不說,最重要的是輸入太煩瑣,而且受到的限制太多,如只能以某種方式輸入,且個(gè)數(shù)受限制。于是又發(fā)費(fèi)了大量時(shí)間去修改,終于比較滿意了,但也到了星期五了,也就是答辯的時(shí)間。答辯的時(shí)候我才發(fā)現(xiàn)還有好多知識(shí)是我不會(huì)的,老師問了我一些問題,我回答出來的卻不多,我體會(huì)到我還要很努力的學(xué)習(xí),在C語言的學(xué)習(xí)上我還有很長(zhǎng)的一段路要走。今天不管怎樣把這個(gè)設(shè)計(jì)作出來是件很高興的事情,不過能夠把這個(gè)設(shè)計(jì)順利完成要?dú)w功于我的指導(dǎo)老師,幫了我很多忙,也讓我發(fā)現(xiàn)了我有好多欠缺的地方,真的很感謝你們,謝謝! 但不管怎么樣,我還是完成了這個(gè)設(shè)計(jì)。雖說累了點(diǎn),但我想這對(duì)我們進(jìn)一步掌握C語言,并為下學(xué)期的計(jì)算機(jī)二級(jí)考試是有很大的幫助的.。能夠編出程序,其實(shí)本身就是對(duì)自己的一種肯定,是對(duì)自己前面一段時(shí)間學(xué)習(xí)語言綜合水平的一個(gè)檢閱.當(dāng)然完成后的興喜,只有經(jīng)歷過了才能體會(huì)到。而我體會(huì)到了.課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。隨著科學(xué)技術(shù)發(fā)展的日新日異,當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握計(jì)算機(jī)開發(fā)技術(shù)是十分重要的。源程序#include #include #include #include #define N 100struct student int num; char name10; char sex; int age; char xueli30; char beizhu50; char addr30; long int tel;st100; /*定義一個(gè)結(jié)構(gòu)體*/void menu();void input();void save(int);void display();void del();void add();void search();void search_num();void search_name();void search_sex();void search_age();void modify(); /*定義各函數(shù)*/void menu() /*菜單函數(shù)*/ printf( 土木工程n); printf(n); printf( *班 *n); printf(n); printf( *學(xué)生檔案管理*n); printf( 1.錄入學(xué)生信息); printf( 2.顯示學(xué)生信息n); printf( 3.查詢學(xué)生信息); printf( 4.刪除學(xué)生信息n); printf( 5.添加學(xué)生信息); printf( 6.修改學(xué)生信息n); printf( 7.退出n); printf( *謝謝使用*n); printf(n); printf(n); void main() menu(); /*調(diào)用菜單函數(shù)*/ int n,flag; char a; do printf(請(qǐng)選擇你需要操作的步驟(1-7):n); scanf(%d,&n); if(n=1&n=7) flag=1; break; else flag=0; printf(您輸入有誤,請(qǐng)重新選擇!); while(flag=0); while(flag=1) switch(n) case 1:printf( 輸入學(xué)生信息n);printf(n);input();break; case 2:printf( 顯示學(xué)生信息n);printf(n);display();break; case 3:printf( 按學(xué)號(hào)查詢學(xué)生信息n);printf(n);search();break; case 4:printf( 刪除學(xué)生信息n);printf(n);del();break; case 5:printf( 添加學(xué)生信息n);printf(n);add();break; case 6:printf( 修改學(xué)生信息n);printf(n);modify();break; case 7:exit(0);break; default :break; getchar(); printf(n); printf(是否繼續(xù)進(jìn)行(y or n):n); scanf(%c,&a); if(a=y) flag=1; system(cls); /*清屏*/ menu(); /*調(diào)用菜單函數(shù)*/ printf(請(qǐng)?jiān)俅芜x擇你需要操作的步驟(1-7):n); scanf(%d,&n); printf(n); else exit(0); void input() /*錄入函數(shù)*/ int i,m; printf(請(qǐng)輸入需要?jiǎng)?chuàng)建信息的學(xué)生人數(shù)(1-100):n); scanf(%d,&m); for (i=0;im;i+) printf(請(qǐng)輸入學(xué)號(hào): ); srand(int)time(0); sti.num=rand()%10000+; if(sti.num!=sti-1.num) printf(%8d ,sti.num); printf(n); printf(請(qǐng)輸入姓名: ); scanf(%s,); getchar(); printf(請(qǐng)輸入性別(f-女 m-男): ); scanf(%c,&sti.sex); printf(請(qǐng)輸入年齡: ); scanf(%d,&sti.age); printf(請(qǐng)輸入備注: ); scanf(%s,&sti.beizhu); printf(n); printf(n創(chuàng)建完畢!n); save(m);void save(int m) /*保存文件函數(shù)*/ int i; FILE*fp; if (fp=fopen(c:,wb)=NULL) printf (cannot open filen); exit(0); for (i=0;im;i+) /*將內(nèi)存中學(xué)生的信息輸出到磁盤文件中去*/ if (fwrite(&sti,sizeof(struct student),1,fp)!=1) printf(file write errorn); fclose(fp);int load() /*導(dǎo)入函數(shù)*/ FILE*fp; int i=0; if(fp=fopen(c:,rb)=NULL) printf (cannot open filen); exit(0); else do fread(&sti,sizeof(struct student),1,fp); i+; while(feof(fp)=0); fclose(fp); return(i-1);void display() /*顯示函數(shù)*/ int i; int m=load(); printf(n 學(xué)號(hào)t姓名t性別t年齡 t備注 n); for(i=0;im;i+) /*m為輸入部分的學(xué)生人數(shù)*/ printf(n %dt%st%ct%dt%st%st%st%ldn,sti.num,,sti.sex,sti.age,sti.xueli,sti.beizhu,sti.addr,sti.tel); void del() /*刪除函數(shù)*/ int m=load(); int i,j,n,t,flag; char name20; printf(n 原來的學(xué)生信息:n); display(); /* 調(diào)用顯示函數(shù)*/ printf(n); printf(請(qǐng)輸入要?jiǎng)h除的學(xué)生的姓名:n); scanf(%s,name); for(flag=1,i=0;flag&im;i+) if(strcmp(,name)=0) printf(n已找到此人,原始記錄為:n); printf(n學(xué)號(hào)t姓名t性別t年齡t備注 n); printf(n%dt%st%ct%dt%st%st%st%ldn,sti.num,,sti.sex,sti.age,sti.xueli,sti.beizhu,sti.addr,sti.tel); printf(n確實(shí)要?jiǎng)h除此人信息請(qǐng)按1,不刪除請(qǐng)按0n); scanf(%d,&n); if(n=1) /*如果刪除,則其他的信息都往上移一行*/ for(j=i;jm-1;j+) strcpy(,stj+1.name); stj.num=stj+1.num; stj.sex=stj+1.sex; stj.age=stj+1.age; strcpy(stj.xueli,stj+1.xueli); strcpy(stj.beizhu,stj+1.beizhu); strcpy(stj.addr,stj+1.addr); stj.tel=stj+1.tel; flag=0; if(!flag) m=m-1; else printf(n對(duì)不起,查無此人!n); printf(n 瀏覽刪除后的所有學(xué)生信息:n); save(m); /*調(diào)用保存函數(shù)*/ display(); /*調(diào)用顯示函數(shù)*/ printf(n繼續(xù)刪除請(qǐng)按1,不再刪除請(qǐng)按0n); scanf(%d,&t); switch(t) case 1:del();break; case 0:break; default :break; void add()/*添加函數(shù)*/ FILE*fp; int n; int count=0; int i; int m=load(); printf(n 原來的學(xué)生信息:n); display(); /* 調(diào)用顯示函數(shù)*/ printf(n); fp=fopen(student_list,a); printf(請(qǐng)輸入想增加的學(xué)生數(shù):n); scanf(%d,&n); for (i=m;i=1&t=5) flag=1; break; else flag=0; printf(您輸入有誤,請(qǐng)重新選擇!); while(flag=0); while(flag=1) switch(t) case 1:printf(按學(xué)號(hào)查詢n);search_num();break; case 2:printf(按姓名查詢n);search_name();break; case 3:printf(按性別查詢n);search_sex();break; case 4:printf(按年齡查詢n);search_age();break; case 5:main();break; default:break; void search_num() int num; int i,t; int m=load(); printf(請(qǐng)輸入要查找的學(xué)號(hào):n); scanf(%d,&num); for(i=0;im;i+) if(num=sti.num) printf(n已找到此人,其記錄為:n); printf(n學(xué)號(hào)t姓名t性別t年齡t備注 n); printf(n%dt%st%ct%dt%st%st%st%ldn,sti.num,,sti.sex,sti.age,sti.xueli,sti.beizhu,sti.addr,sti.tel); break; if(i=m) printf(n對(duì)不起,查無此人n); printf(n); printf(返回查詢函數(shù)請(qǐng)按1,繼續(xù)查詢學(xué)號(hào)請(qǐng)按2n); scanf(%d,&t); switch(t) case 1:search();break; case 2: break; default:break; void search_name() char name10; int i,t; int m=load(); printf(請(qǐng)輸入要查找的姓名:n); scanf(%s,name); for(i=0;im;i+) if(strcmp(,name)=0) printf(n已找到,其記錄為:n); printf(n學(xué)號(hào)t姓名t性別t年齡t備注 n);printf(n%dt%st%ct%dt%st%st%st%ldn,sti.num,,sti.sex,sti.age,sti.xueli,sti.beizhu,sti.addr,sti.tel); if(i=m) printf(n對(duì)不起,查無此人n); printf(n); printf(返回查詢函數(shù)請(qǐng)按1,繼續(xù)查詢姓名請(qǐng)按2n); scanf(%d,&t); switch(t) case 1:search();break; case 2:break; default :break; void search_sex() char sex; int i, t; int m=load(); printf(請(qǐng)輸入要查找的性別:n); scanf(%c,sex); for(i=0;im;i+) if(sex=sti.sex) printf(n已找到此人,其記錄為:n); printf(n學(xué)號(hào)t姓名t性別t年齡t備注 n); printf(n%dt%st%ct%dt%st%st%st%ldn,sti.num,,sti.sex,sti.age,sti.xueli,sti.beizhu,sti.addr,sti.tel); break; if(i=m) printf(n對(duì)不起,查無此人n); printf(n); printf(返回查詢函數(shù)請(qǐng)按1,繼續(xù)查詢性別請(qǐng)按2n); scanf(%d,&t); switch(t) case 1:search();break; case 2:break; default :break; void search_age() int age; int i, t; int m=load(); printf(請(qǐng)輸入要查找的年齡:n); scanf(%d,&age); for(i=0;im;i+) if(age=sti.age) printf(n已找到此人,其記錄為:n); printf(n學(xué)號(hào)t姓名t性別t年齡t備注 n);printf(n%dt%st%ct%dt%st%st%st%ldn,sti.num,,sti.sex,sti.age,sti.xueli,sti.beizhu,sti.addr,sti.tel); break; if(i=m) printf(n對(duì)不起,查無此人n); printf(n); printf(返回查詢函數(shù)請(qǐng)按1,繼續(xù)查詢年齡請(qǐng)按2n); scanf(%d,&t); switch(t) case 1:search();break; case 2:break; default :break; void modify() /*修改函數(shù)*/ int num; char name10; char sex; int age; char x
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2026學(xué)年樂山市金口河區(qū)數(shù)學(xué)三年級(jí)第一學(xué)期期末教學(xué)質(zhì)量檢測(cè)模擬試題含解析
- 2024年惠州市龍門縣三上數(shù)學(xué)期末檢測(cè)模擬試題含解析
- 中國文化概論考試中的實(shí)踐與理論試題及答案
- 2025年護(hù)士協(xié)作能力試題及答案
- 主管護(hù)師考試的智能試題及答案分析
- 小組學(xué)習(xí)2025護(hù)士考試試題及答案
- 藥師實(shí)踐能力測(cè)評(píng)試題及答案
- 行政管理學(xué)術(shù)研究試題及答案
- 科研成果與試題關(guān)系執(zhí)業(yè)醫(yī)師考試試題及答案
- 2025年衛(wèi)生資格考試健康政策分析試題及答案
- 形勢(shì)與政策(2025春)超星爾雅學(xué)習(xí)通答案滿分章節(jié)測(cè)試
- 大部分分校:地域文化形考任務(wù)三-國開(CQ)-國開期末復(fù)習(xí)資料
- 超星爾雅學(xué)習(xí)通《當(dāng)代大學(xué)生國家安全教育》章節(jié)測(cè)試答案
- 《人工智能基礎(chǔ)》課件-AI的前世今生:她從哪里來
- BIM、智慧工地建設(shè)管理方案及措施
- 紅色喜慶頒獎(jiǎng)盛典PPT模板課件
- JIS G4305-2021 冷軋不銹鋼板材、薄板材和帶材
- 小型玉米脫粒機(jī)的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 鋁母線設(shè)計(jì)裝配技術(shù)要求
- 扣件式鋼管腳手架檢查評(píng)分表
- 隧道反坡排水方案
評(píng)論
0/150
提交評(píng)論