學生檔案管理系統C語言課程設計_第1頁
學生檔案管理系統C語言課程設計_第2頁
學生檔案管理系統C語言課程設計_第3頁
學生檔案管理系統C語言課程設計_第4頁
學生檔案管理系統C語言課程設計_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、本模板是課程設計報告模板,請各位同學認真閱讀以下要求:1. 本頁為設計報告要求頁,不必打印。(制作好報告后輸出時將本頁刪除)2. 本模板的各種字體及頁面設置請同學們不要改動。3. 本設計報告左側裝訂。在虛線處裝訂。4. 在課程設計封皮一頁上用已經設置好的宋體四號來填寫各個項目。5. 在課程設計評定表一頁上用宋體小四填寫班級、學號、姓名、項目組、項目組長、項目組組員、本人工作簡介。組長評語一欄應由組長來給出。6. 在課程設計任務書一頁的開頭應按照給定的設置(黑體三號)填寫好你的班級,在第五項時間安排里面應用宋體五號加粗來填寫好日期范圍。7. 從程序基本框架結構圖開始到設計報告的最后一頁都要求有頁

2、眉,內容為你的課程設計題目,宋體小五居中。頁腳中的頁碼已經設置好,同學們不必改動。8. 在程序基本框架結構圖采用WORD中的自選圖形繪制程序基本框架結構圖,也就是程序流程圖。9. 在程序設計說明書中應該描述程序的設計思想,重點描述自己做的那部分的設計思想。字體用宋體小四。10. 在代碼清單中打印程序已經調試好的可運行的程序代碼。要求字體為宋體 五號。(頁數可增加)11. 報告的最后一部分是設計總結,應在程序代碼之后另起一頁,主要寫通過一周課程設計你自己的體會,包括你學到了什么,哪里遇到了困難解決的辦法以及今后的目標。字體用宋體小四。12. 報告的各個部分都可以不為規定的一頁,自己可增加頁數,但

3、要保證開始另外一項要另起一頁。13. 服務課程名稱:本科添寫:C語言;/專科添寫:計算機語言(c)14. 報告完成后,要更新目錄。方法為:單擊目錄左側,選定整個目錄后,按F9鍵更新目錄。課 程 設 計服務課程名稱: 計算機語言(c) 系: 專業: 班級: 學號: 姓名: 指導教師: 課程設計周次: 第15周 起始日期: 目錄C語言課程設計成績評定表1C語言課程設計任務書2程序基本框架結構圖3程序設計說明書4源代碼清單5課程設計總結18C語言課程設計C語言課程設計成績評定表班級學號姓名項目組 項目組長項目組組員本人工作簡介:。我在團隊中的任務是做刪除程序模塊,我獨立完成了此程序模塊,另外我幫助組

4、長完成了整體程序,還獨立做了程序基本框架結構圖,幫助組長進行程序的完善。組長評語:此組員在團隊中起到很大作用,她制作的刪除程序模塊實用價值很高,她在我的安排下任務完成的非常認真,具有很好的團隊精神。成績評定標準ABCDE理論基礎很好好比較好一般不好報告完成情況很好好比較好一般不好紀律表現很好好比較好一般不好程序創意很好好比較好一般不好所選模塊完成情況很好好一般較差不好所選算法難易程度復雜比較復雜一般簡單很簡單程序可操作性很好好一般較差不好答辯表現很好好一般較差不好最后成績優秀A>=5B<=3C<=0D=0E=0良好A>=3B<=4C<=1D=0E=0中等A&

5、gt;=1B>=2C>=4D<=1E=0及格A=0B=0C<=4D>=4不及格A=0B=0C=0D<=4E>=4負責指導教師: (簽名)指導教師: (簽名)C語言課程設計任務書一、設計目的通過本次課程設計使學生進一步加深對C語言課程內容的理解,初步掌握一般應用程序的開發方法和步驟,進一步了解與掌握C語言的編程方法和技巧,提高學生用C語言解決實際問題的能力。二、設計要求1、認真查閱參考書、資料2、遵守課程設計時間安排3、按時上機,認真調試程序4、認真完成課程設計報告三、課設報告裝訂內容及順序1、課程設計封皮2、目錄3、課程設計成績評定表4、課程設計任務書

