課程設(shè)計報告---學(xué)生選修課系統(tǒng)設(shè)計_第1頁
已閱讀1頁,還剩45頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課程設(shè)計說明書(論文)</p><p>  題 目 學(xué)生選修課系統(tǒng)設(shè)計 </p><p>  課 程 名 稱 C語言課程設(shè)計 </p><p>  院(系、部、中心) 電力工程學(xué)院 </p><p>  專 業(yè) 建筑電氣與智能化

2、 </p><p>  班 級 建筑電氣與智能化111</p><p>  設(shè)計起止時間: 2011年12月20日至 2011年12月30日</p><p><b>  目錄</b></p><p>  系統(tǒng)大綱-----------------------------------------

3、--------------------------------------------1</p><p>  模塊設(shè)計-------------------------------------------------------------------------------------2</p><p>  主函數(shù)、頭文件及結(jié)構(gòu)聲明---------------------------

4、--------------------------------2</p><p>  打開、關(guān)閉程序畫面模塊--------------------------------------------------------------4</p><p>  管理員功能模塊------------------------------------------------------------

5、--------------7</p><p>  學(xué)生功能模塊----------------------------------------------------------------------------10</p><p>  瀏覽模塊-----------------------------------------------------------------------

6、-----------12</p><p>  查詢模塊----------------------------------------------------------------------------------14</p><p>  插入鏈表模塊-------------------------------------------------------------------

7、---------17</p><p>  添加模塊----------------------------------------------------------------------------------19</p><p>  刪除模塊-----------------------------------------------------------------------

8、-----------20</p><p>  選修課程模塊----------------------------------------------------------------------------22</p><p>  讀取文件模塊-----------------------------------------------------------------------

9、-----25</p><p>  保存文件模塊----------------------------------------------------------------------------26</p><p>  密碼修改模塊----------------------------------------------------------------------------2

10、8</p><p>  完整程序-------------------------------------------------------------------------------------30</p><p>  源文件-------------------------------------------------------------------------------

11、------30</p><p>  運行效果----------------------------------------------------------------------------------45</p><p>  結(jié)果分析--------------------------------------------------------------------------

12、-----------54</p><p>  總結(jié)--------------------------------------------------------------------------------------------54</p><p>  參考資料-------------------------------------------------------------

13、------------------------54</p><p><b>  一:系統(tǒng)大綱</b></p><p><b>  二:模塊設(shè)計</b></p><p>  (一) 主函數(shù),頭文件及結(jié)構(gòu)體聲明</p><p>  主函數(shù)設(shè)計地比較簡潔,只是提供一個主菜單,switch語句將整個程序分

14、為兩個大的功能模塊</p><p><b>  [流程圖]</b></p><p><b>  [程序]</b></p><p>  //由于程序畫面較大,請您右擊程序框,打開屬性欄,將程序框調(diào)整至---寬:114---高:37---給您帶來不便,敬請諒解。</p><p>  //程序目前還存在一

15、些問題,課程信息修改無法進行。</p><p>  //由于時間關(guān)系,一些在程序前面注釋過的信息在后面將不給予注釋,敬請諒解</p><p>  #include<stdio.h> //標(biāo)準(zhǔn)輸入輸出函數(shù)</p><p>  #include<string.h> //字符串操作函數(shù)&

16、lt;/p><p>  #include<stdlib.h> //標(biāo)準(zhǔn)庫函數(shù)</p><p>  #include<malloc.h> //開辟空間函數(shù)</p><p>  #include<windows.h> //延時函數(shù)頭文件</p&g

17、t;<p>  typedef struct subject //課程結(jié)構(gòu)體</p><p><b>  {</b></p><p>  int num; //課程編號</p><p>  char name[20]; //課程名稱</p>

18、<p>  char kind[10]; //課程性質(zhì) (選修或必修)</p><p>  char teacher[7]; //授課教師</p><p>  char place[20]; //授課地點</p><p>  char times[20];

19、//授課時間</p><p>  int stime; //總學(xué)時</p><p>  int ttime; //授課學(xué)時</p><p>  int score; //學(xué)分</p><p>  int s_num;

