




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C+課程設(shè)計目 錄一、設(shè)計題目與設(shè)計目的意義3二、系統(tǒng)分析3三、系統(tǒng)設(shè)計4四、調(diào)試、排錯、測試、試運行過程5五、 源程序主要代碼7六、 總結(jié)及自我評價13七、 參考文獻(xiàn)14一、設(shè)計題目與設(shè)計目的意義學(xué)生信息管理系統(tǒng)設(shè)計:內(nèi)容:(1)系統(tǒng)功能需求:包括學(xué)生信息的添加、修改、刪除和查詢;(2)數(shù)據(jù)結(jié)構(gòu)設(shè)計:使用結(jié)構(gòu)體類型存儲學(xué)生信息數(shù)據(jù),并將數(shù)據(jù)存儲于文件內(nèi)以方便學(xué)生信息管理。(3)系統(tǒng)算法設(shè)計并編程實現(xiàn)學(xué)生信息的添加、修改、刪除和查詢功能。學(xué)生信息管理系統(tǒng)設(shè)計的目的意義:鞏固和加深對C+課程的基本知識的理解和掌握。能夠通過文件對數(shù)據(jù)進(jìn)行操作,包括對文件的打開、關(guān)閉、讀取、寫入及重寫等操作。學(xué)會函
2、數(shù)的調(diào)用,能夠?qū)⒁粋€大的程序分解為多個函數(shù),實現(xiàn)模塊化程序設(shè)計。學(xué)會利用C+語言進(jìn)行簡單程序設(shè)計的基本思路和方法。掌握一個程序編譯、連接、調(diào)試的基本技能,提高運用高級語言解決實際問題的能力。二、系統(tǒng)分析選擇Main函數(shù)退出修改查詢刪除插入排序顯示輸入菜單系統(tǒng)功能模塊劃分:三、系統(tǒng)設(shè)計:(1)、主函數(shù):調(diào)用菜單函數(shù)。(2)、菜單函數(shù):通過switch語句來實現(xiàn)選擇要實現(xiàn)的功能函數(shù)。(3)、輸入函數(shù): 通過打開文件、輸入學(xué)生信息、關(guān)閉文件、返回菜單來實現(xiàn)學(xué)生信息的輸入。(4)、顯示函數(shù):以只讀方式打開文件后讀取文件內(nèi)容來顯示到計算機(jī)屏幕上最后再關(guān)閉文件返回菜單。(5)、排序函數(shù):通過起泡法來對所輸
3、入的學(xué)生按成績由高到低的順序進(jìn)行排序。(6)、插入函數(shù):通過將學(xué)生信息寫入文件的方式來實現(xiàn)學(xué)生信息的插入。(7)、刪除函數(shù): 通過兩個指針變量同時指向一個文件來對文件進(jìn)行再次賦值來實現(xiàn)刪除功能。(8)、查詢函數(shù):通過學(xué)生的姓名與文件中學(xué)生姓名的比較找到該學(xué)生后在將該學(xué)生的所有信息顯示出來(9)、修改函數(shù):通過兩個指針變量同時指向一個文件先找到要修改學(xué)生,將其信息輸入后在重新寫入文件。(10)、選擇函數(shù):選擇所要進(jìn)行的操作。(11)、退出:退出系統(tǒng)。 四、調(diào)試、排錯、測試、試運行過程輸入學(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é)號 姓名 分?jǐn)?shù) (需要終止輸入時請在該行結(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é)號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é)號:"); 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("請輸入要刪除學(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é)號、姓名、分?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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 16383-1:2025 EN Geotechnical investigation and testing - Laboratory testing of rock - Part 1: Determination of water content
- 先進(jìn)技術(shù)參觀保密協(xié)議書范本
- 海外市場推廣與品牌合作合同
- 國際人才引進(jìn)擔(dān)保與培訓(xùn)協(xié)議
- 稅務(wù)代理補充協(xié)議
- 拆遷補償款支付居間服務(wù)協(xié)議
- 車輛維修企業(yè)品牌授權(quán)與加盟合同
- 出口貨物貿(mào)易代理傭金合同范本
- 餐飲企業(yè)旗下特色餐廳品牌及店面打包轉(zhuǎn)讓合同
- 股東退股與公司財務(wù)管理制度協(xié)議
- 星載終端抗輻照設(shè)計-洞察及研究
- 2025年湖南省中考生物試卷真題(含標(biāo)準(zhǔn)答案)
- 2025年河北省物流產(chǎn)業(yè)集團(tuán)招聘筆試參考題庫含答案解析
- 2025年煤礦從業(yè)人員安全培訓(xùn)考試題庫
- 機(jī)械制圖-形成性任務(wù)2-國開(ZJ)-參考資料
- 吉林省長春市東北師范大附屬中學(xué)2024屆中考生物押題試卷含解析
- 通風(fēng)與空調(diào)工程施工工藝流程圖
- 協(xié)議回款承諾書
- 賀州學(xué)院專業(yè)實習(xí)鑒定表
- 商業(yè)發(fā)票模板(INVOICE)
- 青島金鼎順餐飲服務(wù)有限公司滅火和應(yīng)急疏散預(yù)案
評論
0/150
提交評論