九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

C語言課程設(shè)計 學(xué)生信息管理系統(tǒng)

上傳人:仙*** 文檔編號:28790549 上傳時間:2021-09-12 格式:DOC 頁數(shù):13 大?。?6.63KB
收藏 版權(quán)申訴 舉報 下載
C語言課程設(shè)計 學(xué)生信息管理系統(tǒng)_第1頁
第1頁 / 共13頁
C語言課程設(shè)計 學(xué)生信息管理系統(tǒng)_第2頁
第2頁 / 共13頁
C語言課程設(shè)計 學(xué)生信息管理系統(tǒng)_第3頁
第3頁 / 共13頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《C語言課程設(shè)計 學(xué)生信息管理系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《C語言課程設(shè)計 學(xué)生信息管理系統(tǒng)(13頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 C語言課程設(shè)計 實驗題目 學(xué)生信息管理系統(tǒng)一、引言 1熟練掌握C語言編程的應(yīng)用的相關(guān)操作。 2綜合應(yīng)用C語言的知識,實現(xiàn)一個完整的系統(tǒng),提高編程能力,體會軟件程序的開發(fā)過程。 3. 培養(yǎng)學(xué)生獨立完成C語言程序課程設(shè)計的能力4運用結(jié)構(gòu)體和鏈表編輯一個簡單的學(xué)生基本信息管理系統(tǒng),使之能夠完成學(xué)生基本信息的創(chuàng)建、修改、添加、查詢、刪除、排序、輸出、退出操作。5執(zhí)行編譯操作,并根據(jù)提示調(diào)試此程序,排除所有的錯誤和警告。直到編譯成功為止。6執(zhí)行運行操作,逐一對每個模塊進行調(diào)試。直到全部程序運行成功為止。 二、 需求分析1該學(xué)生信息管理系統(tǒng),完成學(xué)生基本信息的錄入、修改、添加、查詢、刪除、排序、輸出、退

2、出操作。 每個模塊的功能如下: A、錄入模塊能夠完成學(xué)生姓名、性別、學(xué)號、年齡、出生年月、入學(xué)年月的輸入。 B、更新模塊中可以對學(xué)生信息進行添加、刪除、修改。 C、打印模塊可以輸出以保存的所有學(xué)生信息。 D、查詢模塊能按學(xué)號或姓名查詢一個學(xué)生的全部信息,并能顯示該學(xué)生的全部信息,可以查詢所有已經(jīng)錄入的學(xué)生信息。 E、排序模塊將按照學(xué)生學(xué)號的順序進行所有學(xué)生基本信息的排序并顯示。 F、退出模塊可直接退出此程序,結(jié)束操作。2創(chuàng)建該學(xué)生信息管理系統(tǒng)目的就是能夠?qū)W(xué)生基本信息進行創(chuàng)建、修改、添加、查詢、刪除、排序等功能,這樣可以簡化許多人工做起來很復(fù)雜的問題,它還可以重復(fù)使用,方便、快捷。三、概要設(shè)計

