




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 學(xué)生信息管理系統(tǒng) 學(xué)生姓名:學(xué) 號(hào):班 級(jí):指導(dǎo)老師:日 期:2、課程設(shè)計(jì)正文格式:1 題目及要求學(xué)生信息管理系統(tǒng)此題目要求,使用結(jié)構(gòu)體靜態(tài)數(shù)組存儲(chǔ)數(shù)據(jù),并要求使用戶輸入的數(shù)據(jù)或者修改后的數(shù)據(jù)能夠永久保存。1.1 問(wèn)題提出詳細(xì)敘述本人所要實(shí)現(xiàn)的題目中的問(wèn)題我編寫(xiě)一個(gè)學(xué)生信息管理系統(tǒng),主要用來(lái)管理學(xué)生基本信息。1.2 本系統(tǒng)涉及的知識(shí)點(diǎn)如:結(jié)構(gòu)體、數(shù)組、循環(huán)、函數(shù)、分支、文件、字符串、指針;1.3 功能分析敘述本人所要實(shí)現(xiàn)的題目功能1、添加學(xué)生信息,每個(gè)學(xué)生的信息包括:學(xué)號(hào)、姓名、電話、生日、地址、班級(jí);2、根據(jù)學(xué)號(hào)刪除該學(xué)生信息或刪除全部學(xué)生信息;3、根據(jù)學(xué)號(hào)、姓名查詢學(xué)生信息;4、可以以表
2、格形式輸出所有學(xué)生信息;5、輸入欲修改的那人的名字后,再次進(jìn)行信息修改;6、保存此學(xué)生信息系統(tǒng);2 功能設(shè)計(jì) 畫(huà)出模塊層次結(jié)構(gòu)圖學(xué)生信息管理系統(tǒng)增加刪除查詢顯示修改退出2.1 菜單設(shè)計(jì)2.2 各功能模塊的算法設(shè)計(jì)增加學(xué)生信息模塊: 1.1打開(kāi)文件 。 1.2 用scanf輸入數(shù)據(jù),保存再結(jié)構(gòu)數(shù)組中。 1.3 用fwrite函數(shù)將結(jié)構(gòu)體數(shù)組讀入學(xué)生信息文件中,關(guān)閉文件。顯示學(xué)生信息模塊: 1.1 只讀打開(kāi)文件 1.2 將文件的信息讀入結(jié)構(gòu)體數(shù)組中; 1.3 將結(jié)構(gòu)體的內(nèi)容顯示在窗口上。 1.4 關(guān)閉文件。 查詢學(xué)生信息模塊: 1.1 打開(kāi)文件,讀出信息; 1.2 輸入要查詢的學(xué)號(hào)或姓名; 1.3
3、 如有該學(xué)號(hào)或姓名,打印該學(xué)生的信息; 1.4 關(guān)閉文件。輸入要查詢的學(xué)號(hào)或姓名用fread函數(shù)讀信息到stui中 strcmp(number,stui.num)=0?strcmp(name,stui.num)=0?i+i>n?沒(méi)有該同學(xué)結(jié)束顯示學(xué)生信息i=0; n開(kāi)始修改學(xué)生信息模塊: 1.1 打開(kāi)文件,讀出信息; 1.2 輸入要修改的學(xué)生信息的學(xué)號(hào)。 1.3 若有此學(xué)號(hào),則重新輸入此學(xué)生信息。 1.4 覆蓋原先的信息,讀入文件;關(guān)閉文件。刪除學(xué)生信息模塊: 1.1 打開(kāi)文件,讀出信息,關(guān)閉文件。 1.2 選擇要單個(gè)刪除1.3,選擇全部刪除1.5; 1.3 打開(kāi)文件,輸入要?jiǎng)h除的學(xué)號(hào);
4、 1.4 若有此學(xué)號(hào),覆蓋此條信息,已少一次數(shù),讀入文件,關(guān)閉文件;若無(wú),返回1.3; 1.5 打開(kāi)文件。將空字符讀入文件中,覆蓋原先的信息,關(guān)閉文件。3 程序代碼設(shè)計(jì)(-)增加模塊1)函數(shù)原形:void add(void) 2)功 能:利用for循環(huán)語(yǔ)句和scanf、getchar函數(shù)完成對(duì)結(jié)構(gòu)數(shù)組的輸入,再用再用fwrite函數(shù)將結(jié)構(gòu)數(shù)組讀入學(xué)生信息表中。存放n個(gè)學(xué)生的信息(學(xué)號(hào)、姓名、電話、生日、地址、班級(jí))。3)輸入輸出:無(wú)。 (二)查詢模塊1)函數(shù)原形:void search(void)2)功 能:打開(kāi)文件后,根據(jù)strcmp函數(shù)進(jìn)行對(duì)比,可以進(jìn)行學(xué)號(hào)與姓名查詢,用fread函數(shù)將文
5、件中信息讀到結(jié)構(gòu)體數(shù)組中,相同就打印到窗口上。3)輸入輸出:無(wú)。(三)修改模塊1)函數(shù)原形:void modi(void)2)功 能:輸入要修改的姓名,用fread函數(shù)將文件中信息讀到結(jié)構(gòu)體數(shù)組中,根據(jù)strcmp函數(shù)進(jìn)行對(duì)比,然后根據(jù)fwrite函數(shù)進(jìn)行修改覆蓋,得到新文件。3)輸入輸出:無(wú)。(四)刪除模塊1)函數(shù)原形:void del (void)2)功 能:用fread函數(shù)將文件中信息讀到結(jié)構(gòu)體數(shù)組中,依次將輸入的學(xué)號(hào)根據(jù)strcmp函數(shù)進(jìn)行對(duì)比,然后再進(jìn)行選擇性刪除。3)輸入輸出:無(wú)。(五)顯示模塊1)函數(shù)原形:void print(void)2)功 能:用freed函數(shù)打開(kāi)存儲(chǔ)的文件
6、使其顯示在屏幕上。 3)輸入輸出:無(wú)。(六)源程序代碼#include<stdio.h>#include<stdlib.h>#include<string.h>void print(void); /顯示函數(shù)void add(void); /增加函數(shù)void search(void); /查找函數(shù)void modi(void); /修改函數(shù)void del(void); /刪除函數(shù)/定義結(jié)構(gòu)體typedef struct student char name20; char num20; char ban20; char birthday20; char pho
7、ne20; char address200;STU;STU stu2000;FILE *fp;/主函數(shù)int main(void) int i; do printf(" |-| n"); printf(" | 學(xué)生信息管理系統(tǒng) | n"); printf(" |-| n"); printf(" | 1-增加學(xué)生信息 | n"); printf(" | 2-刪除學(xué)生信息 | n"); printf(" | 3-查詢學(xué)生信息 | n"); printf(" | 4-顯示
8、學(xué)生信息 | n"); printf(" | 5-修改學(xué)生信息 | n"); printf(" | 6-退出 | n"); printf(" |-| n"); printf("請(qǐng)選擇你的操作:(16)n"); scanf("%d",&i); if(i=1) add(); if(i=2) del(); if(i=3) search(); if(i=4) print(); if(i=5) modi(); if(i=6) printf("謝謝您的使用!n"); b
9、reak; while(i>0&&i<7); if(i>6|i<1) printf("你的輸入錯(cuò)誤n"); return 0;/*增加函數(shù)*/void add(void) int m,i; if(fp=fopen("學(xué)生信息表.txt","a+")=NULL) /為讀寫(xiě)打開(kāi)學(xué)生信息表文本文件 printf("Cannot open file strike any key exit!"); getchar(); exit(1); printf("請(qǐng)輸入要添加學(xué)生的人數(shù)
10、:"); scanf("%d",&m); for(i=1;i<=m;i+) printf("請(qǐng)輸入姓名:n"); scanf("%s",); printf("請(qǐng)輸入學(xué)號(hào):n"); scanf("%s",stui.num); printf("請(qǐng)輸入班級(jí):n"); scanf("%s",stui.ban); printf("請(qǐng)輸入生日:n"); scanf("%s",stui.b
11、irthday); printf("請(qǐng)輸入電話號(hào)碼:n"); scanf("%s",stui.phone); printf("請(qǐng)輸入地址:n"); scanf("%s",stui.address); fwrite(&stui,sizeof(STU),1,fp); /把結(jié)構(gòu)體的數(shù)據(jù)寫(xiě)入學(xué)生信息表中 printf("n"); fclose(fp); /關(guān)閉學(xué)生信息表文本文件/*顯示函數(shù)*/void print(void) int i,n; if(fp=fopen("學(xué)生信息表.tx
12、t","r")=NULL) /為輸入打開(kāi)學(xué)生信息表文本文件 printf("Cannot open file strike any key exit!"); exit(0); for(i=0;fread(&stui,sizeof(STU),1,fp)!=0;i+); /讀出學(xué)生信息 n=i; printf("姓名 學(xué)號(hào) 班級(jí) 電話 生日 地址n"); printf("-n"); for(i=0;i<n;i+) printf("%st %st %st %st %st %sn"
13、;,,stui.num,stui.ban,stui.phone,stui.birthday,stui.address);printf("-n"); fclose(fp); /關(guān)閉學(xué)生信息表文本文件/*查詢函數(shù)*/void search(void) int i,n; char number20,name20; if(fp=fopen("學(xué)生信息表.txt","r")=NULL) /為輸入打開(kāi)學(xué)生信息表文本文件 printf("Cannot open file strike any key exit!"
14、;); exit(0); for(i=0;fread(&stui,sizeof(STU),1,fp)!=0;i+); /讀取學(xué)生信息表文本文件 n=i; int xz; printf("-n"); printf(" 1.學(xué)號(hào)查詢n"); printf(" 2.姓名查詢n"); printf("-n"); printf("請(qǐng)選擇: n"); scanf("%d",&xz); if (xz=1) printf("n請(qǐng)輸入要查找學(xué)生的學(xué)號(hào): ")
15、; scanf("%s",number); for(i=0;i<n;i+) if(strcmp(number,stui.num)=0) printf("n該學(xué)生已找到n"); printf("-n"); printf("姓名:%sn",); printf("學(xué)號(hào):%sn",stui.num); printf("班級(jí):%sn",stui.ban); printf("電話:%sn",stui.phone); printf("出
16、生日期:%sn",stui.birthday); printf("地址:%sn",stui.address); break; else printf("n沒(méi)有你要找的學(xué)生!nn"); else if(xz=2) printf("請(qǐng)輸入要查詢者的姓名: "); scanf("%s",name); for(i=0;i<n;i+) if(strcmp(name,)=0) printf("該學(xué)生已找到n"); printf("-n"); printf
17、("姓名:%sn",); printf("學(xué)號(hào):%sn",stui.num); printf("班級(jí):%sn",stui.ban); printf("電話:%sn",stui.phone); printf("出生日期:%sn",stui.birthday); printf("地址:%sn",stui.address); break; else printf("n沒(méi)有你要找的學(xué)生!nn"); fclose(fp); /關(guān)閉學(xué)生信息表文本文件
18、/*修改函數(shù)*/void modi(void) int i,n; char name20; if(fp=fopen("學(xué)生信息表.txt","r+")=NULL) /為讀寫(xiě)打開(kāi)學(xué)生信息表文本文件 printf("Cannot open file strike any key exit!"); exit(0); printf("請(qǐng)輸入你要修改的學(xué)生的姓名:"); scanf("%s",name); for(i=0;fread(&stui,sizeof(STU),1,fp)!=0;i+);
19、n=i; for(i=0;i<n;i+) if(strcmp(name,stui.num)=0) printf("-n"); printf("請(qǐng)重新輸入姓名:n"); scanf("%s",); printf("請(qǐng)重新輸入學(xué)號(hào):n"); scanf("%s",stui.num); printf("請(qǐng)重新輸入班級(jí):n"); scanf("%s",stui.ban); printf("請(qǐng)重新輸入電話:n"); sca
20、nf("%s",stui.phone); printf("請(qǐng)重新輸入生日:n"); scanf("%s",stui.birthday); printf("請(qǐng)重新輸入地址:n"); scanf("%s",stui.address); fclose(fp); if(fp=fopen("學(xué)生信息表.txt","w")=NULL) /為輸出打開(kāi)學(xué)生信息表文本文件 for(i=0;i<n;i+) fwrite(&stui,sizeof(STU),1,f
21、p);/覆蓋要修改的學(xué)生信息 fclose(fp); /關(guān)閉學(xué)生信息表文本文件/*刪除函數(shù)*/void del(void) char number20,stud300; int flag=0,i,k,ch,n,temp; if(fp=fopen("學(xué)生信息表.txt","r")=NULL) /為輸入打開(kāi)學(xué)生信息表文本文件 printf("Cannot open file strike any key exit!"); getchar(); exit(1); for(i=0;fread(&stui,sizeof(STU),1,f
22、p)!=0;i+);/讀出學(xué)生信息 n=i; fclose(fp); printf("*1.單個(gè)刪除*2.全部刪除*n"); printf("輸入你的選擇: "); scanf("%d",&ch); if(ch=1) loop: printf("輸入要?jiǎng)h除學(xué)生的學(xué)號(hào): "); scanf("%s",number); for(i=0;i<n;i+) if(strcmp(stui.num,number)=0) flag=1; k=i; printf("*是否確定刪除?*n"); printf("*1-是*2-否*n"); scanf("%d",&temp); if(temp=2) goto loop; if(flag=0) printf("*列表中無(wú)此記錄*n"); goto loop; for(i=k;i<n-1;i+) strcpy(,stui+1.name); strcpy(stui.num
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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è)公司委托協(xié)議書(shū)范本
- 互聯(lián)網(wǎng)企業(yè)典當(dāng)質(zhì)押貸款協(xié)議
- 民用建筑租賃合同范本及詳細(xì)條款
- 轉(zhuǎn)租合同協(xié)議書(shū)樣板范本
- 免除房款協(xié)議書(shū)范本
- 車(chē)輛牌照租賃與綠色出行激勵(lì)政策合同
- 甜品店品牌區(qū)域代理合作協(xié)議
- 綠色制造廠房租賃安全與節(jié)能減排協(xié)議
- 財(cái)務(wù)結(jié)算財(cái)務(wù)擔(dān)保合同范本
- 住宅小區(qū)新能源汽車(chē)充電樁車(chē)位租賃合同
- 2025年福建省糧食行業(yè)職業(yè)技能競(jìng)賽(糧油保管員)備賽試題庫(kù)(含答案)
- 四川電網(wǎng)新建電源并網(wǎng)服務(wù)指南(2025年)
- 建筑工程修繕培訓(xùn)課件
- 2025年主管護(hù)師考試真題試題及答案
- 2025全國(guó)英語(yǔ)等級(jí)考試(PETS)二級(jí)試卷真題匯編與解析
- 2024北森圖表分析題庫(kù)
- 稅務(wù)智稅競(jìng)賽試題及答案
- 成都銀河磁體股份有限公司高精度、高潔凈度硬盤(pán)用粘結(jié)釹鐵硼磁體擴(kuò)建項(xiàng)目環(huán)評(píng)報(bào)告
- 企業(yè)內(nèi)部控制體系構(gòu)建與優(yōu)化研究
- 電力巡檢機(jī)器人市場(chǎng)調(diào)研報(bào)告2025
- 森林康養(yǎng)基地項(xiàng)目可行性研究報(bào)告
評(píng)論
0/150
提交評(píng)論