




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGEPAGE62任務(wù)二基于文件的學(xué)生/教務(wù)管理系統(tǒng)2.1前言為了鞏固我們C語言知識(shí),并了解其在生活中的應(yīng)用,由老師為我們帶來了這個(gè)題目。通過實(shí)訓(xùn),學(xué)會(huì)為實(shí)際應(yīng)用涉及的數(shù)據(jù)選擇適當(dāng)?shù)倪壿嫿Y(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及相應(yīng)的算法,從而對(duì)C語言程序設(shè)計(jì)這門課能有一個(gè)更深刻的理解和認(rèn)識(shí);再者,實(shí)訓(xùn)相對(duì)于平時(shí)試驗(yàn)課來說,要完成的是一個(gè)難度較大的可執(zhí)行綜合性程序,培養(yǎng)需求分析和系統(tǒng)架構(gòu)等處理復(fù)雜問題的能力,從而極大的提高學(xué)生的編程能力以及撰寫文檔的能力;希望能通過實(shí)訓(xùn),實(shí)際做到理論和實(shí)踐緊密結(jié)合,同時(shí)也為后續(xù)課程打下堅(jiān)實(shí)的基礎(chǔ)知識(shí)。2.2系統(tǒng)需求分析2.2.1問題定義本系統(tǒng)可以應(yīng)用于教務(wù)處,進(jìn)行對(duì)學(xué)生,教師,教務(wù)處人員的管理(添加,修改,刪除,統(tǒng)計(jì)),人員查詢,成績查詢(可以按照姓名查詢,證件號(hào)查詢)。本系統(tǒng)主要面對(duì)學(xué)生,教師,教務(wù)處,所以進(jìn)入該系統(tǒng)時(shí)可以選擇不同的身份進(jìn)入,若已存在賬號(hào),則可以直接進(jìn)去選擇自己的身份,若不存在賬號(hào),則需要管理員進(jìn)入添加,管理員可以進(jìn)行的功能有成績管理,學(xué)生管理,教師管理,管理員管理,每個(gè)模塊都有添加,刪除,修改,統(tǒng)計(jì),查詢五個(gè)基本功能。而教師則可以進(jìn)行成績的添加,修改,查詢,等功能。學(xué)生只有查詢和修改個(gè)人信息的功能。2.2.2需求分析學(xué)生管理系統(tǒng)學(xué)生管理系統(tǒng)管理員教師學(xué)生教師管理學(xué)生管理成績管理管理員管理成績管理個(gè)人管理查詢修改個(gè)人信息2.3系統(tǒng)設(shè)計(jì)2.3.1系統(tǒng)架構(gòu)將要實(shí)現(xiàn)的模塊分級(jí)進(jìn)行架構(gòu)學(xué)生管理系統(tǒng)管理員模塊:管理教師:教師添加,教師修改,教師刪除,教師統(tǒng)計(jì),教師查詢管理學(xué)生:學(xué)生添加,學(xué)生修改,學(xué)生刪除,學(xué)生統(tǒng)計(jì),學(xué)生查詢管理管理員:管理員添加,管理員修改,管理員刪除,管理員統(tǒng)計(jì), printf("請輸入所要修改的姓名\n"); scanf("%s",manager[i].name); fwrite(&manager[i],sizeof(structmanager),1,fp); }break; 刪除功能刪除可以依據(jù)證件號(hào)和姓名查詢,刪除方法是,先找到需要?jiǎng)h除的人,然后讓排在其后的人員的信息替換這個(gè)人的信息。具體代碼如下:FILE*fp;charname[20];inti,flag,n,j,ch;fp=fopen("manager.txt","r+");printf("originaldata\n");for(i=0,flag=1;fread(&teacher[i],sizeof(structteacher),1,fp)!=0;i++) printf("%s,%s,%s,%s\n",manager[i].name,manager[i].sex,manager[i].mnum,manager[i].zhiwei);n=i+1;fclose(fp);do{printf("請輸入您所要?jiǎng)h除的人員的名字\n"); scanf("%s",name); fp=fopen("manager.txt","r"); for(i=0,flag=1;flag&&i<n;i++) { if(strcmp(name,manager[i].name)==0){ for(j=i;j<n-1;j++) { /*后一個(gè)人的信息覆蓋所需刪除人的信息*/ }flag=0; } } if(!flag)n=n-1; elseprintf("notfound\n");fp=fopen("manager.txt","w"); for(i=0;i<n;i++) fwrite(&manager[i],sizeof(structmanager),1,fp); fclose(fp); fp=fopen("manager.txt","r");for(i=0,flag=1;fread(&manager[i],sizeof(structmanager),1,fp)!=0;i++) printf("%s,%s,%s,%s\n",manager[i].name,manager[i].sex,manager[i].mnum,manager[i].zhiwei);fclose(fp); printf("是否繼續(xù)刪除,繼續(xù)請輸入1,否則請輸入0\n"); scanf("%d",&ch);}while(ch==1);}查詢功能FILE*fp;inti;charname[20];intch1;do{ printf("請輸入姓名"); scanf("%s",name); fp=fopen("manager.txt","r"); for(i=0;fread(&manager[i],sizeof(structmanager),1,fp)!=0;i++) { if(strcmp(name,manager[i].name)==0) printf("%s,%s,%s,%s\n",manager[i].name,manager[i].sex,manager[i].mnum,manager[i].zhiwei); } fclose(fp); printf("繼續(xù)請輸入1,否則輸入0\n"); scanf("%d",&ch1);}while(ch1==1);}統(tǒng)計(jì)功能FILE*fp;intn,i; fp=fopen("manager.txt","r");for(i=0;fread(&manager[i],sizeof(structmanager),1,fp)!=0;i++)n=i+1;fclose(fp);printf("共有%d名管理員\n",n);權(quán)限管理:FILE*fp; charmnum[10],str[10]; inti,flag,n; fp=fopen("manager.txt","r+"); printf("歡迎進(jìn)入學(xué)生管理系統(tǒng)\n"); printf("請輸入證件號(hào)\n"); scanf("%s",mnum);printf("請輸入密碼\n"); scanf("%s",str); for(i=0;fread(&manager[i],sizeof(structmanager),1,fp)!=0;i++) { n=i+1;printf("%d",n); } for(i=0,flag=1;i<n&&flag;i++) { if((strcmp(mnum,manager[i].mnum)==0)&&(strcmp(str,manager[i].mima)==0)) { managermanage(); flag=0; } } fclose(fp); if(flag)printf("警告,密碼輸入錯(cuò)誤\n");}7.成績添加由教師添加,根據(jù)教師所教授課程而添加,具體實(shí)現(xiàn)代碼:FILE*fp,*fp1,*fp2;inti,n,k,j;chartnum[10],snum[10];charstr1[]="math",str2[]="ph",str3[]="c_language",str4[]="english",str5[]="practise";printf("請輸入您的教師號(hào)\n");scanf("%s",tnum);fp=fopen("teacher.txt","r");for(i=0;fread(&teacher[i],sizeof(structteacher),1,fp)!=0;i++) { if(strcmp(tnum,teacher[i].tnum)==0)n=i; } if(strcmp(teacher[n].course,str1)==0) { do{ fp1=fopen("student.txt","r"); fp2=fopen("grade.txt","a+"); printf("請輸入您所要添加學(xué)生的學(xué)號(hào)\n"); scanf("%s",snum); j=0; for(i=0;fread(&student[i],sizeof(structstudent),1,fp1)!=0;i++) { if(strcmp(snum,student[i].snum)==0) strcpy(grade[j].num,student[i].snum); } printf("請輸入高等數(shù)學(xué)的成績\n"); scanf("%f",&grade[j].math); fwrite(&grade[j],sizeof(structgrade),1,fp2);j++; fclose(fp1); fclose(fp2); printf("是否繼續(xù)添加,是1,否0\n"); scanf("%d",&k); }while(k==1); } elseif(strcmp(teacher[n].course,str4)==0) { 繼續(xù)添加其他課程elseprintf("不存在這門課,請核實(shí)\n"); fclose(fp);}8.成績計(jì)算:FILE*fp;inti;fp=fopen("grade.txt","a+");for(i=0;fread(&grade[i],sizeof(structgrade),1,fp)!=0;i++) { grade[i].sum=grade[i].math+grade[i].ph+grade[i].english+grade[i].c_language+grade[i].practise; grade[i].aver=grade[i].sum/5; printf("學(xué)號(hào)為%s的學(xué)生的總成績是%f\n",grade[i].num,grade[i].sum);printf("學(xué)號(hào)為%s的學(xué)生的平均成績是%f\n",grade[i].num,grade[i].aver); fwrite(&grade[i],sizeof(structgrade),1,fp);} fclose(fp);9.成績排序主要是運(yùn)用冒泡排序法。代碼:FILE*fp,*fp1;inti,n,j;floattemp;fp=fopen("grade.txt","r");for(i=0;fread(&grade[i],sizeof(structgrade),1,fp)!=0;i++);n=i+1;for(i=0;i<n-1;i++){for(j=0;j<n-i;j++) if(grade[j].aver<grade[j+1].aver) { temp=grade[j].aver; grade[j].aver=grade[j+1].aver; grade[j+1].aver=temp; }}for(i=0;i<n-1;i++){ printf("學(xué)號(hào)為%s的學(xué)生的成績?yōu)?f\n",grade[i].num,grade[i].aver);}fp1=fopen("grade1.txt","a+");fwrite(&grade[i],sizeof(structgrade),1,fp1);fclose(fp1);fclose(fp);10.計(jì)算成績最高最低分,、采用窮比法,首先設(shè)第一個(gè)人的成績是最高或最低,再和其他人員的成績比較,直到所有人員比較完之后,找出最高分或最低分。具體實(shí)現(xiàn)代碼如下:FILE*fp,*fp1;inti,n,k;floatmax,min;fp=fopen("grade.txt","r");fp1=fopen("count.txt","a+");for(i=0;fread(&grade[i],sizeof(structgrade),1,fp)!=0;i++) n=i+1;max=grade[0].aver;min=grade[0].aver;for(i=1;i<n;i++){if(max<grade[i].aver)max=grade[i].aver;k=i;}grade_count.amax=
溫馨提示
- 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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北黃岡應(yīng)急管理職業(yè)技術(shù)學(xué)院《國際商務(wù)策劃》2023-2024學(xué)年第二學(xué)期期末試卷
- Unit 5 Topic 2 Section C 教學(xué)設(shè)計(jì) 2024-2025學(xué)年仁愛科普版八年級(jí)英語下冊
- 比例的認(rèn)識(shí)(教學(xué)設(shè)計(jì))-2023-2024學(xué)年六年級(jí)下冊數(shù)學(xué)北師大版
- 慶陽職業(yè)技術(shù)學(xué)院《工業(yè)通風(fēng)與除塵》2023-2024學(xué)年第二學(xué)期期末試卷
- 宣化科技職業(yè)學(xué)院《建筑風(fēng)景速寫》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧現(xiàn)代服務(wù)職業(yè)技術(shù)學(xué)院《食品生物化學(xué)(實(shí)驗(yàn))》2023-2024學(xué)年第二學(xué)期期末試卷
- 濟(jì)南2024年山東濟(jì)南市章丘區(qū)社區(qū)工作者招考10人筆試歷年參考題庫附帶答案詳解
- 信陽師范大學(xué)《語文課堂教學(xué)技能》2023-2024學(xué)年第二學(xué)期期末試卷
- 濟(jì)南護(hù)理職業(yè)學(xué)院《中西醫(yī)結(jié)合實(shí)驗(yàn)診斷研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南質(zhì)量工程職業(yè)學(xué)院《結(jié)構(gòu)化學(xué)C》2023-2024學(xué)年第二學(xué)期期末試卷
- 小兒急性中毒的處理與急救
- 涂裝工技能鑒定考試題庫匯總-下(多選、判斷題部分)
- 非遺傳統(tǒng)文化課件
- 橋梁施工常見問題及預(yù)防控制要點(diǎn)(PPT,46)
- 中俄文一般貿(mào)易合同范本
- 知情同意書核查要點(diǎn)課件
- 廣東省深圳市2021-2022學(xué)年高二下學(xué)期期末考試 語文 Word版含解析
- 專項(xiàng)施工方案專家論證意見回復(fù)表
- 《醫(yī)古文》教學(xué)全套課件580頁
- 水電廠計(jì)算機(jī)監(jiān)控系統(tǒng)改造技術(shù)要求
- 勝利油田壓驅(qū)技術(shù)工藝研究進(jìn)展及下步工作方向
評(píng)論
0/150
提交評(píng)論