課程設(shè)計(jì)--- 學(xué)生宿舍管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  軟件設(shè)計(jì)報(bào)告</b></p><p>  題 目: 學(xué)生宿舍管理系統(tǒng) </p><p><b>  C語(yǔ)言程序設(shè)計(jì)報(bào)告</b></p><p><b>  一、實(shí)驗(yàn)?zāi)康?lt;/b></p><p> 

2、 1.熟悉C語(yǔ)言程序的編輯、編譯鏈接和運(yùn)行的過(guò)程,至少能夠用一種編譯器較熟練地編輯、編譯及調(diào)試程序。</p><p>  2.掌握C語(yǔ)言數(shù)據(jù)類型,如何定義一個(gè)整型、字符型和實(shí)型的變量,以及對(duì)它們賦值的方法。</p><p>  3.熟練運(yùn)用if語(yǔ)句和switch語(yǔ)句以及嵌套應(yīng)用。涉及循環(huán)調(diào)用的,了解并掌握三種控制語(yǔ)句while、do-while和for語(yǔ)句。</p><

3、p>  4.學(xué)習(xí)并掌握C語(yǔ)言定義函數(shù)的基本方法、聲明函數(shù)及調(diào)用函數(shù)的方法和過(guò)程。</p><p>  5. 掌握文件和文件指針的概念以及文件的定義方法,認(rèn)識(shí)文件打開(kāi)、關(guān)閉、讀、寫(xiě)等文件基本操作函數(shù)。</p><p>  6.掌握結(jié)構(gòu)體類型變量、數(shù)組的定義和使用。</p><p>  7.了解指針和鏈表的概念,掌握指針的定義和使用指針變量的方法以及鏈表的正確用法

4、。靈活使用鏈表來(lái)儲(chǔ)存學(xué)生信息。</p><p>  8. 掌握數(shù)組的定義、引用以及輸入輸出的方法、通過(guò)字符數(shù)組存儲(chǔ)字符串,進(jìn)一步使用字符串</p><p>  二、課程設(shè)計(jì)內(nèi)容簡(jiǎn)介</p><p><b>  宿舍管理主要功能:</b></p><p> ?。?)能按學(xué)生的學(xué)號(hào)、姓名、性別、及所在院、系、班等完成對(duì)學(xué)生所

5、住宿舍的添加、錄入、修改、刪除。</p><p> ?。?)能統(tǒng)計(jì)住宿學(xué)生數(shù)目,能根據(jù)學(xué)生的學(xué)號(hào)進(jìn)行排序</p><p> ?。?)能按學(xué)號(hào)或者是宿舍門牌號(hào)及床位號(hào)查詢住宿學(xué)生的各項(xiàng)信息。</p><p> ?。?)能輸出學(xué)生住宿情況的具體信息表。</p><p>  開(kāi)發(fā)工具——Visual C++ 6.0</p><p

6、>  運(yùn)行平臺(tái)——Windows XP</p><p><b>  三、程序特色</b></p><p> ?、潘奚峁芾碜钪饕氖菍?duì)學(xué)生信息的查詢,本程序在查詢上特色鮮明,可以實(shí)現(xiàn)以下功能 :</p><p><b>  1按學(xué)生姓名查詢;</b></p><p><b>  2按學(xué)

7、號(hào)查詢;</b></p><p><b>  3按班級(jí)查詢;</b></p><p>  4查詢某一宿舍住宿人員及人數(shù);</p><p><b>  5查詢某宿舍電話;</b></p><p> ?、平⒌逆湵韼в蓄^結(jié)點(diǎn),方便處理;</p><p> ?、菙?shù)據(jù)和密

8、碼保存在不同的文件夾</p><p><b>  三、需求分析</b></p><p><b>  系統(tǒng)功能:</b></p><p> ?。?)能按住宿學(xué)生的學(xué)號(hào)、姓名、性別、年齡及院系完成他住宿情況的錄入、刪除和修改。</p><p> ?。?)能按住宿學(xué)生的學(xué)號(hào)、姓名、性別、所住宿舍門牌號(hào)、床

9、位號(hào)添加信息。</p><p> ?。?)具有強(qiáng)大的查詢功能</p><p>  (4)能按照學(xué)號(hào)從小到大排列該學(xué)生的各項(xiàng)信息。</p><p> ?。?)能統(tǒng)計(jì)住宿人數(shù)。</p><p> ?。?)可以保存到文件。</p><p> ?。?)可以從文件讀入已有的文件。</p><p>  (8

10、)以菜單方式工作;</p><p>  (9)具有密碼功能;。</p><p> ?。?0)運(yùn)用鏈表設(shè)計(jì)。</p><p><b>  性能描述:</b></p><p>  各種功能都可以滿足;程序相對(duì)較小,因而運(yùn)行時(shí)反應(yīng)比較迅速,不存在響應(yīng)不及時(shí)地問(wèn)題。四、總體設(shè)計(jì)</p><p>  1宿舍

