版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C語言程序設(shè)計(jì)報(bào)告書學(xué)生證管理程序?qū)W號(hào):姓名:SYF2010年 5月一、題目內(nèi)容的提出與描述。大學(xué)學(xué)生人數(shù)眾多,學(xué)生信息量巨大。手工管理十分艱難,且極易出錯(cuò)和丟失信息,并會(huì)占用大量的紙張和空間資源。本款軟件就是基于對學(xué)生證管理的需求,為學(xué)校管理方量身定做,操作容易,快速便捷,并且節(jié)約能源。它不僅符合當(dāng)今信息化社會(huì)的需求,還順應(yīng)了當(dāng)代低碳環(huán)保的理念此軟件可實(shí)現(xiàn)學(xué)生信息的錄入、輸出、查詢、修改、統(tǒng)計(jì)和刪除的功能,查詢和統(tǒng)計(jì)的功能是本款軟件的特色,比較方便。另外,因?yàn)楸救斯P記本為windows7系統(tǒng),調(diào)試時(shí)無法在中文條件下運(yùn)行,所以本款軟件有中英文兩個(gè)版本。(英文版為student-english)
2、二、軟件的需求分析描述1.軟件應(yīng)具有的功能:(1).輸入學(xué)生信息。(2).輸出全部學(xué)生信息。(3).查詢學(xué)生信息。輸入單個(gè)學(xué)號(hào)以查詢一個(gè)學(xué)生;輸入專業(yè)以查詢一專業(yè)學(xué)生;輸入學(xué)院以查詢一院學(xué)生。(4).修改學(xué)生信息。輸入學(xué)生學(xué)號(hào)以修改信息。(5).統(tǒng)計(jì)學(xué)生信息。按性別統(tǒng)計(jì)男、女生人數(shù)及比例;按戶籍統(tǒng)計(jì)本地生和外地生人數(shù)及比例;(6).刪除學(xué)生信息。輸入學(xué)生學(xué)號(hào)以刪除信息。補(bǔ)充:教師有特定驗(yàn)證碼(驗(yàn)證碼為1),輸入正確則可實(shí)行以上操作。2題目要求:(1) 按照分析、設(shè)計(jì)、編碼、調(diào)試和測試的軟件開發(fā)過程完成這個(gè)應(yīng)用程序;(2) 學(xué)生信息應(yīng)該包含:學(xué)號(hào)、姓名、年齡、專業(yè)、所屬學(xué)院、戶籍所在地。(3)
3、為各項(xiàng)操作功能設(shè)計(jì)一個(gè)菜單。應(yīng)用程序運(yùn)行后,先顯示這個(gè)菜單,然后用戶通過菜單項(xiàng)選擇希望進(jìn)行的操作項(xiàng)目。三、開發(fā)工具的介紹本軟件采用色開發(fā)工具為C語言。C語言Combined Language(組合語言)的中英混合簡稱。是一種計(jì)算機(jī)程序設(shè)計(jì)語言。它既具有高級(jí)語言的特點(diǎn),又具有匯編語言的特點(diǎn)。它可以作為工作系統(tǒng)設(shè)計(jì)語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。因此,它的應(yīng)用范圍廣泛,且具有強(qiáng)大的功能。許多著名的系統(tǒng)軟件,如DBASE 都是由C 語言編寫的。用C 語言加上一些匯編語言子程序,就更能顯示C 語言的優(yōu)勢了,像PC- DOS 、WORDSTAR等就是用
4、這種方法編寫的。歸納起來C 語言具有下列特點(diǎn):1. C是中級(jí)語言。它把高級(jí)語言的基本結(jié)構(gòu)和語句與低級(jí)語言的實(shí)用性結(jié)合起來,可以像匯編語言一樣對位、字節(jié)和地址進(jìn)行操作。2.C是結(jié)構(gòu)式語言。結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,使程序?qū)哟吻逦?,便于使用、維護(hù)以及調(diào)試。C 語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。3.C語言功能齊全。具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可使程序效率更高。另外C語言也具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。而且計(jì)算功能、邏輯判斷功能也比較強(qiáng)大。4. C語言適用范圍大。適合于多種操作系統(tǒng)
5、,多種機(jī)型。C語言對編寫需要硬件進(jìn)行操作的場合,明顯優(yōu)于其它解釋型高級(jí)語言,有一些大型應(yīng)用軟件也是用C語言編寫的。C語言具有繪圖能力強(qiáng),可移植性,因此適于編寫系統(tǒng)軟件,三維,二維圖形和動(dòng)畫。它是數(shù)值計(jì)算的高級(jí)語言。5.C語言文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件。四、軟件的總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)?!究傮w設(shè)計(jì)】1、軟件的總體設(shè)計(jì)部分的結(jié)構(gòu)圖輸入查詢統(tǒng)計(jì)修改刪除按學(xué)號(hào)按專業(yè)按學(xué)院按性別按戶籍進(jìn)入主菜單學(xué)生證管理系統(tǒng)輸入驗(yàn)證碼正確錯(cuò)誤菜單重試退出輸出全部2.各模塊函數(shù)作用簡介因?yàn)樗眯畔槿肿兞浚愿骱瘮?shù)間無傳值或傳址函數(shù)名主要作用調(diào)用及數(shù)據(jù)傳輸關(guān)系main()-主函數(shù)檢驗(yàn)驗(yàn)證碼是否正確(
6、驗(yàn)證碼為1);若正確則顯示主菜單,進(jìn)入下面操作;若錯(cuò)誤可選擇重新輸入或退出。調(diào)用了menu();一部分調(diào)用了tuichu().tuichu()-退出函數(shù)顯示“感謝使用”“孫亞飛制作”等結(jié)束語,并可實(shí)現(xiàn)退出操作;避免了重復(fù)語句。被main(),menu()調(diào)用;menu()主菜單函數(shù)顯示主菜單;用戶可輸入選項(xiàng)后可轉(zhuǎn)向?qū)?yīng)模塊進(jìn)行下面操作。分別調(diào)用了 tuichu(),input(), printall(),search(),tongji(),modify(),del();也被main()及以上函數(shù)調(diào)用;input()-輸入函數(shù)輸入要添加的學(xué)生人數(shù),之后可輸入對應(yīng)人數(shù)的學(xué)生的信息;操作完可返回主菜
7、單。被menu()調(diào)用,也調(diào)用menu();printall()-輸出全部函數(shù)可輸出全部學(xué)生的信息;操作完可返主回菜單。被menu()調(diào)用,也調(diào)用menu();search()-查詢函數(shù)通過一個(gè)菜單可選擇輸入單個(gè)學(xué)號(hào)以查詢一個(gè)學(xué)生的信息,輸入專業(yè)名查詢一班學(xué)生的信息,輸入學(xué)院名查詢一院學(xué)生的信息。操作完可返回主菜單。被menu()調(diào)用,也調(diào)用menu();tongji()-統(tǒng)計(jì)函數(shù)通過一個(gè)菜單可選擇按性別統(tǒng)計(jì)男、女生人數(shù)及比例或按戶籍統(tǒng)計(jì)本地生和外地生人數(shù)及比例;操作完可返回主菜單。被menu()調(diào)用,也調(diào)用menu();modify()-修改函數(shù)通過輸入一個(gè)學(xué)生學(xué)號(hào)以修改其信息;操作完可返回
8、主菜單。被menu()調(diào)用,也調(diào)用menu();del()-刪除函數(shù)通過輸入一個(gè)學(xué)生學(xué)號(hào)以刪除其信息;操作完可返回主菜單被menu()調(diào)用,也調(diào)用menu();結(jié)構(gòu)體為全局變量:struct studentlong number;char name5;char sex;int age;char college15;char major10;char hukou10;stuN;定義全局變量指針FILE *fp;【詳細(xì)設(shè)計(jì)】1.各模塊函數(shù)框圖(1).main()-主函數(shù)while判斷驗(yàn)證碼輸入驗(yàn)證碼開始重新輸入/退出TF重新輸入退出tuichu()函數(shù)進(jìn)入主菜單menu()(2) tuichu()
9、-退出函數(shù)開始退出輸出結(jié)束語(3). menu()主菜單函數(shù)switchprintf顯示菜單開始結(jié)束input()函數(shù)printall()函數(shù)modify()函數(shù)search()函數(shù)tuichu()函數(shù)del()函數(shù)tongji()函數(shù)case1case2case3case4case5case6case7(4). input()-輸入函數(shù)TFTF開始輸入要添加的學(xué)生人數(shù)n創(chuàng)建一個(gè)文件in+1i=1i+輸入學(xué)生信息Tstui.number!=0i+i=1T回到主菜單menu()判斷fp是否為空顯示無法打開文件fwrite!=1顯示寫入錯(cuò)誤(5). printall()-輸出全部函數(shù)FTF開始in
10、+1i=1i+輸出學(xué)生信息T打開文件讀文件max+feof(fp)max=0回到主菜單menu()沒有信息T(6).search()-查詢函數(shù)T開始If選項(xiàng)顯示本模塊菜單FiN+1i=1i+讀文件Tfeof(fp)Max+輸入選項(xiàng)后面的流程圖轉(zhuǎn)下頁TF輸入要查找的學(xué)生的學(xué)號(hào)cTFimax+1i=1i+輸出該學(xué)生信息d+d=0TStui學(xué)號(hào)為c輸入要查找的專業(yè)的名稱m與第一種情況流程圖相同將Stui學(xué)號(hào)為c改為Stui專業(yè)為m將c改為改為顯示沒有該學(xué)生信息與第一種情況流程圖相同將Stui學(xué)號(hào)為c改為Stui專業(yè)為n將c改為改為輸入要查找的學(xué)院的名稱回到主菜單menu()123 (7).tongj
11、i()-統(tǒng)計(jì)函數(shù)FTT前面部分流程圖與search()函數(shù)第一頁流程圖相同If選項(xiàng)12開始Fimax+1i=1i+stui性別為男Sum2+Sum1+輸出統(tǒng)計(jì)信息Sum1為0且sum2為0T顯示無法統(tǒng)計(jì)FTTFimax+1i=1i+stui性別為男Sum2+Sum1+輸出統(tǒng)計(jì)信息Sum1為0且sum2為0T顯示無法統(tǒng)計(jì)回到主菜單menu() (8).modify()-修改函數(shù)TTT輸入修改后的信息輸入要修改的學(xué)生學(xué)號(hào)i+寫入文件回到主菜單menu()T開始FiN+1i=1i+讀文件feof(fp)Max+Timax+1i=1stui學(xué)號(hào)為c將修改后的信息付給stuid=0d+stui學(xué)號(hào)為cF
12、顯示無該學(xué)生信息,無法修改轉(zhuǎn)右側(cè) ().del()-刪除函數(shù)轉(zhuǎn)右側(cè)TTT輸入修改后的信息輸入要修改的學(xué)生學(xué)號(hào)i+寫入文件回到主菜單menu()T開始FiN+1i=1i+讀文件feof(fp)Max+Timax+1i=1stui學(xué)號(hào)為c將修改后的信息付給stuid=0t=istui學(xué)號(hào)為cF顯示無該學(xué)生信息,無法刪除五、資源描述計(jì)算機(jī)需裝有winTc軟件。計(jì)算機(jī)的配置:windows Xpvista/7系統(tǒng):只能運(yùn)行英文版windows Xp:中、英文兩個(gè)版本均可運(yùn)行六、源代碼#define N 20#include stdio.hstruct studentlong number;char n
13、ame20;char sex;int age;char college20;char major20;char hukou20;stuN;FILE *fp; /* 全局變量 */*-主函數(shù)-*/main()struct student stuN;int a,b; printf(請輸入驗(yàn)證碼:n); /* 驗(yàn)證碼為1 */scanf(%d,&a);while(a!=1) printf(驗(yàn)證碼錯(cuò)誤!n); printf(1:重新輸入n2:退出n); printf(您的選擇是(輸入代號(hào)):); scanf(%d,&b); if(b=1) printf(請輸入驗(yàn)證碼:n); scanf(%d,&a);
14、 else tuichu(); menu();/*-退出函數(shù)-*/tuichu()printf(nn感謝使用本系統(tǒng)!);printf(n孫亞飛制作于2010年);getch();exit(0);/*-主菜單-*/menu()int c;printf(n*n);printf( 歡迎使用本系統(tǒng)!nn);printf(1:輸入學(xué)生信息n);printf(2:輸出全部學(xué)生信息n);printf(3:查詢學(xué)生信息n);printf(4:統(tǒng)計(jì)學(xué)生信息n);printf(5:修改學(xué)生信息n);printf(6:刪除學(xué)生信息n);printf(7:退出系統(tǒng)n);printf(*nn);printf(您的選擇是
15、(輸入代號(hào)):);scanf(%d,&c);switch(c) case 1:input(stu);break; case 2:printall(stu);break; case 3:search(stu);break; case 4:tongji(stu);break; case 5:modify(stu);break; case 6:del(stu);break; case 7:tuichu();break; /*-輸入部分-*/input(struct student stu)int i,n;fp=fopen(stu_list,a+);printf(nn請輸入要添加的學(xué)生的人數(shù):n);s
16、canf(%d,&n);for(i=1;in+1;i+) printf(n第%d個(gè)學(xué)生,i); printf(n請輸入學(xué)生學(xué)號(hào)(取后7位):); scanf(%ld,&stui.number); printf(n請輸入學(xué)生姓名:); scanf(%s,&); printf(n請輸入學(xué)生性別(填“m”或“f”):); scanf(%s,&stui.sex); printf(n請輸入學(xué)生年齡:); scanf(%d,&stui.age); printf(n請輸入學(xué)生學(xué)院名稱:); scanf(%s,&stui.college); printf(n請輸入學(xué)生專業(yè):); scanf(
17、%s,&stui.major); printf(n請輸入學(xué)生戶口所在地(北京寫作“beijing”):);scanf(%s,&stui.hukou);if(fp=fopen(stu_list,a+)=NULL) printf(無法打開文件n);for(i=1;stui.number!=0;i+) if(fwrite(&stui,sizeof(struct student),1,fp)!=1) printf(寫入錯(cuò)誤n);fclose(fp);menu();/*-輸出部分-*/printall(struct student stu)int i,max=0;fp=fopen(stu_list,r)
18、;for(i=1;iN+1;i+) fread(&stui,sizeof(struct student),1,fp); if(feof(fp) fclose(fp); break; max+; fp=fopen(stu_list,r);if(max=0) printf(n沒有信息!n);else printf(學(xué)號(hào)t姓名t性別t年齡t學(xué)院t專業(yè)t戶口n); for(i=1;imax+1;i+) printf(%ldt%st%ct%dt%st%st%snn,stui.number,, stui.sex,stui.age,stui.college,stui.major,stui.
19、hukou); fclose(fp);getch();menu();/*-查找部分-*/search(struct student stu)int c,i,max=0,d=0,e=0,f=0;long g;char m20,n20;fp=fopen(stu_list,r);printf(n1:查詢單個(gè)學(xué)生信息);printf(n2:查詢一個(gè)專業(yè)學(xué)生);printf(n3:查詢一學(xué)院學(xué)生);printf(n您的選擇是(輸入代號(hào)):);scanf(%d,&c);for(i=1;iN+1;i+) fread(&stui,sizeof(struct student),1,fp); if(feof(fp
20、) fclose(fp); break; max+; fp=fopen(stu_list,r);if(c=1) printf(nn請輸入要查找的學(xué)生的學(xué)號(hào):); scanf(%ld,&g); printf(學(xué)號(hào)t姓名t性別t年齡t學(xué)院t專業(yè)t戶口n); for(i=1;imax+1;i+) fread(&stui,sizeof(struct student),1,fp); if(stui.number=g) printf(%ldt%st%ct%dt%st%st%snn,stui.number,, stui.sex,stui.age,stui.college,stui.majo
21、r,stui.hukou); d+; if(d=0) printf(n沒有相關(guān)信息!n); else if(c=2) printf(nn請輸入要查找的專業(yè)的名稱:); scanf(%s,m); printf(學(xué)號(hào)t姓名t性別t年齡t學(xué)院t專業(yè)t戶口n); for(i=1;imax+1;i+) fread(&stui,sizeof(struct student),1,fp); if(strcmp(stui.major,m)=0) printf(%ldt%st%ct%dt%st%st%snn,stui.number,, stui.sex,stui.age,stui.college
22、,stui.major,stui.hukou); e+; if(e=0) printf(n沒有相關(guān)信息!n); else printf(nn請輸入要查找的專業(yè)的名稱:); scanf(%s,g); printf(學(xué)號(hào)t姓名t性別t年齡t學(xué)院t專業(yè)t戶口n);for(i=1;imax+1;i+) fread(&stui,sizeof(struct student),1,fp); if(strcmp(stui.college,n)=0) printf(%ldt%st%ct%dt%st%st%snn,stui.number,, stui.sex,stui.age,stui.coll
23、ege,stui.major,stui.hukou); f+; if(f=0) printf(n沒有相關(guān)信息!n); fclose(fp);getch();menu();/*-統(tǒng)計(jì)部分-*/tongji(struct student stu)int c,i,sum1,sum2,sum3,sum4,max;float d,e,f,g;sum1=0;sum2=0; sum3=0; sum4=0; max=0;fp=fopen(stu_list,r);printf(n1:統(tǒng)計(jì)男女生人數(shù)及比例);printf(n2:統(tǒng)計(jì)本地生與外地生的人數(shù)及比例);printf(n您的選擇是(輸入代號(hào)):);scan
24、f(%d,&c);for(i=1;iN+1;i+) fread(&stui,sizeof(struct student),1,fp); if(feof(fp) fclose(fp); break; max+; if(c=1) for(i=1;imax+1;i+) if(stui.sex=m) sum1+; else sum2+; if(sum1=0&sum2=0) printf(沒有相關(guān)信息 無法統(tǒng)計(jì)!); else printf(n男女生人數(shù)分別是:%d %d,sum1,sum2); d=(float)sum1/(sum1+sum2)*100; e=(float)sum2/(sum1+sum
25、2)*100; printf(n男生人數(shù)比例為%.2f%,d); printf(n女生人數(shù)比例為%.2f%,e); else for(i=1;imax+1;i+) if(strcmp(stui.hukou,beijing)=0) sum3+; else sum4+; if(sum3=0&sum4=0) printf(沒有相關(guān)信息 無法統(tǒng)計(jì)!); else printf(nn本地生與外地生人數(shù)分別是:%d %d,sum3,sum4); f=(float)sum3/(sum3+sum4)*100; g=(float)sum4/(sum3+sum4)*100; printf(n本地生比例為:%.2f
26、%,f); printf(n外地生比例為:%.2f%,g); fclose(fp);getch();menu();/*-修改部分-*/modify(struct student stu)int i,d=0,max=0;long c;struct student st1;fp=fopen(stu_list,r);printf(請輸入要修改的學(xué)生的學(xué)號(hào):);scanf(%ld,&c);for(i=1;iN+1;i+) fread(&stui,sizeof(struct student),1,fp); if(feof(fp) fclose(fp); break; max+; if(stui.numb
27、er=c) d+; if(d=0) printf(n沒有相關(guān)信息 無法修改!n);else printf(n請輸入學(xué)生學(xué)號(hào)(取后7位):); scanf(%ld,&st0.number); printf(n請輸入學(xué)生姓名:); scanf(%s,&); printf(n請輸入學(xué)生性別(填“m”或“f”):); scanf(%s,&st0.sex); printf(n請輸入學(xué)生年齡:); scanf(%d,&st0.age); printf(n請輸入學(xué)生學(xué)院名稱:); scanf(%s,&st0.college); printf(n請輸入學(xué)生專業(yè):); scanf(%s,&st0
28、.major); printf(n請輸入學(xué)生戶口所在地(北京寫作“beijing”):);scanf(%s,&st0.hukou);fp=fopen(stu_list,r);for(i=1;imax+1;i+) if(stui.number=c) stui.number=st0.number; stui.sex=st0.sex; stui.age=st0.age; strcpy(,); strcpy(stui.college,st0.college); strcpy(stui.major,st0.major); strcpy(stui.hukou,st0.hu
29、kou); fclose(fp);fp=fopen(stu_list,w);for(i=1;imax+1;i+) fwrite(&stui,sizeof(struct student),1,fp);fclose(fp);getch();menu();/*-刪除部分-*/del(struct student stu)int t,i,max=0;long c;fp=fopen(stu_list,r);printf(請輸入要修改的學(xué)生的學(xué)號(hào):);scanf(%ld,&c);for(i=1;iN+1;i+) fread(&stui,sizeof(struct student),1,fp); if(stui
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 前端開發(fā)常見錯(cuò)誤與修復(fù)
- 2026年大學(xué)英語六級(jí)模擬題及參考答案精講
- 2026年健身領(lǐng)域評(píng)估培訓(xùn)健康身體素質(zhì)測試及評(píng)估標(biāo)準(zhǔn)解析
- 2026年AI健康管理與診斷測試題
- 2026年物流信息系統(tǒng)操作與維護(hù)試題
- 2026年經(jīng)濟(jì)政策對金融市場的影響分析考試練習(xí)題
- 2026年環(huán)境保護(hù)與生態(tài)治理考試題
- 2026年?duì)I養(yǎng)師專業(yè)知識(shí)與營養(yǎng)學(xué)基礎(chǔ)模擬試題庫
- 2026年土木工程師備考指南理論運(yùn)用與實(shí)踐答案
- 2026年電路基礎(chǔ)與電子技術(shù)應(yīng)用試題集
- 《人民調(diào)解員培訓(xùn)》課件
- 出租車春節(jié)應(yīng)急預(yù)案
- 華羅庚數(shù)學(xué)課本六年級(jí)
- DB12-T885-2019-植物提取物中原花青素的測定紫外-可見分光光度法-天津市
- 董氏奇穴針灸學(xué)(楊維杰)
- 日間手術(shù)病人術(shù)前的護(hù)理
- 1000張隱患辨識(shí)圖
- 智能水務(wù)管理基礎(chǔ)知識(shí)單選題100道及答案
- 《職業(yè)院校與本科高校對口貫通分段培養(yǎng)協(xié)議書》
- 危巖帶治理工程初步設(shè)計(jì)計(jì)算書
- 精神病學(xué)考試重點(diǎn)第七版
評(píng)論
0/150
提交評(píng)論