




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C+課程設(shè)計(jì)目 錄一、設(shè)計(jì)題目與設(shè)計(jì)目的意義3二、系統(tǒng)分析3三、系統(tǒng)設(shè)計(jì)4四、調(diào)試、排錯(cuò)、測試、試運(yùn)行過程5五、 源程序主要代碼7六、 總結(jié)及自我評(píng)價(jià)13七、 參考文獻(xiàn)14一、設(shè)計(jì)題目與設(shè)計(jì)目的意義學(xué)生信息管理系統(tǒng)設(shè)計(jì):內(nèi)容:(1)系統(tǒng)功能需求:包括學(xué)生信息的添加、修改、刪除和查詢;(2)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):使用結(jié)構(gòu)體類型存儲(chǔ)學(xué)生信息數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)于文件內(nèi)以方便學(xué)生信息管理。(3)系統(tǒng)算法設(shè)計(jì)并編程實(shí)現(xiàn)學(xué)生信息的添加、修改、刪除和查詢功能。學(xué)生信息管理系統(tǒng)設(shè)計(jì)的目的意義:鞏固和加深對(duì)C+課程的基本知識(shí)的理解和掌握。能夠通過文件對(duì)數(shù)據(jù)進(jìn)行操作,包括對(duì)文件的打開、關(guān)閉、讀取、寫入及重寫等操作。學(xué)會(huì)函
2、數(shù)的調(diào)用,能夠?qū)⒁粋€(gè)大的程序分解為多個(gè)函數(shù),實(shí)現(xiàn)模塊化程序設(shè)計(jì)。學(xué)會(huì)利用C+語言進(jìn)行簡單程序設(shè)計(jì)的基本思路和方法。掌握一個(gè)程序編譯、連接、調(diào)試的基本技能,提高運(yùn)用高級(jí)語言解決實(shí)際問題的能力。二、系統(tǒng)分析選擇Main函數(shù)退出修改查詢刪除插入排序顯示輸入菜單系統(tǒng)功能模塊劃分:三、系統(tǒng)設(shè)計(jì):(1)、主函數(shù):調(diào)用菜單函數(shù)。(2)、菜單函數(shù):通過switch語句來實(shí)現(xiàn)選擇要實(shí)現(xiàn)的功能函數(shù)。(3)、輸入函數(shù): 通過打開文件、輸入學(xué)生信息、關(guān)閉文件、返回菜單來實(shí)現(xiàn)學(xué)生信息的輸入。(4)、顯示函數(shù):以只讀方式打開文件后讀取文件內(nèi)容來顯示到計(jì)算機(jī)屏幕上最后再關(guān)閉文件返回菜單。(5)、排序函數(shù):通過起泡法來對(duì)所輸
3、入的學(xué)生按成績由高到低的順序進(jìn)行排序。(6)、插入函數(shù):通過將學(xué)生信息寫入文件的方式來實(shí)現(xiàn)學(xué)生信息的插入。(7)、刪除函數(shù): 通過兩個(gè)指針變量同時(shí)指向一個(gè)文件來對(duì)文件進(jìn)行再次賦值來實(shí)現(xiàn)刪除功能。(8)、查詢函數(shù):通過學(xué)生的姓名與文件中學(xué)生姓名的比較找到該學(xué)生后在將該學(xué)生的所有信息顯示出來(9)、修改函數(shù):通過兩個(gè)指針變量同時(shí)指向一個(gè)文件先找到要修改學(xué)生,將其信息輸入后在重新寫入文件。(10)、選擇函數(shù):選擇所要進(jìn)行的操作。(11)、退出:退出系統(tǒng)。 四、調(diào)試、排錯(cuò)、測試、試運(yùn)行過程輸入學(xué)生信息如圖:排序如圖:插入學(xué)生信息如圖:查詢學(xué)生信息五、 源程序主要代碼#include <stdio
4、.h>#include <stdlib.h>#include <string.h>int n=5; /*全局變量*/struct student /*定義結(jié)構(gòu)體數(shù)組*/ char num10; char name10; int score;stu3; int menu_select() /*菜單選擇函數(shù)*/ char a; do system("cls"); printf("t*學(xué)生成績管理系統(tǒng)*n"); printf("tt1.輸入學(xué)生成績n"); printf("tt2.顯示學(xué)生成績n&qu
5、ot;); printf("tt3.學(xué)生成績排序n"); printf("tt4.插入學(xué)生記錄n"); printf("tt5.刪除學(xué)生記錄n"); printf("tt6.查詢學(xué)生成績n"); printf("tt7.修改學(xué)生成績n"); printf("tt0.退出n"); printf("t*n"); printf("n"); printf("給出你的選擇(0-7):"); a=getchar(); while
6、(a<'0'|a>'7'); return(a);void input() /*定義輸入函數(shù)*/ int i; char c; void menu(); FILE *fp; if(fp=fopen("student message","w")=NULL) printf("cannot open the filen"); exit(0); printf("學(xué)號(hào) 姓名 分?jǐn)?shù) (需要終止輸入時(shí)請?jiān)谠撔薪Y(jié)尾輸入n)n"); for(i=0;i+) scanf("%s %
7、s %d",stui.num,,&stui.score); fwrite(&stui,sizeof(struct student),1,fp); c=getchar(); if(c='n') break; n=i+1; fclose(fp); system("pause"); menu();void display() /*定義顯示函數(shù)*/ int i; void menu(); FILE *fp; if(fp=fopen("student message","r")=NUL
8、L) printf("cannot open the filen"); exit(0); printf("t學(xué)號(hào)t姓名t分?jǐn)?shù)n"); for(i=0;i<n;i+) fread(&stui,sizeof(struct student),1,fp); printf("t%st%st%dn",stui.num,,stui.score); fclose(fp); system("pause"); menu();void sort() /*定義排序函數(shù)*/ int i,j; struct s
9、tudent temp; void menu();FILE *fp;if(fp=fopen("student message","r")=NULL) printf("cannot open the file:n"); exit(0); for(i=0;i<n;i+) fread(&stui,sizeof(struct student),1,fp); for(j=0;j<n-1;j+) for(i=0;i<n-1-j;i+) if(stui.score<stui+1.score)temp=stui; st
10、ui=stui+1; stui+1=temp;for(i=0;i<n;i+)printf("t%st%st%dn",stui.num,,stui.score);fclose(fp); system("pause"); menu();void insert() /*定義插入函數(shù)*/ int i; struct student st; void menu(); FILE *fp; if(fp=fopen("student message","a")=NULL) printf("cann
11、ot open the file:n"); exit(0); for(i=0;i<n;i+) fread(&stui,sizeof(struct student),1,fp); printf("輸入要插入學(xué)生的信息:n"); printf("學(xué)號(hào):"); scanf("%s",st.num); printf("姓名:"); scanf("%s",); printf("分?jǐn)?shù):"); scanf("%d",&st.
12、score); n+; fwrite(&st,sizeof(struct student),1,fp); fclose(fp); system("pause"); menu();void delet() /*定義刪除函數(shù)*/ int i,t; char name10; void menu(); FILE *fp,*fp1; if (fp=fopen("student message","r")=NULL) printf("can not open file!n"); exit(0); for(i=0;i&l
13、t;n;i+) fread(&stui,sizeof(struct student),1,fp); if (fp1=fopen("student message","w")=NULL) printf("can not open file!n"); exit(0); printf("請輸入要?jiǎng)h除學(xué)生的姓名:"); scanf("%s",name); for(i=0;i<n;i+) if(strcmp(,name)=0) t=i; for(i=0;i<t;i+)
14、 fwrite(&stui,sizeof(struct student),1,fp1); for(i=t+1;i<n;i+) fwrite(&stui,sizeof(struct student),1,fp1); printf("該學(xué)生信息已刪除!nn"); fclose(fp); fclose(fp1); system("pause"); menu();void query() /*定義查詢函數(shù)*/ int i; char a10; void menu(); FILE *fp; if(fp=fopen("student
15、message","r")=NULL) printf("cannot open filen"); exit(0); for(i=0;i<n;i+) fread(&stui,sizeof(struct student),1,fp); printf("輸入要查詢學(xué)生的姓名:"); scanf("%s",a); for(i=0;i<n;i+) if(strcmp(,a)=0) printf("t%st%st%dn",stui.num,,
16、stui.score); fclose(fp); system("pause"); menu();void revise() /*定義修改函數(shù)*/ int i,t; char name10; void menu(); FILE *fp,*fp1; if(fp=fopen("student message","r")=NULL) printf("cannot open filen"); exit(0); for(i=0;i<n;i+) fread(&stui,sizeof(struct student)
17、,1,fp); if (fp1=fopen("student message","w")=NULL) printf("can not open file!n"); exit(0); printf("請輸入要修改學(xué)生的姓名:"); scanf("%s",name); for(i=0;i<n;i+) if(strcmp(,name)=0) t=i; printf("依次輸入要修改學(xué)生的學(xué)號(hào)、姓名、分?jǐn)?shù):"); scanf("%s %s %d&qu
18、ot;,stut.num,,&stut.score); for(i=0;i<n;i+) fwrite(&stui,sizeof(struct student),1,fp1); printf("該學(xué)生信息已修改成功!"); fclose(fp); fclose(fp1); system("pause"); menu();void quite() /*退出*/ printf("再見!nn");void menu() /*定義菜單函數(shù)*/ switch(menu_select() case '1': input();break;case '2': display();break;case '3': sort();break;case '4': insert();break; case '5': delet();break; case '6': query();break;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 組織結(jié)構(gòu)設(shè)計(jì)與崗位分類
- 工程管理背景知識(shí)試題及答案
- 工程經(jīng)濟(jì)理論巧用試題及答案
- 經(jīng)濟(jì)師考試常用公式試題及答案
- 如何評(píng)估項(xiàng)目投資風(fēng)險(xiǎn)試題及答案
- 冒險(xiǎn)島家族辦公室設(shè)計(jì)
- 銀行業(yè)務(wù)風(fēng)險(xiǎn)防控手冊
- 酒店客房部服務(wù)質(zhì)量手冊
- 網(wǎng)絡(luò)營銷推廣與廣告投放協(xié)議
- 行政管理經(jīng)濟(jì)法概論考試記憶法與試題及答案
- 基于Java的在線考試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 潛污泵維護(hù)保養(yǎng)規(guī)程培訓(xùn)
- 2024年遼寧農(nóng)電工考試題庫中級(jí)電工證考試內(nèi)容(全國通用)
- 醫(yī)院學(xué)習(xí)民法典課件
- 加快建設(shè)科技強(qiáng)國
- 邊通車邊施工路段安全專項(xiàng)方案
- 復(fù)合材料的成型工藝課件
- 醫(yī)院放射診療防護(hù)知識(shí)普及培訓(xùn)課件
- 小學(xué)科學(xué)教育中的創(chuàng)新課程教學(xué)模式研究
- 2024年江蘇武進(jìn)經(jīng)濟(jì)發(fā)展集團(tuán)招聘筆試參考題庫含答案解析
- 星巴克基本管理制度
評(píng)論
0/150
提交評(píng)論