3、1. 設(shè)計方案主 函 數(shù) 錄入模塊 查詢模塊 輸出(打?。┠K 添加模塊 排序模塊 修改模塊 刪除模塊2、模塊功能說明(1)錄入模塊:對定義的學(xué)生信息結(jié)構(gòu)體變量,利用循環(huán),將鍵入的學(xué)生 保存至指定文件,其中,學(xué)號、姓名、性別定義為字符型,年齡、出生年月,入學(xué)年月都定義為整型。 (2)添加模塊:選擇添加信息選項,按系統(tǒng)提示依次輸入基本信息,完畢后,將詢問是否繼續(xù)。 (3)修改模塊:選擇修改選項,輸入要修改學(xué)生的姓名,利用循環(huán)、判斷語句,找到對應(yīng)的信息,可對任意一項進行修改,完畢后,詢問是夠繼續(xù)。 (4)刪除模塊:選擇刪除選項,可繼續(xù)選擇按學(xué)號或按姓名刪除。選擇后,將打印出其基本信息,詢問是否確認

4、刪除。利用覆蓋刪除法,刪除所選的項目。 (5)輸出模塊:利用讀函數(shù),讀取鍵入的信息,出入編輯好的表格及所有學(xué)生信息。(6)查詢模塊:此模塊有2種查詢方式:按姓名查詢、按學(xué)號查詢。它也是通過循環(huán)判斷查找,如果找到則顯示該學(xué)生的全部信息,否則,將輸出沒有查到該學(xué)生信息,,給以提示。(7)排序模塊:對學(xué)生的學(xué)號進行排序。利用選擇排序法排序,最后保存結(jié)果。四、詳細設(shè)計及運行結(jié)果流程圖錄入模塊輸入學(xué)生基本信息輸入完畢返回主菜單否是主函數(shù)錄入模塊函數(shù)查詢模塊函數(shù)輸出模塊函數(shù)添加模塊函數(shù)排序模塊函數(shù)修改模塊函數(shù)刪除模塊函數(shù)按姓名查詢按學(xué)號查詢按學(xué)號刪除按所選項修改添加模塊輸入要添加人的學(xué)號輸入添加學(xué)生的全部

5、信息返回主菜單繼續(xù)?是否刪除模塊按姓名刪除按學(xué)號刪除返回上一級菜單顯 示刪除人 的信 息返回菜單確認刪除修改模塊輸入修改學(xué)生學(xué)號顯示學(xué)生基本信息查詢信息存在不存在學(xué)號姓名性別年齡入學(xué)年月選擇修改項顯示修改后信息返回主菜單是否繼續(xù)是否排序模塊排序方式按學(xué)號排序顯示排序結(jié)果返回主界面查 詢 模 塊按 姓 名 查 詢按 學(xué) 號 查 詢輸出所查詢的學(xué)生信息返回主界面六調(diào)試情況,設(shè)計技巧及體會1.調(diào)試: 輸入學(xué)生信息的情況,按照編寫的程序進行進行調(diào)試,輸出學(xué)生信息情況、添加、刪除、查詢(1按學(xué)號or2按姓名)、排序、修改等學(xué)生信息的管理的情況,退出程序。2.設(shè)計技巧: 通過運用C語言的語法規(guī)則,結(jié)構(gòu)體和

6、鏈表編寫簡單的學(xué)生信息管理系統(tǒng)。運用模塊,編寫各個小程序是指連接成一個完整的學(xué)生信息管理系統(tǒng),使程序更加嚴謹,簡潔,清晰,實用。3.體會: 我對自己這次的實驗設(shè)計完成的還比較滿意,這個學(xué)生管數(shù)組知識運用C+編寫完成。此程序的不足之處是學(xué)生基本信息方面還不夠完善,譬如沒有家庭住址,電話號碼等相關(guān)的學(xué)生基本信息。課程設(shè)計看似簡單,實則不然。 它花費了近一周的時間寫程序,以后的大多數(shù)時間就在調(diào)程序,從構(gòu)思到結(jié)構(gòu)大體框架再到細節(jié)。這讓我明白“宏觀主宰全局,細節(jié)決定成敗”的道理,即使是小到一個分號也有可能使你的程序無法運行。寫程序的時候必須很認真,欲速則不達。在實習(xí)中,我深刻體會到老師發(fā)揮的重要作用:C

7、語言程序?qū)ξ覀儊碚f比較難,在匆忙的學(xué)習(xí)中更是難上加難,但在老師的幫助下我學(xué)會了如何調(diào)試,如何查找系統(tǒng)沒有提示的錯誤,最后終于排除萬難把程序搞定,體會到原來編程也挺有意思的。七、源程序(略,詳見電子版實驗報告)#includestdio.h#includestdlib.h#includestring.h#define MAX 100#define N 3struct day_type /*日期結(jié)構(gòu)體類型*/ int year; int month; ;struct student_type char num8; /*學(xué)號*/ char name20; /*姓名*/ char sex1; /*性別