11、管理系統(tǒng)模塊圖</p><p>  2.程序可以滿足以下功能:</p><p>  1.各模塊間通過(guò)菜單切換和調(diào)用</p><p>  2.主函數(shù)通過(guò)調(diào)用菜單函數(shù)實(shí)現(xiàn)對(duì)各功能模塊的調(diào)用</p><p>  3.程序能夠保證各模塊功能的獨(dú)立和數(shù)據(jù)共享</p><p>  4.相近功能以級(jí)聯(lián)菜單的形式集成。</p&g

12、t;<p><b>  五、詳細(xì)設(shè)計(jì)</b></p><p>  (1)各個(gè)模塊的程序流程圖</p><p><b> ?、賱h除模塊</b></p><p><b>  ②查詢模塊</b></p><p><b> ?、坌薷哪K</b><

13、;/p><p><b> ?、懿迦肽K</b></p><p><b> ?、輰W(xué)生信息</b></p><p><b>  六各函數(shù)功能</b></p><p><b>  1 密碼模塊</b></p><p>  void in_sy

14、stem()</p><p>  如果是新的系統(tǒng)需要設(shè)定密碼,以后進(jìn)入需要輸入密碼;</p><p><b>  密碼保存在文件中;</b></p><p><b>  2 主菜單</b></p><p><b>  main()</b></p><p>

15、;  進(jìn)入管理系統(tǒng)選擇相應(yīng)的模塊,包括:</p><p>  建立新的數(shù)據(jù),插入,查詢,修改,刪除,統(tǒng)計(jì),排序,打印等;</p><p><b>  3 查詢模塊</b></p><p>  void find(struct stu *head)</p><p>  包括:void search_cla(struct s

16、tu *head) 按班級(jí)查找</p><p>  void search_num(struct stu *head) 按學(xué)號(hào)查找</p><p>  void search_name(struct stu *head) 按姓名查找</p><p>  void search_stu(struct stu *head) 按宿舍查找</p><

17、;p>  void search_tel(struct stu *head) 查詢宿舍電話</p><p><b>  4修改模塊</b></p><p>  gai(struct stu *head) /*修改學(xué)生信息*/</p><p><b>  5 插入模塊</b></p><

18、p>  insert(struct stu *head) /*插入*/</p><p><b>  6刪除模塊</b></p><p>  shan(struct stu *head) /*刪除*/ </p><p><b>  7統(tǒng)計(jì)模塊</b></p><p>  count (stru

19、ct stu *p) /*數(shù)據(jù)統(tǒng)計(jì)*/ </p><p><b>  七顯示頁(yè)面</b></p><p><b>  1 進(jìn)入主菜單</b></p><p><b>  2 打印菜單</b></p><p><b>  修改主菜單</b>&

20、lt;/p><p><b>  查詢主菜單</b></p><p><b>  九、總結(jié)及體會(huì)</b></p><p>  ① 在寫(xiě)完第一遍程序后,首先進(jìn)行了調(diào)試,仍是按照從某個(gè)模塊來(lái)分析的,然后在整體執(zhí)行</p><p>  但是遠(yuǎn)遠(yuǎn)有很多不如意的地方,特別是對(duì)警告的調(diào)試比較麻煩,棘手,但是通過(guò)向老

21、師請(qǐng)教,向同學(xué)請(qǐng)問(wèn)最終還是解決的不少問(wèn)題,后來(lái)經(jīng)過(guò)分析,參照同學(xué)所設(shè)計(jì)的程序,自己的功能比較單調(diào)和簡(jiǎn)單,后來(lái)又添加了幾個(gè)模塊使其變得功能稍微有點(diǎn)完善。通過(guò)很多次的調(diào)試,我知道了在寫(xiě)程序的時(shí)候應(yīng)該注重于細(xì)節(jié),例如一個(gè)小的標(biāo)點(diǎn)符號(hào),就能使我們浪費(fèi)一整天的時(shí)間來(lái)調(diào)試,所以細(xì)節(jié)非常重要;其次是要在編寫(xiě)程序之前應(yīng)該想明白程序的功能,然后在進(jìn)行寫(xiě)程序;最后在調(diào)試運(yùn)行程序的時(shí)候應(yīng)該注意到每一個(gè)程序的應(yīng)用,看是否真真的能夠?qū)崿F(xiàn)其功能,不要漏掉一個(gè)細(xì)節(jié)。

22、通過(guò)這次課程設(shè)計(jì)我學(xué)會(huì)了很多,做事情不僅要有耐心,還要注重細(xì)節(jié);雖然做不到最好,但是要盡自己的全力去做,不管對(duì)與錯(cuò)。</p><p><b> ?、?感受:</b></p><p>  使用VC++6.0編寫(xiě)程序界面方便清晰,各種功能全面,可以很好的幫助初學(xué)者查找問(wèn)題所在。在第一周就已經(jīng)為整個(gè)程序定下了框架,使得后面的程序設(shè)計(jì)思路變得清晰,明白每天都要干些什么。<

