




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、225552C程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 題目學(xué)生信息管理系統(tǒng)班 級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)(師范) 設(shè) 計(jì) 者: 學(xué) 號(hào): 20101201053 指導(dǎo)老師: 劉懷愚 2011年3月30日一、設(shè)計(jì)目的與內(nèi)容(1) 學(xué)生信息管理系統(tǒng)的功能為顯示主要操作頁(yè)面,通過(guò)密碼驗(yàn)證登陸界面,學(xué)生信息處理功能。通過(guò)密碼驗(yàn)證登陸,可實(shí)現(xiàn)安全登錄,方便可靠。學(xué)生信息處理功能包括增加學(xué)生信息,顯示學(xué)生信息,學(xué)生信息條件查詢(xún)(分為:按學(xué)生姓名進(jìn)行查詢(xún),按學(xué)生學(xué)號(hào)進(jìn)行查詢(xún)),修改學(xué)生信息,刪除學(xué)生信息,讀取保存學(xué)生信息。(2) 學(xué)生信息管理系統(tǒng)的功能模塊有:用戶名和密碼驗(yàn)證登陸界面,輸入正確的用戶名和密碼登陸主菜單選擇界面,方
2、便用戶對(duì)程序的功能進(jìn)行選擇,選擇要實(shí)現(xiàn)的功能按enter鍵進(jìn)入該功能。0. 系統(tǒng)幫助及說(shuō)明1. 增加學(xué)生信息。2. 顯示學(xué)生信息。3. 學(xué)生信息條件查詢(xún)。4. 修改學(xué)生信息。5. 刪除學(xué)生信息。6. 讀取學(xué)生信息。7. 保存學(xué)生信息。8. 退出,謝謝使用!程序分為多個(gè)小模塊,通過(guò)調(diào)用實(shí)現(xiàn)各種功能,增強(qiáng)了程序的可建設(shè)性。二、總體設(shè)計(jì)流程圖學(xué)生信息管理系統(tǒng)密碼登陸界面登陸主菜單選擇框架界面輸入信息模塊顯示信息模塊條件查詢(xún)模塊修改信息模塊退出系統(tǒng)模塊從鍵盤(pán)輸入信息輸出信息至屏幕按學(xué)生學(xué)號(hào)查詢(xún)按學(xué)生姓名查詢(xún)修改學(xué)生信息將退出界面顯示刪除信息模塊讀取保存信息模塊讀取文件信息保存文件信息刪除學(xué)生信息該流程
3、圖為此次學(xué)生信息管理系統(tǒng)的總體流程圖,用戶進(jìn)入界面以后可以看到登陸密碼界面,密碼輸入正確進(jìn)入主菜單選擇框架界面,0 為系統(tǒng)幫助及說(shuō)明,1 為輸入學(xué)生信息,2 為顯示學(xué)生信息,3 為查找學(xué)生信息,4 為修改學(xué)生信息,5 為刪除學(xué)生信息,6 為讀取學(xué)生信息,7為保存學(xué)生信息,8為退出系統(tǒng),謝謝使用! 用戶可以根據(jù)自己的需求方便快捷的做出自己的選擇。三、算法的基本思想1.頭文件的引用和函數(shù)的聲明#include<stdio.h> /I/O函數(shù)#include<string.h> /字符串函數(shù)#define N 100000 /最大學(xué)生人數(shù),實(shí)際請(qǐng)更改/struct recor
4、d /結(jié)構(gòu)體 char code15; /學(xué)號(hào) char name15; /姓名 char age3; /年齡 char sex8; /性別 char time15; /出生日期 char add30; /家庭地址 char tel15; /電話號(hào)碼 char mail30; /電子郵件地址stuN;int k=1,n=0; /定義全局變量void password(); /驗(yàn)證密碼函數(shù)void mainmenu(); /主菜單函數(shù)聲明void help(); /系統(tǒng)幫助函數(shù)聲明void insert(); /插入函數(shù)聲明void display(); /顯示函數(shù)聲明void search()
5、; /查找函數(shù)聲明void search_by_num(); /通過(guò)學(xué)號(hào)查找函數(shù)聲明void search_by_name(); /通過(guò)姓名查找函數(shù)聲明void modify(); /修改函數(shù)聲明void del(); /刪除函數(shù)聲明void readfile(); /讀取文件函數(shù)聲明void save(); /保存文件函數(shù)聲明該函數(shù)是對(duì)頭文件的加載和引用,定義結(jié)構(gòu)體、常量和變量,并對(duì)他們進(jìn)行初始化工作。2.系統(tǒng)主調(diào)函數(shù)void main() /*主函數(shù)*/printf("ttt+-+n"); printf("ttt| |n"); printf(&quo
6、t;ttt| 歡迎使用學(xué)生信息管理系統(tǒng) |n"); printf("ttt| |n"); printf("ttt+-+n");password();該函數(shù)為程序的主函數(shù),通過(guò)密碼驗(yàn)證進(jìn)入主菜單。3密碼驗(yàn)證函數(shù)/*通過(guò)對(duì)比字符串?dāng)?shù)組比較實(shí)現(xiàn)密碼校驗(yàn)*/void password() /*驗(yàn)證密碼函數(shù)*/ int i; char Administrator15; char Password15; for(i=0; i<3; i+) printf("n管理員初始用戶名和密碼均為adminn"); printf("請(qǐng)
7、輸入您的用戶名:"); scanf("%s", Administrator); printf("請(qǐng)輸入您的密碼:"); scanf("%s", Password); if(strcmp(Administrator,"admin")=0)&&(strcmp(Password,"admin")=0) printf("登錄成功!n"); while(k) /*循環(huán)判斷*/ mainmenu(); break; else if (i < 2) prin
8、tf("用戶名或密碼錯(cuò)誤,請(qǐng)重新輸入!n"); else printf("您已連續(xù)3次將用戶名或密碼輸錯(cuò),系統(tǒng)將退出!n"); 密碼登陸函數(shù)流程圖:密碼函數(shù)開(kāi)始登陸密碼重新登陸密碼錯(cuò)誤密碼輸錯(cuò)3次,退出系統(tǒng)進(jìn)入主菜單登陸密碼該函數(shù)為密碼登陸函數(shù)模塊,當(dāng)用戶輸入密碼正確時(shí),進(jìn)入主菜單。當(dāng)用戶輸入的密碼不正確的時(shí)候,系統(tǒng)會(huì)提示“密碼輸入錯(cuò)誤,請(qǐng)重新輸入”。若用戶連續(xù)輸錯(cuò)3次密碼,則退出系統(tǒng)。 4主菜單函數(shù)void mainmenu() /*主菜單函數(shù)*/ int num; printf("tt*系統(tǒng)功能菜單* n"); printf(&q
9、uot;tt 友情提醒:查詢(xún)前請(qǐng)先讀取學(xué)生信息! n"); printf("tt- - n"); printf("tt* n"); printf("tt* 0.系統(tǒng)幫助及說(shuō)明 * * 1.增加學(xué)生信息 * n"); printf("tt* n"); printf("tt* 2.顯示學(xué)生信息 * * 3.查找學(xué)生信息 * n"); printf("tt* n"); printf("tt* 4.修改學(xué)生信息 * * 5.刪除學(xué)生信息 * n"); p
10、rintf("tt* n"); printf("tt* 6.讀取學(xué)生信息 * * 7.保存學(xué)生信息 * n"); printf("tt* * n"); printf("tt* 8.退出系統(tǒng) * * * n"); printf("tt* * n"); printf("tt- - n"); printf("請(qǐng)選擇菜單編號(hào):"); scanf("%d",&num); switch(num) case 0: help(); break;
11、 case 1: insert(); break; case 2: display(); break; case 3: search(); break; case 4: modify(); break; case 5: del(); break; case 6: readfile(); break; case 7: save(); break; case 8: k=0; break; default: printf("請(qǐng)?jiān)?-8之間選擇!n");主菜單函數(shù)流程圖:1輸入信息2顯示信息3查詢(xún)信息4修改信息8退出系統(tǒng)5刪除信息6、7讀保信息主菜單開(kāi)始用戶選擇進(jìn)入學(xué)生信息管理系統(tǒng)
12、時(shí)顯示程序名稱(chēng)和主菜單,提示用戶進(jìn)行選擇,完成相應(yīng)任務(wù)。該函數(shù)主要實(shí)現(xiàn)了對(duì)整個(gè)程序的運(yùn)行控制,以及相關(guān)功能模塊的調(diào)用。5輸入學(xué)生信息函數(shù)void insert() /*插入學(xué)生信息函數(shù)*/ int i=n,j,flag; flag=1; while(flag) flag=0; printf("請(qǐng)輸入第 %d 個(gè)學(xué)生的學(xué)號(hào):n",i+1); scanf("%s",stui.code); for(j=0;j<i;j+) if(strcmp(stui.code,stuj.code)=0) printf("已有該學(xué)號(hào),請(qǐng)檢查后重新錄入!n&quo
13、t;); flag=1; break; /*如有重復(fù)立即退出該層循環(huán)*/ printf("請(qǐng)輸入第 %d 個(gè)學(xué)生的姓名:n",i+1); scanf("%s",); printf("請(qǐng)輸入第 %d 個(gè)學(xué)生的年齡:n",i+1); scanf("%s",stui.age); printf("請(qǐng)輸入第 %d 個(gè)學(xué)生的性別:n",i+1); scanf("%s",stui.sex); printf("請(qǐng)輸入第 %d 個(gè)學(xué)生的出生日期:(格式:年.月.日)
14、n",i+1); scanf("%s",stui.time); printf("請(qǐng)輸入第 %d 個(gè)學(xué)生的地址:n",i+1); scanf("%s",stui.add); printf("請(qǐng)輸入第 %d 個(gè)學(xué)生的電話:n",i+1); scanf("%s",stui.tel); printf("請(qǐng)輸入第 %d 個(gè)學(xué)生的E-mail:n",i+1); scanf("%s",stui.mail); if(flag=0) i+;n+; printf(&
15、quot;錄入完畢!nn");輸入信息函數(shù)流程圖:輸入信息系統(tǒng)開(kāi)始輸入學(xué)號(hào)輸入姓名輸入出生日期輸入地址輸入電話輸入電子郵件學(xué)號(hào)重復(fù)重新輸入輸入學(xué)生信息函數(shù)模塊,用戶可以根據(jù)提示的信息來(lái)進(jìn)行每一步的輸入操作,當(dāng)輸入學(xué)號(hào)重復(fù)時(shí),系統(tǒng)會(huì)自動(dòng)提示,并讓用戶重新輸入學(xué)號(hào)的操作。6顯示學(xué)生信息函數(shù)void display()/*顯示學(xué)生信息函數(shù)*/ int i; printf("所有學(xué)生的信息為:n"); printf("學(xué)號(hào) 姓名 年齡 性別 出生日期 地址 電話 E-mailn" ); printf("-"); for(i=0;i&
16、lt;n;i+) printf("%-5s %-11s %-5s %-6s %-10s %-9s %-11s %-16s",stui.code, ,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail);printf("nn");顯示信息函數(shù)流程圖:顯示信息函數(shù)開(kāi)始輸出學(xué)生信息結(jié)束當(dāng)用戶進(jìn)入查詢(xún)信息模塊時(shí),系統(tǒng)會(huì)顯示內(nèi)部存儲(chǔ)的內(nèi)容。7學(xué)生信息條件查詢(xún)函數(shù)void search() /*查找學(xué)生信息函數(shù)*/ int item=-1;do printf("-n")
17、; printf("-1.按學(xué)號(hào)查詢(xún)-n"); printf("-2.按姓名查詢(xún)-n"); printf("-3.退出本菜單-n"); printf("-n"); printf("請(qǐng)選擇子菜單編號(hào):"); scanf("%d",&item); switch(item) case 1: search_by_num(); break; case 2: search_by_name(); break; case 3: return; default: printf(&quo
18、t;請(qǐng)?jiān)?-3之間選擇!n"); break; while(item!=3);void search_by_num() /*通過(guò)學(xué)號(hào)查找學(xué)生信息*/int i,flag=0;char s121;printf("請(qǐng)輸入要查詢(xún)的學(xué)生的學(xué)號(hào):n"); scanf("%s",s1); for(i=0;i<n;i+) if(strcmp(stui.code,s1)=0) flag=1; printf("學(xué)號(hào) 姓名 年齡 性別 出生日期 地址 電話 E-mailn" ); printf("-"); printf
19、("%-5s %-11s %-5s %-6s %-10s %-9s %-11s %-16sn",stui.code, ,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail); if(flag=0) printf("該學(xué)號(hào)不存在!n");void search_by_name() /*通過(guò)姓名查找學(xué)生信息*/int i,flag=0;char s121;printf("請(qǐng)輸入要查詢(xún)的學(xué)生的姓名:n"); scanf("%s",s1); fo
20、r(i=0;i<n;i+) if(strcmp(,s1)=0) flag=1; printf("學(xué)號(hào) 姓名 年齡 性別 出生日期 地址 電話 E-mailn" ); printf("-"); printf("%-5s %-11s %-5s %-6s %-10s %-9s %-11s %-16sn",stui.code, ,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail); if(flag=0) printf("該姓名不存
21、在!n");查詢(xún)信息流程圖:選擇按學(xué)號(hào)還是姓名查詢(xún)選擇查詢(xún)函數(shù)開(kāi)始輸入錯(cuò)誤重新輸入2按姓名查詢(xún)輸出信息輸出信息1按學(xué)號(hào)查詢(xún)當(dāng)用戶執(zhí)行此查詢(xún)?nèi)蝿?wù)時(shí),系統(tǒng)會(huì)提醒用戶進(jìn)行查詢(xún)方式的選擇,即按學(xué)號(hào)或姓名進(jìn)行查詢(xún)。若此學(xué)生信息記錄存在,則會(huì)顯示該學(xué)生的信息。若無(wú)此學(xué)生記錄,則提示該學(xué)號(hào)或姓名不存在。8修改學(xué)生信息函數(shù)void modify() /*修改學(xué)生信息函數(shù)*/ int i,item,num; char sex18,s115,s215; printf("請(qǐng)輸入要修改的學(xué)生的學(xué)號(hào):n"); scanf("%s",s1); for(i=0;i<n
22、;i+) if(strcmp(stui.code,s1)=0) /*比較字符串是否相等*/ num=i; printf("該學(xué)生的信息為:n"); printf("學(xué)號(hào) 姓名 年齡 性別 出生日期 地址 電話 E-mailn" ); printf("-"); printf("%-5s %-11s %-5s %-6s %-10s %-9s %-11s %-16s",stui.code, ,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail)
23、; do printf("-n"); printf("1.修改姓名n"); printf("2.修改年齡n"); printf("3.修改性別n"); printf("4.修改出生日期n"); printf("5.修改地址n"); printf("6.修改電話號(hào)碼n"); printf("7.修改E-mail地址n"); printf("8.退出本菜單n"); printf("-n"); prin
24、tf("請(qǐng)選擇子菜單編號(hào):"); scanf("%d",&item); switch(item) case 1: printf("請(qǐng)輸入新的姓名:n"); scanf("%s",s2); strcpy(,s2);printf("修改成功!n"); break; case 2: printf("請(qǐng)輸入新的年齡:n"); scanf("%s",stunum.age);printf("修改成功!n"); brea
25、k; case 3: printf("請(qǐng)輸入新的性別:n"); scanf("%s",sex1); strcpy(stunum.sex,sex1);printf("修改成功!n"); break; case 4: printf("請(qǐng)輸入新的出生日期:n"); scanf("%s",s2); strcpy(stunum.time,s2);printf("修改成功!n"); break; case 5: printf("請(qǐng)輸入新的地址:n"); scanf(&
26、quot;%s",s2); strcpy(stunum.add,s2);printf("修改成功!n"); break; case 6: printf("請(qǐng)輸入新的電話號(hào)碼:n"); scanf("%s",s2); strcpy(stunum.tel,s2);printf("修改成功!n"); break; case 7: printf("請(qǐng)輸入新的E-mail地址:n"); scanf("%s",s2); strcpy(stunum.mail,s2);printf
27、("修改成功!n"); break; case 8: return; default: printf("請(qǐng)?jiān)?-8之間選擇!n"); while(item!=8);if(i=n) printf("無(wú)此人信息!n");修改學(xué)生信息流程圖:更改信息函數(shù)開(kāi)始輸入要更改的學(xué)號(hào)學(xué)號(hào)不存在輸入更改后信息返回主菜單完成選擇需要更改的信息在修改學(xué)生信息的操作中,系統(tǒng)會(huì)先按輸入的學(xué)號(hào)查詢(xún)到該學(xué)生信息記錄,然后選擇要修改的信息填入要信息。若用戶輸入的學(xué)號(hào)不存在,則提示無(wú)此人信息并返回主菜單。9刪除學(xué)生信息函數(shù)void del() /*刪除學(xué)生信息函數(shù)*/
28、 int i,j,flag=0; char s115; printf("請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào):n"); scanf("%s",s1); for(i=0;i<n;i+) if(strcmp(stui.code,s1)=0) flag=1; for(j=i;j<n-1;j+) stuj=stuj+1; if(flag=0) printf("該學(xué)號(hào)不存在!n"); if(flag=1) printf("刪除成功!n"); n-;刪除學(xué)生信息流程圖:刪除信息函數(shù)開(kāi)始輸入要?jiǎng)h除的學(xué)號(hào)學(xué)號(hào)不存在返回主菜單完成當(dāng)用
29、戶需要?jiǎng)h除學(xué)生信息時(shí),進(jìn)入該函數(shù)操作,系統(tǒng)會(huì)先按輸入的學(xué)號(hào)查詢(xún)是否存在該學(xué)號(hào)的學(xué)生信息記錄,若存在該學(xué)號(hào)時(shí),則刪除該學(xué)生的信息。若該學(xué)號(hào)不存在時(shí),則提示該學(xué)號(hào)不存在并返回主菜單。10讀取或保存學(xué)生信息函數(shù)void readfile() /*讀取學(xué)生信息函數(shù)*/ FILE *fp; char *p="student.txt" int i=0; if(fp=fopen("student.txt","r")=NULL) /*以只讀方式打開(kāi)文件,若文件打開(kāi)失敗,則返回NULL*/ printf("讀取文件 %s 錯(cuò)誤!n"
30、,p); return; while(fscanf(fp,"%s %s %s %s %s %s %s %sn",stui.code,,stui.age,stui.sex, stui.time,stui.add,stui.tel,stui.mail)=8) /*fscanf函數(shù)返回值是實(shí)際讀取的數(shù)據(jù)個(gè)數(shù)*/ i+; fclose(fp); n=i; printf("讀取學(xué)生信息成功!n"); void save() /*保存學(xué)生信息函數(shù)*/ int i; FILE *fp; fp=fopen("student.txt"
31、,"w"); /*以只寫(xiě)方式打開(kāi)文件*/ for(i=0;i<n;i+) fprintf(fp,"%s %s %s %s %s %s %s %sn",stui.code,,stui.age,stui.sex, stui.time,stui.add,stui.tel,stui.mail); printf("保存學(xué)生信息成功!n"); fclose(fp);讀取或保存函數(shù)流程圖:讀取或保存函數(shù)開(kāi)始返回主菜單完成讀取或保存文件成功讀取文件錯(cuò)誤當(dāng)用戶輸入學(xué)生信息時(shí),該保存函數(shù)會(huì)將學(xué)生信息保存在student.txt這個(gè)文件中。當(dāng)用戶需要從文件中讀取學(xué)生信息時(shí),該讀取函數(shù)會(huì)從student.txt文件中讀取學(xué)生信息。四、程序調(diào)試1. 密碼登陸界面輸入預(yù)先設(shè)定好的密碼再按Enter進(jìn)入系統(tǒng)。如果輸入不正確,則顯示“密碼輸入錯(cuò)誤,請(qǐng)重新入”。圖41密碼登陸界面圖2. 登陸主菜單界面進(jìn)入主菜單選擇框架界面后,用戶可選擇08,調(diào)用相應(yīng)功能進(jìn)行操作。當(dāng)輸入為8時(shí),退出學(xué)生信息管理系統(tǒng)。圖42登陸主菜單界面圖3. 輸入信
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 低血壓基礎(chǔ)試題及答案
- 會(huì)計(jì)基礎(chǔ)考試題庫(kù)及答案
- 會(huì)計(jì)從業(yè)資格試題及答案
- 什么是招聘試題及答案
- 人民日?qǐng)?bào)政治試題及答案
- 2025年農(nóng)產(chǎn)品追溯體系在構(gòu)建農(nóng)產(chǎn)品質(zhì)量安全信用體系中的應(yīng)用報(bào)告
- 正切數(shù)學(xué)題目及答案
- 運(yùn)輸安全試題及答案解析
- 2025年農(nóng)產(chǎn)品質(zhì)量安全追溯體系與農(nóng)業(yè)供應(yīng)鏈金融創(chuàng)新研究報(bào)告
- 疫情期間中考題庫(kù)及答案
- 《公路工程預(yù)算定額》(JTGT3832-2018)
- 基本藥物政策培訓(xùn)
- 古鎮(zhèn)旅游活動(dòng)策劃方案
- 清遠(yuǎn)市突發(fā)事件總體應(yīng)急預(yù)案
- 通風(fēng)與防排煙系統(tǒng)的施工方案
- 滬教版英語(yǔ)小學(xué)四年級(jí)上學(xué)期試卷與參考答案(2024-2025學(xué)年)
- 人工智能訓(xùn)練師理論知識(shí)考核要素細(xì)目表二級(jí)
- 2024年人教版一年級(jí)數(shù)學(xué)(下冊(cè))期末試卷及答案(各版本)
- 《卒中患者吞咽障礙護(hù)理規(guī)范》
- DL∕T 698.45-2017 電能信息采集與管理系統(tǒng) 第4-5部分:通信協(xié)議-面向?qū)ο蟮臄?shù)據(jù)交換協(xié)議
- GB/T 44189-2024政務(wù)服務(wù)便民熱線運(yùn)行指南
評(píng)論
0/150
提交評(píng)論