




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C+課程設(shè)計(jì)目 錄一、設(shè)計(jì)題目與設(shè)計(jì)目的意義3二、系統(tǒng)分析3三、系統(tǒng)設(shè)計(jì)4四、調(diào)試、排錯(cuò)、測(cè)試、試運(yùn)行過(guò)程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é)生信息的添加、修改、刪除和查詢(xún);(2)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):使用結(jié)構(gòu)體類(lèi)型存儲(chǔ)學(xué)生信息數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)于文件內(nèi)以方便學(xué)生信息管理。(3)系統(tǒng)算法設(shè)計(jì)并編程實(shí)現(xiàn)學(xué)生信息的添加、修改、刪除和查詢(xún)功能。學(xué)生信息管理系統(tǒng)設(shè)計(jì)的目的意義:鞏固和加深對(duì)C+課程的基本知識(shí)的理解和掌握。能夠通過(guò)文件對(duì)數(shù)據(jù)進(jìn)行操作,包括對(duì)文件的打開(kāi)、關(guān)閉、讀取、寫(xiě)入及重寫(xiě)等操作。學(xué)會(huì)函
2、數(shù)的調(diào)用,能夠?qū)⒁粋€(gè)大的程序分解為多個(gè)函數(shù),實(shí)現(xiàn)模塊化程序設(shè)計(jì)。學(xué)會(huì)利用C+語(yǔ)言進(jìn)行簡(jiǎn)單程序設(shè)計(jì)的基本思路和方法。掌握一個(gè)程序編譯、連接、調(diào)試的基本技能,提高運(yùn)用高級(jí)語(yǔ)言解決實(shí)際問(wèn)題的能力。二、系統(tǒng)分析選擇Main函數(shù)退出修改查詢(xún)刪除插入排序顯示輸入菜單系統(tǒng)功能模塊劃分:三、系統(tǒng)設(shè)計(jì):(1)、主函數(shù):調(diào)用菜單函數(shù)。(2)、菜單函數(shù):通過(guò)switch語(yǔ)句來(lái)實(shí)現(xiàn)選擇要實(shí)現(xiàn)的功能函數(shù)。(3)、輸入函數(shù): 通過(guò)打開(kāi)文件、輸入學(xué)生信息、關(guān)閉文件、返回菜單來(lái)實(shí)現(xiàn)學(xué)生信息的輸入。(4)、顯示函數(shù):以只讀方式打開(kāi)文件后讀取文件內(nèi)容來(lái)顯示到計(jì)算機(jī)屏幕上最后再關(guān)閉文件返回菜單。(5)、排序函數(shù):通過(guò)起泡法來(lái)對(duì)所輸
3、入的學(xué)生按成績(jī)由高到低的順序進(jìn)行排序。(6)、插入函數(shù):通過(guò)將學(xué)生信息寫(xiě)入文件的方式來(lái)實(shí)現(xiàn)學(xué)生信息的插入。(7)、刪除函數(shù): 通過(guò)兩個(gè)指針變量同時(shí)指向一個(gè)文件來(lái)對(duì)文件進(jìn)行再次賦值來(lái)實(shí)現(xiàn)刪除功能。(8)、查詢(xún)函數(shù):通過(guò)學(xué)生的姓名與文件中學(xué)生姓名的比較找到該學(xué)生后在將該學(xué)生的所有信息顯示出來(lái)(9)、修改函數(shù):通過(guò)兩個(gè)指針變量同時(shí)指向一個(gè)文件先找到要修改學(xué)生,將其信息輸入后在重新寫(xiě)入文件。(10)、選擇函數(shù):選擇所要進(jìn)行的操作。(11)、退出:退出系統(tǒng)。 四、調(diào)試、排錯(cuò)、測(cè)試、試運(yùn)行過(guò)程輸入學(xué)生信息如圖:排序如圖:插入學(xué)生信息如圖:查詢(xún)學(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é)生成績(jī)管理系統(tǒng)*n"); printf("tt1.輸入學(xué)生成績(jī)n"); printf("tt2.顯示學(xué)生成績(jī)n&qu
5、ot;); printf("tt3.學(xué)生成績(jī)排序n"); printf("tt4.插入學(xué)生記錄n"); printf("tt5.刪除學(xué)生記錄n"); printf("tt6.查詢(xún)學(xué)生成績(jī)n"); printf("tt7.修改學(xué)生成績(jī)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í)請(qǐng)?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("請(qǐng)輸入要?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() /*定義查詢(xún)函數(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("輸入要查詢(xún)學(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("請(qǐng)輸入要修改學(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("再見(jiàn)!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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電商選品經(jīng)理崗位面試問(wèn)題及答案
- 智能網(wǎng)聯(lián)汽車(chē)測(cè)試工程師崗位面試問(wèn)題及答案
- 直播電商選品總監(jiān)崗位面試問(wèn)題及答案
- 2025屆廣東省重點(diǎn)名校高一下化學(xué)期末考試試題含解析
- 2025屆山西省榆社中學(xué)高一化學(xué)第二學(xué)期期末復(fù)習(xí)檢測(cè)模擬試題含解析
- 2025屆福建省福州教育學(xué)院附屬中學(xué)高一化學(xué)第二學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 山東省普通高中2025屆化學(xué)高一下期末經(jīng)典模擬試題含解析
- 2025屆廣東省師大附中化學(xué)高一下期末統(tǒng)考試題含解析
- 農(nóng)業(yè)植保越冬管理辦法
- 合肥基金投資管理辦法
- 股東出資情況表模板
- 甘肅省天水市甘谷縣第一中學(xué)2025屆物理高一下期末質(zhì)量檢測(cè)試題含解析
- GB/T 4074.5-2024繞組線試驗(yàn)方法第5部分:電性能
- 熱水袋燙傷RCA分析2022
- 業(yè)主提前裝修免責(zé)協(xié)議
- 2024年上海市計(jì)算機(jī)一級(jí)考試復(fù)習(xí)題庫(kù)(含答案)
- 新生兒吸痰護(hù)理課件
- 礦井通風(fēng)工技師(高級(jí)技師)理論考試題庫(kù)
- 《急救知識(shí)普及》課件
- 《應(yīng)急救援知識(shí)》課件
- 智慧物業(yè)管理方案
評(píng)論
0/150
提交評(píng)論