版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、c語言課程設(shè)計2010/5/29東北大學秦皇島分校c語言課程設(shè)計一、 有關(guān)變量、結(jié)構(gòu)體的說明:1) 對變量的說明:num是對成員的學號的定義數(shù)組,長度為不超過10個;name是對成員的姓名的定義數(shù)組,長度不超過20個字符;phone是對成員的手機號的定義,為一長整形;number是對活動的隊長的學號的定義數(shù)組,長度不超過10個字符;nam是對活動名稱的定義數(shù)組,活動名稱所占字符不超過30個;date是對活動日期的定義,定義類型為整形。2) 對結(jié)構(gòu)體的說明:在本程序中定義了兩個結(jié)構(gòu)體,分別為member和activity,分別包含了社團中的成員信息和社團活動信息,這兩個結(jié)構(gòu)體分別包含了num,n
2、ame,phone和number,nam,date等來實現(xiàn)程序的功能,這些在源文件的注釋中都有體現(xiàn)。3) 對函數(shù)的說明: input() 成員信息輸入 display() 顯示所有成員信息 sort_by_num() 按照成員學號對成員進行排序 delete_a_record() 刪除一條成員信息 query_a_record() 查找并顯示一個成員的信息 addfromtext() 從文本文檔中添加成員信息 writetotext() 將成員信息寫入文本文檔 input_act() 活動信息輸入display_act() 顯示所有活動信息delete_a_act() 刪除一條活動記錄quer
3、y() 查詢并顯示一條活動信息addfromtext() 從文本文檔中讀取活動信息writetotext() 將活動信息寫入寫入文本文檔二、 樹形結(jié)構(gòu)模塊圖:三、操作說明:這個程序很容易上手,運行該程序時,在出現(xiàn)的界面上會出現(xiàn)14個選項,分別為:1) 成員信息輸入;2) 顯示所有成員記錄;3) 將成員按學號排序;4) 刪除一條成員信息;5) 成員信息查詢;6) 從文本文檔中讀取成員信息;7) 將成員信息寫入文本文檔;8) 活動信息輸入;9) 顯示所喲活動信息;10) 刪除一條活動信息;11) 活動信息查詢;12) 從文本文檔中讀取數(shù)據(jù);13) 將活動信息寫入文本文檔;0) 退出系統(tǒng)。具體如下所
4、示:1. 起始歡迎界面2. 成員信息輸入3. 顯示所有成員信息4. 將成員按照學號排序5. 刪除一條成員信息6. 成員信息查詢7. 從文本文檔中讀取成員信息8. 將成員信息寫入文本文檔9. 活動信息輸入10. 顯示所有活動信息11. 刪除一條活動信息12. 活動信息查詢13. 從文本文檔中讀取活動信息此為讀取數(shù)據(jù)失敗時的提示。14. 將活動信息寫入文本文檔15. 退出系統(tǒng)在操作時只需按照提示和自己的需要完成操作即可,簡單容易,有效地節(jié)省使用者的時間,有效地提高工作效率。四、 源程序及代碼:#include /引用庫函數(shù)#include#include#includetypedef struct
5、 /定義結(jié)構(gòu)體數(shù)組char num10; /學號char name30; /姓名long phone; /手機號碼member;member meme80; /結(jié)構(gòu)體數(shù)組變量typedef structchar number10; /學號char nam20; /活動名稱int date; /活動日期activity;activity act80;int menu_select() /菜單函數(shù)int c;dosystem(cls); /運行前清屏printf(n);printf(*歡 迎 使 用 大 學 社 團 管 理 系 統(tǒng)*n); /*菜單選擇*/ printf( 1. 成員信息輸入;n)
6、; printf( 2. 顯示所有成員記錄;n); printf( 3. 將成員按學號排序;n); printf( 4. 刪除一條成員信息;n); printf( 5. 成員信息查詢;n); printf( 6. 從文本文檔中讀取成員信息;n);printf( 7. 將成員信息寫入文本文檔;n); printf( 8. 活動信息輸入;n); printf( 9. 顯示所有活動信息;n); printf( 10. 刪除一條活動信息;n); printf( 11. 活動信息查詢;n);printf( 12. 從文本文檔中讀取活動信息;n);printf( 13. 將活動信息寫入文本文檔;n); p
7、rintf( 0. 退出系統(tǒng)。n); printf(*n); printf(*|歡迎 使用|歡迎 使用|*n); printf(*n); printf(n); printf(請在013之間做出選擇:); scanf(%d,&c); /讀入選擇while(c13);return(c); /返回選擇int input(member mem,int n) /輸入成員信息int i=0;char sign,x10; /x10為了清除多余的數(shù)據(jù)while(sign!=n&sign!=n) /判斷printf(成員學號:); /交互式輸入scanf(%s,memn+i.num);printf(成員姓名:)
8、;scanf(%s,memn+);printf(成員手機號:);scanf(%ld,&memn+i.phone);gets(x); /清除多余的輸入printf(要輸入更多的成員信息嗎?(y/n);scanf(%c,&sign); /輸入判斷i+;return(n+i);void display(member mem,int n) /顯示所有成員記錄int i;printf(-n); /*格式頭*/ printf( 學號 姓名 手機n); printf(-n); for(i=1;i1&i%10=0) /每十個暫停printf(-n); /*格式*/ system(pause);pr
9、intf(-n); printf(n);system(pause);void sort_by_num(member mem,int n) /對成員按照學號排序int i,j,*p,*q,s; /定義指針類型用以排序char t10;for(i=0;in-1;i+) /冒泡法排序for(j=0;j0) strcpy(t,memj+1.num);strcpy(memj+1.num,memj.num); strcpy(memj.num,t); strcpy(t,memj+1.name); strcpy(memj+1.name,); strcpy(,t); p=&m
10、emj+1.phone; q=&memj.phone; s=*p;*p=*q;*q=s;int delete_a_record(member mem,int n) /按姓名查找并刪除一條成員信息char s20;int i=0,j;printf(請輸入要刪除的成員姓名:); /交互式問詢scanf(%s,s);while(strcmp(,s)!=0&in) i+; /*查找判斷*/ if(i=n)printf(未發(fā)現(xiàn)此成員!n);return(n); /返回失敗信息for(j=1;jn-1;j+)strcpy(memj.num,memj+1.num); strcpy(memj
11、.name,memj+1.name); memj.phone=memj+1.phone; printf(刪除中.n);printf(刪除成功!); /返回成功信息return(n-1);void query_a_record(member mem,int n) /*查找并顯示一個成員的信息*/ char s20;int i=0;printf(請輸入要查詢的成員姓名:); /*交互式輸入*/ scanf(%s,s); while(strcmp(,s)!=0&in) i+; /*查找判斷*/ if(i=n)printf(未發(fā)現(xiàn)此成員!); /顯示失敗信息return;printf
12、(查詢中.n);printf(該成員學號為:%sn,memi.num); /*輸出該成員信息*/ printf(該成員手機號為:%dn,memi.phone); int addfromtext(member mem,int n) /從文件中讀取成員信息 int i=0,num; file *fp; /*定義文件指針 char filename20; /定義文件名 printf(請輸入文件名(如wenjian.txt):); scanf(%s,filename); /輸入文件名 if(fp=fopen(filename,rb)=null) /打開文件printf(打開文件錯誤,請檢查文件的正確性
13、!n); /打開失敗信息 printf(n); system(pause); return(n); fscanf(fp,%d,&num); /讀入總記錄量 while(inum) /循環(huán)讀入數(shù)據(jù) fscanf(fp,%s%s%d,memn+i.num,memn+,&memn+i.phone); i+; n+=num; fclose(fp); /關(guān)閉文件printf(讀取中.n); printf(讀入文件成功!n); printf(n); system(pause); return(n); void writetotext(member mem,int n) /將所有記錄寫入文件in
14、t i=0; file *fp; /定義文件指針 char filename20; /定義文件名 printf(請輸入要寫入的文件名(如wenjian.txt):); /輸入文件名 scanf(%s,filename); if(fp=fopen(filename,w)=null) /打開文件 printf(不能打開此文件,請檢查文件的正確性!n); system(pause); return; fprintf(fp,%dn,n); /循環(huán)寫入數(shù)據(jù) while(in) fprintf(fp,%-16s%-15s%dn,memi.num,,memi.phone); i+; fcl
15、ose(fp); /關(guān)閉文件printf(正在寫入信息.n);printf(信息寫入成功!n); /返回成功信息 int inpute_act(activity acti,int n) /輸入活動記錄int j=0;char sign,x10;while(sign!=n&sign!=n)printf(隊長學號:); /交互式輸入scanf(%s,&actin+j.number);printf(活動名稱:);scanf(%s,actin+j.nam);printf(請輸入活動時間(如若活動時間為2010年3月15日,則輸入20100315):);scanf(%d,&actin+j.date);g
16、ets(x);printf(要輸入更多活動信息嗎?(y/n); /輸入判斷scanf(%c,&sign);j+;return(n+j);void display_act(activity acti,int n)int j;printf(-n); /*格式頭*/ printf(隊長學號 活動姓名 活動日期n); printf(-n); for(j=1;j1&j%10=0)printf(-n); /*格式*/ system(pause);printf(-n); printf(n);system(pause);int delete_a_act(activity acti,int n) /按照活動名字
17、查找,刪除一條活動記錄char s20; int i=0,j;printf(請輸入要刪除的活動名稱:); /系統(tǒng)和用戶的交互式問詢scanf(%s,s);while(strcmp(actii.nam,s)!=0&in) /查找i+;if(i=n)printf(沒有該項活動信息!); /失敗信息返回return(n);for(j=i;jn-1;j+) /刪除操作strcpy(actij.number,actij+1.number);strcpy(actij.nam,actij+1.nam);actij.date=actij+1.date;printf(刪除中.n);printf(刪除成功!);r
18、eturn(n-1);void query(activity acti,int n) /查找并顯示一項活動信息char s20;int i=0;printf(請輸入要查找的活動名稱:); /交互式問詢scanf(%s,s);while(strcmp(actii.nam,s)!=0&in)i+;if(i=n)printf(沒有該項活動記錄!n);/失敗信息返回return;printf(刪除中.n);printf(該活動的隊長為:%s;n,actii.number);printf(該項活動的日期為:%d。n,actii.date);int addfromtext(activity acti,in
19、t n) /從文件中讀入數(shù)據(jù)int i=0,num; file *fp; /定義文件指針 char filename20; /定義文件名 printf(請輸入文件名稱(如wenjian.txt):); scanf(%s,filename); /輸入文件名 if(fp=fopen(filename,rb)=null) /打開文件printf(打開文件失敗,請檢查文件的正確性!n); /打開失敗信息 system(pause); return(n); fscanf(fp,%d,&num); /讀入總記錄量while(inum) /循環(huán)讀入數(shù)據(jù) fscanf(fp,%s%s%d,actin+i.nu
20、mber,actin+i.nam,&actin+i.date); i+; n+=num; fclose(fp); /關(guān)閉文件 printf(讀取文件中.n);printf(文件讀取成功!n); printf(n); system(pause); return(n); void writetotext(activity acti,int n) /將所有記錄寫入文件int i=0; file *fp; /定義文件指針 char filename20; /定義文件名 printf(請輸入文件名(如wenjian.txt):); /輸入文件名 scanf(%s,filename); if(fp=fop
21、en(filename,w)=null) /打開文件 printf(不能打開此文件,請檢查文件的正確性!n); system(pause); return; fprintf(fp,%dn,n); /循環(huán)寫入數(shù)據(jù) while(in) fprintf(fp,%-16s%-15s%dn,actii.number,actii.nam,actii.date); i+; fclose(fp); /關(guān)閉文件printf(信息寫入中.n);printf(信息寫入成功!n); /返回成功信息 int main() /主函數(shù)int n=0;for(;)switch(menu_select() /選擇判斷case
22、1:printf(nt*成員信息輸入*nn); /輸入成員信息n=input(meme,n);printf(成員信息輸入成功!n);break;case 2:printf(nt*顯示所有成員信息*nn); /顯示所有成員信息 display(meme,n);break;case 3:printf(nt*按成員學號排序*nn); sort_by_num(meme,n); /按成員學號排序printf(排序成功!n); printf(n); system(pause); break; case 4:printf(nt*刪除一條成員信息*nn); n=delete_a_record(meme,n);
23、 /按成員姓名查找,刪除一條成員信息 printf(n); system(pause); break; case 5:printf(nt*成員信息查詢*nn); query_a_record(meme,n); /查找并顯示一個成員的信息 printf(n); system(pause); break;case 6:printf(nt*從文本文檔中添加成員信息*nn); /從文本文檔中添加成員信息n=addfromtext(meme,n); printf(n);break;case 7:printf(nt*將成員信息寫入文本文檔*nn); /將成員信息寫入文本文檔writetotext(meme,n); /循環(huán)寫入數(shù)據(jù)printf(n);break;case 8:printf(nt*活動信息輸入*nn); /活動信息輸入n=inpute_act(act,n);printf(活動信息輸入成功!n);break;case 9:printf(nt*顯示所有活動信息*nn); /顯示所有活動信息display_act(act,n);break;case 10:printf(nt*刪除一條活動信息*nn); /刪除一條活動記錄n=delete_a_act(act
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度家用UPS不間斷電源租賃合作協(xié)議3篇
- 海南職業(yè)技術(shù)學院《向量微積分》2023-2024學年第一學期期末試卷
- 海南衛(wèi)生健康職業(yè)學院《材料科學基礎(chǔ)(Ⅰ)》2023-2024學年第一學期期末試卷
- 二零二五年度醫(yī)療器械股權(quán)置換協(xié)議二轉(zhuǎn)一3篇
- 二零二五年度光伏發(fā)電項目開發(fā)與運營合同3篇
- 液化氣瓶焊接課程設(shè)計
- 二零二五年度互聯(lián)網(wǎng)醫(yī)療平臺合作服務(wù)協(xié)議3篇
- 網(wǎng)上做課程設(shè)計
- 二零二五年度商業(yè)街鋪面租賃合同范本(含裝修支持)3篇
- 二零二五年度國有企業(yè)國有股權(quán)流轉(zhuǎn)監(jiān)管協(xié)議3篇
- 工業(yè)機器人仿真軟件:Staubli Robotics Suite:碰撞檢測與避免策略教程
- 幼兒園中大班社會科學芒種課件
- 《圓的認識》(教學設(shè)計)-2024-2025學年六年級上冊數(shù)學人教版
- 電商創(chuàng)業(yè)孵化基地入駐合作協(xié)議2024年
- 托育機構(gòu)年度計劃
- 湖南省長沙市中學雅培粹學校2025屆七年級數(shù)學第一學期期末調(diào)研模擬試題含解析
- 股權(quán)質(zhì)押登記授權(quán)委托書
- 混凝土采購運輸組織供應(yīng)、運輸、售后服務(wù)方案
- 2024糖尿病酮癥酸中毒診斷和治療課件
- 審計職業(yè)生涯規(guī)劃書
評論
0/150
提交評論