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

下載本文檔

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

文檔簡介

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

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

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

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

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

6、>  運行平臺——Windows XP</p><p><b>  三、程序特色</b></p><p>  ⑴宿舍管理最主要的是對學(xué)生信息的查詢,本程序在查詢上特色鮮明,可以實現(xiàn)以下功能 :</p><p><b>  1按學(xué)生姓名查詢;</b></p><p><b>  2按學(xué)

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

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

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

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

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

12、t;<p><b>  五、詳細(xì)設(shè)計</b></p><p>  (1)各個模塊的程序流程圖</p><p><b>  ①刪除模塊</b></p><p><b> ?、诓樵兡K</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)計,排序,打印等;</p><p><b>  3 查詢模塊</b></p><p>  void find(struct stu *head)</p><p>  包括:void search_cla(struct s

16、tu *head) 按班級查找</p><p>  void search_num(struct stu *head) 按學(xué)號查找</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)計模塊</b></p><p>  count (stru

19、ct stu *p) /*數(shù)據(jù)統(tǒng)計*/ </p><p><b>  七顯示頁面</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é)及體會</b></p><p> ?、?在寫完第一遍程序后,首先進(jìn)行了調(diào)試,仍是按照從某個模塊來分析的,然后在整體執(zhí)行</p><p>  但是遠(yuǎn)遠(yuǎn)有很多不如意的地方,特別是對警告的調(diào)試比較麻煩,棘手,但是通過向老

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

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

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

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

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

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

27、題11 </p><p>  3. C程序設(shè)計 第二版 譚浩強(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) /*存儲數(shù)據(jù)*/</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  char file[40];</p><p>  printf("\n\n請輸入要存儲數(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é)點的鏈表*/</p><p>  p1=(struct stu *)malloc(N);</p><p>  printf("\n\n請輸入學(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é)號\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所在班級\n");</p><p>  flushall(

39、);</p><p>  scanf("%s",p1->cla);</p><p>  printf("\n所在樓號\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請輸入所在床鋪號\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é)號為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請輸入學(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é)號\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所在班級\n");</p><p>  flushall();</p><p>  scanf("%s",p1->cla);</p><

47、p>  printf("\n所在樓號\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請輸入所在床鋪號\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ù)庫*/</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請輸入要查找的學(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é)號\t性別\t樓號\t宿舍號\t床鋪號\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對不起,無此學(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é)號查詢*/</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請輸入要查詢的學(xué)生學(xué)號: ");</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對不起,無此學(xué)生信息");</p><p>  else if(strcmp(p->num,num)==0)</p><p><b>  {</b></p>&

68、lt;p>  printf("\n\n學(xué)號\t姓名\t院\t系\t班\t性別\t樓號\t宿舍號\t床鋪號\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é)號查詢(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請輸入要查詢樓號及宿

73、舍號(如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é)號\t院\t系\t班\

75、t性別\t床鋪號\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 無此宿舍或此宿舍無學(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) /*按班級查詢*/</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請輸入要查詢的班級: ");</p><p>  flushall();</p><p>  gets(cla);</p><p>  prin

81、tf("\n%s班住宿情況如下:",cla);</p><p>  printf("\n\n院\t系\t姓名\t學(xué)號\t性別\t樓號\t宿舍號\t床鋪號\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 班級輸入有誤!!!!");</p><p>  printf("\n是否繼續(xù)按班級查詢(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請輸入要查詢電話的宿舍號(包括樓號)(如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 對不起,宿舍號輸入有誤!!!!");</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) /*查找選擇,具有不同的查找選項*/</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*******************歡迎來到學(xué)生宿舍信息查詢系統(tǒng)************");</p><p>  printf("\n\n 1按照學(xué)生姓名查詢\</p><p>  \n\n 2按照學(xué)生學(xué)號查詢\</p><p>  \n\n

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

95、printf(" 請選擇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ù)為空,無法刪除!!");</p><p>  printf("請輸入要刪除學(xué)生的學(xué)號: ");</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無此學(xué)生信息,無法刪除?。?quot;);</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請輸入要插入學(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é)號\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、在班級\n");</p><p>  flushall();</p><p>  scanf("%s",p1->cla);</p><p>  printf("\n所在樓號\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所在床鋪號\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對不起,已有相同學(xué)號的學(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請輸入要修改的學(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é)號\t院\t系\t班\t樓號\t宿舍號\t床鋪號\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 請選擇您要修改的項目: ");</p><p>  printf("\n 1姓名\<

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

126、("\n 請選擇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é)號 ");</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、 輸入修改后的院、系、班級(中間用空格隔開)");</p><p>  scanf("%s %s %s",p->yuan,p->xi,p->cla);break;</p><p>  case 5: printf("\n 輸入修改后的樓號、宿舍號、床鋪號(如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é)號\t院\t系\t班\t樓號\t宿舍號\t床鋪號\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對不起,無此學(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é)號\t性別\t院\t系\t班\t樓號\t宿舍號\t床鋪號\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)計*/</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一共存儲有%d個學(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é)號排序*/</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排序成功?。“慈我怄I返回主菜單!");</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. 本站所有資源如無特殊說明,都需要本地電腦安裝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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論