23、;/p><p>  在為期兩周的課程設(shè)計(jì)里,遇到了很多各種各樣的問(wèn)題。</p><p>  比如在程序編譯過(guò)程中有些是0錯(cuò)誤但有很多警告,雖然這些警告不會(huì)影響到程序的聯(lián)接執(zhí)行,但仔細(xì)檢查和改正這些警告會(huì)對(duì)C語(yǔ)言有更深入和深刻的了解。有時(shí)候VC++6.0的編譯器會(huì)出現(xiàn)不可預(yù)知的錯(cuò)誤,需要自己去判斷。</p><p>  最終成品的模塊和起初的已經(jīng)有很多不同,在編寫(xiě)的過(guò)程中

24、不斷地改進(jìn)和完善程序,為了方便用戶使用特別在主函數(shù)中添加了保存和讀取模塊,使用清屏函數(shù)保持界面簡(jiǎn)潔。</p><p>  在編寫(xiě)程序的過(guò)程中我也學(xué)會(huì)使用了許多輔助工具,比如有道詞典,可以幫助判斷程序調(diào)試時(shí)的報(bào)錯(cuò)涵義。搜狗輸入法可以提高我的錄入速度。合理使用雙VC++協(xié)助找到自己程序和范例的不同和缺點(diǎn),方便修改。我也逐步學(xué)會(huì)使用Debug功能判斷函數(shù)出錯(cuò)的地方和原因,這大大簡(jiǎn)化了我找錯(cuò)誤的難度。</p>

25、<p>  作為一個(gè)初學(xué)者,在編寫(xiě)中往往遇到許多邏輯上的小問(wèn)題。比如在調(diào)試刪除模塊時(shí),偶爾會(huì)報(bào)錯(cuò)。我仔細(xì)分析了程序后發(fā)現(xiàn)出錯(cuò)的原因在于對(duì)于輸入數(shù)據(jù)沒(méi)有保存成文件但是函數(shù)在執(zhí)行過(guò)程中會(huì)調(diào)用文件。</p><p>  對(duì)于文件的打開(kāi)方式也是剛開(kāi)始令我比較頭痛的問(wèn)題,特別是在文本與二進(jìn)制區(qū)別和只讀與讀寫(xiě)區(qū)別上,最后經(jīng)過(guò)不斷地嘗試和看書(shū),最終的效果還不錯(cuò),但是還需要繼續(xù)熟悉,融會(huì)貫通。</p>

26、<p>  編寫(xiě)和調(diào)試時(shí)遇到了許多令人頭痛的問(wèn)題,感謝我的同學(xué)和老師給予我的幫助,毫無(wú)疑問(wèn),別人的經(jīng)驗(yàn)是非常珍貴的財(cái)富,虛心積極地請(qǐng)教問(wèn)題可以讓我少走許多彎路。</p><p><b>  八、參考文獻(xiàn)</b></p><p>  1.C語(yǔ)言程序設(shè)計(jì)王曙燕主編2005年版</p><p>  2.《C語(yǔ)言程序設(shè)計(jì)參考》 例

27、題11 </p><p>  3. C程序設(shè)計(jì) 第二版 譚浩強(qiáng) 清華大學(xué)出版社 2002年版</p><p><b>  九 程序代碼</b></p><p>  #include <stdio.h></p><p>  #include<stdlib.h></p><

28、p>  #include<string.h></p><p>  #define N sizeof(struct stu)</p><p>  struct stu /*結(jié)構(gòu)體定義*/</p><p><b>  {</b></p><p>  char name[10];</p

29、><p>  char yuan[10];</p><p>  char xi[10];</p><p>  char cla[10];</p><p>  char num[10];</p><p><b>  char sex;</b></p><p>  char lou

30、[5];</p><p>  char she[5];</p><p>  char hao[5];</p><p>  char tel[15];</p><p>  struct stu *next;</p><p><b>  };</b></p><p>  voi

31、d store(struct stu *p) /*存儲(chǔ)數(shù)據(jù)*/</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  char file[40];</p><p>  printf("\n\n請(qǐng)輸入要存儲(chǔ)數(shù)據(jù)的文件夾路徑:\n&

32、quot;); /*可以任意選擇文件路徑*/</p><p>  flushall();</p><p>  gets(file);</p><p>  fp=fopen(file,"wt");</p><p>  while(p->next!=NULL)</p><p><b> 

33、 {</b></p><p>  p=p->next;</p><p>  fwrite(p,N,1,fp);</p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  }</b></p>

