版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 本科生課程設(shè)計(jì)說明書</p><p> 題 目:C語言課程設(shè)計(jì)</p><p> —— 學(xué)生信息管理系統(tǒng)</p><p><b> 學(xué)生姓名:</b></p><p><b> 學(xué) 號(hào):</b></p><p><b>
2、 專 業(yè):</b></p><p><b> 班 級(jí):</b></p><p><b> 指導(dǎo)教師:</b></p><p><b> 日 期:</b></p><p><b> 課程設(shè)計(jì)任務(wù)書</b></p&g
3、t;<p><b> 目 錄</b></p><p> 內(nèi)蒙古科技大學(xué)課程設(shè)計(jì)任務(wù)書I</p><p><b> 目 錄II</b></p><p> 第一章 需求分析3</p><p><b> 1.1引言3</b></p
4、><p> 1.2任務(wù)概述3</p><p> 1.3數(shù)據(jù)描述3</p><p> 1.4功能需求3</p><p> 1.5性能需求4</p><p> 1.6運(yùn)行需求4</p><p> 1.7任務(wù)計(jì)劃4</p><p> 第二章概
5、要設(shè)計(jì)4</p><p> 2.1總體設(shè)計(jì)4</p><p> 2.2數(shù)據(jù)類型設(shè)計(jì)(或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì))6</p><p> 2.3接口設(shè)計(jì) //函數(shù)聲明6</p><p> 2.4運(yùn)行界面設(shè)計(jì)7</p><p> 第三章詳細(xì)設(shè)計(jì)8</p><p> 3.1輸入
6、模塊設(shè)計(jì)8</p><p> 3.2輸出模塊設(shè)計(jì)8</p><p> 3.3查找模塊設(shè)計(jì)9</p><p> 3.4排序模塊設(shè)計(jì)10</p><p> 3.5保存及讀取模塊設(shè)計(jì)10</p><p> 第四章測(cè)試分析12</p><p> 4.1測(cè)試程序執(zhí)行情況
7、12</p><p> 4.2出現(xiàn)的問題和解決的方法15</p><p> 第五章用戶手冊(cè)(可選)16</p><p> 5.1使用說明16</p><p> 5.2運(yùn)行說明16</p><p> 第六章課程設(shè)計(jì)總結(jié)17</p><p> 附錄:程序代碼18&
8、lt;/p><p><b> 參考文獻(xiàn)28</b></p><p><b> 致謝28</b></p><p><b> 第一章 需求分析</b></p><p><b> 引言</b></p><p> 學(xué)生基本信息管
9、理系統(tǒng)</p><p><b> 任務(wù)概述</b></p><p> 1、建立學(xué)生信息,信息至少包含學(xué)生姓名,學(xué)號(hào),性別,年齡,出生日期,家庭地址,e-mail,電話地址等;</p><p> 2、能夠提供新建、瀏覽、查找、修改和刪除通訊錄信息的功能;</p><p> 3、能夠提供安不同方式查詢的功能;如按姓名
10、或電話等查詢;</p><p><b> 數(shù)據(jù)描述</b></p><p> struct student </p><p><b> {</b></p><p> char NO[20];</p><p> char name[20];</p>&l
11、t;p><b> int age;</b></p><p> char sex[3]; /*'F'表示性別男,'M'表示性別女*/</p><p> char birthday[10];</p><p> char address[30];</p><p> char
12、phone[20];</p><p> char e_mail[20];</p><p> struct student *next; //下個(gè)結(jié)點(diǎn)</p><p><b> };</b></p><p><b> 功能需求</b></p><p> 1、輸入功
13、能:一次可以完成自定義學(xué)生人數(shù)的學(xué)生信息記錄的輸入。</p><p> 2、刪除功能:對(duì)指定學(xué)生的信息進(jìn)行刪除。</p><p> 3、修改功能:對(duì)指定學(xué)生的信息進(jìn)行修改。</p><p> 4、查詢功能:選擇某種方式并輸入該信息查詢符合條件的學(xué)生信息。</p><p> 5、排序功能:以英語課程的分?jǐn)?shù)為依據(jù)對(duì)學(xué)生信息進(jìn)行排序。<
14、;/p><p> 6、顯示功能:將以上功能操作后的學(xué)生信息顯示出來。</p><p><b> 7、退出主菜單。</b></p><p><b> 性能需求</b></p><p> 1、輸入功能:一次可以完成自定義學(xué)生人數(shù)的學(xué)生信息記錄的輸入。</p><p> 2、
15、刪除功能:對(duì)指定學(xué)生的信息進(jìn)行刪除。</p><p> 3、修改功能:對(duì)指定學(xué)生的信息進(jìn)行修改。</p><p> 4、查詢功能:選擇某種方式并輸入該信息查詢符合條件的學(xué)生信息。</p><p> 5、排序功能:以英語課程的分?jǐn)?shù)為依據(jù)對(duì)學(xué)生信息進(jìn)行排序。</p><p> 6、顯示功能:將以上功能操作后的學(xué)生信息顯示出來。</p
16、><p><b> 7、退出主菜單。</b></p><p><b> 運(yùn)行需求</b></p><p> 1、從鍵盤輸入包括學(xué)號(hào)、姓名、性別、出生年月日、籍貫、所在院系、專業(yè)、獎(jiǎng)懲信息等,并將其保存在磁盤文件里。</p><p> 2、具有進(jìn)行單項(xiàng)查詢或多項(xiàng)查詢的功能(即按照給定的關(guān)鍵字姓名等
17、找出滿足條件的紀(jì)錄)。</p><p> 3、具有插入、修改和刪除信息的功能。</p><p> 4、具有輸出文件數(shù)據(jù)信息的功能。</p><p><b> 任務(wù)計(jì)劃</b></p><p><b> 概要設(shè)計(jì)</b></p><p><b> 總體設(shè)計(jì)&
18、lt;/b></p><p> 總體結(jié)構(gòu)我們采取模塊化方式進(jìn)行程序設(shè)計(jì),要求程序的功能設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及整體結(jié)構(gòu)設(shè)計(jì)合理。也可根據(jù)自己對(duì)題目的理解增加新的功能模塊。系統(tǒng)以菜單界面方式(至少采用文本菜單界面,如能采用圖形菜單界面更好)工作,運(yùn)行界面友好,演示程序以用戶和計(jì)算機(jī)的對(duì)話方式進(jìn)行。</p><p> 數(shù)據(jù)類型設(shè)計(jì)(或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì))</p><p>
19、; struct student </p><p><b> {</b></p><p> char NO[20];</p><p> char name[20];</p><p><b> int age;</b></p><p> char sex[3];
20、 /*'F'表示性別男,'M'表示性別女*/</p><p> char birthday[10];</p><p> char address[30];</p><p> char phone[20];</p><p> char e_mail[20];</p><p> s
21、truct student *next; //下個(gè)結(jié)點(diǎn)</p><p><b> };</b></p><p> 接口設(shè)計(jì) //函數(shù)聲明</p><p><b> 表2.1:函數(shù)列表</b></p><p><b> 運(yùn)行界面設(shè)計(jì)</b></p>&
22、lt;p><b> 主菜單模塊</b></p><p> 采用switch()函數(shù)從鍵盤選擇相應(yīng)菜單的對(duì)應(yīng)功能。</p><p><b> switch(c)</b></p><p><b> {</b></p><p> getchar();</p>
23、;<p> case 1:insert_stu();break; //學(xué)生信息錄入</p><p> case 2:print_stu();break; //學(xué)生信息瀏覽</p><p> case 3:search_NO(); break; //以學(xué)號(hào)方式查詢信息</p><p> c
24、ase 4:search_name(); break; //以姓名方式查詢信息</p><p> case 5:del_stu(); break; //刪除學(xué)生信息</p><p> case 6:revise_stu(); break; //修改學(xué)生信息</p><p> case 7:arrage_stu()
25、;break; //保存信息</p><p> case 0:exit(0); //退出 </p><p><b> }</b></p><p><b> 詳細(xì)設(shè)計(jì)</b></p><p><b> 輸入模塊設(shè)計(jì)&l
26、t;/b></p><p><b> 數(shù)據(jù)插入模塊</b></p><p> 采用scanf( )函數(shù)輸入新聯(lián)系人信息插入至結(jié)構(gòu)數(shù)組中。</p><p> PF("\t\t輸入學(xué)生學(xué)號(hào):\t");</p><p> scanf("%s",p1->NO);
27、 //學(xué)號(hào)</p><p> PF("\t\t輸入學(xué)生姓名:\t"); </p><p> scanf("%s",p1->name); //姓名</p><p> PF("\t\t輸入學(xué)生年齡:\t");</p><p> s
28、canf("%d",&p1->age); //年齡 </p><p> PF("\t\t輸入學(xué)生性別:\t");</p><p> scanf("%s",p1->sex); //性別</p><p> PF(&
29、quot;\t\t輸入學(xué)生出生年月:\t");</p><p> scanf("%s",p1->birthday); //出生年月</p><p> PF("\t\t輸入學(xué)生地址:\t");</p><p> scanf("%s",p1->address);
30、 //地址</p><p> PF("\t\t輸入學(xué)生電話:\t");</p><p> scanf("%s",p1->phone); //電話</p><p> PF("\t\t輸入學(xué)生E-mail:\t");</p><p> sc
31、anf("%s",p1->e_mail); //E-mail</p><p><b> n++;</b></p><p><b> 輸出模塊設(shè)計(jì)</b></p><p><b> 數(shù)據(jù)瀏覽模塊</b></p><p> 采用
32、分屏顯示,每屏3條記錄。用fread或fscanf讀文件,輸出結(jié)果。</p><p> for(p=head->next;p!=NULL;p=p->next) //讀出信息</p><p><b> {</b></p><p> PF("※※※※※※※※※※※※※※※※※※學(xué)生信息瀏覽※※※※※※※※※※※※※※
33、※※※※\n");</p><p> PF("\t\t學(xué)生學(xué)號(hào):\t%s\n",p->NO);</p><p> PF("\t\t學(xué)生姓名:\t%s\n",p->name);</p><p> PF("\t\t學(xué)生年齡:\t%d\n",p->age);</p>
34、<p> PF("\t\t學(xué)生性別:\t%s\n",p->sex);</p><p> PF("\t\t學(xué)生出生年月:\t%s\n",p->birthday);</p><p> PF("\t\t學(xué)生地址:\t%s\n",p->address);</p><p> PF
35、("\t\t學(xué)生電話:\t%s\n",p->phone);</p><p> PF("\t\t學(xué)生E-mail:\t%s\n",p->e_mail);</p><p> PF("\n");} //輸出信息</p><p><b> }</b&
36、gt;</p><p><b> 查找模塊設(shè)計(jì)</b></p><p> 1) 按姓名查找模塊</p><p> 通過鍵盤輸入要查找的學(xué)生姓名,然后與結(jié)構(gòu)數(shù)組中的姓名信息逐一比對(duì),找出學(xué)生信息并輸出</p><p> void search_name() //學(xué)生姓名信息查找</p><
37、;p><b> {</b></p><p> STU *p=NULL;</p><p> char name[20];</p><p> if(head==NULL) //判斷鏈表是否為空</p><p><b> {</b></p><p> PF(
38、"文檔中無記錄!\n");</p><p><b> return;</b></p><p><b> }</b></p><p> PF("輸入學(xué)生姓名:");</p><p> scanf("%s",name);</p&g
39、t;<p> for(p=head->next;p!=NULL;p=p->next) //讀出信息</p><p><b> {</b></p><p> if(!strcmp(p->name,name))</p><p> 3) 按學(xué)號(hào)查找模塊</p><p> 通過鍵盤輸
40、入要查找的學(xué)生學(xué)號(hào),然后與結(jié)構(gòu)數(shù)組中的電話信息逐一比對(duì),找出學(xué)生信息并輸出</p><p> void search_NO() //學(xué)生學(xué)號(hào)信息查找</p><p><b> {</b></p><p> STU *p=NULL;</p><p> char NO[20];</p><
41、;p> if(head==NULL) //判斷鏈表是否為空</p><p><b> {</b></p><p> PF("文檔中無記錄!\n");</p><p><b> return;</b></p><p><b> }</b>
42、</p><p> PF("請(qǐng)輸入學(xué)生學(xué)號(hào):");</p><p> scanf("%s",NO);</p><p> for(p=head->next;p!=NULL;p=p->next) //讀出信息</p><p><b> {</b></p&g
43、t;<p> if(!strcmp(p->NO,NO))</p><p><b> 排序模塊設(shè)計(jì)</b></p><p><b> 保存及讀取模塊設(shè)計(jì)</b></p><p> 1) 按姓名查找模塊</p><p> 通過鍵盤輸入要查找的學(xué)生姓名,然后與結(jié)構(gòu)數(shù)組中的姓名
44、信息逐一比對(duì),找出學(xué)生信息并輸出</p><p> void search_name() //學(xué)生姓名信息查找</p><p><b> {</b></p><p> STU *p=NULL;</p><p> char name[20];</p><p> if(head==N
45、ULL) //判斷鏈表是否為空</p><p><b> {</b></p><p> PF("文檔中無記錄!\n");</p><p><b> return;</b></p><p><b> }</b></p><p&
46、gt; PF("輸入學(xué)生姓名:");</p><p> scanf("%s",name);</p><p> for(p=head->next;p!=NULL;p=p->next) //讀出信息</p><p><b> {</b></p><p> if
47、(!strcmp(p->name,name))</p><p> 3) 按學(xué)號(hào)查找模塊</p><p> 通過鍵盤輸入要查找的學(xué)生學(xué)號(hào),然后與結(jié)構(gòu)數(shù)組中的電話信息逐一比對(duì),找出學(xué)生信息并輸出</p><p> void search_NO() //學(xué)生學(xué)號(hào)信息查找</p><p><b> {</b&g
48、t;</p><p> STU *p=NULL;</p><p> char NO[20];</p><p> if(head==NULL) //判斷鏈表是否為空</p><p><b> {</b></p><p> PF("文檔中無記錄!\n");</
49、p><p><b> return;</b></p><p><b> }</b></p><p> PF("請(qǐng)輸入學(xué)生學(xué)號(hào):");</p><p> scanf("%s",NO);</p><p> for(p=head->
50、;next;p!=NULL;p=p->next) //讀出信息</p><p><b> {</b></p><p> if(!strcmp(p->NO,NO))</p><p><b> 測(cè)試分析</b></p><p><b> 測(cè)試程序執(zhí)行情況</b&g
51、t;</p><p><b> 主菜單</b></p><p><b> 輸入學(xué)生信息</b></p><p><b> 學(xué)生信息瀏覽</b></p><p><b> 按學(xué)號(hào)查找學(xué)生信息</b></p><p><b
52、> 按姓名查找學(xué)生信息</b></p><p><b> 刪除學(xué)生信息</b></p><p><b> 修改學(xué)生信息</b></p><p><b> 退出</b></p><p> 出現(xiàn)的問題和解決的方法</p><p>
53、 出現(xiàn)的問題就是不能進(jìn)行排序,解決方法為刪除。</p><p><b> 用戶手冊(cè)(可選)</b></p><p><b> 使用說明</b></p><p><b> 運(yùn)行說明</b></p><p><b> 課程設(shè)計(jì)總結(jié)</b></p
54、><p> 在我們上機(jī)調(diào)試程序的過程中,我遇到了很多的問題,說實(shí)話這次課程設(shè)計(jì)自己沒有出多大的力,大部分都是借鑒同學(xué)的設(shè)計(jì)成果,自己設(shè)計(jì)是總是覺得沒有頭緒,無從下手??吹酵瑢W(xué)認(rèn)真看程序的樣子,還有修改程序時(shí)的熟練,我很羨慕他,我想,我要將C語言學(xué)好,在將來能為我的就業(yè)加分。</p><p> 在這期末考試前期,學(xué)院給我們安排的課程設(shè)計(jì)周,總讓我們覺的有些為難我們,這樣一個(gè)復(fù)雜困難而又繁瑣的
55、作業(yè),似乎弄得我們既沒有時(shí)間也沒有心情復(fù)習(xí),我曾一度地抱怨過學(xué)院,在完成它之后,我發(fā)現(xiàn)我錯(cuò)了,課程設(shè)計(jì)不僅讓我們鞏固了所學(xué)的知識(shí),還使得我們學(xué)習(xí)到了更多平時(shí)所忽略的,最重要的是,它磨礪了我們,讓我們?cè)诖髮W(xué)的下一個(gè)階段能更好的成長。</p><p><b> 附錄:程序代碼</b></p><p> #include <stdio.h></p>
56、;<p> #include <stdlib.h></p><p> #include <string.h></p><p> #define PF printf</p><p> #define LEN sizeof(struct student)</p><p> //◆◆◆◆◆◆◆◆◆◆◆
57、◆◆◆◆◆◆◆定義結(jié)構(gòu)體◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p> struct student </p><p><b> {</b></p><p> char NO[20];</p><p> char name[20];</p><p><b> in
58、t age;</b></p><p> char sex[3]; /*'F'表示性別男,'M'表示性別女*/</p><p> char birthday[10];</p><p> char address[30];</p><p> char phone[20];</p>
59、<p> char e_mail[20];</p><p> struct student *next; //下個(gè)結(jié)點(diǎn)</p><p><b> };</b></p><p> typedef struct student STU;</p><p> STU *head=NULL;
60、 //全局指針</p><p> int n,i=0; //全局變量</p><p> //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆自定義函數(shù)◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p> void show_menu(); //顯示菜單</p><p> void menu();
61、 //執(zhí)行菜單</p><p> void creat_stu(); //建立鏈表 </p><p> void insert_stu(); //學(xué)生信息錄入</p><p> void print_stu(); //學(xué)生信息瀏覽</p><p> void searc
62、h_NO(); //以學(xué)號(hào)方式查詢信息</p><p> void search_name(); //以姓名方式查詢信息</p><p> void del_stu(); //刪除學(xué)生信息</p><p> void revise_stu(); //修改學(xué)生信息</p><p> void
63、 save(); //保存信息</p><p> void main()</p><p><b> {</b></p><p> creat_stu();</p><p><b> menu();</b></p><p><b> }
64、</b></p><p> //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆創(chuàng)建鏈表◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p> void creat_stu()</p><p><b> {</b></p><p><b> FILE *fp;</b></p&
65、gt;<p> long size;</p><p> STU *p1,*p2;</p><p> head=(STU *)malloc(sizeof(STU));</p><p> head->next=NULL;</p><p> if((fp=fopen("fname.txt",&quo
66、t;r"))==NULL)</p><p><b> {</b></p><p> printf("這是新表\n");</p><p><b> return;</b></p><p><b> }</b></p><p
67、> fseek(fp,0L,2);</p><p> size=ftell(fp);</p><p><b> if(!size)</b></p><p><b> {</b></p><p> printf("這是空表\n");</p><p
68、><b> return;</b></p><p> } //開始創(chuàng)建鏈表</p><p> rewind(fp); //移動(dòng)到文件首</p><p> p2=head->next; //找到當(dāng)前位置</p><p> while(!feof(fp))<
69、/p><p><b> { </b></p><p> p1=(STU *)malloc(sizeof(STU));</p><p> fscanf(fp,"%s %s %d %s %s %s %s %s\n",p1->NO,p1->name,&p1->age,</p><p&
70、gt; p1->sex,p1->birthday,p1->address,p1->phone,p1->e_mail);</p><p> p1->next=NULL; //創(chuàng)建節(jié)點(diǎn)完</p><p> if(head->next==NULL)</p><p> head->next=p1;</p
71、><p><b> else</b></p><p> p2->next=p1;</p><p><b> p2=p1;</b></p><p><b> n++;</b></p><p><b> }</b></
72、p><p> p2->next=NULL;</p><p> fclose(fp);</p><p><b> }</b></p><p> //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆執(zhí)行菜單◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p> void menu()</p&
73、gt;<p><b> {</b></p><p><b> int c;</b></p><p> show_menu();</p><p><b> while(1)</b></p><p><b> {</b></p&g
74、t;<p> scanf("%d",&c);</p><p><b> switch(c)</b></p><p><b> {</b></p><p> getchar();</p><p> case 1:insert_stu();break;
75、</p><p> case 2:print_stu();break;</p><p> case 3:search_NO(); break;</p><p> case 4:search_name(); break;</p><p> case 5:del_stu(); break;</p><p> ca
76、se 6:revise_stu(); break;</p><p> case 0:exit(0); </p><p> }//執(zhí)行菜單選項(xiàng)</p><p> show_menu();</p><p><b> }</b></p><p><b> }<
77、/b></p><p> //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆顯示菜單◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p> void show_menu()</p><p><b> {</b></p><p><b> PF("\n");</b>
78、;</p><p> PF("\n※※※※※※※※※※※※※※※※※※菜單※※※※※※※※※※※※※※※※※※\n");</p><p> PF("\t\t◆1.輸 入 學(xué) 生 信 息 ◆\n");</p><p> PF("\t\t★2.瀏 覽 學(xué) 生 信 息 ★\n");</p>&
79、lt;p> PF("\t\t◆3.以學(xué)號(hào)方式查詢信息◆\n");</p><p> PF("\t\t★4.以姓名方式查詢信息★\n");</p><p> PF("\t\t◆5.刪 除 學(xué) 生 信 息 ◆\n");</p><p> PF("\t\t★6.修 改 學(xué) 生 信 息 ★\
80、n");</p><p> PF("\t\t★0. 退 出 ★\n");</p><p> PF("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");</p><p> PF("\n請(qǐng)選擇\n");</p><p
81、><b> }</b></p><p> //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆學(xué)生信息錄入◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p> void insert_stu() //學(xué)生信息錄入</p><p><b> {</b></p><p><
82、;b> n=0;</b></p><p> STU *p1=NULL,*p2=NULL;</p><p> p1=(STU *)malloc(sizeof(STU));</p><p> PF("\n※※※※※※※※※※※※※※※※※※錄入學(xué)生信息※※※※※※※※※※※※※※※※※※\n"); //錄入學(xué)生信息&
83、lt;/p><p> PF("\t\t輸入學(xué)生學(xué)號(hào):\t");</p><p> scanf("%s",p1->NO); //學(xué)號(hào)</p><p> PF("\t\t輸入學(xué)生姓名:\t"); </p><p> scanf("%s&qu
84、ot;,p1->name); //姓名</p><p> PF("\t\t輸入學(xué)生年齡:\t");</p><p> scanf("%d",&p1->age); //年齡 </p><p> PF("\t\t輸入學(xué)生性別:
85、\t");</p><p> scanf("%s",p1->sex); //性別</p><p> PF("\t\t輸入學(xué)生出生年月:\t");</p><p> scanf("%s",p1->birthday); //出生年月</
86、p><p> PF("\t\t輸入學(xué)生地址:\t");</p><p> scanf("%s",p1->address); //地址</p><p> PF("\t\t輸入學(xué)生電話:\t");</p><p> scanf("%s",p
87、1->phone); //電話</p><p> PF("\t\t輸入學(xué)生E-mail:\t");</p><p> scanf("%s",p1->e_mail); //E-mail</p><p><b> n++;</b></p>
88、<p> if(head->next==NULL)</p><p><b> {</b></p><p> head=(STU *)malloc(LEN);</p><p> head->next=p1;</p><p><b> }</b></p>
89、<p><b> else</b></p><p><b> {</b></p><p> for(p2=head;p2->next!=NULL;p2=p2->next); /*找到最后的結(jié)點(diǎn),然后將增加的結(jié)點(diǎn)掛在它上面*/</p><p> p2->next=p1;</p&g
90、t;<p><b> }</b></p><p> p1->next=NULL;</p><p> save();//保存到文件 </p><p><b> }</b></p><p&g
91、t; //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆學(xué)生信息瀏覽◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p> void print_stu() //學(xué)生信息瀏覽</p><p><b> {</b></p><p> STU *p=NULL;</p><p> if(head==NULL)
92、 //判斷鏈表是否為空</p><p><b> {</b></p><p> PF("文檔中無記錄!\n");</p><p><b> return;</b></p><p><b> }</b></p><p> fo
93、r(p=head->next;p!=NULL;p=p->next) //讀出信息</p><p><b> {</b></p><p> PF("※※※※※※※※※※※※※※※※※※學(xué)生信息瀏覽※※※※※※※※※※※※※※※※※※\n");</p><p> PF("\t\t學(xué)生學(xué)號(hào):\t%s
94、\n",p->NO);</p><p> PF("\t\t學(xué)生姓名:\t%s\n",p->name);</p><p> PF("\t\t學(xué)生年齡:\t%d\n",p->age);</p><p> PF("\t\t學(xué)生性別:\t%s\n",p->sex);</
95、p><p> PF("\t\t學(xué)生出生年月:\t%s\n",p->birthday);</p><p> PF("\t\t學(xué)生地址:\t%s\n",p->address);</p><p> PF("\t\t學(xué)生電話:\t%s\n",p->phone);</p><p
96、> PF("\t\t學(xué)生E-mail:\t%s\n",p->e_mail);</p><p><b> PF("\n");</b></p><p><b> }//輸出信息</b></p><p><b> }</b></p>
97、<p> //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆學(xué)生學(xué)號(hào)信息查找◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p> void search_NO()//學(xué)生學(xué)號(hào)信息查找</p><p><b> {</b></p><p> STU *p=NULL;</p><p> char NO[20]
98、;</p><p> if(head==NULL) //判斷鏈表是否為空</p><p><b> {</b></p><p> PF("文檔中無記錄!\n");</p><p><b> return;</b></p><p><b&
99、gt; }</b></p><p> PF("請(qǐng)輸入學(xué)生學(xué)號(hào):");</p><p> scanf("%s",NO);</p><p> for(p=head->next;p!=NULL;p=p->next) //讀出信息</p><p><b> {&l
100、t;/b></p><p> if(!strcmp(p->NO,NO))</p><p><b> {</b></p><p> PF("※※※※※※※※※※※※※※※※※※您查找的學(xué)生是※※※※※※※※※※※※※※※※※※\n");</p><p> PF("\t\t學(xué)
101、生學(xué)號(hào):\t%s\n",p->NO);</p><p> PF("\t\t學(xué)生姓名:\t%s\n",p->name);</p><p> PF("\t\t學(xué)生年齡:\t%d\n",p->age);</p><p> PF("\t\t學(xué)生性別:\t%s\n",p->se
102、x);</p><p> PF("\t\t學(xué)生出生年月:\t%s\n",p->birthday);</p><p> PF("\t\t學(xué)生地址:\t%s\n",p->address);</p><p> PF("\t\t學(xué)生電話:\t%s\n",p->phone);</p>
103、;<p> PF("\t\t學(xué)生E-mail:\t%s\n",p->e_mail);</p><p><b> PF("\n");</b></p><p><b> i=1;</b></p><p><b> }//輸出信息</b>
104、;</p><p> if(!i) </p><p><b> {</b></p><p> PF("無該生信息!請(qǐng)查證:"); //沒找到信息時(shí)的處理</p><p><b> return;</b><
105、;/p><p><b> } </b></p><p> } </p><p><b> } </b></p><p> //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆學(xué)生姓名信息查找◆◆◆◆◆◆◆◆◆◆◆◆◆
106、◆◆◆◆◆◆◆</p><p> void search_name() //學(xué)生姓名信息查找</p><p><b> {</b></p><p> STU *p=NULL;</p><p> char name[20];</p><p> if(head==NULL) /
107、/判斷鏈表是否為空</p><p><b> {</b></p><p> PF("文檔中無記錄!\n");</p><p><b> return;</b></p><p><b> }</b></p><p> PF(&
108、quot;輸入學(xué)生姓名:");</p><p> scanf("%s",name);</p><p> for(p=head->next;p!=NULL;p=p->next) //讀出信息</p><p><b> {</b></p><p> if(!strcmp(
109、p->name,name))</p><p><b> {</b></p><p> PF("※※※※※※※※※※※※※※※※※※您查找的學(xué)生是※※※※※※※※※※※※※※※※※※\n");</p><p> PF("\t\t學(xué)生學(xué)號(hào):\t%s\n",p->NO);</p>
110、<p> PF("\t\t學(xué)生姓名:\t%s\n",p->name);</p><p> PF("\t\t學(xué)生年齡:\t%d\n",p->age);</p><p> PF("\t\t學(xué)生性別:\t%s\n",p->sex);</p><p> PF("\t\
111、t學(xué)生出生年月:\t%s\n",p->birthday);</p><p> PF("\t\t學(xué)生地址:\t%s\n",p->address);</p><p> PF("\t\t學(xué)生電話:\t%s\n",p->phone);</p><p> PF("\t\t學(xué)生E-mail:\t
112、%s\n",p->e_mail);</p><p><b> PF("\n");</b></p><p><b> i=1;</b></p><p><b> }//輸出信息</b></p><p> if(!i)
113、 </p><p><b> {</b></p><p> PF("無該生信息!請(qǐng)查證:"); //沒找到信息時(shí)的處理</p><p><b> return;</b></p><p><b> } </b
114、></p><p> } </p><p><b> } </b></p><p> //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆刪除學(xué)生信息◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p> void del_
115、stu()</p><p><b> {</b></p><p> STU *p=NULL;</p><p> if(head==NULL)//判斷鏈表是否為空</p><p><b> {</b></p><p> PF("文檔中無記錄!\n&quo
116、t;);</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> char NO[20];
117、</p><p> PF("請(qǐng)輸入學(xué)生的學(xué)號(hào):\t");</p><p> scanf("%s",NO);</p><p> for(p=head;p!=NULL;p=p->next) </p><p><b> {</b></p><p>
118、; if(!strcmp(p->next->NO,NO))//驗(yàn)證信息是否正確</p><p><b> {</b></p><p> PF("※※※※※※※※※※※※※※※※※※您要?jiǎng)h除的學(xué)生是※※※※※※※※※※※※※※※※※※\n");</p><p> PF("\t\t學(xué)生學(xué)號(hào):\t
119、%s\n",p->next->NO);</p><p> PF("\t\t學(xué)生姓名:\t%s\n",p->next->name);</p><p> PF("\t\t學(xué)生年齡:\t%d\n",p->next->age);</p><p> PF("\t\t學(xué)生性別:
120、\t%s\n",p->next->sex);</p><p> PF("\t\t學(xué)生出生年月:\t%s\n",p->next->birthday);</p><p> PF("\t\t學(xué)生地址:\t%s\n",p->next->address);</p><p> PF(&q
121、uot;\t\t學(xué)生電話:\t%s\n",p->next->phone);</p><p> PF("\t\t學(xué)生E-mail:\t%s\n",p->next->e_mail);</p><p> PF("\n");//輸出要?jiǎng)h除的信息</p><p><b> i=1;&
122、lt;/b></p><p> if(p->next->next)</p><p><b> {</b></p><p> p->next=p->next->next;</p><p><b> }</b></p><p><
123、b> else</b></p><p> p->next=NULL;</p><p><b> n--;</b></p><p><b> save();</b></p><p><b> return;</b></p><
124、p><b> }</b></p><p> if(!i) </p><p><b> {</b></p><p> PF("無該生信息!請(qǐng)查證:"); //沒找到信息時(shí)的處理</p><p><b
125、> return;</b></p><p><b> } </b></p><p><b> }</b></p><p><b> } </b></p><p><b> } </b></p><p&
126、gt; //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆修改學(xué)生信息◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p> void revise_stu()</p><p><b> {</b></p><p> STU *p=NULL;</p><p> if(head==NULL) //判斷鏈表是否
127、為空</p><p><b> {</b></p><p> PF("文檔中無記錄!\n");</p><p><b> return;</b></p><p><b> }</b></p><p> char NO[20]
128、;</p><p> PF("請(qǐng)輸入學(xué)生的學(xué)號(hào):\t");</p><p> scanf("%s",NO);</p><p> for(p=head->next;p!=NULL;p=p->next) </p><p><b> {</b></p>
129、<p> if(!strcmp(p->NO,NO))//驗(yàn)證信息是否正確</p><p><b> {</b></p><p> PF("※※※※※※※※※※※※※※※※※※您要修改的學(xué)生是※※※※※※※※※※※※※※※※※※\n");</p><p> PF("\t\t學(xué)生學(xué)號(hào):\
130、t%s\n",p->NO);</p><p> PF("\t\t學(xué)生姓名:\t%s\n",p->name);</p><p> PF("\t\t學(xué)生年齡:\t%d\n",p->age);</p><p> PF("\t\t學(xué)生性別:\t%s\n",p->sex);&l
131、t;/p><p> PF("\t\t學(xué)生出生年月:\t%s\n",p->birthday);</p><p> PF("\t\t學(xué)生地址:\t%s\n",p->address);</p><p> PF("\t\t學(xué)生電話:\t%s\n",p->phone);</p>&l
132、t;p> PF("\t\t學(xué)生E-mail:\t%s\n",p->e_mail);</p><p> PF("\n");//輸出要修改信息</p><p><b> i=1;</b></p><p> PF("※※※※※※※※※※※※※※※※※※修改學(xué)號(hào)為%s的學(xué)生※※※
133、※※※※※※※※※※※※※※※\n",NO);</p><p> strcpy(p->NO,NO);</p><p> PF("\t\t輸入修改學(xué)生學(xué)號(hào):\t");</p><p> scanf("%s",p->NO);</p><p> PF("\t\t輸入修改
134、學(xué)生姓名:\t");</p><p> scanf("%s",p->name); </p><p> PF("\t\t輸入修改學(xué)生年齡:\t");</p><p> scanf("%d",&p->age); &
135、lt;/p><p> PF("\t\t輸入修改學(xué)生性別:\t");</p><p> scanf("%s",p->sex); </p><p> PF("\t\t輸入修改學(xué)生出生年月:\t");</p><p> scanf("%s&quo
136、t;,p->birthday); </p><p> PF("\t\t輸入修改學(xué)生地址:\t");</p><p> scanf("%s",p->address); </p><p> PF("\t\t輸入修改學(xué)生電話:\t");</p>
137、<p> scanf("%s",p->phone); </p><p> PF("\t\t輸入修改學(xué)生E-mail:\t");</p><p> scanf("%s",p->e_mail); </p><p> PF(&q
138、uot;\n"); //輸入修改信息</p><p><b> save();</b></p><p><b> }</b></p><p> if(!i) </p><p&g
139、t;<b> {</b></p><p> PF("無該生信息!請(qǐng)查證:");/*沒找到信息時(shí)的處理*/</p><p><b> return;</b></p><p><b> } </b></p><p><b> }&
140、lt;/b></p><p><b> }</b></p><p> //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆保存信息◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆</p><p> void save()</p><p><b> {</b></p><p> pr
141、intf("※※※※※※※※※※※※※※※※※※保存信息并結(jié)束※※※※※※※※※※※※※※※※※※\n");</p><p> STU *p=NULL;</p><p><b> FILE *fp;</b></p><p> char *filename="fname.txt";</p>
142、<p> if((fp=fopen("fname.txt","w"))==NULL) //出錯(cuò)檢測(cè)</p><p><b> {</b></p><p> printf("\n打不開文件!\n");</p><p><b> return
143、;</b></p><p><b> }</b></p><p> if(head->next==NULL)</p><p><b> {</b></p><p> printf("\n信息為空!\n");</p><p><
144、;b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p> p=head->next;</p><p> while(p!=NULL)</p><p><b>
145、 {</b></p><p> fprintf(fp,"%s %s %d %s %s %s %s %s\n",p->NO,p->name,p->age,</p><p> p->sex,p->birthday,p->address,p->phone,p->e_mail);//存入文件</p>
146、<p> p=p->next;</p><p><b> }</b></p><p> printf("保存完畢!\n");</p><p> fclose(fp); </p><p><b> }</b></p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)--- 學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)——學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)-c語言課程設(shè)計(jì)
- c++--學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)
- c sharp 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)
- c語言課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- c課程設(shè)計(jì)報(bào)告(學(xué)生信息管理系統(tǒng))
- c語言課程設(shè)計(jì)-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)設(shè)計(jì)
- c語言課程設(shè)計(jì)----學(xué)生信息管理系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論