版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> c語言及數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計</p><p> 題 目 : 學(xué)生信息管理系統(tǒng) </p><p> 專 業(yè): 物聯(lián)網(wǎng)工程1401班 </p><p> 姓 名:
2、 </p><p> 學(xué) 號: </p><p> 同組其他學(xué)生(學(xué)號): </p><p> 2015年 6月 24 日</p><p><b>
3、; 目 錄</b></p><p><b> 一、需求分析3</b></p><p><b> 二、總體設(shè)計3</b></p><p><b> 三、詳細設(shè)計3</b></p><p><b> 四、調(diào)試與測試3</b><
4、;/p><p><b> 五、測試結(jié)果3</b></p><p><b> 六、用戶手冊3</b></p><p><b> 七、附錄3</b></p><p><b> 一、需求分析</b></p><p><b&
5、gt; 問題描述</b></p><p> 學(xué)生信息包括:學(xué)號,姓名,年齡,性別,出生年月,地址,電話,E-mail等。試設(shè)計一學(xué)生信息管理系統(tǒng),使之能提供以下功能:</p><p><b> 系統(tǒng)以菜單方式工作</b></p><p> 學(xué)生信息錄入功能---輸入</p><p> 學(xué)生信息瀏覽功
6、能---輸出</p><p> 查詢、排序功能---算法</p><p> 按學(xué)號查詢、按姓名查詢、學(xué)生信息的刪除與修改(可選項)</p><p><b> ?。?)功能要求</b></p><p> 界面比較美觀;有一定的容錯能力,比如輸入的成績不在0~100之間,就提示不合法,要求重新輸入;最好用鏈表的方式實現(xiàn)
7、。</p><p><b> 二、總體設(shè)計</b></p><p> 錄入信息 </p><p><b> Y</b></p><p><b> N</b></p><p><b> 瀏覽學(xué)生信息</b>&
8、lt;/p><p><b> 查詢學(xué)生信息</b></p><p><b> N</b></p><p><b> Y </b></p><p><b> 刪除學(xué)生信息</b></p><p><b> Y</
9、b></p><p><b> N</b></p><p><b> 修改學(xué)生信息</b></p><p><b> N</b></p><p><b> Y</b></p><p><b> 三、詳細設(shè)計
10、</b></p><p> 各調(diào)用函數(shù)的設(shè)計與運行情況:</p><p><b> ?。?/錄入學(xué)生信息</b></p><p> void record ()</p><p><b> { </b></p><p> struct student *p
11、0; </p><p> p0 = (struct student *)malloc(LEN);</p><p> printf ("請輸入學(xué)生的姓名:");</p><p> scanf ("%s",p0->name); </p><p> printf ("請輸入學(xué)
12、生的學(xué)號:");</p><p> scanf ("%ld",&p0->num);</p><p> printf ("請輸入學(xué)生的性別:");</p><p> scanf ("%s",p0->sex);</p><p> printf (&q
13、uot;請輸入學(xué)生的年齡:");</p><p> scanf ("%d",&p0->age);</p><p> printf ("請輸入學(xué)生的地址:");</p><p> scanf ("%s",p0->address);</p><p>
14、 printf ("請輸入學(xué)生的電話:");</p><p> scanf ("%lf",&p0->tele_num);</p><p> printf ("請輸入學(xué)生的E-mail:");</p><p> scanf ("%s",p0->E_mail);&l
15、t;/p><p> insert (p0);</p><p> printf ("該學(xué)生的信息為:\n");</p><p> printf ("-------------------------------------------------------------------------------\n");</p
16、><p> printf ("姓名\t學(xué)號\t年齡\t性別\t地址\t\t電話\t\tE-mail\n");</p><p> display (p0);</p><p><b> }</b></p><p> void insert (struct student *stu)</p>
17、<p><b> {</b></p><p> struct student *p0, *p1, *p2;</p><p> p1 = head;</p><p><b> p0 = stu;</b></p><p> if (head == NULL)</p>
18、<p><b> {</b></p><p> head = p0;</p><p> p0->next = NULL;</p><p><b> }</b></p><p><b> else</b></p><p><
19、;b> {</b></p><p> while ((p0->num > p1->num)&&(p1->next != NULL))</p><p><b> {</b></p><p><b> p2 = p1;</b></p><p&
20、gt; p1 = p1->next;</p><p><b> }</b></p><p> if (p0->num <= p1->num)</p><p><b> {</b></p><p> if (head == p1)</p><p&g
21、t; head = p0;</p><p><b> else</b></p><p> p2->next = p0;</p><p> p0->next = p1;</p><p><b> }</b></p><p><b> else&
22、lt;/b></p><p><b> {</b></p><p> p1->next = p0;</p><p> p0->next = NULL;</p><p><b> } </b></p><p><b> } </b&
23、gt;</p><p> TOTAL_NUM++;</p><p><b> }</b></p><p> void display (struct student *p)</p><p><b> {</b></p><p> printf ("%s\t
24、%ld\t%d\t%s\t%s\t%.0f\t%s\n", p->name, p->num, p->age, p->sex, p->address, p->tele_num, p->E_mail);</p><p><b> }</b></p><p><b> //瀏覽學(xué)生信息</b>&l
25、t;/p><p> void displayAll()</p><p><b> {</b></p><p> struct student *p;</p><p> printf("學(xué)生總數(shù):%d\n", TOTAL_NUM);</p><p> p = head; &
26、lt;/p><p> if (head != NULL)</p><p><b> { </b></p><p> printf("\n姓名\t學(xué)號\t年齡\t性別\t地址\t\t電話\t\tE-mail\n");</p><p> printf("-------------------
27、------------------------------------------------------------\n");</p><p><b> do</b></p><p><b> {</b></p><p> display(p);</p><p> p = p-
28、>next;</p><p><b> }</b></p><p> while(p != NULL);</p><p><b> } </b></p><p> printf ("\n");</p><p><b> }<
29、/b></p><p> //按學(xué)號查詢學(xué)生信息</p><p> void query_by_num ()</p><p><b> {</b></p><p><b> int num;</b></p><p> struct student *p1;&l
30、t;/p><p> printf("請輸入學(xué)生的學(xué)號:");</p><p> scanf("%ld", &num);</p><p> if(head==NULL)</p><p><b> {</b></p><p> printf(&qu
31、ot;無學(xué)生記錄!\n");</p><p><b> return;</b></p><p><b> } </b></p><p> p1 = head;</p><p> while (num!=p1->num && p1->next!=NULL)
32、</p><p> p1 = p1->next; </p><p> if (num == p1->num)</p><p><b> { </b></p><p> printf ("姓名\t學(xué)號\t年齡\t性別\t地址\t\t電話\t\tE-mail\n");</p>
33、;<p> printf ("-------------------------------------------------------------------------------\n");</p><p> display (p1);</p><p><b> } </b></p><p>&l
34、t;b> else</b></p><p> printf ("沒有該學(xué)生記錄,請核對!");</p><p><b> }</b></p><p><b> //刪除學(xué)生信息</b></p><p> void del ()</p>&
35、lt;p><b> {</b></p><p> struct student *p1, *p2;</p><p> long int num;</p><p> if (head == NULL)</p><p><b> {</b></p><p> p
36、rintf("無學(xué)生記錄!\n");</p><p><b> return;</b></p><p><b> }</b></p><p> printf("請輸入您要刪除的學(xué)生的學(xué)號:");</p><p> scanf("%ld&quo
37、t;, &num);</p><p> p1 = head;</p><p> while (num != p1->num && p1->next != NULL)</p><p><b> {</b></p><p><b> p2 = p1;</b>&
38、lt;/p><p> p1 = p1->next; </p><p><b> }</b></p><p> if(num == p1->num)</p><p><b> {</b></p><p> if(p1 == head)</p>
39、<p> head = p1->next;</p><p> else p2->next = p1->next;</p><p><b> free(p1);</b></p><p> TOTAL_NUM--;</p><p><b> }</b></p&
40、gt;<p><b> else</b></p><p> printf("沒有該學(xué)生記錄,請核對!\n");</p><p><b> }</b></p><p><b> //修改學(xué)生信息</b></p><p> void ch
41、ange ()</p><p><b> {</b></p><p> struct student *p1, *p2;</p><p> long int num;</p><p> if (head == NULL)</p><p><b> {</b><
42、/p><p> printf ("無學(xué)生記錄!\n");</p><p><b> return;</b></p><p><b> }</b></p><p> printf ("請輸入您要修改的學(xué)生的學(xué)號:");</p><p>
43、; scanf ("%ld", &num);</p><p> p1 = head; </p><p> while (num != p1->num && p1->next != NULL)</p><p><b> {</b></p><p><b&
44、gt; p2 = p1;</b></p><p> p1 = p1->next; </p><p><b> }</b></p><p> if(num == p1->num)</p><p> devise (p1); </p><p><b>
45、else</b></p><p> printf("沒有該學(xué)生記錄,請核對!\n");</p><p><b> }</b></p><p> void devise (struct student *p)</p><p><b> {</b></p&g
46、t;<p> int choice;</p><p> choice = -1;</p><p><b> do</b></p><p><b> {</b></p><p> printf("請選擇您要修改的學(xué)生的信息內(nèi)容:\n");</p>
47、<p> printf("+----------------------+\n"); </p><p> printf("| 姓名 請按 1 |\n");</p><p> printf("| 學(xué)號 請按 2 |\n");</p><p>
48、; printf("| 性別 請按 3 |\n");</p><p> printf("| 年齡 請按 4 |\n");</p><p> printf("| 地址 請按 5 |\n");</p><p> printf("| 電話
49、 請按 6 |\n");</p><p> printf("| E-mail 請按 7 |\n");</p><p> printf("| 取消 請按 0 |\n");</p><p> printf("+----------------------+\n
50、");</p><p> printf("請輸入您的選擇:");</p><p> scanf("%d", &choice);</p><p> switch (choice)</p><p><b> {</b></p><p>
51、<b> case 0:</b></p><p><b> return;</b></p><p><b> case 1:</b></p><p> printf("請輸入新姓名:");</p><p> scanf("%s"
52、, p->name);</p><p><b> break;</b></p><p><b> case 2:</b></p><p> printf("請輸入新學(xué)號:");</p><p> scanf("%d", &p->nu
53、m);</p><p><b> break; </b></p><p><b> case 3:</b></p><p> printf("請輸入新性別:");</p><p> scanf("%s", p->sex);</p>
54、<p><b> break;</b></p><p><b> case 4:</b></p><p> printf("請輸入新年齡:");</p><p> scanf("%s", &p->age);</p><p>&l
55、t;b> break; </b></p><p><b> case 5:</b></p><p> printf("請輸入新地址:");</p><p> scanf("%s", p->address);</p><p><b> br
56、eak; </b></p><p><b> case 6:</b></p><p> printf("請輸入新電話:");</p><p> scanf("%lf", &p->tele_num);</p><p><b> break;
57、 </b></p><p><b> case 7:</b></p><p> printf("請輸入新E-mail:");</p><p> scanf("%s", p->E_mail);</p><p><b> break; </b&
58、gt;</p><p><b> default:</b></p><p> printf("\n無效選項!");</p><p><b> break;</b></p><p><b> }</b></p><p><
59、b> }</b></p><p> while(choice != 0);</p><p><b> }</b></p><p> 模塊功能說明(如函數(shù)功能、入口及出口參數(shù)說明,函數(shù)調(diào)用關(guān)系描述等))</p><p><b> 四、調(diào)試與測試</b></p>
60、<p> 設(shè)計一個程序,錯誤是難免不了的。但我們可以根據(jù)編輯系統(tǒng)給出的一些提示去查看程序錯誤。對不敢肯定正確的,翻翻書,看一下這一知識。對難度大的就和同學(xué)們一起討論,問一問老師。</p><p> 開發(fā)一個系統(tǒng),耐心是必要的,認真也很重要,構(gòu)思要明確。</p><p> 認為是哪里錯誤的,有時用“/* */”注釋起來進行,看看是否還有錯誤。</p><
61、;p> 常錯有以下幾種情況: </p><p> 1.使用變量,但未有定義,則先定義。</p><p> 2.不該用分號的,用到了,把它去掉。</p><p> 3.行最后若有分號則刪除,中間若有分號則改成逗號 </p><p> 4.若錯誤行中有if、while、for則要特別注意條件表達式的錯誤。 </p&g
62、t;<p> 5.若條件表達式中只有一個等于號,則改成兩個等于號。</p><p> 6.for中要用分號分隔表達式,而不是用逗號 </p><p> 7.缺少分號,若錯誤行中有語句沒有用分號結(jié)束,則加上分號?!?</p><p> 8.大小寫不對,若錯誤行中有大寫字母則一般都改成小寫字母?! ? </p>&l
63、t;p> 9.若有return語句則函數(shù)的類型必須與return后變量的類型一致。調(diào)試方法,測試結(jié)果的分析與討論,測試過程中遇到的主要問題及采取的解決措施</p><p><b> 五、測試結(jié)果</b></p><p> 測試數(shù)據(jù)運行結(jié)果詳見“三·具體設(shè)計”(程序運行的截圖)</p><p><b> 六、用戶
64、手冊</b></p><p><b> 按提示輸入數(shù)據(jù)。</b></p><p><b> 七、附錄</b></p><p><b> 源程序代碼</b></p><p> #include <stdio.h></p><p&
65、gt; #include <malloc.h></p><p> #include <string.h></p><p> #include <stdlib.h></p><p> #define NULL 0</p><p> #define LEN sizeof(struct student)
66、</p><p> struct student </p><p><b> {</b></p><p> char name[20];</p><p> long int num;</p><p> char sex[4];</p><p><b>
67、; int age;</b></p><p> char address[30];</p><p> double tele_num;</p><p> char E_mail[20];</p><p> struct student *next;</p><p> };//定義一個結(jié)構(gòu)題<
68、;/p><p> int TOTAL_NUM = 0;//學(xué)生總數(shù)</p><p> struct student *head = NULL;</p><p> void welcome (); //歡迎界面</p><p> void mainmenu (); //主界面</p><p> void recor
69、d (); //記錄數(shù)據(jù)</p><p> void insert(struct student *stu); //插入數(shù)據(jù)</p><p> void display(struct student *stu); //顯示一個學(xué)生的信息</p><p> void displayAll (); //顯示所有學(xué)生的信息</p><p>
70、 void query_by_num (); //按學(xué)號查詢學(xué)生信息</p><p> void readData (); //讀取文件里學(xué)生的信息</p><p> void writeData (); //向文件寫入學(xué)生信息</p><p> void freeAll (); //清空鏈表內(nèi)容</p><p> void del
71、(); //刪除學(xué)生信息</p><p> void change (); //更改學(xué)生信息</p><p> void devise (struct student *p); //選擇更改內(nèi)容</p><p> int main (void)</p><p><b> {</b></p><
72、p> welcome ();</p><p><b> //顯示主菜單</b></p><p> mainmenu ();</p><p><b> return 0;</b></p><p><b> }</b></p><p><
73、;b> //顯示歡迎信息</b></p><p> void welcome ()</p><p><b> {</b></p><p> printf ("\t————————————————————————\n");</p><p> printf ("\t
74、 \n");</p><p> printf ("\t 歡迎使用福建工軟物聯(lián)網(wǎng)1401班學(xué)生信息管理系統(tǒng) \n");</p><p> printf ("\t \n&q
75、uot;);</p><p> printf ("\t————————————————————————\n");</p><p><b> }</b></p><p><b> //系統(tǒng)主菜單</b></p><p> void mainmenu ()</p>
76、<p><b> {</b></p><p> int choice;</p><p> choice = -1;</p><p> readData ();</p><p> printf("\n\t\t請先創(chuàng)建database.txt文件以便于保存學(xué)生數(shù)據(jù)");</p
77、><p><b> do</b></p><p><b> {</b></p><p> printf ("\n\n\n");</p><p> printf ("\t\t--------------------------------------------\n&
78、quot;);</p><p> printf ("\t\t| 工軟物聯(lián)網(wǎng)1401班學(xué)生信息管理系統(tǒng) |\n"); </p><p> printf ("\t\t--------------------------------------------\n"); </p><p&g
79、t; printf ("\t\t| [1]----錄入學(xué)生信息 |\n");</p><p> printf ("\t\t| [2]----瀏覽學(xué)生信息 |\n");</p><p> printf ("\t\t| [3]----查詢
80、學(xué)生信息 |\n");</p><p> printf ("\t\t| [4]----刪除學(xué)生信息 |\n");</p><p> printf ("\t\t| [5]----修改學(xué)生信息 |\n");</p>
81、;<p> printf ("\t\t| [0]----退出系統(tǒng) |\n");</p><p> printf ("\t\t|*·*·*·*·*·*·*·*·*·*·*·*·*·*
82、83;*|\n");</p><p> printf ("\t\t---------------------------------------------\n");</p><p> printf ("請根據(jù)您的需要輸入對應(yīng)的編號:");</p><p> scanf ("%d", &am
83、p;choice);</p><p> switch (choice)</p><p><b> {</b></p><p><b> case 0:</b></p><p> writeData ();</p><p> freeAll ();</p>
84、<p><b> exit (0);</b></p><p><b> case 1:</b></p><p> record ();</p><p><b> break;</b></p><p><b> case 2:</b>
85、</p><p> displayAll ();</p><p><b> break;</b></p><p><b> case 3:</b></p><p> query_by_num ();</p><p><b> break; </b&
86、gt;</p><p><b> case 4:</b></p><p><b> del ();</b></p><p><b> break; </b></p><p><b> case 5:</b></p><p>
87、 change ();</p><p><b> break; </b></p><p><b> default:</b></p><p> printf ("\n無效選項!");</p><p><b> break;</b></p>
88、;<p><b> }</b></p><p><b> }</b></p><p> while (choice != 0);</p><p><b> }</b></p><p><b> //錄入學(xué)生信息</b></p&
89、gt;<p> void record ()</p><p><b> { </b></p><p> struct student *p0; </p><p> p0 = (struct student *)malloc(LEN);</p><p> printf ("請輸入學(xué)生的
90、姓名:");</p><p> scanf ("%s",p0->name); </p><p> printf ("請輸入學(xué)生的學(xué)號:");</p><p> scanf ("%ld",&p0->num);</p><p> printf
91、("請輸入學(xué)生的性別:");</p><p> scanf ("%s",p0->sex);</p><p> printf ("請輸入學(xué)生的年齡:");</p><p> scanf ("%d",&p0->age);</p><p>
92、printf ("請輸入學(xué)生的地址:");</p><p> scanf ("%s",p0->address);</p><p> printf ("請輸入學(xué)生的電話:");</p><p> scanf ("%lf",&p0->tele_num);</p
93、><p> printf ("請輸入學(xué)生的E-mail:");</p><p> scanf ("%s",p0->E_mail);</p><p> insert (p0);</p><p> printf ("該學(xué)生的信息為:\n");</p><p&
94、gt; printf ("-------------------------------------------------------------------------------\n");</p><p> printf ("姓名\t學(xué)號\t年齡\t性別\t地址\t\t電話\t\tE-mail\n");</p><p> display
95、(p0);</p><p><b> }</b></p><p> void insert (struct student *stu)</p><p><b> {</b></p><p> struct student *p0, *p1, *p2;</p><p>
96、 p1 = head;</p><p><b> p0 = stu;</b></p><p> if (head == NULL)</p><p><b> {</b></p><p> head = p0;</p><p> p0->next = NULL
97、;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> while ((p0->num > p1->num)&&(p1->next != NUL
98、L))</p><p><b> {</b></p><p><b> p2 = p1;</b></p><p> p1 = p1->next;</p><p><b> }</b></p><p> if (p0->num <
99、;= p1->num)</p><p><b> {</b></p><p> if (head == p1)</p><p> head = p0;</p><p><b> else</b></p><p> p2->next = p0;</p
100、><p> p0->next = p1;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> p1->next = p0;</p>&l
101、t;p> p0->next = NULL;</p><p><b> } </b></p><p><b> } </b></p><p> TOTAL_NUM++;</p><p><b> }</b></p><p> vo
102、id display (struct student *p)</p><p><b> {</b></p><p> printf ("%s\t%ld\t%d\t%s\t%s\t%.0f\t%s\n", p->name, p->num, p->age, p->sex, p->address, p->tele_
103、num, p->E_mail);</p><p><b> }</b></p><p><b> //瀏覽學(xué)生信息</b></p><p> void displayAll()</p><p><b> {</b></p><p> st
104、ruct student *p;</p><p> printf("學(xué)生總數(shù):%d\n", TOTAL_NUM);</p><p> p = head; </p><p> if (head != NULL)</p><p><b> { </b></p><p>
105、printf("\n姓名\t學(xué)號\t年齡\t性別\t地址\t\t電話\t\tE-mail\n");</p><p> printf("-------------------------------------------------------------------------------\n");</p><p><b> do&l
106、t;/b></p><p><b> {</b></p><p> display(p);</p><p> p = p->next;</p><p><b> }</b></p><p> while(p != NULL);</p>&l
107、t;p><b> } </b></p><p> printf ("\n");</p><p><b> }</b></p><p> //按學(xué)號查詢學(xué)生信息</p><p> void query_by_num ()</p><p>&l
108、t;b> {</b></p><p><b> int num;</b></p><p> struct student *p1;</p><p> printf("請輸入學(xué)生的學(xué)號:");</p><p> scanf("%ld", &num)
109、;</p><p> if(head==NULL)</p><p><b> {</b></p><p> printf("無學(xué)生記錄!\n");</p><p><b> return;</b></p><p><b> } <
110、/b></p><p> p1 = head;</p><p> while (num!=p1->num && p1->next!=NULL)</p><p> p1 = p1->next; </p><p> if (num == p1->num)</p><p>
111、;<b> { </b></p><p> printf ("姓名\t學(xué)號\t年齡\t性別\t地址\t\t電話\t\tE-mail\n");</p><p> printf ("------------------------------------------------------------------------------
112、-\n");</p><p> display (p1);</p><p><b> } </b></p><p><b> else</b></p><p> printf ("沒有該學(xué)生記錄,請核對!");</p><p><b
113、> }</b></p><p><b> //寫入文件</b></p><p> void writeData ()</p><p><b> {</b></p><p> FILE* fp;//文件指針 </p><p> struct st
114、udent *p;</p><p> fp = fopen("database.txt", "w");</p><p><b> if (!fp)</b></p><p><b> {</b></p><p> printf("文件打開錯誤!
115、");</p><p><b> return;</b></p><p><b> }</b></p><p> fprintf(fp,"%d\n", TOTAL_NUM);</p><p> for(p = head; p!= NULL; p= p->n
116、ext)</p><p><b> {</b></p><p> fprintf(fp,"%s\t%ld\t%s\t%d\t%s\t%.0f\t%s\n", p->name, p->num, p->sex, p->age, p->address, p->tele_num, p->E_mail);<
117、/p><p><b> }</b></p><p> fclose (fp); </p><p><b> }</b></p><p> void freeAll ()</p><p><b> {</b></p><p>
118、 struct student *p1, *p2;</p><p> p1 = p2=head; </p><p><b> while(p1)</b></p><p><b> {</b></p><p> p2=p1->next;</p><p> fr
119、ee (p1);</p><p><b> p1 = p2;</b></p><p><b> } </b></p><p><b> }</b></p><p><b> //讀取文件</b></p><p> void
120、 readData ()</p><p><b> {</b></p><p> FILE* fp;//文件指針 </p><p> struct student *p1, *p2; </p><p> fp = fopen("database.txt", "r");&l
121、t;/p><p><b> if (!fp)</b></p><p><b> {</b></p><p> printf("文件打開錯誤!");</p><p><b> return;</b></p><p><b>
122、; }</b></p><p> fscanf(fp,"%d\n", &TOTAL_NUM);</p><p> head = p1 = p2 = (struct student *)malloc(LEN);</p><p> fscanf(fp,"%s\t%ld\t%s\t%d\t%s\t%lf\t%s\n
123、", p1->name, &p1->num, p1->sex, &p1->age, p1->address, &p1->tele_num, p1->E_mail);</p><p> while(!feof(fp))</p><p><b> {</b></p><p&
124、gt; p1 = (struct student *)malloc(LEN);</p><p> fscanf(fp,"%s\t%ld\t%s\t%d\t%s\t%lf\t%s\n", p1->name, &p1->num, p1->sex, &p1->age, p1->address, &p1->tele_num, p1->
125、;E_mail);</p><p> p2->next = p1;</p><p><b> p2 = p1;</b></p><p><b> }</b></p><p> p2->next = NULL;</p><p> fclose(fp);&l
126、t;/p><p><b> }</b></p><p><b> //刪除學(xué)生信息</b></p><p> void del ()</p><p><b> {</b></p><p> struct student *p1, *p2;</
127、p><p> long int num;</p><p> if (head == NULL)</p><p><b> {</b></p><p> printf("無學(xué)生記錄!\n");</p><p><b> return;</b></
128、p><p><b> }</b></p><p> printf("請輸入您要刪除的學(xué)生的學(xué)號:");</p><p> scanf("%ld", &num);</p><p> p1 = head;</p><p> while (num !
129、= p1->num && p1->next != NULL)</p><p><b> {</b></p><p><b> p2 = p1;</b></p><p> p1 = p1->next; </p><p><b> }</b&g
130、t;</p><p> if(num == p1->num)</p><p><b> {</b></p><p> if(p1 == head)</p><p> head = p1->next;</p><p> else p2->next = p1->nex
131、t;</p><p><b> free(p1);</b></p><p> TOTAL_NUM--;</p><p><b> }</b></p><p><b> else</b></p><p> printf("沒有該學(xué)生記錄
132、,請核對!\n");</p><p><b> }</b></p><p><b> //修改學(xué)生信息</b></p><p> void change ()</p><p><b> {</b></p><p> struct st
133、udent *p1, *p2;</p><p> long int num;</p><p> if (head == NULL)</p><p><b> {</b></p><p> printf ("無學(xué)生記錄!\n");</p><p><b> r
134、eturn;</b></p><p><b> }</b></p><p> printf ("請輸入您要修改的學(xué)生的學(xué)號:");</p><p> scanf ("%ld", &num);</p><p> p1 = head; </p>
135、<p> while (num != p1->num && p1->next != NULL)</p><p><b> {</b></p><p><b> p2 = p1;</b></p><p> p1 = p1->next; </p><p
136、><b> }</b></p><p> if(num == p1->num)</p><p> devise (p1); </p><p><b> else</b></p><p> printf("沒有該學(xué)生記錄,請核對!\n");</p>
137、<p><b> }</b></p><p> void devise (struct student *p)</p><p><b> {</b></p><p> int choice;</p><p> choice = -1;</p><p>
138、<b> do</b></p><p><b> {</b></p><p> printf("請選擇您要修改的學(xué)生的信息內(nèi)容:\n");</p><p> printf("+----------------------+\n"); </p>&l
139、t;p> printf("| 姓名 請按 1 |\n");</p><p> printf("| 學(xué)號 請按 2 |\n");</p><p> printf("| 性別 請按 3 |\n");</p><p> printf("
140、| 年齡 請按 4 |\n");</p><p> printf("| 地址 請按 5 |\n");</p><p> printf("| 電話 請按 6 |\n");</p><p> printf("| E-mail 請按 7 |
141、\n");</p><p> printf("| 取消 請按 0 |\n");</p><p> printf("+----------------------+\n");</p><p> printf("請輸入您的選擇:");</p><p>
142、 scanf("%d", &choice);</p><p> switch (choice)</p><p><b> {</b></p><p><b> case 0:</b></p><p><b> return;</b></
143、p><p><b> case 1:</b></p><p> printf("請輸入新姓名:");</p><p> scanf("%s", p->name);</p><p><b> break;</b></p><p>
144、;<b> case 2:</b></p><p> printf("請輸入新學(xué)號:");</p><p> scanf("%d", &p->num);</p><p><b> break; </b></p><p><b>
145、 case 3:</b></p><p> printf("請輸入新性別:");</p><p> scanf("%s", p->sex);</p><p><b> break;</b></p><p><b> case 4:</b&
146、gt;</p><p> printf("請輸入新年齡:");</p><p> scanf("%s", &p->age);</p><p><b> break; </b></p><p><b> case 5:</b></p&
147、gt;<p> printf("請輸入新地址:");</p><p> scanf("%s", p->address);</p><p><b> break; </b></p><p><b> case 6:</b></p><p&
148、gt; printf("請輸入新電話:");</p><p> scanf("%lf", &p->tele_num);</p><p><b> break; </b></p><p><b> case 7:</b></p><p>
149、 printf("請輸入新E-mail:");</p><p> scanf("%s", p->E_mail);</p><p><b> break; </b></p><p><b> default:</b></p><p> printf
150、("\n無效選項!");</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> while(choice != 0);</p><p>&
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--- 學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計——學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計---學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)-c語言課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--員工信息管理系統(tǒng)
- c語言課程設(shè)計---學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計---學(xué)生信息管理系統(tǒng)設(shè)計
- c語言課程設(shè)計----學(xué)生信息管理系統(tǒng)設(shè)計
- c語言課程設(shè)計--學(xué)生信息管理
- 學(xué)生信息管理系統(tǒng)c語言課程設(shè)計報告
評論
0/150
提交評論