34、<p>  struct stu *creat() /*建立鏈表*/</p><p><b>  {</b></p><p>  struct stu *p1,*p2,*head;</p><p>  system("cls");</p><p>  head=p2=(struct st

35、u *)malloc(N); /*帶頭結(jié)點(diǎn)的鏈表*/</p><p>  p1=(struct stu *)malloc(N);</p><p>  printf("\n\n請(qǐng)輸入學(xué)生的姓名 \n");</p><p>  flushall();</p><p>  scanf("%s",p1-&

36、gt;name);</p><p>  printf("\n性別\n");</p><p>  flushall();</p><p>  scanf("%c",&p1->sex);</p><p>  printf("\n學(xué)號(hào)\n");</p><

37、p>  flushall();</p><p>  scanf("%s",p1->num);</p><p>  printf("\n所在院\n");</p><p>  flushall();</p><p>  scanf("%s",p1->yuan);<

38、/p><p>  printf("\n所在系\n");</p><p>  flushall();</p><p>  scanf("%s",p1->xi);</p><p>  printf("\n所在班級(jí)\n");</p><p>  flushall(

39、);</p><p>  scanf("%s",p1->cla);</p><p>  printf("\n所在樓號(hào)\n");</p><p>  flushall();</p><p>  scanf("%s",p1->lou);</p><p>

40、;  printf("\n所在宿舍\n");</p><p>  flushall();</p><p>  scanf("%s",p1->she);</p><p>  printf("\n請(qǐng)輸入所在床鋪號(hào)\n");</p><p>  flushall();</p&g

41、t;<p>  scanf("%s",p1->hao);</p><p>  printf("\n宿舍電話\n");</p><p>  flushall();</p><p>  scanf("%s",p1->tel);</p><p>  while(s

42、trcmp(p1->num,"0")) /*學(xué)號(hào)為0退出*/</p><p><b>  {</b></p><p>  p2->next=p1;</p><p><b>  p2=p1;</b></p><p>  p1=(struct stu *)mallo

43、c(N);</p><p>  printf("\n\n請(qǐng)輸入學(xué)生的姓名 \n");</p><p>  flushall();</p><p>  scanf("%s",p1->name);</p><p>  printf("\n性別\n");</p><

44、;p>  flushall();</p><p>  scanf("%c",&p1->sex);</p><p>  printf("\n學(xué)號(hào)\n");</p><p>  flushall();</p><p>  scanf("%s",p1->num);

45、</p><p>  printf("\n所在院\n");</p><p>  flushall();</p><p>  scanf("%s",p1->yuan);</p><p>  printf("\n所在系\n");</p><p>  flus

46、hall();</p><p>  scanf("%s",p1->xi);</p><p>  printf("\n所在班級(jí)\n");</p><p>  flushall();</p><p>  scanf("%s",p1->cla);</p><

47、p>  printf("\n所在樓號(hào)\n");</p><p>  flushall();</p><p>  scanf("%s",p1->lou);</p><p>  printf("\n所在宿舍\n");</p><p>  flushall();</p&g

48、t;<p>  scanf("%s",p1->she);</p><p>  printf("\n請(qǐng)輸入所在床鋪號(hào)\n");</p><p>  flushall();</p><p>  scanf("%s",p1->hao);</p><p>  pri

49、ntf("\n宿舍電話\n");</p><p>  flushall();</p><p>  scanf("%s",p1->tel);</p><p><b>  }</b></p><p>  p2->next=NULL;</p><p>

50、<b>  free(p1);</b></p><p>  return head;</p><p><b>  }</b></p><p>  struct stu *bulid() /*建立新的數(shù)據(jù)庫(kù)*/</p><p><b>  {</b></p>&l

51、t;p>  struct stu *head;</p><p>  return (head=creat());</p><p><b>  }</b></p><p>  struct stu *read() /*讀取數(shù)據(jù)*/</p><p><b>  {</b></p>

52、<p>  struct stu *p1,*p2,*head;</p><p><b>  FILE *fp;</b></p><p>  if((fp=fopen("D:\\student.txt","rt"))==NULL)</p><p><b>  {</b><

53、;/p><p>  system("cls");</p><p>  printf("\n\n提醒: 學(xué)生住宿情況數(shù)據(jù)不存在,按任意鍵進(jìn)入主菜單");</p><p>  flushall();</p><p>  getchar();</p><p><b>  }<

54、;/b></p><p><b>  else </b></p><p><b>  {</b></p><p>  head=p2=(struct stu *)malloc(N);</p><p><b>  while(1)</b></p><p&

55、gt;<b>  {</b></p><p>  p1=(struct stu *)malloc(N);</p><p>  if(fread(p1,N,1,fp)!=1) break;</p><p>  p2->next=p1;</p><p><b>  p2=p1;</b></

56、p><p><b>  }</b></p><p>  p2->next=NULL;</p><p>  fclose(fp);</p><p><b>  }</b></p><p>  return head;</p><p><b>

57、  }</b></p><p>  void search_name(struct stu *head) /*按姓名查找*/</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  char c,name[10];</p&

58、gt;<p>  struct stu *p;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  i=0;</b></p><p><b>  p=head;</b>&l

