學生信息管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第1頁
學生信息管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第2頁
學生信息管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第3頁
學生信息管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第4頁
學生信息管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、.華中科技大學文華學院數(shù) 據(jù) 結(jié) 構(gòu)課 程 設(shè) 計 報 告題 目:學生信息管理系統(tǒng)專 業(yè):計算機應(yīng)用與技術(shù)學 號:姓 名:指導(dǎo)老師: 時間:一、總體框架圖1、 題目:學生信息管理系統(tǒng)2、 設(shè)計內(nèi)容及要求: 內(nèi)容:完成簡單的學生信息管理系統(tǒng) 要求: (1)學生信息包括:學號、姓名、數(shù)學成績、英語成績、數(shù)構(gòu)成績; (2)用鏈表存放學生信息; (3)實現(xiàn)簡單的菜單調(diào)用; (4)程序的功能包括: 學生信息鏈表的建立; 學生信息的顯示; 學生信息的查詢; 學生信息的刪除; 學生信息的插入;編寫算法,以實現(xiàn)基本要求。二、本程序用到的基本操作 InintList(&l):操作結(jié)果:構(gòu)造一個空的線性表L。De

2、stroList(&L)初始條件:線性表已存在。操作結(jié)果:銷毀線性表。ListInsert(&L,i,e)初始條件:線性表L已存在,操作結(jié)果:在L中第i 個位置之前插入新的數(shù)據(jù)元素e。L的長度加1.ListDelete(&L,i,e)初始條件:線性表L已存在且非空操作結(jié)果:刪除L的第i個數(shù)據(jù)元素,并用e返回其值,L的長度減1.ADT List三、模塊設(shè)計模塊一:頭文件,變量定義,函數(shù)的聲明對系統(tǒng)所使用的變量進行定義,對函數(shù)進行聲明 模塊二:結(jié)構(gòu)體的建立,定義學生的學號,名字,和各成績 模塊三:學生信息系統(tǒng)使用菜單聲明函數(shù)void menu(),對整個系統(tǒng)進行明 模塊四: 鏈表的建立,用void

3、 creat()來建立鏈表 模塊五:顯示學生信息,聲明void print()顯示學生的信息 模塊六:學生信息的查找 聲明void search()為查找函數(shù),通過switch(a)設(shè)定用學號查找,用姓名查找兩個分支 模塊七:刪除學生信息通過void delete()實現(xiàn)學生信息的刪除, 確定要刪除的信息,再刪除掉。 模塊七: 插入學生信息,通過void insert()為插入函數(shù),通過switch(a)插入到指定學生的后面。模塊八:學生信息按學號排序 聲明void sort()將錄入學生系按升序排列,用的是“冒泡排序法”實現(xiàn)排序 四、系統(tǒng)設(shè)計流程圖學生信息管理系統(tǒng)菜單選擇退出菜單系統(tǒng)建立鏈表

4、顯示學生信息查詢學生信息刪除某個學生信息插入一個學生信息 五、源代碼#include stdio.h#include stdlib.h#include string.h#define STUDENT 2typedef struct student int num; /學號 char name20; /姓名 int math;/高數(shù) int English;/英語 int Data;/數(shù)據(jù)結(jié)構(gòu) struct student *next;student;student *head=NULL;int length; /鏈表的長度void create() student *p1,*p2; lengt

5、h=0; int number=0; p1=(student *)malloc(sizeof(student); p1-num=-1; if(head=NULL) head=p1; printf(請輸入學生的學號、姓名、高數(shù)、英語、數(shù)據(jù)結(jié)構(gòu):n); while(numbernum,p2-name,&p2-math,&p2-English,&p2-Data); /輸入學生信息 if(p2-num=0) printf(鏈表創(chuàng)建完成!n); break; length+; /鏈表的長度 p1-next=p2; p2-next=NULL; p1=p1-next; number+; return ;vo

6、id display() student *p=head-next; printf(鏈表中所有的學生信息如下:n); while(p!=NULL) printf(%d %s %d %d %dn,p-num,p-name,p-math,p-English,p-Data); p=p-next; return ;void search() int num_; student *p=head-next; printf(需要查找的學生學號為:); scanf(%d,&num_); while(p!=NULL) if(p-num=num_) printf(學號為%d的學生的信息如下:n,num_); pr

7、intf(%d %s %d %d %dn,p-num,p-name,p-math,p-English,p-Data); return; p=p-next; if(p=NULL) printf(無此記錄!n); return ;void search1() char na_me20; student *p=head-next; printf(需要查找的學生姓名為:); scanf(%s,na_me); while(p!=NULL) if(!(strcmp(p-name,na_me) printf(姓名為%s的學生的信息如下:n,na_me); printf(%d %s %d %d %dn,p-n

8、um,p-name,p-math,p-English,p-Data); return; p=p-next; if(p=NULL) printf(無此記錄!n); return ;void insert() int num_,i; student *p,*q; p=head; printf(請輸入你要插入位置: ); scanf(%d,&num_); if(num_length) printf(找不到要插入的位置n); return ; else printf(請輸入你要插入的學生的學號、姓名、高數(shù)、英語、數(shù)據(jù)結(jié)構(gòu):n); q=(student *)malloc(sizeof(student);

9、 scanf(%d %s %d %d %d,&q-num,q-name,&q-math,&q-English,&q-Data); while(p!=NULL) if(p-num=q-num) printf(該學號已經(jīng)存在,無法插入!n); return ; p=p-next; p=head; for(i=0;inext; q-next=p-next; p-next=q; length+; printf(插入成功!n); return ; void Delete() int num_; student *p,*q; q=head,p=head-next; printf(請輸入要刪除的學生的學號:

10、n); scanf(%d,&num_); while(p!=NULL) if(p-num=num_) q-next=p-next; free(p); length-; printf(刪除成功!n); return ; p=p-next; q=q-next; if(p=NULL) printf(找不到要刪除的編號!n); return ;void menu() printf(_n); printf(| 學生信息管理系統(tǒng) |n); printf(| 0、 退出系統(tǒng) |n); printf(| 1、 建立鏈表 |n); printf(| 2、 顯示鏈表 |n); printf(| 3、 查找鏈表中的

11、某個學生信息 |n); printf(| 4、 刪除鏈表中指定學號的學生 |n); printf(| 5、 指定的位置上插入一個學生 |n); printf(_n); return ;int main(void) int a; menu(); int choice; while(1) printf(請選擇相應(yīng)的功能:); scanf(%d,&a); switch(a) case 0: return 0; case 1: create(); menu(); break; case 2: if(head) display(); menu(); else printf(鏈表為空,請先建立鏈表!n);

12、 menu(); break; case 3: if(head) printf(請選擇是按學號查找還是按姓名查找,若是學號就按7,姓名按8n); scanf(%d,&choice); if(choice=7) search(); else search1(); menu(); else printf(鏈表為空,請先建立鏈表!n); menu(); break; case 4: if(head) Delete(); menu(); else printf(鏈表為空,請先建立鏈表!n); menu();break; case 5: if(head) insert(); menu(); else printf(鏈表為空,請先建立鏈表!n); menu(); break; default: break; system(pause); return 0;六、程序結(jié)果建立鏈表顯示鏈表查詢學生信息按學號查按姓名查刪除信息插入信息退出系統(tǒng)七、心得體會 這次的學生信息管理系統(tǒng)的設(shè)計中,使我懂得課堂上的知識,必須要通過實踐操作才能掌握。在練習中,遇到一些問題,需要具體分析,具體操作,不斷調(diào)試。在這過程中,遇到過很多問題。剛

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論