




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、海南大學數據結構課程設計題目:學生信息管理系統學 號:20142835320016姓名:侯孟禹年級:2014級學院:應用科技學院一系別:工學部專業:物聯網工程指導教師:梁建慧一完成日期: 2016年6月10日目錄 TOC o 1-5 h z HYPERLINK l bookmark7 o Current Document 中文摘要3English abstract4 HYPERLINK l bookmark10 o Current Document 方案分析5 HYPERLINK l bookmark13 o Current Document 程序設計6輸入輸出模塊6 HYPERLINK l
2、bookmark16 o Current Document 信息的錄入6信息的遍歷7 HYPERLINK l bookmark19 o Current Document 信息的查詢8管理模塊11 HYPERLINK l bookmark22 o Current Document 信息的刪除11 HYPERLINK l bookmark25 o Current Document 信息的修改12 HYPERLINK l bookmark28 o Current Document 信息的排序16時間復雜度17文件操作模塊18 HYPERLINK l bookmark31 o Current Docu
3、ment 數據寫入文件18 HYPERLINK l bookmark34 o Current Document 數據讀出文件19 HYPERLINK l bookmark37 o Current Document 測試22 HYPERLINK l bookmark40 o Current Document 結論27感謝28參考文獻28附錄:28中文摘要學生信息管理系統是人們日常生活中經常要用到的管理工具,它以文件的 方式保存用戶錄入的數據,并提供查詢功能供用戶查詢和使用學生信息管理系統。 本次設計的學生信息管理系統,支持基本的錄入、刪除、查找、修改和文件讀寫 等功能。此學生信息管理系統基于結構
4、化程序設計思想和所使用的C語言開發 環境與開發工具,并運用“軟件工程”和“數據結構”中的有關概念和方法,針 對具體設計題目和要求,分析功能要求,劃分功能模塊,用鏈表結構設計功能模 塊函數,以菜單方式調用相應功能模塊來實現信息和數據處理。關鍵詞:學生管理系統;順序表English abstractStudent information management system is often used in Peoples Daily life management tool, it saves the user input data in the form of documents, and pr
5、ovide the query function for the use of user queries and student information management system. The design of student information management system, support basic input, delete, search, modify, and read and write files, and other functions. The student information management system based on structur
6、ed programming ideas and the use of C language development environment and development tools, and using the software engineering and data structure of the relevant concepts and methods, in view of the specific design questions and requirements, analysis of functional requirements, the division of fu
7、nction modules, with chain table structure design, function module function, to call the corresponding function module menu way to implement the information and data processingKeywords: student management system; sequence listt方案分析經過對程序設計題目的分析可知,學生信息基本屬性包括學號、姓名、性別、 住址、聯系電話。整個程序的設計實現大致分為多個模塊,每一個模塊對應一
8、個 函數。在這些函數當中需要具有如下功能,學生信息的錄與刪除、查找和修改學 生信息、按學號排序函數等。讀取文件函數對其它函數的實現起輔助作用,主函 數及菜單函數控制程序的整體運行。在數據關系上,我采用了順序表的方案,順 序表是在計算機內存中以數組的形式保存的線性表,是指用一組地址連續的存儲 單元依次存儲數據元素的線性結構。線性表采用順序存儲的方式存儲就稱之為順 序表。順序表是將表中的結點依次存放在計算機內存中一組地址連續的存儲單元 中。本系統中以數組為存儲體,每一個數組元素為一個包含學生所有信息的結構 體,這在技術上與法律法規上都具有可行性。程序設計輸入輸出模塊信息的錄入/*/int inpu
9、t(Sqlist *q)int i,j;printf(輸入所要錄入個數:);scanf(%d,&i);for(j=q-length ;jlength;j+)printf(學號:);scanf(d,&(q-elemj.number);printf(姓名:);scanf(s,&();printf(性別:);scanf(s,&(q-elemj.sex);printf(地址:);scanf(s,&(q-elemj.adress);printf(電話號碼:);scanf(s,&(q-elemj.tlnumber);q-length=q-length +i;return OK;/*
10、/此函數功能:學生信息的錄入此函數功能:學生信息的錄入函數構思:用戶輸入需要錄入的學生信息的個數i。通過for語句控制輸入函數 的循環次數從而達到多次對學生信息的錄入。錄入的循環需要考慮到順序表原來 的長度和錄入后順序表的長度。函數返回值為OK或者ERROR,返回OK表示操作 成功,返回ERROR表示操作失敗。信息的遍歷int traverse(Sqlist *q)int i,j=q-length;if(!q-elem) return ERROR;for(i=0;ielemi.number);printf(姓名:%s”, );printf(性別:%s”,q-elemi.
11、sex );printf(學號:%d”,q-elemi.number);printf(姓名:%s”, );printf(性別:%s”,q-elemi.sex );printf(地址:%s”,q-elemi.adress);printf(電話號碼:sn”,q-elemi.tlnumber );printf(n);return OK;函數功能:對所有學生信息的遍歷函數構思:首先判斷順序表是否為空,為空則返回ERROR,操作失敗。由于已知 表長length,所以可以通過for循環語句,length為循環控制條件,依次輸出順 序表中的學生信息。信息的查詢/*/int seek(
12、Sqlist *q)查找函數int e,i=0,j=q-length;int choose;char s10;printf(1:學號查詢 2:姓名查詢n);printf(請輸入操作:);scanf(d,&choose);/分為學號查找和姓名查找switch(choose)(case 1:printf(輸入所要查詢的學號:);scanf(d,&e);while(q-elem i.number !=e)(i+;if(i=j)( printf(沒有該學生信息!n);return ERROR;printf( 學號:%d,q-elemi.number );printf(姓名:%s,q-elemi.nam
13、e );printf(性別:%s,q-elemi.sex );printf( 學號:%d,q-elemi.number );printf(姓名:%s, );printf(性別:%s,q-elemi.sex );printf(地址:%s,q-elemi.adress);printf(電話號碼:sn,q-elemi.tlnumber );return OK;case(2:printf(輸入所要查詢的姓名:);scanf(s,s);while(strcmp(q-elem ,s)i+;if(i=j)( printf(沒有該學生信息!n);return ERROR;p
14、rintf( 學號:%d,q-elemi.number );printf(姓名:%s, );printf(性別:%s,q-elemi.sex );printf(地址:%sn,q-elemi.adress);printf(電話號碼:sn,q-elemi.tlnumber );return OK;returnOK;/*/函數功能:學生信息的查詢函數功能:學生信息的查詢函數構思:對學生信息的查詢分為學號查詢和姓名查詢。這樣做的好處為,當我 們只知道學生學號與姓名其中一個信息的時候就可以方便的查詢到學生的全部 信息。函數體首先提示用戶選擇查詢方式,并通過switch()語句判斷
15、用戶想 要通過什么方式查詢信息。學號查詢所使用的是簡單的數字的比較,判斷學號是 否相同,從而達到查找的目的。如果學號相同,則輸出該學生的全部信息。否,則提示用戶沒有找到該學生的信息。姓名查找則是通過字符串比較函數strcmp(),比較用戶輸入的字符串與數據庫中的字符串是否有相同。若有,則輸出該 學生全部信息。否,則提示用戶沒有找到該學生的信息。管理模塊信息的刪除 /*/刪除函數int qdelete(Sqlist *q)刪除函數int e,i=0,j=q-length,k ;printf (-輸入所要刪除的學號:);scanf(d,&e);while(q-elem i.number !=e)(
16、i+;if(i=j)(printf(沒有該學生信息!n);returnERROR;printf( 學號:%d,q-elemi.number );printf(姓名:%s, );printf(性別:%s,q-elemi.sex );returnERROR;printf( 學號:%d,q-elemi.number );printf(姓名:%s, );printf(性別:%s,q-elemi.sex );printf(地址:%s,q-elemi.adress);printf(電話號碼:sn,q-elemi.tlnumber );k=j-i-1;whil
17、e(k-)(q-elem i=q-elem i+1;i+;(q-length)-;return OK;/*/5tLtej= leDLelJx,k;uiiiub. _1E I:*: ItultiplYIprm田;學%d n.n =q eLem i.I fn Itkpl(8T函數功能:學生信息的刪除函數構思:想要刪除學生信息,首先需要找到該學生所在線性表的位置。函數通 過比較學生學號的方式找到學生信息在順序表中的位置。然后將該學生的信息輸 出。線性表中的刪除就是簡單的后面的數組信息覆蓋前面的數組信息。所以只要 控制好刪除位置后面的數組元素前移的次數就可以達到對學生信息的刪除。這里 循環控制通過wh
18、ile語句,k為順序表長度減去刪除位置再減一,i控制數組元 素。最后,順序表長度減一,返回OK,表示函數操作成功。信息的修改/*/int alter(Sqlist *q)int e,i=0,j=q-length,choose,c;char s10,n10;printf(1:按學號查找并修改2:按姓名查找并修改n);printf(請輸入操作:);scanf(d,&choose);switch(choose)(/選擇需要修改的信息printf(輸入所要查找的學號:);scanf(%d,&e);while(q-elem i.number !=e)(i+;if(i=j)(printf(沒有該學生信息!
19、n);return ERROR;printf(學號:printf(學號:%dprintf(姓名:%sprintf(性別:%sprintf(地址:%s, );,q-elemi.sex );,q-elemi.adress);printf(電話號碼:sn,q-elemi.tlnumber );break;case 2:(printf(輸入所要查找的姓名:);scanf(s,s);while(strcmp(q-elem ,s)i+;if(i=j)(printf(沒有該學生信息!n);return ERROR;printf(學號:%d ,q-elemi.number
20、); printf(姓名:%s , );printf(性別:%s ,q-elemi.sex );printf(地址:%s ,q-elemi.adress);printf(電話號碼:sn,q-elemi.tlnumber );break;printf(1:修改學號2:修改姓名3:修改性別4:修改地址5: 修改電話號碼n);printf(請輸入操作:);scanf(%d,&c);switch(c)(iprintf(輸入新的學號:);scanf(d,&(q-elemi.number); return OK;case 2:printf(輸入新姓名:);scanf(s,n);st
21、rcpy(q-elem ,n);return OK;case 3:(printf(輸入性別:);scanf(s,n);strcpy(q-elem i.sex,n);return OK;case 4:(printf(輸入新地址:);scanf(s,n);strcpy(q-elemi.adress,n); return OK;printf(輸入新的電話號碼:);scanf(s,n);strcpy(q-elemi.tlnumber,n); return OK;/*/函數功能:修改學生信息函數構思:同樣,想要修改學生信息首先需要找到該學生的信息所在的位置。學 生信息位置的查找跟上述學生信息
22、查詢函數的方式相同。為學號查找與姓名查找。 查找到學生信息后,提示用戶需要修改的項目,分別為學號、姓名、性別、地址 以及電話號碼。通過seitch語句判斷用戶輸入的數以知曉用戶想要修改哪一項。 提示以后輸入新的數據并將舊的數據覆蓋。最后返回OK跳出函數,學生信息修 改完成。信息的排序/*/ int Ranklist(Sqlist *q)/按學號大小排序(從小到大)int i,j;int l=q-length;Student t;for(i=0;il-1;i+)for(j=i+1;jelemi.number)(q-elemj.number)t=q-elemi;q-elemi=q-elemj;q-
23、elemj=t;return OK;/*/函數功能:按學生信息中學號的大小對學生進行排序函數構思:此函數的的整體構思為冒泡排序法。冒泡排序法相對簡單,而且 易操作。冒泡排序算法的運作如下:(從后往前)比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對。在這一 點,最后的元素應該會是最大的數。針對所有的元素重復以上的步驟,除了最后一個。持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比 較時間復雜度若文件的初始狀態是正序的,一趟掃描即可完成排序。所需的關鍵字比較次 數(:和記錄移動次數:U 均達到最小值:=-I,握二。
24、所以,冒 泡排序最好的時間復雜度為EJ。若初始文件是反序的,需要進行1趟排序。每趟排序要進行次關鍵字的比較(1WiWn-1),且每次比較都必須移動記錄 三次來達到交換記錄位置。在這種情況下,比較和移動次數均達到最大值:Cg危匕土 o()峋“=枷7)=。仍冒泡排序的最壞時間復雜度為。廠I。文件操作模塊數據寫入文件/*/int save(Sqlist *q)/存盤函數int l=q-length,i;FILE *fp;if(fp二fopen(student.txt,w)=NULL)return ERROR;for(i=0;ielemi.number,,q -elemi.se
25、x,q-elemi.adress,q-elemi.tlnumber);fclose(fp);return OK;/*/x.Le曾邸;PS而止RRDK1=0fpj Uitfp,ri?_iid .I * ,i+II 戲 tun、OK;函數功能:將學生信息保存至文件中函數構思:對文件讀寫之前應該打開該文件,在使用結束后應該關閉該文件。打 開和關閉是形象的說法,好像打開大門才能進房子一樣,門關上就不能進入一樣。 實際上,所謂的打開就是指為文件建立相應的信息區和文件緩存區。C語言中用 標準輸入輸出函數fopen來實現打開文件。fopen(student.txt,w)其中 student.txt為文件名,
26、w為只寫,表是為了輸出數據,打開一個文本文件。在 使用一個函數后應該關閉它,以防止它在被誤用。關閉就是撤銷文件信息區和文 件緩存區,使文件指針變量不在指向文件,此后不能在通過該指針對原來語氣相 聯系的文件進行讀寫操作,除非在此打開它,是該知足重新指向該文件。數據讀出文件/*/ int open(Sqlist *q)/讀盤函數FILE *fp;int i=0,number_;char name_20,sex_10,adress_20,tlnumber_20;if(fp二fopen(student.txt,r)=NULL)return ERROR;q-elem=(Student*)malloc(s
27、izeof(StudentMAXSIZE);if(!q-elem) return ERROR;q-length=0;while(!feof(fp)fscanf(fp,d %s %s %s %sn,&number_,name_,sex_,adress_,tlnumber _);q-elemi.number=number_;strcpy(,name_);strcpy(q-elemi.sex,sex_);strcpy(q-elemi.adress,adress_);strcpy(q-elemi.tlnumber,tlnumber_);i+;q-length=i;fclose(
28、fp);return OK;/*/函數功能:將文件中的數據讀到內存中函數構思:函數的讀出也需要打開文件與關閉文件。然后分配新的存儲空間給將 要讀出的數據,通過fscanf函數將文件中的數據讀出。測試,C;U 5 ersl cm crvciDclttopX學生信息查迨士 ugtu d rntMe號言打7T原始敬樞?F昭:1Nn:2膺綁, 1:創建 2:錄八 3:刪除 4:登詞 6準改 6:枕序 F:遍JTi 3;1|情輸入操作f 片號;15姓谷:hrry性利;nan巨詁號碼;1S5056535S0姓名:由LHL性別:JV電話號碼:4556445姓右3 yjh性瓠nv地址,3333電話號碼,657
29、951:制建 2; A 3伽除 4:杏面 市修改奇排序己遍萬初退二打開元素數據并遍歷 1 C:UEerj5len ovoDesldDpf.SSSi1Debug5u dent.exe柜火* * *北北立波比# *馳馳 出蚓口* * * *止北北比 立* * * W W 加|c1:倉健 2:錄A 3:*蛛 4:查直 5:修改6;折序7:遍萬8;退出扣木末市未4=未*寺寺寺寺中和*1琮寺木木未未未*未寺布寺寺寺寺寺寺寺要錄入個數:1 h-S3nanggg要錄入個數:1 h-S3nanggg電話號碼:8546852*非*牛中*4=|*|外事宇出米*非中=|二松松松+:水if I建 2; A3:1珂除4
30、;杏宣S:修改自:排序7:遍.萬*1民出*二*本率市表表*手*1二*:* 林|0|0|邛*二本*車*斗評二牝*:*清輸入操怕 字號;Lb姓名;hrry欄與L nir.地址;日婦d電話號碼名:TUTl成;11T地址;ffff電話號碼:4556445姓名:V.ltl性別,nv地tl: n清輸入操怕 字號;Lb姓名;hrry欄與L nir.地址;日婦d電話號碼名:TUTl成;11T地址;ffff電話號碼:4556445姓名:V.ltl性別,nv地tl: n電話號碼:65795姓名:壬:Tggrisn電話號箕:新學生信息的錄入I C:IJ 非 r K
31、len ovcADwsktop、學生信息新5 莖統KDebugUu d ent. exe1:創建 :錄八 土刪除 4:查誼5:修改i:排序己聞仿3:退;1!蓄 5* * ee蛤入所要刪除的學號;15I尸號;1S 姓至| ; liny 性別;nan 地羊止;dddd1:創建 】:錄八 顯:刪除 4:查詢 5:修改G:排序7:遍后:退出8青輸入操作;7 字號:姓名,wirannv地址,fff電話號碼.4556445字號:姓名,7jh性別,nv電話號碼,姓名:性別:8青輸入操作;7 字號:姓名,wirannv地址,fff電話號碼.4556445字號:姓名,7jh性別,nv電話號碼,姓名:性別:nan
32、地址:ggg電話號碼:85468521:創肆 2:錄八 土皿I除 4:杳苗5:修改W:排序,孺歷#:退出 備暴嬴丁 *學生信息的刪除按學號查詢學生信息1 C;U s rrsl onovglD mktci p學生信息查荷秦統D crib ugstu demt, mu1:創建 Z:錄人由刪除 4:查詢 b:修改&:排序了:遍所 由退出 請輸入操作:41:學號查詢2=姓名查也請輸入操作:2鬲人所套查詢任姓名:1W 沒有亥學生信息! 操吊大設1:創建 2:錄入 3:刪緣 冬:查詢 5:修改6:排.字7痼肉日:退出障號:岸號:姓各姓名:姓名:wnm性別,忤別,mi:nvrvran地;1L ffff地二|
33、勇sss地址:SSE電話號碼.電話號碼:電話號碼:障號:岸號:姓各姓名:姓名:wnm性別,忤別,mi:nvrvran地;1L ffff地二|勇sss地址:SSE電話號碼.電話號碼:電話號碼:45564456579585468521:創建2:錄入土刪徐4:查詢5:修改E:排序7:溫歷8:退出 半:輸入錯誤姓名顯示沒有該學生信息 BC:Uersl mnovcXDektopL學生信目否詢至孫Dehu gstu dentexe諭入所要直詢的姓名:Imy 沒有成學生信息!操作失畋1:創建 2:錄入支刪除4:查詢S:修改E:此序F:瘟岳2:退3請輸入操住;7 學號;姓名:WBTD性別;nv地址;ffff電
34、話號碼;4556445學號;姓名 yjh性別.nv地址;3S33電話號碼.請輸入操住;7 學號;姓名:WBTD性別;nv地址;ffff電話號碼;4556445學號;姓名 yjh性別.nv地址;3S33電話號碼.65795姓* : f 33性別.nan地址.553電話號碼.85468521:創建 P:錄入勺刪除 4:查詢W修曲R:桃序F:瘟厲4:很=請輸A_操作:41請輸A_操作:41:學號杳詢2=姓名杳詢請輸入操作:2輸入辨要登詢的姓名: 學號:J 姓名:mullwirw 性別:nv 地址:ffff口電話號碼:4556445正確的姓名查詢 C:ll terslen ovoDetktopF-WB
35、SiS kDeh ugti i H nt. exe1:創建 N:錄八 土刪除 4:查誼8:修改:那序己遍歷:退出;E 2ETEEHE1=按學號查我井修改請輸入操作;1隔入所要查技的學號;寶號4 姓名:2=按姓名查拔亓修改vvinni4性另L nv 地址,1=修改學號2修改姓名3:修改性別4; 請輸入操作,輸汨新姓名,1:觥聿2:錄/, 土刪除 4:杳苗5:修改上排序,偏歷8:很出 蓄囂懿V* 學號:4ffff 日5日號碼 3 4556445 修改拙址A侈古電日號碼姓名:性別:nv地址:fff電話號碼:4556445姓名:yjhnv地址:gggg電話號碼:65795字號:E姓名:fgg性別:na
36、n地址:ggg電話號碼:8546852半:修改學生信息,C:U sersl en ovoDeskto p學生信息查旬至統。堯 ug&tu d ent. exe搞富二;藪*二:贏市:矗杓 5:修改 6:炸序,遍為 M:退出 金彖 富 *;* 心 |I- -r :姓名,hmv性別:nv地址:ffff電話號碼:4556445姓名,yjhTT7二加|勇gggg電話號碼:65795姓名,性別,nan址址:zzz電話號碼,S546252S:修改6:排序7:遍歷m:退出清輸入操作;6 姓名,.1=1=7:hmy性別:117地址:Ifff電話號碼:4556445學號:姓名:-SS性別:nm址址:ggg電話號袒
37、:8546852-Y:姓名:?jh性別:n?也址:gggg電話號碼:657951:創建 N:錄人 土刪除4:查-旬半:對學生信息的排序(按學號的大小)C:U sersl en DvoDesldo p學生信息查詢禁旋W ugstu d ent. exeF學號:】吏宅:口品在另L【盅【1 地址:據呂85468521: 劃建 2:錄入火刪除 4:查詢S:修改5:學號:】吏宅:口品在另L【盅【1 地址:據呂85468521: 劃建 2:錄入火刪除 4:查詢S:修改5:弗序F:薊5。:退3蓄簽I葺源:T *E*學號;性別.nv州址;ffff電話號碼.455645學號,姓* : f35性別.n;.n地址,
38、8S8電話號碼.S546852學號,性別.nv北址:3333電話號碼.657951 :制津。:錄.人一 :刪除 4:杳詢 5:修改上琲序F:渤5科弟=M0:2sny key to srrinu與蓄蓄 f 蒐苜;* 是否年儒數據? YES:1 1 M0:2sny key to srrinu與半:退出時詢問是否保存數據到文件廠C:LI erElen ovoD se 虹口 p學生信.皂.查句 SDwbugEtLJ dent ex?:否否開原娃數據?ES:_ N0:2 情渝入操作:11:到建 2:錄人 3:咧除 4:查詢 5:修改,:排序廠通尻:退出 岸京擢蕓*丁* EM* * 1=學號查響 2:姓名
39、查詢 請蒲人操作;1輸入所要查詢的學弓;6 沒有該學生信息!作失敗1 :劍建 2:錄人::刪除 4:查詢 5:慘有 M排序,:遍Pi R:詆出晴輸人操作:7 姓名:學號:4hmy性別:nv地址:ffff電話號碼:4556445字號:5姓名:性別:nan地址:ggg電話號碼:8546852字號:S姓名:小性別:nv電話號碼:65795輸入錯誤信息時的查詢結論通過C語言實訓,讓我加深了對C語言的了解,而不只是單單的在課本中 學到的那些理論,平時乏味的課程,通過自己動手親自編寫,變的生動有趣,而 在自己動手的過程中,出現的問題很多,比理論要難的多,當一個程序寫完以后, 經常會有很多錯誤而沒法解決。不
40、過,通過幾天的實訓,逐漸積攢了一些經驗, 有些錯誤可以較快看出來。這次實訓有很大的收獲,讓我對C語言有了更深的 認識,平時在課堂上學到的東西可以自己動手編寫,將其轉化成一些實用的技能。 如果是一個程序寫完一處錯誤也沒有,會有種成就感,于是興趣就來了,興趣來 了,自然學的東西也就多了,能把理論變成實際的技能,讓我對C語言有了濃厚 的興趣和更深層的認識。C語言是一個有序的學習,條理很清楚,不是一個零 散的知識,實際上所有的課程都如此,要從整體上把握。不過通過實訓我也知道 了自己的不足,存在的很多問題。希望能在以后的學習中,不斷提高自己的能力, 讓問題越來越少。通過這個課程設計,雖然只做了一個簡單的
41、學生成績管理系統, 但這個系統把它用來管理學生信息確實簡單方便,從這個系統,我發覺到了 C 語言的巨大優勢和作用,它所涉及到知識面十分廣泛,對我們以后學習其他語言 打下深厚的基礎感謝本次課程設計及進行過程中得到老師的悉心指導。論文行文過程中,老師多 次幫助我分析思路,開拓視角,在我遇到困難想放棄的時候給予我最大的支持和 鼓勵。老師嚴謹求實的治學態度,踏實堅韌的工作精神,將使我終生受益。再多 華麗的言語也顯蒼白。在此,謹向老師致以誠摯的謝意和崇高的敬意。參考文獻1C程序設計(第四版),譚浩強編,清華大學出版社,2010年6月 2C語言程序設計習題集(第二版),陳朔鷹陳英主編,人民郵電出版社,20
42、03年2月附錄:#include#include#include#define OK 1#define ERROR 0#define MAXSIZE 100/*姓名:侯孟禹 專業班級:物聯網工程一班學號:20142835350016*/typedef structint number;char name10;char sex10;char adress20;char tlnumber20;存放學生信息的結構體變量/存放學生信息的結構體變量/頭結點elem*指向數組的基地typedef struct址length儲存長度Student *elem;int length;Sqlist;/存盤函數/
43、存盤函數int l=q-length,i;FILE *fp;if(fp=fopen(student.txt,w)=NULL) return ERROR;for(i=0;ielemi.number,,q-elemi.sex,q-elemi .adress,q-elemi.tlnumber);fclose(fp);return OK;/讀盤函數/讀盤函數FILE *fp;int i=0,number_;char name_20,sex_10,adress_20,tlnumber_20;if(fp=fopen(student.txt,r)=NULL)return ERROR;
44、q-elem=(Student*)malloc(sizeof(StudentMAXSIZE);if(!q-elem) return ERROR;q-length=0;while(!feof(fp)(fscanf(fp,%d %s %s %s %sn,&number_,name_,sex_,adress_,tlnumber_);q-elemi.number=number_;strcpy(,name_);strcpy(q-elemi.sex,sex_);strcpy(q-elemi.adress,adress_);strcpy(q-elemi.tlnumber,tlnumb
45、er_);i+;q-length=i;fclose(fp);return OK;int initlist(Sqlist *q)(新建線性表并分配存儲空間q-elem=(Student*)malloc(sizeof(StudentMAXSIZE);if(!q-elem) return ERROR;q-length=0;return OK;/錄入函數/錄入函數int i,j;printf(-輸入所要錄入個數:); scanf(%d,&i);for(j=q-length ;jlength;j+) printf(學號:);scanf(%d,&(q-elemj.number);printf(姓名:);s
46、canf(%s,&();printfC性別:);scanf(%s,&(q-elemj.sex);printf(地址:);scanf(%s,&(q-elemj.adress);printf(電話號碼:);scanf(%s,&(q-elemj.tlnumber);q-length=q-length +i;return OK;int qdelete(Sqlist *q)int e,i=0,j=q-length,k ;printf(-輸入所要刪除的學號:);scanf(%d,&e);while(q-elem i.number !=e)i+;if(i=j)printf(-沒有該學
47、生信息!n);return ERROR;/刪除函數printf(學號:printf(姓名:printf(性別:printf(地址:%d%s%s%s,q-elemi.number );, );,q-elemi.sex );,q-elemi.adress);printf(電話號碼:%sn,q-elemi.tlnumber);k=j-i-1;while(k-)q-elem i=q-elem i+1;i+;(q-length)-;return OK;int seek(Sqlist *q)/查找函數int e,i=0,j=q-length;int choose;char s10;
48、printf(1 :學號查詢2:姓名查詢n);printf(-請輸入操作:);scanf(%d,&choose);switch(choose)case 1:/分為學號查找和姓名查找case 2:printf(-輸入所要查詢的學號:);scanf(%d,&e);while(q-elem i.number !=e) i+;if(i=j)printf(-沒有該學生信息!n);return ERROR;printf(學號:%dprintf(姓名:%sprintf(性別:%sprintf(地址:%s,q-elemi.number );, );,q-elemi.sex );,q-e
49、lemi.adress);printf(電話號碼:%sn,q-elemi.tlnumber); return OK;printf(輸入所要查詢的姓名:);scanf(%s,s);while(strcmp(q-elem ,s)i+;if(i=j)printf(-沒有該學生信息!n);return ERROR;printf(學號:%dprintf(姓名:%sprintf(性別:%sprintf(地址:%s,q-elemi.number );, );,q-elemi.sex );n,q-elemi.adress);printf(電話號碼:%sn,q-elemi.t
50、lnumber); return OK;return OK;int alter(Sqlist *q)int e,i=0,j=q-length,choose,c;char s10,n10;printf(1 :按學號查找并修改2:按姓名查找并修改n);先查找到學生信息在修改信息printf(-請輸入操作:);scanf(%d,&choose);switch(choose)/修改學生信息/選擇需要修改的信case 1:printf(-輸入所要查找的學號:); scanf(%d,&e);while(q-elem i.number !=e)i+;if(i=j)printf(-沒有該學生信息!n);ret
51、urn ERROR;printf(學號:%dprintf(姓名:%sprintf(性別:%sprintf(地址:%s,q-elemi.number );, );,q-elemi.sex );,q-elemi.adress);printf(電話號碼:%sn,q-elemi.tlnumber);break;case 2:printf(輸入所要查找的姓名:);scanf(%s,s);while(strcmp(q-elem ,s)i+;if(i=j)printf(-沒有該學生信息!n);return ERROR;printf(學號:%d ,q-elemi.number );printf(姓名:%s , );printf(性別:%s ,q-elemi.sex );printf(地址:%s ,q-elemi.adress);printf(電話號碼:%sn,q-elemi.tlnumber);break;printf(1 :修改學號2:修改姓名3:修改性別4:修改地址5:修改電話號 碼n);printf(-請輸入操作:);scanf(%d,&c)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四年級數學(四則混合運算)計算題專項練習與答案
- 健康師培訓課件
- 西南政法大學《安裝工程計量與計價》2023-2024學年第二學期期末試卷
- 西安財經大學《運籌學B》2023-2024學年第二學期期末試卷
- 西安電力高等專科學校《IT項目管理實驗》2023-2024學年第二學期期末試卷
- 西安明德理工學院《EXCEL在財務中的應用》2023-2024學年第二學期期末試卷
- 浙江工業大學之江學院《建筑初步設計》2023-2024學年第二學期期末試卷
- 韶關學院《視聽訓練AV》2023-2024學年第二學期期末試卷
- 云南旅游職業學院《工程力學B》2023-2024學年第二學期期末試卷
- 宜春職業技術學院《古文字學》2023-2024學年第二學期期末試卷
- 醫保政策培訓知識普及課件
- 海南省三亞2024年八年級物理第二學期期末統考試題及答案解析
- 小學四年級語文知識競賽(含答案)
- 人教版數學八年級下冊一次函數綜合大題練習
- 成語故事一箭雙雕
- 2023年廣東高考地理試卷(高清版含答案)
- (課件)少吃零食健康飲食
- 生產節拍計算表格
- BP神經網絡學習算法的研究
- 2024年湖北省武漢市高考數學一調試卷
- 銀行業金融機構數據治理指引
評論
0/150
提交評論