6、5、程序基本框架圖 6、程序設計說明書7、源代碼清單8、課設總結與心得四、設計題目學生檔案管理賓館住宿管理學生宿舍管理職工信息管理系統人事檔案管理系統航空售票管理系統五、時間安排(一周:從 6 月 6 日到 6 月 12 日 )1、查閱資料及程序設計(1天)2、程序編制及調試(3天)3、成績評定(0.5天)3、打印報告(0.5天)六、參考文獻1、C語言程序設計李淑華/李貞編 大連理工大學出版社2、C語言程序設計孫連科/姚大鵬編 遼海出版社3、C+時尚編程百例網冠科技編.機械工業出版社4、TURBO C 實用大全徐金梧等編. 機械工業出版社19- -學生檔案管理系統程序基本框架結構圖學生檔案管理

7、系統程序錄入學生檔案信息保存學生檔案信息修改學生檔案信息查詢學生檔案信息瀏覽學生檔案信息幫助信息退出系統刪除學生檔案信息按姓名刪除按學號刪除按姓名查找按生源地查找按學號查詢任意字符查詢程序設計說明書整體的功能說明總體說明:本組所作的學生檔案管理系統,能夠進行學生的學號,姓名,性別,出生年月,生源地,電話等進行錄入,瀏覽,查詢,修改,刪除還可以將記錄檔案進行文件的方式保存在磁盤中。本系統應用了最新鏈表結構,可以方便靈活的進行錄入刪除添加的工作,具有運行數據效率極其高,運行穩定,內存占用小,數據鏈的延伸幾乎無窮。運行結構更加清晰明了,便于軟件的升級和改造。本系統采用清爽的菜單方式進行操作,界面清晰

8、,顯示規范對齊,提示信息豐富,用戶使用起來輕松自如,采用提示信息,幫助信息。鏈表對信息的逐個修改刪除對其他的數據無影響。個人所承擔的功能模塊的說明:本人所編輯的void Del(Link h) 和void main()函數是用來整個系統的調用和刪除數據的鏈表的節點的功能,其中的文件的指針的定義和文件的打開菜單的調用和所有函數的實現應用了switch case default來調用功能函數完成整個系統的協調工作,其中的刪除的其中用到了鏈表的節點的定位函數Node *Locate函數,使得對數據的讀取一個結構體塊的模式進行讀取和刪除。讓其他的數據都保持不變,讓整個軟件的運行進行有條不紊的進行。本函

9、數強調高內聚和與其他函數的低耦合使得他的穩定性強結構清晰。函數的分配和調用使得程序的使用和調用,由于應用了許多定義了的輔助函數使得程序看起來比較清晰明了。源代碼清單#include<stdio.h>#include<stdlib.h>#include<string.h>int shouldsave=0; struct student char num10; char name20; char sex4; char birthd10; char add7; char teleph20; ;typedef struct nodestruct student da

10、ta;struct node *next;Node,*Link;void menu() system("cls"); printf("nn 學生檔案管理系統n"); printf("*n"); printf("t1.錄入學生檔案信息tt2.刪除學生檔案信息n"); printf("t3.查詢學生檔案信息tt4.修改學生檔案信息n"); printf("t5.保存學生檔案信息tt6.瀏覽學生檔案信息n"); printf("t7.幫助信息ttt0.退出系統n"

11、;); printf("*n"); void printstart() printf("n-n"); void Wrong() printf("n=>輸入錯誤!n"); void Nofind() printf("n=>沒有找到該學生!n"); void printc() printf("t學號 姓名 性別 出生年月 生源地 電話n"); void printe(Node *p)printf("t%-12s%-10s%-8s%-12s%-8s%-12sn",p-&

12、gt;data.num,p->,p->data.sex,p->data.birthd,p->data.add,p->data.teleph); Node *Locate(Link h,char findmess,char nameoradd) Node *r; if(strcmp(nameoradd,"name")=0) r=h->next; while(r!=NULL) if(strcmp(r->,findmess)=0) return r; r=r->next; if(strcmp(na

13、meoradd,"add")=0) r=h->next; while(r!=NULL) if(strcmp(r->data.add,findmess)=0) return r; r=r->next; if(strcmp(nameoradd,"num")=0) r=h->next; while(r!=NULL) if(strcmp(r->data.num,findmess)=0) return r; r=r->next; if(strcmp(nameoradd,"any")=0) r=h->ne

