




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、成都電子機械高等專科學校 電氣與電子工程系畢業設計論文PAGE 2PAGE IV畢業設計(論文)題 目 C語言學籍管理系統專 業 應用電子技術 班 次 08221 姓 名 董 映 指導老師 易興兵 成都電子機械高等專科學校二0一一年五月PAGE 3C語言學籍管理系統摘 要:本系統依據開發要求主要應用于教育系統,完成對日常的教育工作中學生成績檔案的數字化管理。開發本系統可使學院教職員工減輕工作壓力,比較系統地對教務、教學上的各項服務和信息進行管理,同時,可以減少勞動力的使用,加快查詢速度、加強管理,以及國家各部門關于信息化的步伐,使各項管理更加規范化。目前,學校工作繁雜、資料重多,雖然各類管理信
2、息系統已進入高校,但還未普及,而對于學生成績管理來說,目前還沒有一套完整的、統一的系統。因此,開發一套適和大眾的、兼容性好的系統是很有必要的。本系統在開發過程中,注意使其符合操作的業務流程,并力求系統的全面性、通用性,使得本系統不只適用于一家教育機構。在開發方法的選擇上,選擇了生命周期法與原型法相結合的方法,遵循系統調查研究、系統分析、系統設計和系統實施四個主要階段進行設計,而在具體的設計上,采取了演化式原型法,隨著用戶的使用及對系統了解的不斷加深,對某一部分或幾部分進行重新分析、設計、實施。本論文主要從系統分析、系統設計、系統實施與使用等幾個方面進行介紹【關鍵詞】 成績管理 成績查詢 C語言
3、 面向過程C Language Registration Management SystemAbstract: This system according to the development requirements are mainly applied in education system of education, the daily work of the digital archives management of student performance. This system can make the college development staff to reduce th
4、e working pressure, educational and teaching to the various services and information management, also can reduce the use of force, accelerate query speed, strengthen management, as well as the national departments about the pace of normalization, make each management standardized.At present, the sch
5、ool work multifarious, material more, though various management information system has entered the university, but has not been popular, and for students performance management, it has been a complete and unified system. Therefore, the development of a suitable and the populace, compatibility good s
6、ystem is very necessary.This system in the process of development, pay attention to the operation of the business process, and strive to system of comprehensive, generalization, makes this system not only applicable to a education institutions. On the choice of methods in the development life cycle
7、method, a method of combining with the prototype, follow the system research and systematic analysis, system design and system implementation, four main stages, and the specific design in the design, taking the evolution as users of prototype, the use of system and the deepening understanding of a p
8、art or a few parts for analysis, design and implementation. This thesis mainly from the system analysis, system design and system implementation and use etc.【Key Words】Achievement ManagementAchievement QueryC Programming Language Procedure-Oriented目錄 TOC o 1-2 h z u HYPERLINK l _Toc293002554 第1章 緒 論
9、 PAGEREF _Toc293002554 h 1 HYPERLINK l _Toc293002555 1.1 學籍管理系統概述 PAGEREF _Toc293002555 h 1 HYPERLINK l _Toc293002556 1.2 面向過程編程的基礎知識 PAGEREF _Toc293002556 h 2 HYPERLINK l _Toc293002557 第2章 需求分析 PAGEREF _Toc293002557 h 5 HYPERLINK l _Toc293002558 2.1 目標 PAGEREF _Toc293002558 h 5 HYPERLINK l _Toc2930
10、02559 2.2 要求 PAGEREF _Toc293002559 h 5 HYPERLINK l _Toc293002560 2.3 學生成績管理系統的功能 PAGEREF _Toc293002560 h 6 HYPERLINK l _Toc293002561 第3章模塊設計 PAGEREF _Toc293002561 h 7 HYPERLINK l _Toc293002562 3.1主模塊 PAGEREF _Toc293002562 h 7 HYPERLINK l _Toc293002563 3.2 添加學生信息 PAGEREF _Toc293002563 h 7 HYPERLINK l
11、 _Toc293002564 3.3 顯示學生信息 PAGEREF _Toc293002564 h 7 HYPERLINK l _Toc293002565 3.4 排序學生信息 PAGEREF _Toc293002565 h 7 HYPERLINK l _Toc293002566 3.5 查找學生信息 PAGEREF _Toc293002566 h 8 HYPERLINK l _Toc293002567 第4章 主要數據結構 PAGEREF _Toc293002567 h 9 HYPERLINK l _Toc293002568 第5章 流程圖 PAGEREF _Toc293002568 h 1
12、1 HYPERLINK l _Toc293002569 第6章 源代碼 PAGEREF _Toc293002569 h 12 HYPERLINK l _Toc293002570 6.1 數據結構與函數聲明的頭文件 PAGEREF _Toc293002570 h 12 HYPERLINK l _Toc293002571 6.2主控程序模塊 PAGEREF _Toc293002571 h 13 HYPERLINK l _Toc293002572 6.3添加學生模塊 PAGEREF _Toc293002572 h 20 HYPERLINK l _Toc293002573 6.4顯示學生模塊 PAGE
13、REF _Toc293002573 h 21 HYPERLINK l _Toc293002574 6.5 對學生進行排序模塊 PAGEREF _Toc293002574 h 22 HYPERLINK l _Toc293002575 6.6 查找學生模塊 PAGEREF _Toc293002575 h 30 HYPERLINK l _Toc293002576 參 考 文 獻 PAGEREF _Toc293002576 h 35 HYPERLINK l _Toc293002577 謝 辭 PAGEREF _Toc293002577 h 36 PAGE 44第1章 緒 論本章介紹學生學籍管理系統的有
14、關知識、面向過程的編程技術以及應用程序的開發方法和開發過程等基礎理論知識,這是深入了解后續內容的必要準備。1.1 學籍管理系統概述1.1.1 管理信息系統的概念管理信息系統(Management Information Systems,簡稱MIS),是一個不斷發展的新型學科,MIS的定義隨著計算機技術和通信技術的進步也在不斷更新,在現階段普遍認為MIS 是人為或計算機設備以及其他信息處理手段組成并用于管理信息的系統。包括以下幾個基本概念:(1) MIS的對象就是信息。信息是經過加工的對決策者有價值的數據。信息的主要特征是來源分散,數量龐大。信息來源于生產第一線、社會環境、市場以及行政管理等部門
15、。信息具有時間性。(2) 系統是由相互聯系、相互作用的若干要素按一定的規則組成并具有一定功能的整體。 系統由輸入、處理、輸出、反饋、控制等五個基本要素組成。(3) 管理信息由信息的采集、信息的傳遞、信息的儲存、信息的加工、信息的維護和信息的使用等五個方面組成。 MIS包括計算機、網絡通信設備等硬件成分,也包括操作系統、應用軟件包等軟件成分,并隨著計算機技術和通信技術的迅速發展還會出現更多的內容。1.1.2 課題背景該項目開發的軟件為學校學生信息管理系統軟件,是鑒于目前學校學生人數劇增,學生信息呈爆炸性增長的前提下,學校對學生信息管理的自動化與準確化的要求日益強烈的背景下構思出來的,該軟件設計完
16、成后可用于所有教育單位(包括學校,學院等等)的學生信息的管理. 目前社會上信息管理系統發展飛快,各個企事業單位都引入了信息管理軟件來管理自己日益增長的各種信息,學生管理系統也是有了很大的發展,商業化的學生信息管理軟件也不少.但本系統完全獨立開發,力求使系統功能簡潔明了,但功能齊全且易于操作1.1.3 目的背景與意義學生信息管理系統是一個教育單位不可缺少的部分。一個功能齊全、簡單易用的信息管理系統不但能有效地減輕學校相關工作人員的工作負擔,它的內容對于學校的決策者和管理者來說都至關重要。所以學生信息管理系統應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統人工的方式管理文件檔案
17、、統計和查詢數據,這種管理方式存在著許多缺點,如:效率低、保密性差,人工的大量浪費;另外時間一長,將產生大量的文件和數據,這對于查找、更新和維護都帶來了不少困難。隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發揮著來越重要的作用。作為計算機應用的一部分,使用計算機對學校的各類信息進行管理,具有手工管理所無法比擬的優點.例如:檢索迅速、查詢方便、效率高、可靠性好、存儲量大、保密性好、壽命長、成本低等。這些優點能夠極大地提高學校信息管理的效率,也是一個單位科學化、正規化管理,與世界接軌的重要條件。1.1.3 項目開發的目標 建立學生信息管理系
18、統,采用計算機對學生信息進行管理,進一步提高辦學效益和現代化水平。幫助廣大教師提高工作效率,實現學生信息管理工作流程的系統化、規范化和自動化。1.2 面向過程編程的基礎知識1.2.1 面向過程基本概念面向過程其實是最為實際的一種思考方式,就是算面向對象的方法也是含有面向過程的思想.可以說面向過程是一種基礎的方法.它考慮的是實際的實現.一般的面向過程是從上往下步步求精.所以面向過程最重要的是模塊化的思想方法.對比較面向對象,面向對象的方法主要是把事物給對象化,對象包括屬性與行為.當程序規模不是很大時,面向過程的方法還會體現出一種優勢,因為程序的流程很清楚,按著模塊與函數的方法可以很好的組織.1.
19、2.2 使用面向過程的C語言簡介1. C語言C言是一種面向過程的計算機程序設計語言,它是目前眾多計算機語言中舉世公認的優秀的結構程序設計語言之一。它由美國貝爾研究所的D.M.Ritchie于1972年推出。1978后,C語言已先后被移植到大、中、小及微型機上。 C語言發展如此迅速,而且成為最受歡迎的語言之一,主要因為它具有強大的功能。許多著名的系統軟件,如DBASE 都是由C 語言編寫的。用C 語言加上一些匯編語言子程序,就更能顯示C 語言的優勢了,像PC- DOS 、WORDSTAR等就是用這種方法編寫的。2. C 語言特點:C語言是一種成功的系統描述語言,用C語言開發的UNIX操作系統就是
20、一個成功的范例;同時C語言又是一種通用的程序設計語言,在國際上廣泛流行。世界上很多著名的計算公司都成功的開發了不同版本的C語言,很多優秀的應用程序也都使用C語言開發的,它是一種很有發展前途的高級程序設計語言。1. C是中級語言。它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、字節和地址進行操作, 而這三者是計算機最基本的工作單元。 2.C是結構式語言。結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便于使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,并具有
21、多種循環、條件語句控制程序流向,從而使程序完全結構化。3.C語言功能齊全。具有各種各樣的數據類型,并引入了指針概念,可使程序效率更高。另外C語言也具有強大的圖形功能,支持多種顯示器和驅動器。而且計算功能、邏輯判斷功能也比較強大,可以實現決策目的的游戲。4. C語言適用范圍大。適合于多種操作系統,如Windows、DOS、UNIX等等;也適用于多種機型。 C語言對編寫需要硬件進行操作的場合,明顯優于其它解釋型高級語言,有一些大型應用軟件也是用C語言編寫的。 C語言具有繪圖能力強,可移植性,并具備很強的數據處理能力,因此適于編寫系統軟件,三維,二維圖形和動畫。它是數值計算的高級語言。5.C語言文件
22、由數據序列組成,可以構成二進制文件或文本文件 常用的C語言IDE(集成開發環境)有Microsoft Visual C+,Dev-C+,Code:Blocks,Borland C+,Watcom C+ ,Borland C+ Builder,GNU DJGPP C+ ,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free,win-tc 等等 對于一個初學者,Microsoft Visual C+是一個比較好的軟件。界面友好,功能強大,調試也很方便。第2章 需求分析學籍管理系統應具有如下1、能錄入學生的基本信息,包括學號、姓名、專業、年級、性別和出生日期信息
23、,保存到結構體數組中。2、能根據輸入的學號查找學生,進行信息的修改。3、能根據輸入的學號從結構體數組中刪除學生的記錄。4、實現查詢功能,能根據輸入的學號或年級在屏幕上顯示相應的學生信息。5、能在屏幕上以列表的方式輸出所有學生的信息。2.1 目標(1)掌握和利用C語言進行程序設計的能力。(2)理解和運用結構化程序設計的思想和方法。(3)掌握開發一個小型實用系統的基本方法。(4)學會調試一個較長程序的基本方法。(5)掌握書寫程序設計開發文檔的能力(書寫課程設計報告)。2.2 要求(1)用C語言實現系統。(2)利用結構體鏈表實現學生成績的數據結構設計。(3)系統具有增加、查詢、插入、排序等基本功能。
24、(4)系統的各個功能模塊要求用文件的形式實現。(5)完成設計任務并書寫課程設計報告。(6)將學生成績信息存在文件中。2.3 學生成績管理系統的功能1-按學號查詢學生信息2-按姓名查詢學生信息3-顯示所有學生信息4-根據學號、姓名、單科成績進行排序5-添加學生信息6-刪除學生信息7-修改學生信息8-保存學生信息文件9-讀入學生信息文件0-退出此項目主要考察我們對結構體、指針、文件的操作,以及C語言算法的掌握,所以完成此題目要求較高的設計能力,尤其是要有大局意識。如何調試程序也非常重要,通過這個程序可學到以前調試程序沒有的經驗。模塊設計將學生成績管理系統劃分為以下幾個模塊主模塊功能概述:1. 提供
25、系統菜單的顯示功能2. 提供打開文件,并導入文件記錄的功能3. 提供保存文件信息的功能3.2 添加學生信息功能:1 根據輸入的相關信息,將學生信息添加到單向鏈表中 3.3 顯示學生信息功能:1. 將鏈表中的所有信息完全顯示3.4 排序學生信息功能:(排序分為升序和降序兩種排序方式)1. 根據學號進行排序2. 根據姓名進行排序3. 根據單科成績進行排序4. 根據平均分進行排序3.5 查找學生信息功能:(查找學生信息包含根據輸入學號進行查找和根據輸入的姓名進行查找兩種方式,并根據返回的學生信息,進行以下三種操作)1. 查詢學生信息,直接返回找到的信息2. 修改學生信息,根據找到的學生信息,對其進行
26、修改3. 刪除學生信息,根據找到的相關學生信息,從鏈表中刪除這條記錄第4章 主要數據結構 程序設計中用到的學生信息結構體類型在單獨的頭文件stu.h中定義相應的數據結構體類型,全局變量,和宏名:LEN 記錄結構體的大小定義學生結構體 STU,包含相關的學生信息struct student char number10; char name10; char sex; int score5; /用于記錄5門課程的成績 float average; /平均分 struct student *next; /下個結點;typedef struct student STU;定義*head全局指針,作為鏈表的
27、頭結點static STU *head=NULL; /全局指針定義fomat字符串變量,作為錄入文件的數據格式char *fomat=%-10s%-10s%2c%4d%4d%4d%4d%4d%5.1fn;定義shouldsave全局變量,判斷是否需要保存資料(0為不保存,1為保存)int shouldsave = 0; 各相關函數的聲明extern void append_record(); /添加記錄extern void show_record(); /輸出全部記錄extern void delete_record(); /刪除記錄extern void change_record();
28、/更改記錄extern void inquire_record(); /查詢記錄extern void sort_record(); /記錄排序第5章 流程圖圖1.1第6章 源代碼6.1 數據結構與函數聲明的頭文件stu.h頭文件:#ifndef STU_H#define STU_H#include#include#include#define LEN sizeof(STU) /宏,結構體的大小struct student char number10; char name10; char sex; int score5; /用于記錄5門課程的成績 float average; /平均分 str
29、uct student *next; /下個結點;typedef struct student STU;static STU *head=NULL; /全局指針,作為鏈表的頭結點char *fomat=%-10s%-10s%2c%4d%4d%4d%4d%4d%5.1fn;/錄入文件的數據格式int shouldsave = 0;/判斷是否需要保存資料的全局變量extern void append_record(); /添加記錄extern void show_record(); /輸出全部記錄extern void delete_record(); /刪除記錄extern void chang
30、e_record(); /更改記錄extern void inquire_record(); /查詢記錄extern void sort_record(); /記錄排序#endif 主控程序模塊main.c源文件:#includestu.h#includesort.c#includeshow.c#includeappend.c#includefind.cvoid main(void) void save();void menu();void openfile(); /用于打開文件,形成鏈表int sel;openfile(); /用于打開文件信息,輸出到鏈表里while(1) menu();
31、fflush(stdin); scanf(%d,&sel); /讀取輸入的sel switch(sel) case 0:save();break;case 1:append_record();break; /* 增加學生 */ case 2:show_record();break;/* 顯示學生 */ case 3:delete_record();break;/* 刪除學生 */ case 4:change_record();break;/* 修改學生 */ case 5:inquire_record();break;/* 查詢學生 */ case 6:sort_record();break;
32、/排序default: printf(n輸入無效,請重新輸入n);break; void save()STU *p=NULL;FILE *fp;char *filename=E:student.txt;static int count=0; char y_n;if(shouldsave) printf(n資料已更改,是否保存?(y or n)n); fflush(stdin); scanf(%c,&y_n); if(y_n!=y & y_n!=Y) printf(n%cn資料未保存n,y_n);/釋放空間 for(;head-next!=NULL;) p=head-next; head-nex
33、t=head-next-next; free(p); free(head);exit(0); if(head-next=NULL) printf(n記錄為空n); return; else p=head-next; if(fp=fopen(filename,w)=NULL) printf(n文件不能打開n);return; while(p!=NULL) fprintf(fp,fomat,p-number,p-name,p-sex,p-score0,p-score1,p-score2,p-score3,p-score4,p-average); p=p-next;count+; fclose(fp
34、); printf(保存完畢,共保存%d條記錄,是否繼續?n,count); fflush(stdin); scanf(%c,&y_n); if(y_n=y|y_n=Y) return; else /釋放空間 for(;head-next!=NULL;) p=head-next; head-next=head-next-next; free(p); free(head);printf(n你已退出系統,再見n); exit(0); else printf(n你已退出系統,再見n); exit(0);void menu()printf(n*n);printf(1.添加學生n);printf(2.顯
35、示學生n);printf(3.刪除學生n);printf(4.修改學生n);printf(5,查詢學生n);printf(6.排序學生n);printf(0.退出n);printf(*n);printf(請選擇);void openfile() /用于打開文件,形成鏈表FILE *fp;STU *p1=NULL,*p2=NULL;/,*temp=NULL;char y_n;static int count=0; /用于統計記錄數 char u8IsFileNull;fp=fopen(E:student.txt,r); if(fp=NULL) printf(n=提示:文件還不存在,是否創建?(y
36、/n)n); scanf(%c,&y_n); if(y_n=y|y_n=Y) fp=fopen(E:student.txt,w); else printf(n=提示:沒有創建文件n); exit(0); printf(n=提示:創建完成n); head=(STU *)malloc(LEN);/創建完成后還是要建立統一的頭結點,方便后續程序使用。 head-next=NULL; fclose(fp); return; printf(n=提示:文件已經打開,正在導入記錄n); head=(STU *)malloc(LEN);p2=head; /用P2來指向表尾,p1來申請空間head-next=N
37、ULL; u8IsFileNull = fgetc(fp);if(u8IsFileNull=EOF) printf(文件為空n); return; rewind(fp);while(!feof(fp) p1=(STU *)malloc(LEN); fscanf(fp,%s %s %c %d %d %d %d %d %fn,p1-number,p1-name,&p1-sex,&p1-score0,&p1-score1,&p1-score2,&p1-score3,&p1-score4,&p1-average); p1-next=NULL; p2-next=p1; p2=p1; count+;fcl
38、ose(fp);printf(n=提示:記錄導入完畢,共導入%d條記錄.n,count); 添加學生模塊append.c源程序文件:void append_record() STU *p1=NULL,*p2=NULL;/用P1來申請空間,P2來指向表尾 char y_n=y; int count=0; for(p2=head;p2-next!=NULL;p2=p2-next)/找到表尾; while(y_n=y|y_n=Y) p1=(STU *)malloc(LEN); printf(請輸入學號 姓名 性別 語文 數學 英語 計算機 C語言 的信息,以空格分開n); fflush(stdin)
39、; scanf(%s %s %c %d %d %d %d %d,p1-number,p1-name,&(p1-sex),&p1-score0,&p1-score1,&p1-score2,&p1-score3,&p1-score4); p1-average=(float)(p1-score0+p1-score1+p1-score2+p1-score3+p1-score4)/5; p1-next=NULL; p2-next=p1; p2=p1; count+; printf(n添加完成,共添加%d條記錄,是否繼續添加?Y/Nn,count); shouldsave = 1; fflush(stdi
40、n); scanf(%c,&y_n); 顯示學生模塊show.c源程序文件:void show_record() STU *p=NULL; if(head-next=NULL) printf(暫無記錄!); else printf(n學號 姓名 性別 語文 數學 英語 計算機 C語言 平均分n); for(p=head-next;p!=NULL;p=p-next) printf(fomat,p-number,p-name,p-sex,p-score0,p-score1,p-score2,p-score3,p-score4,p-average); 6.5 對學生進行排序模塊sort.c源程序文件
41、:void sort_record() STU *p=head-next,*pre=head,*p_free=NULL;/原鏈表的。 STU *temp=NULL,*q=NULL,*beq=NULL,*headq=(STU *)malloc(LEN); /新的鏈表 int sel,sort; beq=headq; beq-next=q; /int count=0; /總的記錄數 if(head-next=NULL) printf(n沒有找到任何記錄!n); else printf(1:按學號排序n); printf(2:按姓名排序n); printf(3:按性別排序n); printf(4:按
42、語文排序n); printf(5:按數學排序n); printf(6:按英語排序n); printf(7:按計算機排序n); printf(8:按C語言排序n); printf(9:按平均分排序n); printf(請選擇排序關鍵字和方式,以空格分開n1為升序,0為降序n); fflush(stdin); scanf(%d %d,&sel,&sort); switch(sel) case 1: for(;head-next!=NULL;)/讀原鏈表 temp=(STU *)malloc(LEN);*temp=*head-next;/temp成為要加入鏈表的數據點 beq=headq,q=beq
43、-next;if(sort=1) for(;(q!=NULL)&(strcmp(temp-number,q-number)=0);)/正序 beq=q; q=q-next; else for(;(q!=NULL)&(strcmp(temp-number,q-number)next; temp-next=beq-next;beq-next=temp;p_free=head-next;head-next=head-next-next; free(p_free); free(head); /釋放頭結點原內存區 head=headq; /頭結點指向新的內存區 shouldsave = 1; break
44、; case 2: for(;head-next!=NULL;)/讀原鏈表 temp=(STU *)malloc(LEN);*temp=*head-next;/temp成為要加入鏈表的數據點 beq=headq,q=beq-next;if(sort=1) for(;(q!=NULL)&(strcmp(temp-name,q-number)next; else for(;(q!=NULL)&(strcmp(temp-name,q-number)=0);)/隆序 beq=q; q=q-next; temp-next=beq-next;beq-next=temp;p_free=head-next;h
45、ead-next=head-next-next; free(p_free); free(head); head=headq; shouldsave = 1; break; case 3: for(;head-next!=NULL;)/讀原鏈表 temp=(STU *)malloc(LEN);*temp=*head-next;/temp成為要加入鏈表的數據點 beq=headq,q=beq-next;if(sort=1) for(;(q!=NULL)&(temp-sexq-sex);)/正序 beq=q; q=q-next; else for(;(q!=NULL)&(temp-sexsex);)
46、/隆序 beq=q; q=q-next; temp-next=beq-next;beq-next=temp;p_free=head-next;head-next=head-next-next; free(p_free); free(head); head=headq; shouldsave = 1; break; case 4: case 5: case 6: case 7: case 8: for(;head-next!=NULL;)/讀原鏈表 temp=(STU *)malloc(LEN);*temp=*head-next;/temp成為要加入鏈表的數據點 beq=headq,q=beq-
47、next;if(sort=1) for(;(q!=NULL)&(temp-scoresel-4q-scoresel-4);)/正序 beq=q; q=q-next; else for(;(q!=NULL)&(temp-scoresel-4scoresel-4);)/隆序 beq=q; q=q-next; temp-next=beq-next;beq-next=temp;p_free=head-next;head-next=head-next-next; free(p_free); free(head); head=headq; shouldsave = 1; break; case 9: fo
48、r(;head-next!=NULL;)/讀原鏈表 temp=(STU *)malloc(LEN);*temp=*head-next;/temp成為要加入鏈表的數據點 beq=headq,q=beq-next;if(sort=1) for(;(q!=NULL)&(temp-averageq-average);)/正序 beq=q; q=q-next; else for(;(q!=NULL)&(temp-averageaverage);)/隆序 beq=q; q=q-next; temp-next=beq-next;beq-next=temp;p_free=head-next;head-next
49、=head-next-next; free(p_free); free(head); head=headq; shouldsave = 1; break; printf(n排序后的記錄信息:n學號 姓名 性別 語文 數學 英語 計算機 C語言 平均分n); for(q=headq-next;q!=NULL;q=q-next) printf(fomat,q-number,q-name,q-sex,q-score0,q-score1,q-score2,q-score3,q-score4,q-average); 6.6 查找學生模塊find.c源程序文件:(包含查詢學生記錄、刪除學生記錄、更改學生記
50、錄)STU *find() /用于找到需要的指針char name20,number10;static int sel;STU *pre=NULL;printf(請輸入查詢方式1.按學號 2.按姓名n); scanf(%d,&sel);if(head-next=NULL)return pre;if(sel=1) printf(請輸入學號n); scanf(%s,number); for(pre=head;pre-next!=NULL;pre=pre-next) if(!strcmp(pre-next-number,number)return pre; else if(sel=2) printf
51、(請輸入姓名n); scanf(%s,name); for(pre=head;pre-next!=NULL;pre=pre-next) if(!strcmp(pre-next-name,name) return pre; return pre;void inquire_record()/查找記錄 STU *p=find(); if(p=NULL)|(p-next=NULL) printf(沒有找到該記錄!); else printf(n要查詢的記錄信息:n學號 姓名 性別 語文 數學 英語 計算機 C語言 平均分n); printf(fomat,p-next-number,p-next-nam
52、e,p-next-sex,p-next-score0,p-next-score1,p-next-score2,p-next-score3,p-next-score4,p-next-average); void delete_record() /刪除記錄 STU *temp=NULL; STU *p=find(); if(p=NULL)|(p-next=NULL) printf(沒有找到該記錄!n); else printf(n要刪除的記錄信息:n學號 姓名 性別 語文 數學 英語 計算機 C語言 平均分n); printf(fomat,p-next-number,p-next-name,p-n
53、ext-sex,p-next-score0,p-next-score1,p-next-score2,p-next-score3,p-next-score4,p-next-average); temp=p-next; p-next=p-next-next; free(temp); shouldsave = 1; void change_record()/更改記錄 STU *p1=find(); if(p1=NULL)|(p1-next=NULL) printf(沒有找到該記錄!); else printf(n要修改的記錄信息:n學號 姓名 性別 語文 數學 英語 計算機 C語言 平均分n); p
54、rintf(fomat,p1-next-number,p1-next-name,p1-next-sex,p1-next-score0,p1-next-score1,p1-next-score2,p1-next-score3,p1-next-score4,p1-next-average); printf(n請輸入學號 姓名 性別 語文 數學 英語 計算機 C語言 的信息,以空格分開n); fflush(stdin); scanf(%s %s %c %d %d %d %d %d,p1-next-number,p1-next-name,&p1-next-sex,&p1-next-score0,&p1
55、-next-score1,&p1-next-score2,&p1-next-score3,&p1-next-score4); p1-next-average=(float)(p1-score0+p1-score1+p1-score2+p1-score3+p1-score4)/5; printf(n修改完成n); shouldsave = 1; 參 考 文 獻1 郭友強編著. C語言程序設計 試驗指導與課程設計. 北京:清華大學出版社,19992 黃維通編著. C語言程序設計習題解析與應用案例分析. 北京:清華大學出版社,20043 譚浩強編著. C程序設計. 北京:清華大學出版社,19964
56、哈比森編著. C語言參考手冊. 北京:機械工業出版社,20015 P.J.Plauger編著. C標準庫. 北京:人民郵電出版社,20046 GregPerry編著. C標準庫. 北京:人民郵電出版社,20017 P.J.Plauger編著. 寫給大家看的C語言. 北京:人民郵電出版社,2010謝 辭 在這里首先感謝老師的悉心指導、教誨、督促和幫助。讓我的學生成績管理系統這個課程設計經過幾周的時間和自己不懈的努力按時完成。課程設計是培養學生綜合運用所學知識 ,發現,提出,分析和解決實際問題,鍛煉實踐能力的重要環節,是對我們的實際工作能力的具體訓練和考察過程.隨著科學技術發展的日新月異,當今計算
57、機應用在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握程序開發技術是十分重要的,而C語言又是最常見,功能最強大的一種高級語言,因此做好C語言課程設計是十分必要的。 回顧起此次課程設計,至今我們仍感慨頗多,的確,自從拿到題目到完成整個編程,從理論到實踐,在這幾周里,可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我們懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問
58、題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發現了自己的不足之處,對一些前面學過的知識理解得不夠深刻,掌握得不夠牢固,比如說結構體,指針,鏈表通過這次課程設計之后,我們把前面所學過的知識又重新溫故了一遍。通過學習C語言課程設計使我了解到C語言是一門實踐性很強的課程,以及C語言的基本語法規則.程序設計.以及解題的全過程,加深對C語言的了解,得到程序設計的基本方法和技巧的訓練,從而更加深一步的對知識的了解,真正能使C語言這個強有力的編程工具去解決實際問題。 通過這次課程設計收獲知識,提高能力的同時,我也學到了很多人生的哲理,懂得怎么樣去制定計劃,怎么樣去
59、實現這個計劃,并掌握了在執行過程中怎么樣去克服心理上的不良情緒。因此在以后的生活和學習的過程中,我一定會把課程設計的精神帶到生活中,不畏艱難,勇往直前使我對C語言有了更進一步的認識和了解,要想學好它要重在實踐。附錄資料:不需要的可以自行刪除C語言編譯環境中的調試功能及常見錯誤提示調試功能1常用健 : 激活系統菜單: 將光標在編輯窗口和、信息窗口之間切換: 加載一個文件+: 查看程序運行結果: 得到有關編輯器在線幫助+: 得到有關C語言的在線幫助+: 終止正在運行的程序2塊操作 KB: 定義塊首 KK: 定義塊尾 KV: 塊移動 KC: 塊復制 KY: 塊刪除 KH: 取消塊定義3查找、替換和刪
60、除操作 QF: 查找字符串 QA: 查找并替換字符串 Option: G(全程), B(向文件頭), N(直接替換) Y : 刪除一行 QY: 刪除從光標位置到行末的所有字符編譯中的常見錯誤例析(1)警告類錯誤 XXXdeclare but never used 變量XXX已定義但從未用過。 XXXis assigned a value which is never used 變量XXX已賦值但從未用過。 Code has no effect 程序中含有沒有實際作用的代碼。 Non-portable pointer conversion 不適當的指針轉換,可能是在應該使用指針的地方用了一個非0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農業電商用戶體驗研究試題及答案
- 關注土木工程可持續性發展的相關考試題目及答案
- 專升本政治試題及答案
- 勞動合同管理試題及答案
- 2025年樂理音符發展試題及答案
- 光譜分析的物理過程試題及答案
- 中國鋁制汽車運輸槽車行業市場發展前景及發展趨勢與投資戰略研究報告2025-2028版
- 農產品電商的線上線下比例分析試題及答案
- 中國葫蘆鞋帶行業市場發展前景及發展趨勢與投資戰略研究報告2025-2028版
- 土木工程思維導圖分析試題及答案
- 新北師大版八年級下冊數學教案+教學計劃大全
- 2025-2030中國生物質能發電行業市場現狀供需分析及投資評估規劃分析研究報告
- 固體廢物運輸合同協議
- 夫妻債務轉讓協議書范本
- 普法宣講楊立新-民法典-人格權 編【高清】
- 2023中國電子科技集團有限公司在招企業校招+社招筆試參考題庫附帶答案詳解
- 2025年上半年浙江省杭州市交通運輸局所屬事業單位統一招聘20人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年房地產經紀人(業務操作)考前必刷綜合題庫(800題)附答案
- 2024-2025學年八年級下學期道德與法治期中模擬試卷(一)(統編版含答案解析)
- GB/T 26354-2025旅游信息咨詢服務
- SL631水利水電工程單元工程施工質量驗收標準第1部分:土石方工程
評論
0/150
提交評論