59、t;/p><p>  p=p->next;</p><p>  printf("\n\n請(qǐng)輸入要查找的學(xué)生姓名: ");</p><p>  flushall();</p><p>  gets(name);</p><p>  while(p!=NULL)</p><p&g

60、t;<b>  {</b></p><p>  if(strcmp(p->name,name)==0)</p><p><b>  {</b></p><p>  printf("\n\n姓名\t院\t系\t班\t學(xué)號(hào)\t性別\t樓號(hào)\t宿舍號(hào)\t床鋪號(hào)\t宿舍電話");</p>&

61、lt;p>  printf("\n%s\t%s\t%s\t%s\t%s\t%c\t%s\t%s\t%s\n",p->name,p->yuan,p->xi,p->cla,p->num,p->sex,p->lou,p->she,p->hao,p->tel);</p><p><b>  i++;</b><

62、/p><p><b>  }</b></p><p>  p=p->next;</p><p><b>  }</b></p><p><b>  if(!i)</b></p><p>  printf("\n\n對(duì)不起,無(wú)此學(xué)生信息!&qu

63、ot;);</p><p>  printf("\n是否繼續(xù)按學(xué)生姓名查找(y或n): "); /*可以多次查找*/</p><p>  flushall();</p><p>  scanf("%c",&c);</p><p>  if(c=='n') break;<

