版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> C語(yǔ)言</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 課程名稱: C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)實(shí)踐 </p><p> 院 系: 信息科學(xué)與工程學(xué)院 </p><p> 班 級(jí): 電信15
2、 </p><p> 設(shè) 計(jì) 者: </p><p> 學(xué) 號(hào): </p><p> 設(shè)計(jì)時(shí)間: </p><p><b> ..</b></p>
3、<p> 程序設(shè)計(jì)基礎(chǔ)實(shí)踐報(bào)告</p><p><b> 課程設(shè)計(jì)內(nèi)容</b></p><p> 設(shè)計(jì)一個(gè)學(xué)生信息管理系統(tǒng):</p><p> 1.采用菜單界面;(菜單界面運(yùn)用pritnf輸出函數(shù)實(shí)現(xiàn))</p><p> 2.可以對(duì)學(xué)生信息進(jìn)行錄入,增加,修改,刪除,查詢,統(tǒng)計(jì),排序和存盤;<
4、/p><p> 3.將學(xué)生信息保存在文件中,可以根據(jù)學(xué)生總分、單科分高低排序并輸出;</p><p> 4.增加、修改、刪除、查詢、統(tǒng)計(jì)學(xué)生信息必須使用鏈表實(shí)現(xiàn)(從文件中讀</p><p> 取信息至鏈表再進(jìn)行處理,或者將鏈表信息存入文件);</p><p> 5.可以根據(jù)自身理解為系統(tǒng)增加新的功能;</p><p&g
5、t; 學(xué)生信息包括:學(xué)號(hào)、姓名、性別、年齡、專業(yè)班級(jí)和三門以上的課程成績(jī);</p><p><b> 課程設(shè)計(jì)目的</b></p><p> 課程設(shè)計(jì)是教學(xué)過程的重要環(huán)節(jié)。通過課程設(shè)計(jì),使學(xué)生進(jìn)一步加深對(duì)C語(yǔ)言基本知識(shí)的理解,提高C語(yǔ)言綜合編程能力與程序調(diào)試技巧,為后續(xù)課程的學(xué)習(xí)以及實(shí)際問題的解決打下良好的基礎(chǔ)。</p><p><
6、b> 課程設(shè)計(jì)著眼于:</b></p><p><b> 算法的基本概念;</b></p><p> 2使用常量、變量、運(yùn)算符與表達(dá)式、程序控制結(jié)構(gòu)、數(shù)組、函數(shù)、編譯預(yù)處理、指針、結(jié)構(gòu)體與共用體及文件等C語(yǔ)言要素進(jìn)行程序設(shè)計(jì);</p><p> 3.在一種C語(yǔ)言開發(fā)環(huán)境下進(jìn)行C程序設(shè)計(jì)的基本步驟;.</p>
7、<p><b> 背景知識(shí)(可選項(xiàng))</b></p><p> 包括對(duì)背景知識(shí)、設(shè)計(jì)原理等內(nèi)容的介紹。</p><p> 工具/準(zhǔn)備工作(可選項(xiàng))</p><p> 查找相關(guān)C語(yǔ)言程序課程設(shè)計(jì)的書籍,瀏覽網(wǎng)絡(luò)上相關(guān)課程設(shè)計(jì)的模板與示例,學(xué)習(xí)相關(guān)鏈表以及其他相關(guān)的運(yùn)用知識(shí);</p><p><b
8、> 設(shè)計(jì)步驟、方法等</b></p><p> 步驟1:程序功能模塊</p><p> 本學(xué)生信息管理系統(tǒng)包括11大模塊:</p><p> 尾錄入學(xué)生信息函數(shù);</p><p> 尾插入學(xué)生信息函數(shù);</p><p><b> 修改學(xué)生信息函數(shù);</b></p
9、><p><b> 刪除學(xué)生信息函數(shù);</b></p><p><b> 查詢學(xué)生信息函數(shù);</b></p><p><b> 統(tǒng)計(jì)學(xué)生信息函數(shù);</b></p><p><b> 顯示學(xué)生信息函數(shù);</b></p><p>&
10、lt;b> 排序?qū)W生信息函數(shù);</b></p><p> 9.存盤學(xué)生信息函數(shù)</p><p><b> 10.退出系統(tǒng)函數(shù)</b></p><p> 11.菜單界面函數(shù) </p><p> 5.1.1步驟1.1:程序主要函數(shù)</p><p> 主函數(shù)main():定
11、義變量、結(jié)構(gòu)體,運(yùn)用switch--case語(yǔ)句實(shí)現(xiàn)調(diào)用錄入、顯示、插入、修改、查詢、排序、退出函數(shù),進(jìn)行有關(guān)操作;</p><p> 2.錄入數(shù)據(jù)函數(shù)Input():輸入學(xué)生學(xué)號(hào)、姓名、性別、年齡、專業(yè)班級(jí)和三門成績(jī),以及輸出學(xué)生成績(jī)的排序信息;</p><p> 3.顯示數(shù)據(jù)函數(shù)Display():顯示所有錄入學(xué)生的基本信息;</p><p> 4.插入數(shù)
12、據(jù)函數(shù)Insert():插入新的同學(xué)的基本信息(學(xué)生學(xué)號(hào)、姓名、性別、年齡、專業(yè)班級(jí)和三門成績(jī))</p><p> 5查詢數(shù)據(jù)函數(shù)Serach():查找某位同學(xué)的基本信息,需要輸入該同學(xué)的姓名或?qū)W號(hào);</p><p> 6.刪除數(shù)據(jù)函數(shù)Delete():刪除已經(jīng)錄入學(xué)生的所有信息(學(xué)生學(xué)號(hào)、姓名、性別、年齡、專業(yè)班級(jí)和三門成績(jī))</p><p> 7.排序函數(shù)
13、Sort():將錄入的學(xué)生按照總分或單科成績(jī)高低排序;</p><p><b> 具體內(nèi)容。</b></p><p><b> 設(shè)計(jì)結(jié)果及分析</b></p><p> 基本實(shí)現(xiàn)課程設(shè)計(jì)的要求;運(yùn)用鏈表、數(shù)組、指針、結(jié)構(gòu)體、常量、變量、運(yùn)算符與表達(dá)式、程序控制結(jié)構(gòu)、函數(shù)、編譯預(yù)處理、文件等基本實(shí)現(xiàn)學(xué)生信息的錄入、修改
14、、顯示、輸出、排序、查詢、插入等功能的實(shí)現(xiàn);</p><p><b> 總結(jié)</b></p><p> 提示:編寫存盤函數(shù)出現(xiàn),有點(diǎn)問題,存儲(chǔ)結(jié)構(gòu)體中整型變量到文件中,存在問題,可以用字符數(shù)組存儲(chǔ)這些數(shù)據(jù),這樣就不會(huì)出現(xiàn)問題</p><p> 編程要有思想與算法:</p><p> 設(shè)計(jì)一個(gè)學(xué)生信息管理系統(tǒng):&l
15、t;/p><p><b> 采用菜單界面;</b></p><p> 建立學(xué)生信息保存數(shù)據(jù)類型,即結(jié)構(gòu)體</p><p> 錄入學(xué)生信息函數(shù)編寫(1.建立鏈表結(jié)點(diǎn),存儲(chǔ)學(xué)生基本信息;2.提示是否保存到文件中)</p><p> 查詢學(xué)生信息函數(shù)編寫(1.遍歷鏈表;2.查詢是否有符合的學(xué)生信息)</p>
16、<p> 修改學(xué)生信息函數(shù)編寫(1,調(diào)用查詢函數(shù),2.進(jìn)行修改)</p><p> 刪除學(xué)生信息函數(shù)編寫(1.調(diào)用查詢函數(shù);2.保存指定結(jié)點(diǎn),然后釋放)</p><p> 插入學(xué)生信息函數(shù)編寫(1.調(diào)用查詢函數(shù);2.找到指定結(jié)點(diǎn),建立新結(jié)點(diǎn)并插入)</p><p> 顯示學(xué)生信息函數(shù)(1.調(diào)用查詢函數(shù);2.顯示查詢學(xué)生信息)</p>
17、<p> 統(tǒng)計(jì)學(xué)生信息函數(shù)(1.遍歷鏈表;2.計(jì)數(shù)學(xué)生個(gè)數(shù)并輸出)</p><p> 存盤學(xué)生信息(1.遍歷鏈表;2.將學(xué)生信息利用字符數(shù)組保存,并寫入文件中)</p><p><b> 退出系統(tǒng)函數(shù)</b></p><p> 界面菜單函數(shù)編寫(1,利用光標(biāo)定位函數(shù);2.利用printf函數(shù)輸出系統(tǒng)界面)</p>
18、<p><b> 源代碼如下:</b></p><p><b> //頭文件 </b></p><p> #include<stdio.h> </p><p> #include<malloc.h></p><p> #include<string
19、.h></p><p> #include<stdlib.h></p><p> #include<windows.h></p><p><b> //函數(shù)聲明</b></p><p> void system_show();//菜單界面函數(shù)</p><p>
20、 void input();//尾錄入學(xué)生信息函數(shù) </p><p> struct stu* search();//查詢學(xué)生信息函數(shù) </p><p> void modify();//修改學(xué)生信息函數(shù)</p><p> void delete_(); //刪除學(xué)生函數(shù)</p><p> void insert();//尾插入學(xué)生
21、信息函數(shù)</p><p> void count();//統(tǒng)計(jì)學(xué)生信息函數(shù)</p><p> void show();//顯示學(xué)生信息函數(shù)</p><p> void sort();//排序?qū)W生信息函數(shù)</p><p> void save();//存盤學(xué)生信息函數(shù)</p><p> void sort();
22、//排序?qū)W生信息函數(shù) </p><p> void setposition(int j,int i);//控制臺(tái)光標(biāo)定位函數(shù)</p><p> //學(xué)生信息數(shù)據(jù)類型--結(jié)構(gòu)體</p><p> struct stu</p><p><b> {</b></p><p> char num
23、[10];//學(xué)號(hào)</p><p> char name[10];//姓名</p><p> char sex;//性別</p><p> int age;//年齡</p><p> char major[10];//專業(yè)班級(jí)</p><p> int math;//數(shù)學(xué)成績(jī)</p><p
24、> int Eng;//英語(yǔ)成績(jī)</p><p> int C_l;//C語(yǔ)言成績(jī) </p><p> int all_score;//總成績(jī) </p><p> struct stu *pnext; </p><p><b> };</b></p><p> //建立頭指針與尾
25、指針,并賦值為NULL</p><p> struct stu *pHead=NULL;</p><p> struct stu *pEnd=NULL; </p><p><b> //主函數(shù) </b></p><p> int main(void)</p><p><b>
26、{</b></p><p> //system_show();//實(shí)現(xiàn)菜單界面函數(shù)</p><p> //int i=1;</p><p> /*int age;</p><p> printf("請(qǐng)輸入年齡:\n");</p><p> scanf("%d"
27、;,&age);</p><p> getchar(); </p><p><b> char sex;</b></p><p> printf("請(qǐng)輸入性別:\n");</p><p> scanf("%c",&sex); </p><
28、p> char major[10];</p><p> printf("請(qǐng)輸入專業(yè)班級(jí):\n");</p><p> getchar();</p><p> scanf("%s",major);</p><p><b> int math;</b></p>
29、;<p> printf("請(qǐng)輸入數(shù)學(xué)成績(jī):\n");</p><p> scanf("%d",&math);</p><p><b> int Eng;</b></p><p> printf("請(qǐng)輸入英語(yǔ)成績(jī):\n");</p><
30、p> scanf("%d",&Eng);</p><p><b> int C_l;</b></p><p> printf("請(qǐng)輸入C語(yǔ)言成績(jī)\n");</p><p> scanf("%d",&C_l);*/</p><p>
31、 //while(i<4)</p><p><b> //{</b></p><p> //input();//調(diào)用尾錄入學(xué)生信息函數(shù)</p><p><b> //i++;</b></p><p><b> // }</b></p><p&g
32、t; // search();//查詢學(xué)生信息函數(shù)</p><p> // modify();//修改學(xué)生信息函數(shù)</p><p> // delete_();//刪除學(xué)生信息函數(shù)</p><p> // insert();//尾插入學(xué)生信息函數(shù)</p><p> // search();//查詢學(xué)生信息函數(shù) </p
33、><p> // count();//統(tǒng)計(jì)學(xué)生信息函數(shù) </p><p> // show();//顯示學(xué)生信息函數(shù)</p><p> // save();//存盤學(xué)生信息函數(shù)</p><p> // count();</p><p> //排序?qū)W生信息函數(shù) </p><p><
34、;b> //sort();</b></p><p><b> int k;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> system_show();//實(shí)現(xiàn)菜單界面函數(shù)</
35、p><p> printf("請(qǐng)輸入功能號(hào):\n");</p><p> scanf("%d",&k);</p><p><b> switch(k)</b></p><p><b> {</b></p><p> cas
36、e 0:exit(0);</p><p><b> break;</b></p><p> case 1:input();//調(diào)用尾錄入學(xué)生信息函數(shù)</p><p><b> break;</b></p><p> case 2:insert();//尾插入學(xué)生信息函數(shù)</p>
37、<p><b> break;</b></p><p> case 3:modify();//修改學(xué)生信息函數(shù)</p><p><b> break;</b></p><p> case 4:delete_();//刪除學(xué)生信息函數(shù)</p><p><b> brea
38、k;</b></p><p> case 5:search();//查詢學(xué)生信息函數(shù)</p><p><b> break;</b></p><p> case 6:count();//統(tǒng)計(jì)學(xué)生信息函數(shù)</p><p><b> break;</b></p><
39、;p> case 7:show();//顯示學(xué)生信息函數(shù)</p><p><b> break;</b></p><p> case 8:sort();//排序?qū)W生信息函數(shù)</p><p><b> break;</b></p><p> case 9:save();//存盤學(xué)生信息
40、函數(shù)</p><p><b> break;</b></p><p><b> }</b></p><p> system("pause");</p><p> system("cls");</p><p><b>
41、 }</b></p><p> system("pause");</p><p><b> return 0;</b></p><p><b> }</b></p><p> void system_show()//菜單界面函數(shù)</p><
42、p><b> {</b></p><p> setposition(21,6);</p><p> printf("\t\tC語(yǔ)言學(xué)生信息管理系統(tǒng)\n");</p><p> setposition(21,7);</p><p> printf("學(xué)號(hào)、姓名、性別、年齡、專業(yè)
43、班級(jí)、數(shù)學(xué)、英語(yǔ)、C語(yǔ)言、總成績(jī)\n");</p><p> setposition(21,8);</p><p> printf("1.錄入\n");</p><p> setposition(21,9);</p><p> printf("2.增加\n");</p>
44、<p> setposition(21,10);</p><p> printf("3.修改\n");</p><p> setposition(21,11);</p><p> printf("4.刪除\n");</p><p> setposition(21,12);</p
45、><p> printf("5.查詢\n");</p><p> setposition(21,13);</p><p> printf("6.統(tǒng)計(jì)\n");</p><p> setposition(21,14);</p><p> printf("7.顯示\n
46、");</p><p> setposition(21,15);</p><p> printf("8.排序\n");</p><p> setposition(21,16);</p><p> printf("9.存盤\n");</p><p> setpo
47、sition(21,17);</p><p> printf("0.退出\n");</p><p> setposition(21,18);</p><p> printf("可以按班進(jìn)行管理,可增加、刪除班級(jí)\n");</p><p> setposition(21,19);</p>
48、;<p> printf("將學(xué)生信息保存在文件中??梢愿鶕?jù)學(xué)生總分、單科分高低排序并輸出\n");</p><p><b> }</b></p><p> //尾錄入學(xué)生信息函數(shù)</p><p> void input() </p><p><b> {</b
49、></p><p><b> //建立鏈表結(jié)點(diǎn) </b></p><p> struct stu *ptemp=(struct stu*)malloc(sizeof(struct stu)); </p><p> char num[10];</p><p> printf("請(qǐng)輸入學(xué)號(hào):\n&qu
50、ot;);</p><p> scanf("%s",num);</p><p> char name[10];</p><p> printf("請(qǐng)輸入姓名:\n");</p><p> scanf("%s",name);</p><p><b&
51、gt; int age;</b></p><p> printf("請(qǐng)輸入年齡:\n");</p><p> scanf("%d",&age);</p><p> getchar(); </p><p><b> char sex;</b></p
52、><p> printf("請(qǐng)輸入性別:\n");</p><p> scanf("%c",&sex); </p><p> char major[10];</p><p> printf("請(qǐng)輸入專業(yè)班級(jí):\n");</p><p> getc
53、har();</p><p> scanf("%s",major);</p><p><b> int math;</b></p><p> printf("請(qǐng)輸入數(shù)學(xué)成績(jī):\n");</p><p> scanf("%d",&math);<
54、;/p><p><b> int Eng;</b></p><p> printf("請(qǐng)輸入英語(yǔ)成績(jī):\n");</p><p> scanf("%d",&Eng);</p><p><b> int C_l;</b></p><
55、;p> printf("請(qǐng)輸入C語(yǔ)言成績(jī)\n");</p><p> scanf("%d",&C_l);</p><p> if(pHead==NULL)//鏈表為空</p><p><b> {</b></p><p> pHead=ptemp;</
56、p><p> pEnd=ptemp;</p><p> pEnd->pnext=NULL;</p><p><b> } </b></p><p> else //鏈表不為空 </p><p><b> {</b></p><p> pE
57、nd->pnext=ptemp;</p><p> pEnd=pEnd->pnext; </p><p> pEnd->pnext=NULL;</p><p><b> } </b></p><p><b> //錄入信息</b></p><p>
58、 strcpy(ptemp->num,num);</p><p> strcpy(ptemp->name,name);</p><p> ptemp->sex=sex;</p><p> ptemp->age=age;</p><p> strcpy(ptemp->major,major);</p&
59、gt;<p> ptemp->math=math;</p><p> ptemp->Eng=Eng;</p><p> ptemp->C_l=C_l;</p><p> //ptemp->all_score=math+Eng+C_l; </p><p><b> } </b
60、></p><p> //查詢學(xué)生信息函數(shù)(通過姓名查詢)</p><p> struct stu* search()</p><p><b> {</b></p><p><b> //建立鏈表結(jié)點(diǎn)</b></p><p> struct stu *ptem
61、p=(struct stu*)malloc(sizeof(struct stu));</p><p> ptemp=pHead;</p><p> char num[10];</p><p> printf("請(qǐng)輸入學(xué)號(hào):\n");</p><p> scanf("%s",num);</p
62、><p> char name[10];</p><p> printf("請(qǐng)輸入姓名:\n");</p><p> scanf("%s",name);</p><p> while(ptemp!=NULL)</p><p><b> {</b><
63、;/p><p> if(strcmp(ptemp->name,name)==0)</p><p><b> {</b></p><p> printf("查詢到該學(xué)生信息\n");</p><p> return ptemp;</p><p><b> b
64、reak;</b></p><p><b> }</b></p><p> ptemp=ptemp->pnext;</p><p><b> }</b></p><p> if(ptemp==NULL)</p><p><b> {<
65、;/b></p><p> printf("未查詢到該學(xué)生信息\n");</p><p> return NULL; </p><p><b> }</b></p><p><b> } </b></p><p> //修改學(xué)生信息函數(shù)&l
66、t;/p><p> void modify()</p><p><b> {</b></p><p><b> //建立鏈表結(jié)點(diǎn)</b></p><p> struct stu *ptemp=(struct stu*)malloc(sizeof(struct stu));</p>
67、<p> // char num[10];</p><p> // printf("請(qǐng)輸入學(xué)號(hào):\n");</p><p> // scanf("%s",num);</p><p> // char name[10];</p><p> // printf(&qu
68、ot;請(qǐng)輸入姓名:\n");</p><p> // scanf("%s",name);</p><p> ptemp=search();//查詢學(xué)生信息函數(shù)</p><p> if(ptemp!=NULL)//存在要修改的學(xué)生信息</p><p><b> {</b></
69、p><p> char num[10];</p><p> printf("請(qǐng)修改學(xué)號(hào):\n");</p><p> scanf("%s",num);</p><p> char name[10];</p><p> printf("請(qǐng)修改姓名:\n")
70、;</p><p> scanf("%s",name);</p><p> getchar(); </p><p><b> int age;</b></p><p> printf("請(qǐng)修改年齡:\n");</p><p> scanf(&quo
71、t;%d",&age);</p><p> getchar(); </p><p><b> char sex;</b></p><p> printf("請(qǐng)修改性別:\n");</p><p> scanf("%c",&sex); </p&
72、gt;<p> char major[10];</p><p> printf("請(qǐng)修改專業(yè)班級(jí):\n");</p><p> getchar();</p><p> scanf("%s",major);</p><p><b> int math;</b>
73、</p><p> printf("請(qǐng)修改數(shù)學(xué)成績(jī):\n");</p><p> scanf("%d",&math);</p><p><b> int Eng;</b></p><p> printf("請(qǐng)修改英語(yǔ)成績(jī):\n");</p&
74、gt;<p> scanf("%d",&Eng);</p><p><b> int C_l;</b></p><p> printf("請(qǐng)修改C語(yǔ)言成績(jī)\n");</p><p> scanf("%d",&C_l); </p>&l
75、t;p><b> //錄入信息</b></p><p> strcpy(ptemp->num,num);</p><p> strcpy(ptemp->name,name);</p><p> ptemp->sex=sex;</p><p> ptemp->age=age;<
76、/p><p> strcpy(ptemp->major,major);</p><p> ptemp->math=math;</p><p> ptemp->Eng=Eng;</p><p> ptemp->C_l=C_l;</p><p> ptemp->all_score=mat
77、h+Eng+C_l;</p><p> printf("修改學(xué)生信息成功!\n"); </p><p><b> }</b></p><p><b> }</b></p><p><b> //刪除學(xué)生函數(shù)</b></p><p
78、> void delete_() </p><p><b> {</b></p><p><b> //建立鏈表結(jié)點(diǎn)</b></p><p> struct stu *ptemp=(struct stu*)malloc(sizeof(struct stu)); </p><p> s
79、truct stu *ptemp_1=pHead;</p><p><b> //調(diào)用查詢函數(shù)</b></p><p> ptemp=search();</p><p> if(ptemp!=NULL)</p><p><b> {</b></p><p> //遍
80、歷鏈表,找到制定結(jié)點(diǎn)的前指針結(jié)點(diǎn)</p><p> while(ptemp_1!=NULL)</p><p><b> {</b></p><p> if(pHead==NULL)//鏈表為空</p><p><b> {</b></p><p> printf(&
81、quot;鏈表為空!\n");</p><p><b> break;</b></p><p><b> }</b></p><p> else if(pHead==pEnd)//鏈表只有頭結(jié)點(diǎn) </p><p><b> {</b></p>&
82、lt;p> if(ptemp==pHead)</p><p><b> {</b></p><p> free(pHead);</p><p> pHead=NULL;</p><p> pEnd=NULL;</p><p> printf("刪除成功!\n"
83、);</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> else if(pHead->pnext==pEnd)//鏈表有兩個(gè)結(jié)點(diǎn) </p><p>
84、;<b> {</b></p><p> if(ptemp==pHead)</p><p><b> {</b></p><p> free(pHead);</p><p> pHead=pEnd;</p><p> printf("刪除成功!\n&qu
85、ot;);</p><p><b> break;</b></p><p><b> }</b></p><p> else if(ptemp==pEnd)</p><p><b> {</b></p><p> free(pEnd);&l
86、t;/p><p> pEnd=pHead;</p><p> printf("刪除成功!\n");</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b>&l
87、t;/p><p> if(ptemp_1->pnext==ptemp)</p><p><b> {</b></p><p> //鏈表有3個(gè)以上結(jié)點(diǎn)</p><p> if(ptemp==pHead)</p><p><b> {</b></p>
88、<p> pHead=pHead->pnext;</p><p> free(ptemp);</p><p> printf("刪除成功!\n");</p><p><b> break;</b></p><p><b> } </b></p&g
89、t;<p> else if(ptemp==pEnd)</p><p><b> {</b></p><p> pEnd=ptemp_1;</p><p> free(ptemp);</p><p> printf("刪除成功!\n");</p><p&g
90、t;<b> break;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> ptemp_1->pnext=ptemp->pnext;&l
91、t;/p><p> free(ptemp);</p><p> printf("刪除成功!\n");</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b>&
92、lt;/p><p> ptemp_1=ptemp_1->pnext;</p><p><b> } </b></p><p><b> }</b></p><p><b> }</b></p><p> //尾插入學(xué)生信息函數(shù)</p
93、><p> void insert()</p><p><b> {</b></p><p><b> //建立鏈表結(jié)點(diǎn)</b></p><p> struct stu *ptemp=(struct stu*)malloc(sizeof(struct stu)); </p><
94、;p> struct stu *ptemp_1=(struct stu*)malloc(sizeof(struct stu));</p><p> struct stu *ptemp_2=pHead;</p><p> //調(diào)用查詢學(xué)生信息函數(shù) </p><p> ptemp=search();</p><p> if(pte
95、mp==NULL)</p><p><b> {</b></p><p><b> return ;</b></p><p><b> }</b></p><p> if(pHead==NULL) //鏈表為空</p><p><b>
96、 {</b></p><p> printf("鏈表為空\(chéng)n");</p><p><b> } </b></p><p> else if(pHead==pEnd)//鏈表有一個(gè)頭結(jié)點(diǎn) </p><p><b> {</b></p><
97、p> pEnd->pnext=ptemp_1;</p><p> pEnd=pEnd->pnext;</p><p><b> } </b></p><p> else if(pHead->pnext==pEnd)//鏈表有兩個(gè)結(jié)點(diǎn) </p><p><b> {</b&
98、gt;</p><p> if(ptemp==pHead)</p><p><b> {</b></p><p> ptemp_1->pnext=pEnd;</p><p> pHead->pnext=ptemp_1;</p><p><b> }</b>
99、;</p><p> else if(ptemp==pEnd)</p><p><b> {</b></p><p> pEnd->pnext=ptemp_1;</p><p> pEnd=pEnd->pnext;</p><p><b> }</b>&
100、lt;/p><p><b> } </b></p><p> else //鏈表有多個(gè)結(jié)點(diǎn) </p><p><b> {</b></p><p> while(ptemp_2!=NULL)</p><p><b> {</b></p>
101、<p> if(ptemp==pHead)</p><p><b> {</b></p><p> ptemp_1->pnext=pHead->pnext;</p><p> pHead=ptemp_1;</p><p> printf("插入學(xué)生信息成功!\n"
102、);</p><p><b> break;</b></p><p><b> }</b></p><p> if(ptemp_2==ptemp)</p><p><b> {</b></p><p> if(ptemp==pEnd)</
103、p><p><b> {</b></p><p> pEnd->pnext=ptemp_1;</p><p> pEnd=pEnd->pnext;</p><p> printf("插入學(xué)生信息成功!\n");</p><p><b> break;
104、</b></p><p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> ptemp_1->pnext==ptemp->pnext;</p><p&g
105、t; ptemp->pnext=ptemp_1;</p><p> printf("插入學(xué)生信息成功!\n");</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b><
106、;/p><p> ptemp_2=ptemp_2->pnext;</p><p><b> }</b></p><p><b> }</b></p><p><b> //錄入信息</b></p><p> char num[10];<
107、/p><p> printf("請(qǐng)輸入學(xué)號(hào):\n");</p><p> scanf("%s",num);</p><p> char name[10];</p><p> printf("請(qǐng)輸入姓名:\n");</p><p> scanf("
108、;%s",name);</p><p><b> int age;</b></p><p> printf("請(qǐng)輸入年齡:\n");</p><p> scanf("%d",&age);</p><p> getchar(); </p>&l
109、t;p><b> char sex;</b></p><p> printf("請(qǐng)輸入性別:\n");</p><p> scanf("%c",&sex); </p><p> char major[10];</p><p> printf("請(qǐng)輸
110、入專業(yè)班級(jí):\n");</p><p> getchar();</p><p> scanf("%s",major);</p><p><b> int math;</b></p><p> printf("請(qǐng)輸入數(shù)學(xué)成績(jī):\n");</p><
111、;p> scanf("%d",&math);</p><p><b> int Eng;</b></p><p> printf("請(qǐng)輸入英語(yǔ)成績(jī):\n");</p><p> scanf("%d",&Eng);</p><p>&
112、lt;b> int C_l;</b></p><p> printf("請(qǐng)輸入C語(yǔ)言成績(jī)\n");</p><p> scanf("%d",&C_l);</p><p> strcpy(ptemp_1->num,num);</p><p> strcpy(pte
113、mp_1->name,name);</p><p> ptemp_1->sex=sex;</p><p> ptemp_1->age=age;</p><p> strcpy(ptemp_1->major,major);</p><p> ptemp_1->math=math;</p>&l
114、t;p> ptemp_1->Eng=Eng;</p><p> ptemp_1->C_l=C_l;</p><p> ptemp_1->all_score=math+Eng+C_l; </p><p><b> } </b></p><p> //統(tǒng)計(jì)學(xué)生信息函數(shù)</p>
115、<p> void count()</p><p><b> {</b></p><p><b> //建立鏈表結(jié)點(diǎn)</b></p><p> struct stu *ptemp1=(struct stu*)malloc(sizeof(struct stu));</p><p>
116、; ptemp1=pHead;</p><p> int Count=0;</p><p> while(ptemp1!=NULL) </p><p><b> {</b></p><p><b> Count++;</b></p><p> ptemp1=pte
117、mp1->pnext;</p><p><b> }</b></p><p> if(pHead==NULL)</p><p><b> {</b></p><p> printf("無學(xué)生信息!\n");</p><p><b>
118、 }</b></p><p><b> else</b></p><p><b> {</b></p><p> printf("總共有%d個(gè)學(xué)生信息!\n",Count);</p><p><b> } </b></p>
119、<p> //return Count;</p><p><b> } </b></p><p> //顯示學(xué)生信息函數(shù)</p><p> void show()</p><p><b> {</b></p><p><b> //建立鏈表
120、結(jié)點(diǎn)</b></p><p> struct stu *ptemp=(struct stu*)malloc(sizeof(struct stu)); </p><p> //調(diào)用查詢學(xué)生信息函數(shù) </p><p> ptemp=search();</p><p> printf("該學(xué)生信息如下:\n"
121、);</p><p> printf("學(xué)號(hào):%s",ptemp->num);</p><p> printf("\t學(xué)號(hào):%s",ptemp->num);</p><p> printf("\t姓名:%s",ptemp->name);</p><p> p
122、rintf("\t年齡:%d",ptemp->age);</p><p> printf("\t性別:%c",ptemp->sex);</p><p> printf("\n專業(yè)班級(jí):%s",ptemp->major);</p><p> printf("\t數(shù)學(xué)成績(jī):%d
123、",ptemp->math);</p><p> printf("\t英語(yǔ)成績(jī):%d",ptemp->Eng);</p><p> printf("\tC語(yǔ)言成績(jī):%d\n",ptemp->C_l);</p><p><b> } </b></p><
124、p> //排序?qū)W生信息函數(shù) </p><p> void sort()</p><p><b> {</b></p><p><b> //運(yùn)用冒泡排序</b></p><p><b> //建立鏈表結(jié)點(diǎn)</b></p><p> st
125、ruct stu *ptemp=(struct stu*)malloc(sizeof(struct stu));</p><p> ptemp=pHead;</p><p> int score[100];</p><p> int i,j,k,pt,q;</p><p><b> k=0;</b></p&
126、gt;<p><b> int l=0;</b></p><p><b> int p=0;</b></p><p> while(ptemp!=NULL)</p><p><b> {</b></p><p><b> l++;</b
127、></p><p> ptemp=ptemp->pnext;</p><p><b> }</b></p><p> ptemp=pHead;</p><p> while(ptemp!=NULL&&k<l)</p><p><b> {<
128、;/b></p><p> score[k]=ptemp->math;</p><p><b> k++;</b></p><p> ptemp=ptemp->pnext;</p><p><b> } </b></p><p> ptemp=p
129、Head;</p><p> for(i=0;i<l-1;i++)</p><p><b> {</b></p><p> for(j=0;j<l-i-1;j++)</p><p><b> {</b></p><p> if(score[j]<=
130、score[j+1])</p><p><b> {</b></p><p> pt=score[j];</p><p> score[j]=score[j+1];</p><p> score[j+1]=pt;</p><p><b> }</b></p&
131、gt;<p><b> }</b></p><p><b> } </b></p><p><b> q=0;</b></p><p> for(;q<l;q++) </p><p><b> {</b></p>
132、<p> while(ptemp!=NULL)</p><p><b> {</b></p><p> if(ptemp->math==score[q])</p><p><b> {</b></p><p> printf("第%d名:%s,數(shù)學(xué)成績(jī):%d\
133、n",q+1,ptemp->name,ptemp->math);</p><p><b> //q++;</b></p><p><b> break;</b></p><p><b> }</b></p><p> ptemp=ptemp-&g
134、t;pnext;</p><p><b> } </b></p><p> ptemp=pHead;</p><p><b> }</b></p><p><b> } </b></p><p> //存盤學(xué)生信息函數(shù) </p>
135、<p> void save()</p><p><b> {</b></p><p><b> //建立鏈表結(jié)點(diǎn)</b></p><p> struct stu *ptemp=pHead; </p><p><b> //錄入信息</b></p&g
136、t;<p> char message[100];</p><p> char message_1[10];</p><p> char message_2[10];</p><p> char message_3[10];</p><p> char message_4[10];</p><p&g
137、t; char message_5[10];</p><p> char k=' ';</p><p><b> char p;</b></p><p><b> //建立文件指針 </b></p><p><b> FILE *fp;</b><
138、/p><p> fp=fopen("d:\\aa.txt","w"); </p><p> if(fp==NULL)//以寫數(shù)據(jù)的形式打開文本文件 </p><p><b> {</b></p><p> printf("打開文件失敗!\n");</p
139、><p><b> }</b></p><p> else//打開文件成功 </p><p><b> {</b></p><p> while(ptemp!=NULL)</p><p><b> {</b></p><p>
140、; strcpy(message,ptemp->num);</p><p> strcat(message,ptemp->name);</p><p> message_1[0]=ptemp->sex;</p><p> if(ptemp->age>=10)</p><p><b> {<
141、;/b></p><p> p=(char)((ptemp->age/10)+48);</p><p> message_1[1]=p;</p><p> p=(char)((ptemp->age%10)+48);</p><p> message_1[2]=p;</p><p><b&
142、gt; }</b></p><p> else if(ptemp->age<10)</p><p><b> {</b></p><p> p=(char)((ptemp->age)+48);</p><p> message_1[1]=p;</p><p>
143、;<b> }</b></p><p> //strcat(message,message_1);</p><p> strcpy(message_5,ptemp->major);</p><p> if(ptemp->math>=10&&ptemp->math<100)</p>
144、<p><b> {</b></p><p> message_2[0]=(ptemp->math/10)+48;</p><p> message_2[1]=(ptemp->math%10)+48;</p><p><b> }</b></p><p> els
145、e if(ptemp->math<10)</p><p><b> {</b></p><p> message_2[0]=ptemp->math+48;</p><p><b> }</b></p><p> else if(ptemp->math==100)<
146、;/p><p><b> {</b></p><p> message_2[0]=1+48;</p><p> message_2[1]=48;</p><p> message_2[2]=48;</p><p><b> }</b></p><p&
147、gt; //strcat(message,message_2);</p><p> if(ptemp->Eng>=10&&ptemp->Eng<100)</p><p><b> {</b></p><p> message_3[0]=(ptemp->Eng/10)+48;</p>
148、;<p> message_3[1]=(ptemp->Eng%10)+48;</p><p><b> }</b></p><p> else if(ptemp->Eng<10)</p><p><b> {</b></p><p> message_3[0
149、]=ptemp->Eng+48;</p><p><b> }</b></p><p> else if(ptemp->Eng==100)</p><p><b> {</b></p><p> message_3[0]=1+48;</p><p> m
150、essage_3[1]=48;</p><p> message_3[2]=48;</p><p><b> }</b></p><p> //strcat(message,message_3);</p><p> if(ptemp->C_l>=10&&ptemp->C_l<
151、;100)</p><p><b> {</b></p><p> message_4[0]=(ptemp->C_l/10)+48;</p><p> message_4[1]=(ptemp->C_l%10)+48;</p><p><b> }</b></p>&
152、lt;p> else if(ptemp->C_l<10)</p><p><b> {</b></p><p> message_4[0]=ptemp->C_l+48;</p><p><b> }</b></p><p> else if(ptemp->C_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)程序設(shè)計(jì)
- 計(jì)算機(jī)高級(jí)語(yǔ)言課程設(shè)計(jì)(c)學(xué)生成績(jī)管理系統(tǒng)
- 程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)記錄薄設(shè)計(jì)
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)課程設(shè)計(jì)--時(shí)鐘程序設(shè)計(jì)
- c語(yǔ)言程序課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言程序課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)
- c++程序設(shè)計(jì)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- c++程序設(shè)計(jì)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言程序設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言程序設(shè)計(jì)__學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言程序設(shè)計(jì)報(bào)告-班級(jí)學(xué)生成績(jī)管理系統(tǒng)
- 計(jì)算機(jī)技術(shù)創(chuàng)新基礎(chǔ)課程設(shè)計(jì)--基于c++的學(xué)生成績(jī)管理系統(tǒng)
- 程序設(shè)計(jì)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- vb程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告學(xué)生成績(jī)管理系統(tǒng)
- vb程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告-學(xué)生成績(jī)管理系統(tǒng)
- c++程序設(shè)計(jì)課程設(shè)計(jì) ----學(xué)生成績(jī)管理系統(tǒng)實(shí)驗(yàn)報(bào)告
- 計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)c語(yǔ)言程序設(shè)計(jì)課程教學(xué)大綱
- 計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)c語(yǔ)言程序設(shè)計(jì)課程教學(xué)大綱
評(píng)論
0/150
提交評(píng)論