版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、.華中科技大學(xué)文華學(xué)院數(shù) 據(jù) 結(jié) 構(gòu)課 程 設(shè) 計 報 告題 目:學(xué)生信息管理系統(tǒng)專 業(yè):計算機(jī)應(yīng)用與技術(shù)學(xué) 號:姓 名:指導(dǎo)老師: 時間:一、總體框架圖1、 題目:學(xué)生信息管理系統(tǒng)2、 設(shè)計內(nèi)容及要求: 內(nèi)容:完成簡單的學(xué)生信息管理系統(tǒng) 要求: (1)學(xué)生信息包括:學(xué)號、姓名、數(shù)學(xué)成績、英語成績、數(shù)構(gòu)成績; (2)用鏈表存放學(xué)生信息; (3)實現(xiàn)簡單的菜單調(diào)用; (4)程序的功能包括: 學(xué)生信息鏈表的建立; 學(xué)生信息的顯示; 學(xué)生信息的查詢; 學(xué)生信息的刪除; 學(xué)生信息的插入;編寫算法,以實現(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)所使用的變量進(jìn)行定義,對函數(shù)進(jìn)行聲明 模塊二:結(jié)構(gòu)體的建立,定義學(xué)生的學(xué)號,名字,和各成績 模塊三:學(xué)生信息系統(tǒng)使用菜單聲明函數(shù)void menu(),對整個系統(tǒng)進(jìn)行明 模塊四: 鏈表的建立,用void
3、 creat()來建立鏈表 模塊五:顯示學(xué)生信息,聲明void print()顯示學(xué)生的信息 模塊六:學(xué)生信息的查找 聲明void search()為查找函數(shù),通過switch(a)設(shè)定用學(xué)號查找,用姓名查找兩個分支 模塊七:刪除學(xué)生信息通過void delete()實現(xiàn)學(xué)生信息的刪除, 確定要刪除的信息,再刪除掉。 模塊七: 插入學(xué)生信息,通過void insert()為插入函數(shù),通過switch(a)插入到指定學(xué)生的后面。模塊八:學(xué)生信息按學(xué)號排序 聲明void sort()將錄入學(xué)生系按升序排列,用的是“冒泡排序法”實現(xiàn)排序 四、系統(tǒng)設(shè)計流程圖學(xué)生信息管理系統(tǒng)菜單選擇退出菜單系統(tǒng)建立鏈表
4、顯示學(xué)生信息查詢學(xué)生信息刪除某個學(xué)生信息插入一個學(xué)生信息 五、源代碼#include stdio.h#include stdlib.h#include string.h#define STUDENT 2typedef struct student int num; /學(xué)號 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(請輸入學(xué)生的學(xué)號、姓名、高數(shù)、英語、數(shù)據(jù)結(jié)構(gòu):n); while(numbernum,p2-name,&p2-math,&p2-English,&p2-Data); /輸入學(xué)生信息 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(鏈表中所有的學(xué)生信息如下: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(需要查找的學(xué)生學(xué)號為:); scanf(%d,&num_); while(p!=NULL) if(p-num=num_) printf(學(xué)號為%d的學(xué)生的信息如下: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(需要查找的學(xué)生姓名為:); scanf(%s,na_me); while(p!=NULL) if(!(strcmp(p-name,na_me) printf(姓名為%s的學(xué)生的信息如下: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(請輸入你要插入的學(xué)生的學(xué)號、姓名、高數(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(該學(xué)號已經(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(請輸入要刪除的學(xué)生的學(xué)號:
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(| 學(xué)生信息管理系統(tǒng) |n); printf(| 0、 退出系統(tǒng) |n); printf(| 1、 建立鏈表 |n); printf(| 2、 顯示鏈表 |n); printf(| 3、 查找鏈表中的
11、某個學(xué)生信息 |n); printf(| 4、 刪除鏈表中指定學(xué)號的學(xué)生 |n); printf(| 5、 指定的位置上插入一個學(xué)生 |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(請選擇是按學(xué)號查找還是按姓名查找,若是學(xué)號就按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é)果建立鏈表顯示鏈表查詢學(xué)生信息按學(xué)號查按姓名查刪除信息插入信息退出系統(tǒng)七、心得體會 這次的學(xué)生信息管理系統(tǒng)的設(shè)計中,使我懂得課堂上的知識,必須要通過實踐操作才能掌握。在練習(xí)中,遇到一些問題,需要具體分析,具體操作,不斷調(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度farmhouse木門安裝服務(wù)合同
- 深圳購房合同樣本
- 住宅房屋購買合同簡單版
- 2024年《軟件許可合同中不可抗力事件的處理》
- 廣告公司授權(quán)合同模板
- 2024年范文承包土地協(xié)議書
- 2024年發(fā)光字合同
- 跨境客運線路租賃合同
- 共建文明施工項目協(xié)議書
- 親子園與醫(yī)療機(jī)構(gòu)合作協(xié)議書
- 國開2024年《中國法律史》平時作業(yè)1-3答案
- 鋼結(jié)構(gòu)策劃書(范本)
- 急性腎衰竭與crrt治
- 焦化廠生產(chǎn)工序及工藝流程圖
- 嘔吐(急性胃腸炎)診療指南(制訂)編制說明排版
- 江堤道路工程施工方案#江蘇
- (外研版)初中英語語法匯總[新版]
- 李燕璇植樹問題卡通版5
- 有砟軌道鋪設(shè)的施工講解
- 煙草專賣食堂燃?xì)庑孤都盎馂?zāi)事故現(xiàn)場應(yīng)急處置方案
- 國家電網(wǎng)公司十八項反措
評論
0/150
提交評論