




已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
.內蒙古科技大學本科生課程設計說明書題 目:C語言課程設計 學生基本信息管理系統(tǒng)學生姓名:李俊達學 號:1567159126專 業(yè):軟件班 級:1班指導教師:褚燕華日 期:2016 年 1月 5 日.內蒙古科技大學課程設計任務書課程名稱C語言課程設計設計題目學生基本信息管理系統(tǒng)指導教師褚燕華時間2015.1.52015.1.9一、教學要求1. 鞏固和加深學生對C語言課程的基本知識的理解和掌握2. 掌握C語言編程和程序調試的基本技能3. 利用C語言進行基本的軟件設計4. 掌握書寫程序設計說明文檔的能力5. 提高運用C語言解決實際問題的能力二、設計資料及參數每個學生在教師提供的課程設計題目中任意選擇一題,獨立完成,題目選定后不可更換。某班學生基本信息管理,包括以下功能:v 從鍵盤輸入包括學號、姓名、性別、出生年月日、籍貫、所在院系、專業(yè)、獎懲信息等,并將其保存在磁盤文件里v 具有進行單項查詢或多項查詢的功能(即按照給定的關鍵字姓名等找出滿足條件的紀錄)v 具有插入、修改和刪除信息的功能v 具有輸出文件數據信息的功能三、設計要求及成果1. 分析課程設計題目的功能需求(可選用數組或鏈表實現,可多人(最多3人)協(xié)作完成一個題目)2. 寫出詳細設計說明(至少包括功能實現分析和模塊流程圖)3. 編寫程序代碼,調試程序使其能正確運行(代碼書寫要規(guī)范,標示符要見名知意,要有必要的注釋,每人至少500行代碼,不包括注釋和花括號)4. 設計完成的軟件要便于操作和使用5. 設計完成后提交課程設計報告(請嚴格按照模板進行排版)四、進度安排第一天 選擇課程設計題目,分析課題的要求第二天 編程第三天 編程及調試第四天 寫課程設計報告第五天 提交課程設計報告(打印稿及電子稿)五、評分標準1. 根據平時上機考勤、表現和進度,教師將每天點名和檢查2. 根據課程設計完成情況,必須有可運行的軟件。3. 根據課程設計報告的質量,如有雷同,則所有雷同的所有人均判為不及格。六、建議參考資料1C語言程序設計,譚浩強,清華大學出版社2C語言程序設計課程設計,劉振安,機械工業(yè)出版社目 錄目 錄III第一章 需求分析41.1 引言41.2 任務概述41.3 數據描述41.4功能需求41.5任務計劃5第二章 概要設計62.1 總體設計62.2 數據類型設計(或數據結構設計)82.3接口設計82.3 運行界面設計9第三章 詳細設計113.1 輸入模塊設計113.2 瀏覽模塊設計133.3 查找模塊設計153.4 刪除模塊設計22第四章 測試分析234.1 測試程序執(zhí)行情況及出現的問題和解決的方法24第五章 課程設計總結24附錄:程序代碼25參考文獻36致謝38第一章 需求分析1.1 引言當今時代是飛速發(fā)展的信息時代,在各行各業(yè)中離不開信息處理,這正是計算機被廣泛應用于信息管理系統(tǒng)的環(huán)境。計算機的最大好處在于利用它能夠進行信息管理。使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對于復雜的信息管理,計算機能夠充分發(fā)揮它的優(yōu)越性。1.2 任務概述某班學生基本信息管理,包括以下功能:v 從鍵盤輸入包括學號、姓名、性別、出生年月日、籍貫、所在院系、專業(yè)、獎懲信息等,并將其保存在磁盤文件里v 具有進行單項查詢或多項查詢的功能(即按照給定的關鍵字姓名等找出滿足條件的紀錄)v 具有插入、修改和刪除信息的功能v 具有輸出文件數據信息的功能1.3 數據描述struct student long id; 學號char name30; 姓名 int age; 年齡 char sex2; 性別char birthday9; 出生年月日char add80; 地址char faculty15; 院系char major25; 專業(yè);1.4功能需求 輸入功能:一次可以輸入學生的多種數據的輸入 顯示功能: 可以瀏覽多個學生的基本信息 刪除功能:對指定學生的指定信息進行刪除 修改功能:對指定學生的指定信息進行修改。 查詢功能:選擇某種方式并輸入該信息查詢符合條件的學生信息。 文件保存功能:可以將學生基本信息保存到磁盤 文件打開功能:可以打開保存在磁盤中的數據1.5任務計劃設計及構思第 18 周 星期一 星期二 星期三 調試及改錯 星期四 星期五測試運行 星期六 星期日第二章 概要設計2.1 總體設計 開始是否可行修改合實主菜單1. 錄入學生信息2. 瀏覽學生信息3. 查詢學生信息4. 退出系統(tǒng)是否運行 刪除 錄入 查詢 修改 瀏覽 退出程序設計組成框圖:主菜單學生信息錄入學生信息瀏覽信息查詢學分查詢姓名查詢信息編輯信息添加信息刪除信息編輯信息添加信息刪除2調用關系 writeinfo()fileopen()editname(int n)editage(int n)editsex(int n)pr()editbir(int n)edit(int n)viewinfo()main()editadd(int n)del(int n)editpr(int n)jsid()edit(int n)(同上)edittel(int n)editemail(int n)del(int n)pr2()editpr(int n)jsname()filesave()3參數說明 editname(int n)、editage(int n)、editsex(int n) 、editbir(int n) 、editadd(int n) 、edittel(int n)、editemail(int n)、last(int n)、edit(int n)、del(int n)、editpr(int n) 函數中的n都為檢索中確定的學生數組下標。2.2 數據類型設計(或數據結構設計)struct student long id; 學號char name30; 姓名 int age; 年齡 char sex2; 性別char birthday9; 出生年月日char add80; 地址char faculty15; 院系char major25; 專業(yè);2.3接口設計表2.1:函數列表函數名函數格式 /即函數首部函數功能 pr();void 輸出主界面 fileopen() void 文件打開filesavevoid文件保存pr()void輸出檢索菜單Jsid()void按姓名檢索Jsname()void按學號檢索Edit()void 修改Editpr()int 修改子菜單Editid()void修改學號Editname()void修改名字Editsex()void 修改性別Editbir()void修改出生年月日Editadd()void修改地址Editfacultyvoid修改院系Editmajorvoid修改專業(yè)Lastvoid顯示翻頁到尾的信息Delvoid刪除Writeinfovoid錄入信息viewinfovoid查看信息2.3 運行界面設計void main()/主函數int n = 1;char ch;fileopen();/文件打開while (n)pr();ch=getchar();switch(ch)/switch語句選擇功能case 1:writeinfo();break;case 2:viewinfo();break;case 3:pr2();break;case 4:n=0;break;filesave();void pr()/輸出主界面system(cls);printf(*學生信息管理系統(tǒng)*);printf(n-v 1.0.0 -);printf(n您想要:);printf(n 1.錄入學生信息);printf(n 2.瀏覽學生信息);printf(n 3.檢索學生信息);printf(n 4.退出信息管理);printf(n*n);第三章 詳細設計3.1 輸入模塊設計void writeinfo()int a,n=1,m;char ch;while (n)a=stunum;system(cls);printf(ID:);scanf(%d,&stua.id);printf(nName:);scanf(%s,&);printf(nAge:);scanf(%d,&stua.age);printf(nSex:);scanf(%s,&stua.sex);printf(nBirthday(E.g 20090101):);scanf(%s,&stua.birthday);printf(nfaculty:);scanf(%s,&stua.add);printf(nTel:);scanf(%s,&stua.faculty);printf(nmajor:);scanf(%s,&stua.major);m=1;while (m)/做一個循環(huán),直到m=0時跳出system(cls);printf(ID:);printf(nName:);printf(%s,);printf(nAge:);printf(%d,stua.age);printf(nSex:);printf(%s,&stua.sex);printf(nBirthday:);printf(%s,stua.birthday);printf(nAddress:);printf(%s,stua.add);printf(nfaculty:);printf(%s,stua.faculty);printf(nmajorl);printf(%s,stua.major);printf(n請選擇:1.確認并繼續(xù) 2.重新填寫 3.放棄并返回 4.確認并返回);ch=getchar();switch(ch)case 1:m=0;stunum+;break;case 2:stunum,m=0;break;case 3:m=0,n=0;break;/選擇此項時,m=0,循環(huán)終止case 4:m=0,n=0;a=stunum+;break;3.2 瀏覽模塊設計void viewinfo()int count=1,i,n=1,pagenum=1,page=stunum/5+1;/設定變量控制翻頁char ch;while (n)system(cls);printf(學號 姓名 年齡 性別 出生年月n);for(i=count-1;icount+4&istunum;i+)printf(%4d ,stui.id);printf(%12s ,);printf(%4d ,stui.age);printf(%4s ,stui.sex);printf(%8s n,stui.birthday);printf(nnn學號 院系 院系 地址n);for(i=count-1;icount+4&ipage) count=1,pagenum=1;else count=(pagenum-1)*5+1;break;case 0:n=0;break;3.3 查找模塊設計/*檢索界面*void pr2()/輸出檢索信息界面int a;char ch;while (a)/system(cls);printf(*學生信息管理系統(tǒng)*);printf(n-檢 索-);printf(n您想要:);printf(n 1.按學號檢索);printf(n 2.按姓名檢索);printf(n 3.返回主菜單);printf(nn-);printf(n*n);ch=getchar();switch(ch)case 1:jsid();break;case 2:jsname();break;case 3:a=0;break;void jsid()int n,i,j=0;/system(cls);printf(*學生信息管理系統(tǒng)*);printf(n-檢 索-);printf(n請輸入想要檢索的學號:);scanf(%ld,&n); for(i=0;istunum;i+)if(n=stui.id)printf(學號 姓名 年齡 性別 出生年月n);printf(%4d ,stui.id);printf(%12s ,);printf(%4d ,stui.age);printf(%4s ,stui.sex);printf(%8s n,stui.birthday);printf(nnn學號 院 系 專業(yè) 地址n);printf(%4d ,stui.id);printf(%15s ,stui.faculty);printf(%15s ,stui.major);printf(%sn, stui.add);j=editpr(i);if(i=stunum)last(n);printf(nError:無此學生。);printf(n*n);void jsname()int n,j,i=0;char m30;/system(cls);printf(*學生信息管理系統(tǒng)*);printf(n-檢 索-);printf(n請輸入想要檢索的姓名:);scanf(%s,m);for(n=0;nstunum;n+)if(strcmp(m,)=0)/system(cls);printf(學號 姓 名 年齡 性別 出生年月n);printf(%4d ,stun.id);printf(%8s ,);printf(%4d ,stun.age);printf(%4s ,stun.sex);printf(%8s n,stun.birthday);printf(nnn學號 院 系 專業(yè) 地址n);printf(%4d ,stun.id);printf(%15s ,stun.faculty);printf(%15s ,stun.major);printf(%sn, stun.add);i+;if(j=editpr(n)=0)break;if(i=0)printf(nError:無此學生。);if(j!=0)last(n);getchar();getchar();3.4修改模塊設計void edit(int n)char ch;int a=1,b;while (a)printf(*學生信息管理系統(tǒng)*);printf(n-修 改-);printf(n請輸入你想修改的內容:);printf(n0.學號 1.姓名 2.年齡 3.性別 4.出生年月 5.地址 6.電話 7.majorn);printf(nn-By dage-);printf(n*n);getchar();ch=getchar();switch(ch)case 0:editid(n);break;case 1:editname(n);break;case 2:editage(n);break;case 3:editsex(n);break;case 4:editbir(n);break;case 5:editadd(n);break;case 6:editfaculty(n);break;case 7:editmajor(n);break;b=1;while (b)printf(n確認嗎?(y/n);getchar();ch=getchar();switch(ch)case Y:case y:b=0;a=0;break;case N:case n:b=0;break;void editid(int n)printf(n新學號 );scanf (%d,&stun.id);void editname(int n)printf(n新姓名:);scanf(%s,&);void editage(int n)printf(n新年齡:);scanf(%d,&stun.age);void editsex(int n)printf(n新性別:);scanf(%s,&stun.sex);void editbir(int n)printf(n新出生年月);scanf(%s,&stun.birthday);void editadd(int n)printf(n新地址:);scanf(%s,&stun.add);void editfaculty(int n)printf(n院系:);scanf(%s,&stun.faculty);void editmajor(int n)printf(n專業(yè):);scanf(%s,&stun.major);3.4 刪除模塊設計/*刪除*void del(int n)int a;for(a=n;a調用pr2()函數(檢索界面)一閃而過。解決方法:添加getchar()語句使程序暫停。2無法有效的控制輸出函數循環(huán)終止。解決方法:添加全局變量“stunum”,使用該全局變量來記錄學生總數,從而控制輸出循環(huán)的次數。3查詢函數數據量過多時同時輸出,先輸出的內容無法查看,或需用戶自行查看。解決方法:添加getchar()語句使程序暫停,當用戶按Enter時繼續(xù)。4文件在打開和保存時有問題。 解決方法:調整文件的打開方式,從原來的單純的w+修改為添加一個if語句,當沒有文件時執(zhí)行w+的操作,否則執(zhí)行r+。避免了原存儲文件被覆蓋的問題。第五章 課程設計總結 總體結構我們采取模塊化方式進行程序設計,要求程序的功能設計、數據結構設計及整體結構設計合理。也可根據自己對題目的理解增加新的功能模塊。系統(tǒng)以菜單界面方式(至少采用文本菜單界面,如能采用圖形菜單界面更好)工作,運行界面友好,演示程序以用戶和計算機的對話方式進行實驗心得:1) 對C語言的編程實踐有所認識。2) 在遇到程序調試不通過時,會通過縮小范圍的分析來鎖定問題所在。3) 通過這次實驗,熟悉了從自然語言轉換成偽代碼再轉換為流程圖的過程。4) 在程序中設定合適的全局變量,可以簡化程序的編寫難度。5) 運用函數可以減少編寫時的代碼量,也使程序條理清晰。6) 通過本次C語言上機實驗,我對這個介于人類與非人類之間的計算機編程語言有了一定的體驗。隨著實驗的成功與報告的完成,有點微微的成就感使人難忘。伴隨著學習的深入,我發(fā)現高深的東西還有很多很多,等待著我自己去挖掘。對C語言的學習,我會加倍努力。附錄:程序代碼#include#include#includeint stunum=0;/*構建結構體*struct student long id;char name30;int age;char sex2;char birthday9;char add80;char faculty15;char major25;stu100;/*聲明函數*void pr();/輸出主界面void fileopen ();/文件打開void filesave();/文件保存void pr2();/輸出檢索菜單界面void jsid();void jsname();void editid(int n);void edit (int n);/編輯int editpr(int n);/編輯子菜單void editname(int n );void editage(int n);void editsex(int n);void editbir(int n);void editadd(int n);void editfaculty(int n);/facilty void editmajor(int n);/majorvoid last(int n);/顯示翻頁到尾的信息void del(int n);/刪除void writeinfo();/錄入void viewinfo();/學生信息查看/*void main()/主函數int n=1;char ch;fileopen();/文件打開while (n)pr();ch=getchar();switch(ch)/switch語句選擇功能case 1:writeinfo();break;case 2:viewinfo();break;case 3:pr2();break;case 5:n=0;break;filesave();void pr()/輸出主界面system(cls);printf(*學生信息管理系統(tǒng)*);printf(n-v 1.0.0 -);printf(n您想要:);printf(n 1.錄入學生信息);printf(n 2.瀏覽學生信息);printf(n 3.檢索學生信息);printf(n 5.退出信息管理);printf(n*n);/*文件操作*void fileopen()FILE *fp;int n;if(fp=fopen(data,r+)=NULL)fp=fopen(data,w+);for(n=0;n100;n+)fread(&stun,sizeof(struct student),1,fp);fread(&stunum,4,1,fp);fclose(fp);void filesave()int n;FILE *fp;fp=fopen(data,r+);for(n=0;n100;n+)fwrite(&stun,sizeof(struct student),1,fp);fwrite(&stunum,4,1,fp);fclose(fp);/*錄入函數*void writeinfo()int a,n=1,m;char ch;while (n)a=stunum;system(cls);printf(ID:);scanf(%d,&stua.id);printf(nName:);scanf(%s,&);printf(nAge:);scanf(%d,&stua.age);printf(nSex:);scanf(%s,&stua.sex);printf(nBirthday(E.g 20090101):);scanf(%s,&stua.birthday);printf(nAddress:);scanf(%s,&stua.add);printf(nTel:);scanf(%s,&stua.faculty);printf(nE-mail:);scanf(%s,&stua.major);m=1;while (m)/做一個循環(huán),直到m=0時跳出system(cls);printf(ID:);printf(nName:);printf(%s,);printf(nAge:);printf(%d,stua.age);printf(nSex:);printf(%s,&stua.sex);printf(nBirthday:);printf(%s,stua.birthday);printf(nAddress:);printf(%s,stua.add);printf(nTel:);printf(%s,stua.faculty);printf(nE-mail);printf(%s,stua.major);printf(n請選擇:1.確認并繼續(xù) 2.重新填寫 3.放棄并返回 4.確認并返回);ch=getchar();switch(ch)case 1:m=0;stunum+;break;case 2:stunum,m=0;break;case 3:m=0,n=0;break;/選擇此項時,m=0,循環(huán)終止case 4:m=0,n=0;a=stunum+;break;/*查看目錄*void viewinfo()int count=1,i,n=1,pagenum=1,page=stunum/5+1;/設定變量控制翻頁char ch;while (n)system(cls);printf(學號 姓名 年齡 性別 出生年月n);for(i=count-1;icount+4&istunum;i+)printf(%4d ,stui.id);printf(%12s ,);printf(%4d ,stui.age);printf(%4s ,stui.sex);printf(%8s n,stui.birthday);printf(nnn學號 院系 院系 地址n);for(i=count-1;icount+4&ipage) count=1,pagenum=1;else count=(pagenum-1)*5+1;break;case 0:n=0;break;/*檢索界面*void pr2()/輸出檢索信息界面void jsid();void jsname();int a;char ch;while (a)system(cls);printf(*學生信息管理系統(tǒng)*);printf(n-檢 索-);printf(n您想要:);printf(n 1.按學號檢索);printf(n 2.按姓名檢索);printf(n 3.返回主菜單);printf(nn-);printf(n*n);ch=getchar();switch(ch)case 1:jsid();break;case 2:jsname();break;case 3:a=0;break;void jsid()int n,i,j=0;system(cls);printf(*學生信息管理系統(tǒng)*);printf(n-檢 索-);printf(n請輸入想要檢索的學號:);scanf(%ld,&n); for(i=0;istunum;i+)if(n=stui.id)printf(學號 姓名 年齡 性別 出生年月n);printf(%4d ,stui.id);printf(%12s ,);printf(%4d ,stui.age);printf(%4s ,stui.sex);printf(%8s n,stui.birthday);printf(nnn學號 院 系 專業(yè) 地址n);printf(%4d ,stui.id);printf(%15s ,stui.faculty);printf(%15s ,stui.major);printf(%sn, stui.add);j=editpr(i);if(i=stunum)printf(nError:無此學生。);printf(n*n);elseif(j=0)goto end;elsesystem(cls);last(n);getchar();end:getchar();void jsname()int n,j,i=0;char m30;system(cls);printf(*學生信息管理系統(tǒng)*);printf(n-檢 索-);printf(n請輸入想要檢索的姓名:);scanf(%s,m);for(n=0;nstunum;n+)if(strcmp(m,)=0)system(cls);printf(學號 姓 名 年齡 性別 出生年月n);printf(%4d ,stun.id);printf(%8s ,);printf(%4d ,stun.age);printf(%4s ,stun.sex);printf(%8s n,stun.birthday);printf(nnn學號 院 系 專業(yè) 地址n);printf(%4d ,stun.id);printf(%
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海洋生物降解技術與服務考核試卷
- 關于成立風光制氫公司可行性研究報告(范文模板)
- 糖業(yè)產品市場定位策略考察報告考核試卷
- 證券市場金融衍生品市場建設考核試卷
- 自動售貨機行業(yè)可持續(xù)發(fā)展戰(zhàn)略考核試卷
- 軟件開發(fā)中的跨平臺開發(fā)框架考核試卷
- 房地產防腐施工安全措施
- 家庭與學校合作教育計劃
- 餐飲業(yè)技術服務內容及措施
- 小學三年級上冊暑假預習計劃
- 國家中小學智慧教育平臺應用指南
- 2024北京豐臺區(qū)三年級(下)期末數學試題及答案
- 2024-2025學年人教版七年級(下)期中數學試卷(考試范圍:第7~9章) (含解析)
- 人工智能安全監(jiān)控系統(tǒng)開發(fā)協(xié)議
- 油田夏季十防培訓課件
- 工傷賠償私了協(xié)議書范本
- 學生心理健康一生一策檔案表
- 2025年佛山市三水海江建設投資有限公司招聘筆試參考題庫含答案解析
- 急性心梗診療(2025 )
- 國家義務教育質量監(jiān)測八年級美術樣卷
- 2024年江蘇宿遷中考滿分作文《夢想照進現實:我的未來職業(yè)暢想》
評論
0/150
提交評論