14、xt; while(r!=NULL) if(strcmp(r->data.num,findmess)=0) return r; if(strcmp(r->,findmess)=0) return r; if(strcmp(r->data.sex,findmess)=0) return r; if(strcmp(r->data.birthd,findmess)=0) return r; if(strcmp(r->data.add,findmess)=0) return r; if(strcmp(r->data.teleph,findmess)

15、=0) return r;r=r->next; return 0; void Add(Link h)Node *p,*r,*s;char num10;r=h;s=h->next; while(r->next!=NULL) r=r->next;while(1) printf("請你輸入學號(以“0”返回上一級菜單:)"); scanf("%s",num);if(strcmp(num,"0")=0) break;while(s) if(strcmp(s->data.num,num)=0) printf(&qu

16、ot;提示:學號為%s的學生存在,修改請選4 修改!n",num); printstart(); printc(); printe(s); printstart(); printf("n"); system("pause"); return; s=s->next; p=(Node *)malloc(sizeof(Node); strcpy(p->data.num,num); printf("請你輸入姓名:"); scanf("%s",&p->); printf(

17、"請你輸入性別:"); scanf("%s",&p->data.sex); printf("請你輸入出生年月:"); scanf("%s",&p->data.birthd); printf("請你輸入生源地:"); scanf("%s",&p->data.add); printf("請你輸入電話:"); scanf("%s",&p->data.teleph); p->next

18、=NULL;r->next=p;r=p;shouldsave=1; printf("n登記記錄完成!n"); system("pause"); void Qur(Link h)int sel;char findmess20;Node *p;if(!h->next) printf("n=提示:沒有資料可以查詢!n"); system("pause"); return; printf("n請選擇查詢方式:n"); printf("n=>1按姓名查找n"); pr

19、intf("n=>2按生源地查找n"); printf("n=>3按學號查找n"); printf("n=>4任意字符查找n"); scanf("%d",&sel); if(sel=1) printf("請輸入要查找的姓名:"); scanf("%s",findmess); p=Locate(h,findmess,"name"); if(!p) Nofind(); else printf("ttt查找結果n")

20、; printstart(); printc();while(p) printe(p); p=Locate(p,findmess,"name"); printstart(); if(sel=2) printf("請輸入要查找的生源地:"); scanf("%s",findmess); p=Locate(h,findmess,"add"); if(!p) Nofind(); else printf("ttt查找結果n"); printstart(); printc();while(p) print

