




已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課 程 設(shè) 計(jì) 任 務(wù) 書(shū)課程名稱(chēng) C語(yǔ)言課程設(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語(yǔ)言面向?qū)ο蟪绦蛟O(shè)計(jì)的基本過(guò)程。b)進(jìn)一步熟悉C語(yǔ)言的特點(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語(yǔ)言課程所學(xué)知識(shí)的理解,進(jìn)一步鞏固C語(yǔ)言講法規(guī)則。學(xué)會(huì)編制結(jié)構(gòu)清晰、風(fēng)格良好、數(shù)據(jù)結(jié)構(gòu)適當(dāng)?shù)腃語(yǔ)言程序,從而具備解決綜合性實(shí)際問(wèn)題的能力。 在熟練掌握C語(yǔ)言的基本知識(shí):數(shù)據(jù)類(lèi)型(整形、實(shí)型、字符型、指針、數(shù)組、結(jié)構(gòu)等);運(yùn)算類(lèi)型(算術(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)用,以及文件的讀寫(xiě)操作等。2總體設(shè)計(jì) 主 菜 單 界 面學(xué)生檔案管理土木工程*班 *1.錄入學(xué)生信息2.顯示學(xué)生信息3.查詢(xún)學(xué)生信息4.刪除學(xué)生信息5.添加學(xué)生信息6.修改學(xué)生信息7退出7*謝謝使用* 信息錄入1按學(xué)號(hào)查詢(xún) 2按姓名查詢(xún)3按性別查詢(xún) 4按年齡查詢(xún)3.詳細(xì)設(shè)計(jì)本程序由一個(gè)Voidmain(),一個(gè)Voidinput(),一個(gè)VoidSave(),一個(gè)Voiddisplay(),一個(gè)VoidDelete() ,一個(gè)Void add和一個(gè)VoidSearch()共七個(gè)主要函數(shù)來(lái)實(shí)現(xiàn)該程序的編程的。其中在主函數(shù)Voidmain()中調(diào)用其他六個(gè)函數(shù),通過(guò)Switch語(yǔ)句來(lái)實(shí)現(xiàn)調(diào)用進(jìn)入各個(gè)函數(shù),進(jìn)入主菜單通過(guò)錄入函數(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é)生存在,即已被查詢(xún)到。當(dāng)flag=false時(shí)則說(shuō)明沒(méi)有該學(xué)生信息。在查詢(xún)系統(tǒng)中,有四種查詢(xún)方式,分別是按姓名查詢(xún),按學(xué)號(hào)查詢(xún),按性別查詢(xún)和按年齡查詢(xún)。四種查詢(xún)方式用Switch語(yǔ)句連接起來(lái),進(jìn)入每種查詢(xún)方式要輸入所需信息才能進(jìn)入。該程序最大的特點(diǎn)是Switch連接各調(diào)用函數(shù)和各查詢(xún)方式以及結(jié)構(gòu)數(shù)組的運(yùn)用,將各函數(shù)有序的連接起來(lái)。各個(gè)調(diào)用函數(shù)功能的實(shí)現(xiàn)如下:1)信息的錄入主要運(yùn)用循環(huán)語(yǔ)句將各個(gè)學(xué)生信息依次輸入2)信息的顯示也是用循環(huán)語(yǔ)句將各個(gè)學(xué)生信息顯示出來(lái)。3)信息的保存是將信息重寫(xiě)到保存到的文件位置,其中信息保存在c:4)信息的刪除是運(yùn)用字符串復(fù)印函數(shù),將空格復(fù)印到信息字符上達(dá)到刪除效果。5)信息的修改是輸入學(xué)號(hào)用循環(huán)語(yǔ)句將需修改的信息顯示出來(lái),然后再輸入新的信息6)信息的查詢(xún)是通過(guò)Switch語(yǔ)句將查詢(xún)方式連接起來(lái),并在各個(gè)查詢(xún)方式中用循環(huán)語(yǔ)句將要查詢(xún)的信息顯示出來(lái)。4調(diào)試與測(cè)試 初步調(diào)試的結(jié)果出現(xiàn)問(wèn)題較多,經(jīng)過(guò)多次修正和調(diào)試解決了許多問(wèn)題,調(diào)試完成后進(jìn)入主菜單按1錄入學(xué)生信息,錄入學(xué)生信息后可以通過(guò)提示按學(xué)號(hào),姓名,性別,年齡進(jìn)行查詢(xún)。還能按5添加學(xué)生信息,按6修改學(xué)生信息,按7退出。5心得與體會(huì)終于可以松口氣了,經(jīng)過(guò)一個(gè)思考,查資料,寫(xiě)源程序,上機(jī)調(diào)試,現(xiàn)在終于告一段落了??吹阶约旱膭趧?dòng)成果,心中不免有些驚喜,沒(méi)想到自己還能獨(dú)立完成初次的課程設(shè)計(jì)。這種課程設(shè)計(jì)是枯燥無(wú)味的,但對(duì)C語(yǔ)言這門(mén)程序語(yǔ)言的掌握卻有非常大的作用.。從開(kāi)始對(duì)題目的分析,就注定擺在我這樣一個(gè)對(duì)C語(yǔ)言了解不多的新手面前的是一段艱難的旅程.但最終很慶幸的是我居然能夠堅(jiān)持下來(lái),而且完成了設(shè)計(jì)工作。 C語(yǔ)言是很難學(xué)的,這也許是因人而異,但對(duì)我來(lái)說(shuō)確實(shí)是一個(gè)障礙。如今要自己完成一個(gè)課程設(shè)計(jì),無(wú)疑是對(duì)自己的一個(gè)挑戰(zhàn).先是上網(wǎng)查找有關(guān)的資料,分析題目所需的數(shù)據(jù),要用到哪些函數(shù)等等,星期二上網(wǎng)初步調(diào)試,將函數(shù)用些結(jié)構(gòu)和語(yǔ)句連接起來(lái),做這個(gè)工作時(shí),又將書(shū)本翻閱了一遍,重新獲得許多東西。如帶參函數(shù)的特點(diǎn),以及一些語(yǔ)句的運(yùn)用及特點(diǎn)等等。將工作分配到每塊是我完成這個(gè)設(shè)計(jì)的主要方法,然而將每塊都完成看起來(lái)比較輕松,但實(shí)際操作起來(lái)卻是比較麻煩的。由于平時(shí)對(duì)C語(yǔ)言知識(shí)的積累較為匱乏,(這可能是最主要的原因了),所以操作起來(lái)真是寸步難行,沒(méi)辦法,只有拿出課本找到相應(yīng)的知識(shí)點(diǎn),臨陣磨槍.費(fèi)了一番功夫,再上機(jī)調(diào)試時(shí)就是最痛苦的時(shí)候了,錯(cuò)誤一大堆,要一個(gè)一個(gè)的修改。經(jīng)過(guò)幾翻調(diào)試修改之后終于可以執(zhí)行了,那時(shí)還興奮了好長(zhǎng)時(shí)間呢!然而執(zhí)行出來(lái)的結(jié)果是不令人滿(mǎn)意的,界面不美觀不說(shuō),最重要的是輸入太煩瑣,而且受到的限制太多,如只能以某種方式輸入,且個(gè)數(shù)受限制。于是又發(fā)費(fèi)了大量時(shí)間去修改,終于比較滿(mǎn)意了,但也到了星期五了,也就是答辯的時(shí)間。答辯的時(shí)候我才發(fā)現(xiàn)還有好多知識(shí)是我不會(huì)的,老師問(wèn)了我一些問(wèn)題,我回答出來(lái)的卻不多,我體會(huì)到我還要很努力的學(xué)習(xí),在C語(yǔ)言的學(xué)習(xí)上我還有很長(zhǎng)的一段路要走。今天不管怎樣把這個(gè)設(shè)計(jì)作出來(lái)是件很高興的事情,不過(guò)能夠把這個(gè)設(shè)計(jì)順利完成要?dú)w功于我的指導(dǎo)老師,幫了我很多忙,也讓我發(fā)現(xiàn)了我有好多欠缺的地方,真的很感謝你們,謝謝! 但不管怎么樣,我還是完成了這個(gè)設(shè)計(jì)。雖說(shuō)累了點(diǎn),但我想這對(duì)我們進(jìn)一步掌握C語(yǔ)言,并為下學(xué)期的計(jì)算機(jī)二級(jí)考試是有很大的幫助的.。能夠編出程序,其實(shí)本身就是對(duì)自己的一種肯定,是對(duì)自己前面一段時(shí)間學(xué)習(xí)語(yǔ)言綜合水平的一個(gè)檢閱.當(dāng)然完成后的興喜,只有經(jīng)歷過(guò)了才能體會(huì)到。而我體會(huì)到了.課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程。隨著科學(xué)技術(shù)發(fā)展的日新日異,當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握計(jì)算機(jī)開(kāi)發(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.查詢(xún)學(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)查詢(xún)學(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é)生的信息輸出到磁盤(pán)文件中去*/ 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 原來(lái)的學(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ì)不起,查無(wú)此人!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 原來(lái)的學(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)查詢(xún)n);search_num();break; case 2:printf(按姓名查詢(xún)n);search_name();break; case 3:printf(按性別查詢(xún)n);search_sex();break; case 4:printf(按年齡查詢(xún)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ì)不起,查無(wú)此人n); printf(n); printf(返回查詢(xún)函數(shù)請(qǐng)按1,繼續(xù)查詢(xún)學(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ì)不起,查無(wú)此人n); printf(n); printf(返回查詢(xún)函數(shù)請(qǐng)按1,繼續(xù)查詢(xún)姓名請(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ì)不起,查無(wú)此人n); printf(n); printf(返回查詢(xún)函數(shù)請(qǐng)按1,繼續(xù)查詢(xún)性別請(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ì)不起,查無(wú)此人n); printf(n); printf(返回查詢(xún)函數(shù)請(qǐng)按1,繼續(xù)查詢(xún)年齡請(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 拓片直播測(cè)試題及答案
- 保險(xiǎn)消保培訓(xùn)
- 腫瘤介入治療健康宣教
- 支原體肺炎診療與防控培訓(xùn)
- 語(yǔ)言教育中的小羊與狼故事應(yīng)用
- 6S管理內(nèi)容培訓(xùn)
- 腫瘤科病人飲食
- 2025年中國(guó)磨砂皂行業(yè)市場(chǎng)全景分析及前景機(jī)遇研判報(bào)告
- 中醫(yī)內(nèi)科學(xué):消渴診治要點(diǎn)解析
- 團(tuán)餐服務(wù)流程及規(guī)范培訓(xùn)
- 安全生產(chǎn)檢查咨詢(xún)服務(wù)投標(biāo)方案(技術(shù)方案)
- 2025綠色建筑檢驗(yàn)機(jī)構(gòu)能力驗(yàn)證要求
- 全省工會(huì)系統(tǒng)經(jīng)審業(yè)務(wù)技能大賽含答案
- 工程利潤(rùn)分紅協(xié)議書(shū)
- 2025年上海市安全員C3證(專(zhuān)職安全員-綜合類(lèi))考試題庫(kù)
- 基本公共衛(wèi)生服務(wù)2025版培訓(xùn)
- 語(yǔ)言智能技術(shù)的未來(lái)應(yīng)用
- 智慧養(yǎng)老商業(yè)模式設(shè)計(jì)
- 2025年糧油保管員職業(yè)技能資格知識(shí)考試題(附答案)
- 早餐供應(yīng)配送合同范本
- 跨國(guó)知識(shí)產(chǎn)權(quán)糾紛的仲裁途徑及實(shí)踐
評(píng)論
0/150
提交評(píng)論