版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
中北大學數(shù)據(jù)結(jié)構(gòu)課程設計說明書學生姓名:學號:
學院:軟件學院專業(yè):
軟件工程題目:學生成績管理系統(tǒng)指導教師薛海麗2011年12月20日設計任務概述〔包括系統(tǒng)總體框圖及功能描述〕設計內(nèi)容:〔1〕;〔2〕;〔3〕對合并后的文件3.txt中的數(shù)據(jù)按總分降序排序(至少采用兩種排序方法實現(xiàn));〔4〕輸入一個學生姓名后,能查找到此學生的信息并輸出結(jié)果(至少采用兩種查找方法實現(xiàn));〔5〕要求使用結(jié)構(gòu)體,鏈或數(shù)組等實現(xiàn)上述要求。設計要求:(1)符合課題要求,實現(xiàn)相應功能;(2)要求界面友好美觀,操作方便易行;(3)注意程序的實用性、平安性;本設計所采用的數(shù)據(jù)結(jié)構(gòu)〔如:鏈表、棧、樹、圖等〕使用結(jié)構(gòu)體實現(xiàn)對學生信息的存儲,包括姓名,三門成績?nèi)缦拢簊tructstudent_type{ charname[20]; floatscore1; floatscore2; floatscore3; doubleall;}選擇數(shù)組即結(jié)構(gòu)體數(shù)組實現(xiàn)對多個學生的信息存儲;使用對文件的操作實現(xiàn)對學生信息的讀入,輸出和修改等操作;功能模塊詳細設計我的程序中有main()主函數(shù)和一個子函數(shù)voidsaveinfor();子函數(shù)用于〔模塊一〕;模塊二〕;模塊三〕(至少采用兩種排序方法實現(xiàn));輸入一個學生姓名后,能查找到此學生的信息并輸出結(jié)果(至少采用兩種查找方法實現(xiàn))〔模塊四〕;3.1詳細設計思想使用結(jié)構(gòu)體實現(xiàn)學生信息的存儲,使用結(jié)構(gòu)體數(shù)組組成一個班的學生信息,利用對文件的操作滿足需求;voidsaveinfor()函數(shù)是實現(xiàn)該要求的主要函數(shù);利用for循環(huán)和標準輸入輸出函數(shù)的實現(xiàn)排序;程序中有用到文件的相關(guān)操作,比方文件的翻開,關(guān)閉,讀取文件,寫入文件等,具體用到的函數(shù)有fopen(),fclose(),fwrite(),fread()等,在翻開關(guān)閉的時候要判斷是否成功,依靠不成功返回空指針可以判斷出來。3.2核心代碼#include"string.h"#include"stdio.h"#defineSIZE10#include<conio.h>structstudent_type{ charname[20]; floatscore1; floatscore2; floatscore3; doubleall;}stud[SIZE];voidsaveinfor(){ FILE*filep1,*filep2,*filep3,*filep4; inti,j,max; doubleall;charname[20]; structstudent_typecount; if((filep1=fopen("d:\\file1.txt","wb"))==NULL)/*模塊一的起始*/ { printf("cannotopenfile\n"); return; } if((filep2=fopen("d:\\file2.txt","wb"))==NULL) { printf("cannotopenfile\n"); return; } for(j=0;j<2;j++) { if(j==0) for(i=0;i<5;i++)/*將學生信息寫入文件*/ { if(fwrite(&stud[i],sizeof(structstudent_type),1,filep1)!=1) { printf("filewriteerror\n"); getch(); return; } } else for(i=5;i<SIZE;i++) { if(fwrite(&stud[i],sizeof(structstudent_type),1,filep2)!=1) { printf("filewriteerror\n"); getch(); return; } } } fclose(filep1); fclose(filep2); for(j=0;j<2;j++) { if(j==0) { filep1=fopen("d:\\file1.txt","rb"); printf("將filep1的學生信息輸出到屏幕:\n"); for(i=0;i<5;i++)/*將學生信息輸出到屏幕*/ { fread(&stud[i],sizeof(structstudent_type),1,filep1); printf("%-20s%4f%4f%4f\n",stud[i].name,stud[i].score1,stud[i].score2,stud[i].score3); } fclose(filep1); } else { filep2=fopen("d:\\file2.txt","rb"); printf("將filep2的學生信息輸出到屏幕:\n"); for(i=5;i<SIZE;i++)/*將學生信息輸出到屏幕*/ { fread(&stud[i],sizeof(structstudent_type),1,filep2); printf("%-20s%4f%4f%4f\n",stud[i].name,stud[i].score1,stud[i].score2,stud[i].score3); } fclose(filep2); } } filep1=fopen("d:\\file1.txt","rb"); filep2=fopen("d:\\file2.txt","rb"); for(i=0;i<SIZE;i++)/*實現(xiàn)file1與file2的合并*/ { fread(&stud[i],sizeof(structstudent_type),1,filep1); fread(&stud[i+5],sizeof(structstudent_type),1,filep2); } if((filep3=fopen("d:\\file3.txt","wb"))==NULL) { printf("cannotopenfile\n"); return; } for(i=0;i<SIZE;i++)/*將file1與file2中的數(shù)據(jù)輸出到file3*/ { if(fwrite(&stud[i],sizeof(structstudent_type),1,filep3)!=1) { printf("filewriteerror\n"); getch(); return; } } fclose(filep3); filep3=fopen("d:\\file3.txt","rb"); printf("filep3里的內(nèi)容:\n"); for(i=0;i<SIZE;i++)/*輸出file3的內(nèi)容*/ {fread(&stud[i],sizeof(structstudent_type),1,filep3); printf("%-20s%4f%4f%4f\n",stud[i].name,stud[i].score1,stud[i].score2,stud[i].score3); } fclose(filep3); /*模塊一的終結(jié)*/ if((filep4=fopen("d:\\file4.txt","wb"))==NULL)/*模塊二的開始*/ { printf("cannotopenfile\n"); return; } filep3=fopen("d:\\file3.txt","rb"); printf("輸出filep3中不及格的人:\n"); for(i=0;i<SIZE;i++)/*輸出不及格的人*/ { if((stud[i].score1>=60&&stud[i].score2>=60&&stud[i].score3>=60)!=1) { printf("%-20s是不及格",stud[i].name); if(fwrite(&stud[i],sizeof(structstudent_type),1,filep4)!=1) { printf("filewriteerror\n"); getch(); return; } } } fclose(filep3); fclose(filep4); filep4=fopen("d:\\file4.txt","rb"); printf("輸出filep4中的內(nèi)容:\n"); for(i=0;i<SIZE;i++) {fread(&stud[i],sizeof(structstudent_type),1,filep4); printf("%-20s%4f%4f%4f\n",stud[i].name,stud[i].score1,stud[i].score2,stud[i].score3); } fclose(filep4); /*模塊二的終結(jié)*/ filep3=fopen("d:\\file3.txt","rb");/*模塊三的開始*/ for(i=0;i<SIZE;i++) { if(fread(&stud[i],sizeof(structstudent_type),1,filep3)!=1){ printf("filewriteerror!\n"); getch(); return; } stud[i].all=stud[i].score1+stud[i].score2+stud[i].score3; } for(i=0;i<SIZE;i++)/*第一種實現(xiàn)降序的方法*/ { max=i; for(j=i+1;j<SIZE;j++) if(stud[max].all<stud[j].all) max=j; count=stud[i]; stud[i]=stud[max]; stud[max]=count; } for(i=0;i<SIZE;i++)/*第二種實現(xiàn)降序排列的方法*/ for(j=0;j<SIZE-i;j++) { if(stud[j].all<stud[j+1].all) { count=stud[j]; stud[i]=stud[i+1]; stud[i+1]=count; } } printf("輸出filep3中按降序排列的學生信息:\n"); for(i=0;i<SIZE;i++) { printf("%-20s%4f%4f%4f\n",stud[i].name,stud[i].score1,stud[i].score2,stud[i].score3); } fclose(filep3);/*模塊三的結(jié)束*/filep3=fopen("d:\\file3.txt","rb");/*模塊四的開始*/ for(i=0;i<SIZE;i++) { if(fread(&stud[i],sizeof(structstudent_type),1,filep3)!=1) { printf("filewriteerror!\n"); getch(); return; } } printf("輸入一個學生姓名查找信息:\n");/*查找學生*/ scanf("%s",name); for(i=0;i<SIZE;i++) { if(!(strcmp(name,stud[i].name))) printf("%-20s%4f%4f%4f",stud[i].name,stud[i].score1,stud[i].score2,stud[i].score3); } fclose(filep3);/*模塊四的結(jié)束*/}voidmain(){ inti; printf("pleaseinputstudents'information\n"); printf("鍵入十個學生信息:\n"); printf("name\tscore1\tscore2\tscore3\n"); for(i=0;i<SIZE;i++) scanf("%s%f%f%f",stud[i].name,&stud[i].score1,&stud[i].score2,&stud[i].score3); saveinfor(); getch();}3.3程序運行結(jié)果〔拷屏〕(見下頁)課程設計心得、存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024綠化帶雜草管理協(xié)議樣本
- 2024年適用租車服務協(xié)議綜合范例
- 2024年工程項目食堂供應承包協(xié)議
- 2024年土建工程協(xié)議示范文本
- 2024在線支付安全規(guī)范SET協(xié)議
- 2024年個人貸款協(xié)議模板大全2
- 醫(yī)生聘用合同的崗位職責
- 2024年師徒合作協(xié)議范本下載
- 2024年度西安二手房銷售協(xié)議模板
- 2024年金融領(lǐng)域反擔保協(xié)議參考樣式
- 拆除防塵施工方案
- JGT377-2012 混凝土防凍泵送劑
- 工作交接單-(附件三)
- 人教版四年級英語上冊Unit-3-測試卷附答案-
- 廣東省深圳市福田區(qū)2023-2024學年三年級上學期11月期中科學試題
- 銀行副行長轉(zhuǎn)正申請工作總結(jié)
- 人教版七年級下冊數(shù)學第八章二元一次方程組應用題-方案問題
- 98S205 消防增壓穩(wěn)壓設備選用與安裝(隔膜式氣壓罐)
- 改善人因績效
- 爐頭設備安全操作規(guī)定
- 托管安全責任承諾書范文(19篇)
評論
0/150
提交評論