21、e(p); p=Locate(p,findmess,"add"); printstart(); if(sel=3) printf("請輸入要查找的學號:"); scanf("%s",findmess); p=Locate(h,findmess,"num"); if(!p) Nofind(); else printf("ttt查找結果n"); printstart(); printc(); printe(p); printstart(); if(sel=4) printf("請輸入要查找

22、的字符:"); scanf("%s",findmess); p=Locate(h,findmess,"any"); if(!p) Nofind(); else printf("ttt查找結果n"); printstart(); printc();while(p) printe(p); p=Locate(p,findmess,"any"); printstart(); Wrong(); system("pause"); void Del(Link h)int sel;Node *p,*r

23、;char findmess20;if(!h->next) printf("n=提示:沒有資料可以刪除!n"); system("pause"); return; printf("n請選擇刪除方式:n"); printf("n=>1按姓名刪除n"); printf("n=>2按學號地刪除n"); scanf("%d",&sel); if(sel=1) printf("請輸入要刪除的姓名:"); scanf("%s&quo

24、t;,findmess); p=Locate(h,findmess,"name"); if(p) r=h;while(r->next!=p)r=r->next;r->next=p->next;free(p);printf("n=>提示:該學生已經成功刪除!n");shouldsave=1; else Nofind(); if(sel=2) printf("請輸入要刪除的學號:"); scanf("%s",findmess); p=Locate(h,findmess,"num&

25、quot;); if(p) r=h;while(r->next!=p)r=r->next;r->next=p->next;free(p);printf("n=>提示:該學生已經成功刪除!n"); else Nofind(); Wrong(); system("pause"); void Modify(Link h) Node *p; char findmess20; if(!h->next) printf("n=提示:沒有資料可以修改!n"); system("pause");

26、return; printf("請輸入要修改的學號:"); scanf("%s",findmess); p=Locate(h,findmess,"num"); if(p) printf("請你輸入新學號(原來是%s):",p->data.num); scanf("%s",p->data.num); printf("請你輸入新姓名(原來是%s):",p->); scanf("%s",p->); pr

27、intf("請你輸入新性別(原來是%s):",p->data.sex); scanf("%s",p->data.sex); printf("請你輸入新出生年月(原來是%s):",p->data.birthd); scanf("%s",p->data.birthd); printf("請你輸入新生源地(原來是%s):",p->data.add); scanf("%s",p->data.add); printf("請你輸入新電話(原來

28、是%s):",p->data.teleph); scanf("%s",p->data.teleph); printf("n=>提示:資料修改成功!n"); shouldsave=1; else Nofind(); system("pause"); void Disp(Link h)int count=0;Node *p;p=h->next;if(!p) printf("n=提示:沒有資料可以顯示!n"); system("pause"); return; pri

29、ntf("ttt顯示結果n"); printstart(); printc(); printf("n"); while(p) printe(p); p=p->next; printstart(); printf("n"); system("pause"); void Helps(Link h)printf("n文件保存到c:學生檔案管理.txtn");system("pause"); void Save(Link h)FILE *fp;Node *p;int flag=

30、1,count=0;fp=fopen("c:學生檔案管理.txt","w+");if(fp=NULL)printf("n=提示:重新打開文件時發生錯誤!n"); system("pause"); exit(1);p=h->next;while(p)if(fwrite(p,sizeof(Node),1,fp)=1)p=p->next;count+;elseflag=0;break;if(flag=0) printf("n=>提示:資料修改成功!n"); shouldsave=0;

31、 fclose(fp); system("pause"); void main()Link h;FILE *fp;int sel;char ch;int count=0;Node *p,*r=NULL;system("cls");fp=fopen("c:學生檔案管理.txt","r");if(fp=NULL)printf("文件錯誤,不能打開!");exit(1);h=(Node*)malloc(sizeof(Node);if(!h)printf("n內存溢出!n");exi

32、t(0); h->next=NULL; r=h; printf("n文件已經打開,正在導入記錄。n"); r=h;while(!feof(fp) p=(Node*)malloc(sizeof(Node);if(!p) printf("n內存溢出!n");exit(0); if(fread(p,sizeof(Node),1,fp) p->next=NULL; r->next=p; r=p; count+; r->next=NULL;fclose(fp); if(count=0) printf("n文件為空!建議您本次操作選

33、擇菜單1.等級學生記錄信息開始!n");system("pause"); else printf("n=>提示:導入信息完畢,共導入%d條記錄。n",count);system("pause");while(1)menu();printf("請你選擇操作:"); scanf("%d",&sel);if(sel=0)if(shouldsave=1)getchar();printf("n:資料已改動,是否將改動保存到文件中(Y/N)n");scanf(&q

34、uot;%c",&ch); if(ch='y'|ch='Y') Save(h);printf("n=>提示:你已經退出系統,再見n");break;switch(sel) case 1:Add(h); break; case 2:Del(h); break; case 3:Qur(h); break; case 4:Modify(h); break; case 5:Save(h); break; case 6:; Disp(h);break; case 7:Helps(h); break; case 0:printf("n=幫組信息=n&quo

溫馨提示

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

評論

0/150

提交評論