8、*/ int age; /*年齡*/ struct day_type birthday; /*出生年月*/ struct day_type comingday; /*入學(xué)年月*/ ;int number;int read_file(struct student_type students) FILE *fp; int i=0; if(fp=fopen(student.txt,rt)=NULL) printf(n 庫存文件不存在,請創(chuàng)建!n); return 0; while(!feof(fp) fread(&studentsi,sizeof(struct student_type),1,fp)

9、; if(studentsi.num=0) break; else i+; fclose(fp); return i;void save_file(struct student_type students,int sum) FILE *fp; int i; if(fp=fopen(student.txt,wt)=NULL) printf(讀文件錯誤n); return; for(i=0;isum;i+) if(fwrite(&studentsi,sizeof(struct student_type),1,fp)!=1) printf(寫文件錯誤n); fclose(fp); /*輸入模塊*/i

10、nt input(struct student_type students) int i=0; system(cls); printf(n請輸入要錄入的學(xué)生的個數(shù)(最多%d個):n,MAX); scanf(%d,&number); printf(nn 錄入學(xué)生信息 (最多錄入%d個)n,number); printf( -n); while(inumber) printf(n 第%d個學(xué)生,i+1); printf(n 學(xué)生學(xué)號:);scanf(%s,studentsi.num);if( studentsi.num=0) break; printf(n 學(xué)生姓名:); scanf(%s,stu

11、dentsi.name); printf(n 學(xué)生性別(男為m,女為w):); scanf(%s,studentsi.sex); printf(n 學(xué)生年齡:); scanf(%d,&studentsi.age); printf(n 學(xué)生出生年月(yyyy-mm):);scanf(%d-%d,&studentsi.birthday.year,&studentsi.birthday.month); printf(n 學(xué)生入學(xué)年月(yyyy-mm):); scanf(%d-%d,&ingday.year,&ingday.month); i+; printf(n %d個學(xué)生信息錄入完畢!n,i);

12、getchar(); printf(n 按回車鍵返回主菜單!); getchar(); return i; /*輸出模塊*/void output(struct student_type students,int sum) FILE *fp; int i=0; system(cls); fp=fopen(student.txt,rt); printf(n -學(xué)生信息表- nn); printf(學(xué)生學(xué)號-學(xué)生姓名-學(xué)生性別-學(xué)生年齡-出生年月(yyyy-mm)-入學(xué)年月(yyyy-mm)n); printf(-n);do fread(&studentsi,sizeof(struct stude

13、nt_type),1,fp);if(studentsi.num!=0) printf(%6s %8s %3s %4d %10d-%2d %10d-%2dn,studentsi.num,studentsi.name,studentsi.sex,studentsi.age,studentsi.birthday.year,studentsi.birthday.month,ingday.year,ingday.month); printf(-n); i+; while(isum); getchar(); printf(按回車鍵返回主菜單); getchar(); fclose(fp);void mod

14、ify(struct student_type students,int sum) /*修改模塊*/ int i=0,choice,flag; char modify_num8; do system(cls); printf(n 輸入要修改的學(xué)生的學(xué)號:);scanf(%s,modify_num);for(i=0;isum;i+)if(!strcmp(studentsi.num,modify_num) printf(n -學(xué)生信息- n ); printf(學(xué)生學(xué)號-學(xué)生姓名-學(xué)生性別-學(xué)生年齡-出生年月(yyyy-mm)-入學(xué)年月(yyyy-mm)n); printf(-n); printf

15、(%6s %8s %3s %4d %10d-%2d %10d-%2dn,studentsi.num,studentsi.name,studentsi.sex,studentsi.age,studentsi.birthday.year,studentsi.birthday.month,ingday.year,ingday.month); printf(1.學(xué)生學(xué)號 2.學(xué)生姓名 3.學(xué)生性別 4.學(xué)生年齡 5.出生年月(yyyy-mm) 6.入學(xué)年月(yyyy-mm)n); printf(請輸入要修改項的編號(選擇1-6):); scanf(%d,&choice); switch(choice)

16、 case 1: printf(n 輸入修改后的學(xué)生學(xué)號:); scanf(%s,studentsi.num); break; case 2: printf(n 輸入修改后的學(xué)生姓名:); scanf(%s,studentsi.name); break; case 3: printf(n 輸入修改后的學(xué)生性別:); scanf(%s,studentsi.sex); break; case 4: printf(n 輸入修改后的學(xué)生年齡:); scanf(%d,&studentsi.age); break; case 5: printf(n 輸入修改后的學(xué)生出生年月(yyyy-mm):); sca

17、nf(%d-%d,&studentsi.birthday.year,&studentsi.birthday.month); break; case 6: printf(n 輸入修改后的學(xué)生入學(xué)年月(yyyy-mm):); scanf(%d-%d,&ingday.year,&ingday.month); break; printf(n -學(xué)生信息-(修改后) n ); printf(學(xué)生學(xué)號-學(xué)生姓名-學(xué)生性別-學(xué)生年齡-出生年月(yyyy-mm)-入學(xué)年月(yyyy-mm)n); printf(-n); printf(%6s %8s %3s %4d %10d-%2d %10d-%2dn,stu

18、dentsi.num,studentsi.name,studentsi.sex,studentsi.age,studentsi.birthday.year,studentsi.birthday.month,ingday.year,ingday.month); getchar(); break; if(i=sum) printf(n 該學(xué)生不存在); getchar(); save_file(students,sum); printf(nn 繼續(xù)修改嗎?( Y/N(選擇N則返回主菜單) )); choice=getchar();if(choice=Y|choice=y) flag=1; prin

19、tf(n 繼續(xù)修改!n); else flag=0;while(flag=1); printf(n);void reserch(struct student_type students,int sum) /*查詢模塊*/ int i=0,choice,flag; char reserch8; do system(cls); printf(n 請選擇查詢方式(1或2): 1.按學(xué)號 2.按姓名n);scanf(%d,&choice);switch(choice) case 1: printf(n 請輸入要查詢的學(xué)生的學(xué)號:); scanf(%s,reserch); for(i=0;isum;i+

20、) if(!strcmp(studentsi.num,reserch) printf(n -學(xué)生信息- n ); printf(學(xué)生學(xué)號-學(xué)生姓名-學(xué)生性別-學(xué)生年齡-出生年月(yyyy-mm)-入學(xué)年月(yyyy-mm)n); printf(-n); printf(%6s %8s %3s %4d %10d-%2d %10d-%2dn,studentsi.num,studentsi.name,studentsi.sex,studentsi.age,studentsi.birthday.year,studentsi.birthday.month,ingday.year,ingday.month)

21、; getchar(); break;break; case 2: printf(n 請輸入要查詢的學(xué)生的姓名:); scanf(%s,reserch); for(i=0;isum;i+) if(!strcmp(studentsi.name,reserch) printf(n -學(xué)生信息- n ); printf(學(xué)生學(xué)號-學(xué)生姓名-學(xué)生性別-學(xué)生年齡-出生年月(yyyy-mm)-入學(xué)年月(yyyy-mm)n); printf(-n); printf(%6s %8s %3s %4d %10d-%2d %10d-%2dn,studentsi.num,studentsi.name,students

22、i.sex,studentsi.age,studentsi.birthday.year,studentsi.birthday.month,ingday.year,ingday.month); getchar(); break;break;if(i=sum) printf(n 該學(xué)生不存在); getchar();printf(nn 繼續(xù)查詢嗎?( Y/N(選擇N則返回主菜單) ));choice=getchar();if(choice=Y|choice=y) flag=1; printf(n 繼續(xù)修改!n); else flag=0;while(flag=1); printf(n);void

23、sort(struct student_type students,int sum) /*排序模塊*/ int i,j; struct student_type t; system(cls); for(i=0;isum-1;i+) for(j=i+1;j0) t=studentsi; studentsi=studentsj; studentsj=t; printf(n按學(xué)號排序:nn); printf(n -學(xué)生信息表- nn); printf(學(xué)生學(xué)號-學(xué)生姓名-學(xué)生性別-學(xué)生年齡-出生年月(yyyy-mm)-入學(xué)年月(yyyy-mm)n); printf(-n); for(i=0;isum

24、;i+) printf(%6s %8s %3s %4d %10d-%2d %10d-%2dn,studentsi.num,studentsi.name,studentsi.sex,studentsi.age,studentsi.birthday.year,studentsi.birthday.month,ingday.year,ingday.month); printf(-n); getchar(); printf(n 按回車鍵返回主菜單!); getchar();int del(struct student_type students,int sum) /*刪除模塊*/ int i,j,k=

25、0; char del_num8; system(cls); printf(請輸入需要刪除的學(xué)生信息的學(xué)號nn); scanf(%s,del_num); for(i=0;isum;i+) if(!strcmp(studentsi.num,del_num) for(j=i;jsum-1;j+) studentsj=studentsj+1;else k+; if(k=sum) printf(該學(xué)生不存在n); getchar(); printf(按回車鍵返回主菜單); getchar();return(sum); else save_file(students,sum);printf(刪除成功:n

26、); getchar(); printf(n 按回車鍵返回主菜單!); getchar(); return(sum-1); /*添加模塊*/void add(struct student_type students,int *sum) int i,flag; char choice; system(cls); i=(*sum); do if(iMAX) printf( 請輸入要添加的學(xué)生的信息:n); printf(n 學(xué)生學(xué)號:);scanf(%s,studentsi.num);if(studentsi.num=0) break; printf(n 學(xué)生姓名:); scanf(%s,stud

27、entsi.name); printf(n 學(xué)生性別(男為m,女為w):); scanf(%s,studentsi.sex); printf(n 學(xué)生年齡:); scanf(%d,&studentsi.age); printf(n 學(xué)生出生年月(yyyy-mm):); scanf(%d-%d,&studentsi.birthday.year,&studentsi.birthday.month); printf(n 學(xué)生入學(xué)年月(yyyy-mm):); scanf(%d-%d,&ingday.year,&ingday.month); (*sum)+; i=(*sum); getchar(); p

28、rintf(n 成功添加一個學(xué)生的信息!n); getchar(); printf(n 是否繼續(xù)添加?( Y/N(選擇N則返回主菜單) )n); choice=getchar(); if(choice=Y|choice=y) flag=1; printf(n 繼續(xù)添加!n); else flag=0; else printf(n 返回主菜單n); break; while(flag=1);void main() int choice,sum; /system(color ) struct student_type studentsMAX; sum=read_file(students)-1;

29、if(sum=0) printf(按回車鍵開始錄入基本庫存信息!); getchar();sum=input(students); save_file(students,sum); do system(cls); printf(n *學(xué)生信息管理系統(tǒng)*nn);printf( 1.重新錄入學(xué)生信息 nn);printf( 2.查詢學(xué)生信息 nn);printf( 3.輸出學(xué)生信息 nn);printf( 4.添加學(xué)生信息 nn);printf( 5.排序?qū)W生信息 nn);printf( 6.修改學(xué)生信息 nn);printf( 7.刪除學(xué)生信息 nn);printf( 0.退出系統(tǒng) nn);pr

30、intf( 請選擇您要執(zhí)行的操作(0-7)n);scanf(%d,&choice);switch(choice) case 1: sum=input(students); save_file(students,sum); break; case 2: reserch(students,sum); break; case 3: save_file(students,sum); output(students,sum); break; case 4: add(students,&sum); save_file(students,sum); break; case 5: sort(students,sum); break; case 6: modify(students,sum); save_file(students,sum); break; case 7: sum=del(students,sum); save_file(students,sum); break; case 0: break; while(choice!=0); save_file(students,sum); 八、參考文獻 王曙燕.C語言程序設(shè)計.北京:科技出版社.2008

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!