20、 //允許選修人數(shù)</p><p>  int l_num; //剩余人數(shù)</p><p>  struct subject *next; //指向下一個結(jié)構(gòu)體</p><p><b>  }SUB;</b></p><p>  SUB *head=NULL;</p

21、><p>  char password[8]="111111"; //密碼</p><p>  void main()</p><p><b>  {</b></p><p>  int n,w=1;</p><p><b>  menu();</b>&

22、lt;/p><p><b>  s_o_m();</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  system("cls");</p><p>  printf("\

23、n\n\n\n");</p><p>  printf("\n\n\t\t∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮主菜單∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮\n\n");</p><p>  printf("\t\t\t\t\t\t1.以管理員身份登錄\n");</p><p>  printf(&quo

24、t;\n");</p><p>  printf("\t\t\t\t\t\t2.以學(xué)生身份登錄\n");</p><p>  printf("\n");</p><p>  printf("\t\t\t\t\t\t3.退出");</p><p>  printf("

25、;\n\n\t\t∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮\n");</p><p>  printf("\n\t\t\t請選擇您要執(zhí)行的操作(1-3):[ ]\b\b");</p><p>  scanf("%d",&n);</p><p><b&

26、gt;  switch(n)</b></p><p><b>  {</b></p><p>  case 1:Mangers() ;break;</p><p>  case 2:Students();break;</p><p>  case 3:w=0;break;</p><p&g

27、t;  default:printf("輸入錯誤!請重新輸入。");printf("\n\t\t\t");system("pause");break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  while(

28、w==1);</p><p>  withdraw();</p><p><b>  }</b></p><p>  (二)打開、關(guān)閉程序畫面模塊</p><p>  打開程序時運用延時函數(shù),配合printf函數(shù),制作出一個動畫,隨之出現(xiàn)一個歡迎界面。關(guān)閉程序時出現(xiàn)“再見”畫面</p><p>&

29、lt;b>  [程序]</b></p><p>  void menu() //開機畫面</p><p><b>  {</b></p><p>  printf("由于程序畫面較大,請您右擊程序框,打開屬性欄,將程序框調(diào)整至\n寬:114\t高:37\n給您帶來不便,敬請諒解。\n

30、");</p><p>  Sleep(300); //延時函數(shù)</p><p>  printf(" :K#ELj;. ,ifDK#, \n");</p><p>  Sleep(300);</p>

31、<p>  printf(" f#######ELLDK###### L \n");</p><p>  Sleep(300);</p><p>  printf(" .##########

32、##########i \n");</p><p>  Sleep(300);</p><p>  printf(" j####################E 南 \n");</p><

33、;p>  Sleep(300);</p><p>  printf(" W#####################; 京 \n");</p><p>  Sleep(300);</p><p>  printf("

34、 ;######################L 工 \n");</p><p>  Sleep(300);</p><p>  printf(" E#######################. 程

35、 \n");</p><p>  Sleep(300);</p><p>  printf(" ,########################f 學(xué) \n");</p><p>  Sleep(300);</p><

36、;p>  printf(" .iLW#########################Gt: 院 \n");</p><p>  Sleep(500);</p><p>  printf(" .;fE##################

37、##############WGi. 學(xué) \n");</p><p>  Sleep(300);</p><p>  printf(" :tGW######################################WEf, 生 \n");</p><p&g

38、t;  Sleep(300);</p><p>  printf(" f########################E 選 \n");</p><p>  Sleep(300);</p><p>  printf("

39、 t########################D 修 \n");</p><p>  Sleep(300);</p><p>  printf(" :, .W#######################i:; 課 \

40、n");</p><p>  Sleep(300);</p><p>  printf(" G#KDLt,. ,W#####################G:ifGE#W, 管 \n");</p><p>  Sleep(300);</p><p>

41、  printf(" D#####WDLt,i####################D,ijGK#####W, 理 \n");</p><p>  Sleep(300);</p><p>  printf(" L############E;,j##############

42、##########K: 系 \n");</p><p>  Sleep(300);</p><p>  printf(" jW########Ei.G########################f. 統(tǒng) \n");</p><p>  Slee

43、p(300);</p><p>  printf(" :K#####Wi j#########################j \n");</p><p>  Sleep(300);</p><p>  printf("

44、 .E#####GfK#########################i \n");</p><p>  Sleep(300);</p><p>  printf(" .K###############################t \n&quo

45、t;);</p><p>  Sleep(300);</p><p>  printf(" .,;tjG##############################Kfji,: \n");</p><p>  Sleep(300);</p><p>  pr

46、intf(" .ifDW###########################################ELt: \n");</p><p>  Sleep(300);</p><p>  printf(" .;fK#######################################

47、#############WGt. \n");</p><p>  Sleep(300);</p><p>  printf(" ;D############################################################Kj \n");</p><p>  Sleep

48、(300);</p><p>  printf(" :G################################################################E; \n");</p><p>  Sleep(300);</p><p>  printf(" j################

49、####################################################D. \n");</p><p>  Sleep(300);</p><p>  printf(" D######################################################################W, \n"

50、;);</p><p>  Sleep(300);</p><p>  printf(" .E#########################################################################,\n");</p><p>  Sleep(300);</p><p>  pri

51、ntf(":D###########################################################################\n");</p><p>  Sleep(300);</p><p>  printf("#####################################################

52、########################\n");</p><p>  system("pause"); //按任意鍵繼續(xù)</p><p>  system("cls"); //清屏</p><p><b>  }</b></p>

53、;<p>  void s_o_m() //開機畫面</p><p>  { printf("\n\n\n\n");</p><p>  printf("\n\n\t\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n");</p

54、><p>  printf("\n\n\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n\n");</p><p>  printf("\t\t\t\t\t\t歡迎使用學(xué)生選修課管理系統(tǒng)。\n");</p><p>  printf("\n\n");</p

55、><p>  printf("\t\t\t\t\t\t祝您使用愉快。\n");</p><p>  printf("\n\n\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n\n");</p><p>  printf("\n\n\t\t※※※※※※※※※※※※※※※※※

56、※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n");</p><p>  printf("\n\t\t\t");</p><p>  system("pause"); </p><p><b>  }</b></p><p>  void withdraw

57、() //結(jié)束畫面</p><p>  { system("cls");</p><p>  printf("\n\n\n\n");</p><p>  printf("\n\n\t\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

58、※※\n\n");</p><p>  printf("\n\n\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n\n");</p><p>  printf("\t\t\t\t\t\t\t感謝您的使用。\n");</p><p>  printf("\n\

59、n\n");</p><p>  printf("\t\t\t\t\t\t\t再見。\n");</p><p>  printf("\n\n\t\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n");</p><p>  printf("\n\n\t\t★★

60、★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n\n");</p><p>  printf("\n\t\t\t");</p><p>  system("pause"); </p><p><b>  }</b></p><p>

61、  (三) 管理員功能模塊</p><p>  進入管理員菜單需要密碼,初始密碼為“111111”,進入管理員菜單后可修改密碼。管理員的功能一共有五個功能:瀏覽、查詢、添加、刪除、課程. 修改密碼。還有一個“修改課程信息”功能暫時無法運行運用字符串處理函數(shù)處理密碼的問題,用一個switch語句實現(xiàn)函數(shù)的調(diào)用.</p><p><b>  [流程圖]</b></p

62、><p><b>  [程序]</b></p><p>  void Mangers() //管理員函數(shù)</p><p><b>  {</b></p><p>  int n,w=1,flag=0,i=3;</p><p&

63、gt;  char s[8],a[]={"manager"};</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\n\n\t\t\t請輸入密碼:");</p><p>  scanf(&qu

64、ot;%s",s);</p><p>  if(!strcmp(s,password)) //進行密碼匹配驗證</p><p><b>  {</b></p><p><b>  flag=1;</b></p><p><b>  break;</

65、b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("\n\n\t\t\t輸入錯誤!你還有%d次機會,請重新輸入:\n",i-1);<

66、;/p><p><b>  i--;</b></p><p><b>  } </b></p><p><b>  }</b></p><p>  while(i>0);</p><p><b>  if(!flag)</b>&l

67、t;/p><p><b>  {</b></p><p>  printf("\t\t\t你已連續(xù)輸錯三次!"); //輸入密碼超過了3次??!</p><p>  exit(0); //自動退出</p><p><b> 

68、 }</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  system("cls");</p><p>  printf("\n\n\n\n");</p><p> 

69、 printf("\n\n☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆管理員菜單☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆\n\n");</p><p>  printf("\t\t\t\t\t\t1---瀏覽課程信息\n");</p><p>  printf("\t\t\t\t\t\t2---查詢課程信息\n

70、");</p><p>  printf("\t\t\t\t\t\t3---添加課程信息\n");</p><p>  //printf("\t\t\t\t\t\t4---修改課程信息\n");</p><p>  //printf("\t\t\t\t\t\t5---刪除課程信息\n");<

71、/p><p>  //printf("\t\t\t\t\t\t6---修改密碼\n");</p><p>  //printf("\t\t\t\t\t\t7---返回主菜單");</p><p>  printf("\t\t\t\t\t\t4---刪除課程信息\n");</p><p>

72、  printf("\t\t\t\t\t\t5---修改密碼\n");</p><p>  printf("\t\t\t\t\t\t6---返回主菜單");</p><p>  printf("\n\n☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆\n");

73、</p><p>  printf("\n\t\t\t請選擇您要執(zhí)行的操作(1-5):[ ]\b\b");</p><p>  scanf("%d",&n);</p><p><b>  switch(n)</b></p><p><b>  {</b>

74、;</p><p>  case 1:prin(a);break;</p><p>  case 2:search();break;</p><p>  case 3:insert();savefile();break;</p><p>  // case 4:mod();break;</p><p>  // cas

75、e 5:del();savefile();break;</p><p>  // case 6:pass();break;</p><p>  // case 7:w=0;break;</p><p>  case 4:del();savefile();break;</p><p>  case 5:pass();break;</p&g

76、t;<p>  case 6:w=0;break;</p><p>  default:printf("輸入錯誤!請重新輸入。");printf("\n");system("pause");break;</p><p><b>  } </b></p><p>  }wh

77、ile(w==1);</p><p><b>  }</b></p><p>  (四) 學(xué)生功能菜單</p><p>  學(xué)生功能菜單包括五個功能:瀏覽課程,查詢課程, 添加選修課程,瀏覽我所選修的課程,刪除錯選的課程,也是用到switch語句來調(diào)用函數(shù)。每個學(xué)生選修課程和瀏覽我選修的課程時都要輸入學(xué)號,每個學(xué)生的信息單獨存放在一個文件里。&

78、lt;/p><p><b>  [流程圖]</b></p><p><b>  [程序]</b></p><p>  void Students() //學(xué)生函數(shù)</p><p><b>  {</b></p

79、><p>  int n,w=1;</p><p>  char a[]={"manager"},b[5];</p><p><b>  do</b></p><p><b>  {</b></p><p>  system("cls");

80、</p><p>  printf("\n\n\n\n");</p><p>  printf("\n\n☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆學(xué)生菜單☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆\n\n");</p><p>  printf("\t\t\t\t\t\t1---瀏覽所

81、有課程\n");</p><p>  printf("\t\t\t\t\t\t2---查詢課程信息\n");</p><p>  printf("\t\t\t\t\t\t3---選擇選修課程\n");</p><p>  printf("\t\t\t\t\t\t4---瀏覽我選修的課程\n");&

82、lt;/p><p>  printf("\t\t\t\t\t\t5---刪除錯選課程\n");</p><p>  printf("\t\t\t\t\t\t6---返回主菜單");</p><p>  printf("\n\n☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆

83、☆○☆☆○☆☆○☆☆○☆\n");</p><p>  printf("\n請選擇您要執(zhí)行的操作(1-6):[ ]\b\b");</p><p>  scanf("%d",&n);</p><p><b>  switch(n)</b></p><p><b

84、>  {</b></p><p>  case 1:prin(a);break;</p><p>  case 2:search();break;</p><p>  case 3:choose();break;</p><p>  case 4:printf("請輸入您的學(xué)號:\n");scanf(&q

85、uot;%s",b);prin(b);break;</p><p>  case 5:del();savefile1();break;</p><p>  case 6:w=0;break;</p><p>  default:printf("輸入錯誤!請重新輸入。");printf("\n\t\t\t");syst

86、em("pause");break;</p><p><b>  } </b></p><p><b>  }</b></p><p>  while(w==1);</p><p><b>  }</b></p><p><b&

87、gt;  (五) 瀏覽模塊</b></p><p>  瀏覽模塊主要用管理員中的”瀏覽課程”和學(xué)生功能中的”瀏覽所有所有課程”,將所有的課程信息輸出,即將txt文件里面的內(nèi)容全部輸出</p><p><b>  [流程圖]</b></p><p><b>  [程序]</b></p><p&

88、gt;  void prin(char a[]) //瀏覽所有課程</p><p><b>  {</b></p><p><b>  SUB *ptr;</b></p><p>  char s[]={".txt"};</p><p>  strcat(a,s);</

89、p><p>  head=NULL;</p><p>  readfile(a);</p><p>  if(head==NULL)</p><p><b>  {</b></p><p>  printf("\n\n\t*********沒有課程信息!************\n"

90、;);</p><p><b>  return;</b></p><p><b>  }</b></p><p>  printf("課程編號 課程名稱 課程性質(zhì) 授課教師 授課地點 授課時間 總學(xué)時 授課學(xué)時 學(xué)分 允許選修人數(shù) 剩余人數(shù)\n");</p><

91、p>  for(ptr=head;ptr;ptr=ptr->next)</p><p><b>  {</b></p><p>  printf("%5d%12s%9s%9s%9s%11s%9d%9d%10d%10d%12d\n",ptr->num,ptr->name,ptr->kind,ptr->teacher

92、,ptr->place,ptr->times,ptr->stime,ptr->ttime,ptr->score,ptr->s_num,ptr->l_num);</p><p><b>  }</b></p><p>  printf("\n\t\t\t");</p><p>  sy

93、stem("pause");</p><p><b>  }</b></p><p><b>  (六) 查詢模塊</b></p><p>  查詢模塊主要用于管理員功能中的”查詢課程”和學(xué)生功能模塊中的”查詢所有課程”,查詢模塊共分為三個查詢方法:按課程名稱查找,按課程性質(zhì)查找和按學(xué)分查找.switc

94、h語句中,每一個case語句就是一中查詢方法</p><p><b>  [流程圖]</b></p><p><b>  [程序]</b></p><p>  void search() //課程信息查詢</p><p><b>  {<

95、/b></p><p>  int a,num;</p><p><b>  int t=1;</b></p><p>  char type[10],min[10];</p><p><b>  SUB *ptr;</b></p><p>  L1:system(&q

96、uot;cls");</p><p>  printf("\n\n\n\n");</p><p>  printf("\n\n\t\t***********************請選擇查詢方式**************************\n");</p><p>  printf("\n\t\t\

97、t\t\t1---按課程名稱查找\n");</p><p>  printf("\n\t\t\t\t\t2---按課程性質(zhì)查找\n");</p><p>  printf("\n\t\t\t\t\t3---按學(xué)分查找\n");</p><p>  printf("\n\t\t\t\t\t4---退出查找\n

98、");</p><p>  printf("\n\n\t\t****************************************************************************\n");</p><p>  printf("\n\n\t\t\t請選擇您要執(zhí)行的操作(1-4):[ ]\b\b");</

99、p><p>  scanf("%d",&a);</p><p><b>  switch(a)</b></p><p><b>  {</b></p><p>  case 1:printf("請輸入要查找的課程的名稱:"); //按名

100、稱查找</p><p>  printf("\t\t\t");</p><p>  scanf("%s",min);</p><p>  printf("課程編號 課程名稱 課程性質(zhì) 授課教師 授課地點 授課時間 總學(xué)時 授課學(xué)時 學(xué)分 允許選修人數(shù) 剩余人數(shù)\n");</p>

101、;<p>  for(ptr=head;ptr;ptr=ptr->next)</p><p>  if(strcmp(min,ptr->name)==0)</p><p><b>  {</b></p><p>  printf("%5d%12s%9s%9s%9s%11s%9d%9d%10d%10d%12d\

102、n",ptr->num,ptr->name,ptr->kind,ptr->teacher,ptr->place,ptr->times,ptr->stime,ptr->ttime,ptr->score,ptr->s_num,ptr->l_num);</p><p><b>  t=0;</b></p>&

103、lt;p><b>  }</b></p><p><b>  if(t) </b></p><p>  printf("\t\n未找到!\n");</p><p><b>  t=1;</b></p><p>  printf("\t\t\t

104、");</p><p>  system("pause");</p><p><b>  goto L1;</b></p><p>  case 2:printf("請輸入要查找的課程的性質(zhì):"); //按性質(zhì)查找</p><p>  scanf(&q

105、uot;%s",type);</p><p>  printf("課程編號 課程名稱 課程性質(zhì) 授課教師 授課地點 授課時間 總學(xué)時 授課學(xué)時 學(xué)分 允許選修人數(shù) 剩余人數(shù)\n");</p><p>  for(ptr=head;ptr;ptr=ptr->next)</p><p>  if(strcmp(ty

106、pe,ptr->kind)==0)</p><p><b>  {</b></p><p>  printf("%5d%12s%9s%9s%9s%11s%9d%9d%10d%10d%12d\n",ptr->num,ptr->name,ptr->kind,ptr->teacher,ptr->place,ptr-&g

107、t;times,ptr->stime,ptr->ttime,ptr->score,ptr->s_num,ptr->l_num);</p><p><b>  t=0;</b></p><p><b>  }</b></p><p><b>  if(t) </b><

108、/p><p>  printf("\t\n未找到!\n");</p><p><b>  t=1;</b></p><p>  printf("\t\t\t");</p><p>  system("pause");</p><p><

109、b>  goto L1;</b></p><p>  case 3:printf("輸入要查找的課程的學(xué)分:"); //按學(xué)分查找</p><p>  scanf("%d",&num);</p><p>  printf("課程編號 課程名稱 課程性質(zhì) 授課教

110、師 授課地點 授課時間 總學(xué)時 授課學(xué)時 學(xué)分 允許選修人數(shù) 剩余人數(shù)\n");</p><p>  for(ptr=head;ptr;ptr=ptr->next)</p><p>  if(ptr->score==num)</p><p><b>  {</b></p><p>  

111、printf("%5d%12s%9s%9s%9s%11s%9d%9d%10d%10d%12d\n",ptr->num,ptr->name,ptr->kind,ptr->teacher,ptr->place,ptr->times,ptr->stime,ptr->ttime,ptr->score,ptr->s_num,ptr->l_num);</p&

112、gt;<p><b>  t=0;</b></p><p><b>  }</b></p><p><b>  if(t) </b></p><p>  printf("\n\t\t\t\t未找到!\n");</p><p><b>

113、  t=1;</b></p><p>  printf("\t\t\t");</p><p>  system("pause");</p><p><b>  goto L1;</b></p><p>  case 4:break;</p><p&g

114、t;<b>  }</b></p><p><b>  }</b></p><p>  (七) 插入鏈表模塊</p><p>  插入鏈表操作主要用于添加課程,在整個課程信息中加入一些新課程,它在添加模塊中被調(diào)用</p><p><b>  [流程圖]</b></p>

115、;<p><b>  [程序]</b></p><p>  void *myInsert(SUB* subj) //鏈表插入操作 </p><p><b>  {</b></p><p>  SUB *ptr,*ptr2; //找到該插入的位置,進行操作</p>&l

116、t;p><b>  ptr=subj;</b></p><p>  if(head==NULL)</p><p><b>  {</b></p><p><b>  head=ptr;</b></p><p>  head->next=NULL;</p>

117、<p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  for(ptr2=head;ptr2;ptr2=ptr2->next)</p><p>  if(ptr2->ne

118、xt==NULL)</p><p><b>  {</b></p><p>  ptr2->next=subj;</p><p>  subj->next=NULL;</p><p><b>  break;</b></p><p><b>  }<

119、;/b></p><p><b>  }</b></p><p>  return head;</p><p><b>  }</b></p><p><b>  (八) 添加模塊</b></p><p>  添加模塊主要用于增加課程信息,采用鏈表

120、的操作</p><p><b>  [流程圖]</b></p><p><b>  [程序]</b></p><p>  void *insert()//插入課程信息 </p><p><b>  {</b></p><p>  SUB *ptr,*su

121、bj;</p><p>  int size=sizeof(SUB);</p><p>  char ch,ch1;</p><p>  while(ch!='0')</p><p><b>  {</b></p><p>  subj=(SUB *)malloc(size);&l

122、t;/p><p><b>  ptr=subj;</b></p><p>  printf("輸入要插入的課程信息:\n");</p><p>  printf("\n\t\t\t\t\t請輸入課程編號:");scanf("%d",&subj->num); </p&

123、gt;<p>  printf("\n\t\t\t\t\t請輸入課程名稱:");scanf("%s",&subj->name); </p><p>  printf("\n\t\t\t\t\t請輸入課程性質(zhì):");scanf("%s",&subj->kind);</p><

124、;p>  printf("\n\t\t\t\t\t請輸入授課教師:");scanf("%s",&subj->teacher);</p><p>  printf("\n\t\t\t\t\t請輸入授課地點:");scanf("%s",&subj->place);</p><p>

125、  printf("\n\t\t\t\t\t請輸入授課時間:");scanf("%s",&subj->times);</p><p>  printf("\n\t\t\t\t\t請輸入總學(xué)時:");scanf("%d",&subj->stime);</p><p>  printf(

126、"\n\t\t\t\t\t請輸入授課學(xué)時:");scanf("%d",&subj->ttime);</p><p>  printf("\n\t\t\t\t\t請輸入學(xué)分:");scanf("%d",&subj->score);</p><p>  printf("\n\t

127、\t\t\t\t請輸入允許選修人數(shù):");scanf("%d",&subj->s_num);</p><p>  subj->l_num=subj->s_num;</p><p>  myInsert(subj);</p><p>  printf("\nt\t\t添加完畢,新信息存入文件中\(zhòng)n&qu

128、ot;);</p><p>  printf("\nt\t\t繼續(xù)插入請按回車\n");</p><p>  printf("\nt\t\t結(jié)束添加課程按 0: [ ]\b\b");</p><p>  ch1=getchar(); //將回車鍵賦給CH1,否則subj->s_n

129、um輸完后輸入的回車鍵會賦給CH,因此用CH1填補。</p><p>  ch=getchar();</p><p><b>  }</b></p><p>  return head;</p><p><b>  } </b></p><p><b>  (九)

130、刪除模塊</b></p><p>  刪除模塊主要用于管理員刪除課程信息學(xué)生刪除自己的選課,全部采用刪除鏈表中的某一個節(jié)點的操作</p><p><b>  [流程圖]</b></p><p><b>  [程序]</b></p><p>  void *del() //刪除課程<

131、;/p><p><b>  {</b></p><p>  SUB *p1,*p2;</p><p>  char ch,ch1;</p><p><b>  int num;</b></p><p>  while(ch!='0')</p><

132、;p><b>  {</b></p><p>  printf("輸入想要刪除的課程編號:[ ]\b\b\b\b\b");</p><p>  scanf("%d",&num);</p><p>  if(head->num==num) //找到需要

133、刪除的課程并釋放其存儲空間</p><p><b>  {</b></p><p>  head->l_num=(head->l_num)+1;</p><p><b>  p2=head;</b></p><p>  head=head->next;</p><

134、;p><b>  free(p2);</b></p><p><b>  }</b></p><p>  if(head==NULL)</p><p>  return NULL;</p><p><b>  p1=head;</b></p><p&g

135、t;  p2=head->next;</p><p>  while(p2) //找到需要刪除的課程并釋放其存儲空間</p><p><b>  {</b></p><p>  if(p2->num==num)</p><p><b>  {</

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論