64、;/p><p><b>  }</b></p><p><b>  }</b></p><p>  void search_num(struct stu *head)/*按學(xué)號(hào)查詢*/</p><p><b>  {</b></p><p>  char c

65、,num[10];</p><p>  struct stu *p;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  p=head;</b></p><p>  p=p->n

66、ext;</p><p>  printf("\n請(qǐng)輸入要查詢的學(xué)生學(xué)號(hào): ");</p><p>  flushall();</p><p>  gets(num);</p><p>  while(p!=NULL&&strcmp(p->num,num)!=0)</p><p&

67、gt;  p=p->next;</p><p>  if(p==NULL)</p><p>  printf("\n對(duì)不起,無(wú)此學(xué)生信息");</p><p>  else if(strcmp(p->num,num)==0)</p><p><b>  {</b></p>&

68、lt;p>  printf("\n\n學(xué)號(hào)\t姓名\t院\t系\t班\t性別\t樓號(hào)\t宿舍號(hào)\t床鋪號(hào)\t宿舍電話");</p><p>  printf("\n%s\t%s\t%s\t%s\t%s\t%c\t%s\t%s\t%s\t%s\n",p->num,p->name,p->yuan,p->xi,p->cla,p->sex,

69、p->lou,p->she,p->hao,p->tel);</p><p><b>  }</b></p><p>  printf("\n是否繼續(xù)按學(xué)生學(xué)號(hào)查詢(y或n): ");</p><p>  flushall();</p><p>  scanf("%c&

70、quot;,&c);</p><p>  if(c=='n') break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void search_stu(struct stu *head) /*按宿舍查詢*/<

71、/p><p><b>  {</b></p><p>  char c,lou[5],she[5];</p><p><b>  int i;</b></p><p>  struct stu *p;</p><p><b>  while(1)</b>&l

72、t;/p><p><b>  {</b></p><p><b>  i=0;</b></p><p><b>  p=head;</b></p><p>  p=p->next;</p><p>  printf("\n請(qǐng)輸入要查詢樓號(hào)及宿

73、舍號(hào)(如13 204): ");</p><p>  flushall();</p><p>  scanf("%s%s",lou,she);</p><p>  printf("\n%s樓%s宿舍成員有:",lou,she);</p><p>  while(p!=NULL)</p&

74、gt;<p><b>  {</b></p><p>  if(strcmp(p->she,she)==0&&strcmp(p->lou,lou)==0)</p><p><b>  {</b></p><p>  printf("\n\n姓名\t學(xué)號(hào)\t院\t系\t班\

75、t性別\t床鋪號(hào)\t宿舍電話");</p><p>  printf("\n%s\t%s\t%s\t%s\t%s\t%c\t%s\t%s\n",p->name,p->num,p->yuan,p->xi,p->cla,p->sex,p->hao,p->tel);</p><p><b>  i++;<

76、;/b></p><p><b>  }</b></p><p>  p=p->next;</p><p><b>  }</b></p><p>  if(!i) printf("\n\n 無(wú)此宿舍或此宿舍無(wú)學(xué)生入住!!!!!");</p>&l

77、t;p>  printf("\n是否繼續(xù)按宿舍查詢(y或n): ");</p><p>  flushall();</p><p>  scanf("%c",&c);</p><p>  if(c=='n') break;</p><p><b>  }<

78、;/b></p><p><b>  }</b></p><p>  void search_cla(struct stu *head) /*按班級(jí)查詢*/</p><p><b>  {</b></p><p>  char cla[10],c;</p><p>&

79、lt;b>  int i;</b></p><p>  struct stu *p;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  i=0;</b></p><p&

80、gt;<b>  p=head;</b></p><p>  p=p->next;</p><p>  printf("\n請(qǐng)輸入要查詢的班級(jí): ");</p><p>  flushall();</p><p>  gets(cla);</p><p>  prin

81、tf("\n%s班住宿情況如下:",cla);</p><p>  printf("\n\n院\t系\t姓名\t學(xué)號(hào)\t性別\t樓號(hào)\t宿舍號(hào)\t床鋪號(hào)\t宿舍電話");</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  

82、if(strcmp(p->cla,cla)==0)</p><p><b>  {</b></p><p>  printf("\n%s\t%s\t%s\t%s\t%c\t%s\t%s\t%s\t%s\n",p->yuan,p->xi,p->name,p->num,p->sex,p->lou,p->s

83、he,p->hao,p->tel);</p><p>  i++; </p><p><b>  }</b></p><p>  p=p->next;</p><p><b>  }</b></p><p>  if(!i) printf(&q

84、uot;\n\n 班級(jí)輸入有誤!!!!");</p><p>  printf("\n是否繼續(xù)按班級(jí)查詢(y或n): ");</p><p>  flushall();</p><p>  scanf("%c",&c);</p><p>  if(c=='n'

85、) break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void search_tel(struct stu *head)/*宿舍電話查詢*/</p><p><b>  {</b></p>&l

86、t;p>  struct stu *p;</p><p>  char lou[5],she[5],c;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  p=head;</b></p>

87、<p>  p=p->next;</p><p>  printf("\n請(qǐng)輸入要查詢電話的宿舍號(hào)(包括樓號(hào))(如13 204): ");</p><p>  flushall();</p><p>  scanf("%s%s",lou,she);</p><p>  while(p

88、!=NULL)</p><p><b>  {</b></p><p>  if(strcmp(p->lou,lou)==0&&strcmp(p->she,she)==0) break;</p><p>  p=p->next;</p><p><b>  }</b>

89、;</p><p>  if(p==NULL) printf("\n\n 對(duì)不起,宿舍號(hào)輸入有誤!!!!");</p><p>  else printf("\n%s",p->tel);</p><p>  printf("\n是否繼續(xù)查詢宿舍電話(y或n): ");</p

90、><p>  flushall();</p><p>  scanf("%c",&c);</p><p>  if(c=='n') break;</p><p><b>  }</b></p><p><b>  }</b><

91、;/p><p>  void find(struct stu *head) /*查找選擇,具有不同的查找選項(xiàng)*/</p><p><b>  {</b></p><p><b>  int n;</b></p><p><b>  int c;</b></p>&l

92、t;p>  struct stu *p;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  system("cls");</p><p>  p=head; </p><p>  p

93、rintf("\n\n*******************歡迎來(lái)到學(xué)生宿舍信息查詢系統(tǒng)************");</p><p>  printf("\n\n 1按照學(xué)生姓名查詢\</p><p>  \n\n 2按照學(xué)生學(xué)號(hào)查詢\</p><p>  \n\n

94、 3按照班級(jí)查詢\</p><p>  \n\n 4查詢某宿舍住宿人員\</p><p>  \n\n 5查詢宿舍電話\</p><p>  \n\n 0退出信息查詢系統(tǒng)\n");</p><p>  

95、printf(" 請(qǐng)選擇0-5 ");</p><p>  flushall();</p><p>  scanf("%d",&n);</p><p><b>  switch(n)</b></p><p><b>

96、;  {</b></p><p>  case 1: search_name(p); break;</p><p>  case 2: search_num(p); break;</p><p>  case 3: search_cla(p); break;</p><p>  case 4: search_stu(p);

97、break;</p><p>  case 5: search_tel(p); break;</p><p>  case 0: break;</p><p><b>  }</b></p><p>  if(!n) break;</p><p>  printf

98、("\n\n是否繼續(xù)瀏覽查詢系統(tǒng)(y或n): ");</p><p>  flushall();</p><p>  scanf("%c",&c);</p><p>  if(c=='n') break;</p><p><b>  }</b>

99、</p><p><b>  }</b></p><p>  shan(struct stu *head) /*刪除*/</p><p><b>  {</b></p><p>  struct stu *p,*p1;</p><p><b>  int i=0;&

100、lt;/b></p><p>  char c,num[10];</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  system("cls");</p><p><b>  p

101、=head;</b></p><p>  p1=p->next;</p><p>  if(p1==NULL)</p><p>  printf("\n學(xué)生數(shù)據(jù)為空,無(wú)法刪除!!");</p><p>  printf("請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào): ");</p><

102、p>  flushall();</p><p>  scanf("%s",num);</p><p>  while(p1!=NULL)</p><p><b>  {</b></p><p>  if(strcmp(p1->num,num)==0)</p><p>

103、;<b>  {</b></p><p>  p->next=p1->next;</p><p><b>  i++;</b></p><p><b>  free(p1);</b></p><p><b>  break;</b></p

104、><p><b>  }</b></p><p><b>  p=p1;</b></p><p>  p1=p1->next;</p><p><b>  }</b></p><p>  if(i) printf("\n刪除成功!!"

105、;);</p><p>  else printf("\n無(wú)此學(xué)生信息,無(wú)法刪除!!");</p><p>  printf("\n是否繼續(xù)刪除(y或n): ");</p><p>  flushall();</p><p>  scanf("%c",&c);</p

106、><p>  if(c=='n') break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void insert(struct stu *head) /*插入*/</p><p><b> 

107、 {</b></p><p>  struct stu *p,*p1;</p><p><b>  char c;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  sy

108、stem("cls");</p><p><b>  p=head;</b></p><p>  p1=(struct stu *)malloc(N);</p><p>  printf("\n\n請(qǐng)輸入要插入學(xué)生的姓名 \n");</p><p>  flushall();<

109、;/p><p>  scanf("%s",p1->name);</p><p>  printf("\n性別\n");</p><p>  flushall();</p><p>  scanf("%c",&p1->sex);</p><p>

110、  printf("\n學(xué)號(hào)\n");</p><p>  flushall();</p><p>  scanf("%s",p1->num);</p><p>  printf("\n所在院\n");</p><p>  flushall();</p><

111、p>  scanf("%s",p1->yuan);</p><p>  printf("\n所在系\n");</p><p>  flushall();</p><p>  scanf("%s",p1->xi);</p><p>  printf("\n所

112、在班級(jí)\n");</p><p>  flushall();</p><p>  scanf("%s",p1->cla);</p><p>  printf("\n所在樓號(hào)\n");</p><p>  flushall();</p><p>  scanf(&q

113、uot;%s",p1->lou);</p><p>  printf("\n所在宿舍\n");</p><p>  flushall();</p><p>  scanf("%s",p1->she);</p><p>  printf("\n所在床鋪號(hào)\n");

114、</p><p>  flushall();</p><p>  scanf("%s",p1->hao);</p><p>  printf("\n宿舍電話\n");</p><p>  flushall();</p><p>  scanf("%s",

115、p1->tel);</p><p>  while(p->next!=NULL&&strcmp(p->next->num,p1->num)<0)</p><p>  p=p->next;</p><p>  if(p!=NULL&&strcmp(p->num,p1->num)==0

116、)</p><p><b>  {</b></p><p><b>  free(p1);</b></p><p>  printf("\n\n對(duì)不起,已有相同學(xué)號(hào)的學(xué)生?。?quot;);</p><p><b>  }</b></p><p&g

117、t;<b>  else </b></p><p><b>  {</b></p><p>  p1->next=p->next;</p><p>  p->next=p1;</p><p>  printf("\n\n插入成功!!");</p>

118、<p><b>  }</b></p><p>  printf("\n\n是否繼續(xù)插入(y或n): ");</p><p>  flushall();</p><p>  scanf("%c",&c);</p><p>  if(c=='n')

119、 break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  gai(struct stu *head) /*修改學(xué)生信息*/</p><p><b>  {</b></p><p>  st

120、ruct stu *p;</p><p>  char name[10],c;</p><p><b>  int i;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  syste

121、m("cls");</p><p><b>  p=head;</b></p><p>  p=p->next;</p><p>  printf("\n請(qǐng)輸入要修改的學(xué)生姓名: ");</p><p>  flushall();</p><p>

122、  gets(name);</p><p>  while(p!=NULL&&strcmp(p->name,name)!=0)</p><p>  p=p->next;</p><p>  if(strcmp(p->name,name)==0)</p><p><b>  { </b>&

123、lt;/p><p>  printf("\n要修改的學(xué)生信息是: ");</p><p>  printf("\n姓名\t性別\t學(xué)號(hào)\t院\t系\t班\t樓號(hào)\t宿舍號(hào)\t床鋪號(hào)\t宿舍電話\n");</p><p>  printf("\n%s\t%c\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s&

124、quot;,p->name,p->sex,p->num,p->yuan,p->xi,p->cla,p->lou,p->she,p->hao,p->tel);</p><p>  printf("\n 請(qǐng)選擇您要修改的項(xiàng)目: ");</p><p>  printf("\n 1姓名\<

125、;/p><p>  \n\n 2學(xué)號(hào)\</p><p>  \n\n 3性別\</p><p>  \n\n 4院、系、班級(jí)\</p><p>  \n\n 5住宿的樓號(hào),宿舍號(hào),床鋪號(hào)\</p><p>  \n\n 6宿舍電話");</p><p>  printf

126、("\n 請(qǐng)選擇1-6 ");</p><p>  flushall();</p><p>  scanf("%d",&i);</p><p><b>  switch(i)</b></p><p><b>  {</b></p&

127、gt;<p>  case 1: printf("\n 輸入修改后的姓名: ");</p><p>  scanf("%s",p->name);break;</p><p>  case 2: printf("\n 輸入修改后的學(xué)號(hào) ");</p><p>  s

128、canf("%s",p->num);break;</p><p>  case 3: printf("\n 輸入修改后的性別 ");</p><p>  scanf("%c",&p->sex);break;</p><p>  case 4: printf("\n

129、 輸入修改后的院、系、班級(jí)(中間用空格隔開(kāi))");</p><p>  scanf("%s %s %s",p->yuan,p->xi,p->cla);break;</p><p>  case 5: printf("\n 輸入修改后的樓號(hào)、宿舍號(hào)、床鋪號(hào)(如13 204 3)");</p>

130、<p>  scanf("%s %s %s",p->lou,p->she,p->hao);break;</p><p>  case 6: printf("\n 輸入修改后的宿舍電話");</p><p>  scanf("%s",p->tel);break;</p>

131、<p><b>  }</b></p><p>  printf("\n修改后的學(xué)生信息是:");</p><p>  printf("\n姓名\t性別\t學(xué)號(hào)\t院\t系\t班\t樓號(hào)\t宿舍號(hào)\t床鋪號(hào)\t宿舍電話\n");</p><p>  printf("\n%s\t%c\t

132、%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s",p->name,&p->sex,p->num,p->yuan,p->xi,p->cla,p->lou,p->she,p->hao,p->tel);</p><p><b>  }</b></p><p>  else prin

133、tf("\n對(duì)不起,無(wú)此學(xué)生信息");</p><p>  printf("\n是否繼續(xù)修改(y或n): ");</p><p>  flushall();</p><p>  scanf("%c",&c);</p><p>  if(c=='n')

134、break;</p><p><b>  } </b></p><p><b>  }</b></p><p>  output(struct stu *p) /*數(shù)據(jù)的輸出*/</p><p><b>  {</b></p><p>  syste

135、m("cls");</p><p>  p=p->next;</p><p>  printf("\n\n姓名\t學(xué)號(hào)\t性別\t院\t系\t班\t樓號(hào)\t宿舍號(hào)\t床鋪號(hào)\t宿舍電話");</p><p>  while(p!=NULL)

136、 </p><p><b>  {</b></p&

137、gt;<p>  printf("\n%s\t%s\t%c\t%s\t%s\t%s\t%s\t%s\t%s\t%s",p->name,p->num,p->sex,p->yuan,p->xi,p->cla,p->lou,p->she,p->hao,p->tel);</p><p>  p=p->next;</p

138、><p><b>  }</b></p><p>  printf("\n\n按任意鍵返回主菜單");</p><p>  flushall();</p><p>  getchar();</p><p><b>  }</b></p><

139、p>  count (struct stu *p) /*數(shù)據(jù)統(tǒng)計(jì)*/</p><p><b>  {</b></p><p><b>  int i=0;</b></p><p>  system("cls");</p><p>  p=p->next;</

140、p><p>  while(p!=NULL)</p><p><b>  {</b></p><p><b>  i++;</b></p><p>  p=p->next;</p><p><b>  }</b></p><p>

141、;  printf("\n\n一共存儲(chǔ)有%d個(gè)學(xué)生信息!",i);</p><p>  printf("\n\n按任意鍵返回主菜單!");</p><p>  flushall();</p><p>  getchar();</p><p><b>  }</b></p>

142、;<p>  turn (struct stu *head) /*按學(xué)號(hào)排序*/</p><p><b>  {</b></p><p>  struct stu *p1,*p,*p2;</p><p>  p=p1=head->next;</p><p>  p1=p1->next;<

143、;/p><p>  p->next=NULL;</p><p>  while(p1!=NULL)</p><p><b>  {</b></p><p>  p2=p1->next;</p><p><b>  p=head;</b></p><

144、p>  while(p->next!=NULL&&strcmp(p->next->num,p1->num)<0)</p><p>  p=p->next;</p><p>  p1->next=p->next;</p><p>  p->next=p1;</p><p&g

145、t;<b>  p1=p2;</b></p><p><b>  }</b></p><p>  system("cls");</p><p>  printf("\n\n排序成功??!按任意鍵返回主菜單!");</p><p>  flushall();<

146、;/p><p>  getchar();</p><p><b>  }</b></p><p>  void in_system() /*密碼模塊*/</p><p><b>  {</b></p><p>  char name[10],name1[10],mi[10],

147、mi1[10],c;</p><p>  int i=1,k,j;</p><p><b>  FILE *fp;</b></p><p>  fp=fopen("D:\\mi,txt","rt");</p><p>  if(fp==NULL)</p><p&

148、gt;<b>  {</b></p><p>  fp=fopen("D:\\mi,txt","wt");</p><p>  while(1) /*新的系統(tǒng)*/</p><p><b>  {</b></p><p>  system

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論