版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、學生成績信息管理系統(tǒng) C語言程序設(shè)計項目設(shè)計報告項目名稱: 學生成績信息管理系統(tǒng) 2016年 1月 13日目 錄1 項目分析11.1 問題描述11.2 功能需求分析12 系統(tǒng)設(shè)計22.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計22.3部分功能設(shè)計23 系統(tǒng)實現(xiàn)源程序43.1 主函數(shù)設(shè)計43.2 添加學生信息53.3 姓名學號查詢103.4 成績查詢123.5 刪除學生成績信息133.6 修改學生成績信息144 功能測試164.1 菜單測試164.2 系統(tǒng)功能測試165 系統(tǒng)設(shè)計遇到的問題及解決方法216 項目設(shè)計總結(jié)2222學生成績信息管理系統(tǒng) 1 項目分析1.1 問題描述信息儲存與查詢是計算機處理數(shù)據(jù)的優(yōu)勢之一,目前
2、,學生信息的管理系統(tǒng)已經(jīng)完全走進了校園,其中成績信息的儲存是主要部分,本課題使用C語言實現(xiàn)學生成績的儲存,查詢,修改,以及刪除等操作。程序中涉及到數(shù)據(jù)塊和文件指針的操作,包括結(jié)構(gòu)體數(shù)據(jù)定義,使用及文件的讀寫,定位,修改等。 1.2 功能需求分析學生成績信息管理系統(tǒng)的主要功能如下:添加學生信息:錄入學生的基本信息,如姓名,學號,成績。顯示所有學生成績信息:直接顯示已經(jīng)全部錄入學生的成績信息。學號或姓名查詢:可以根據(jù)學生的姓名和學號直接查詢該名學生的成績。成績查詢:可以根據(jù)一個特定的分數(shù)來查詢學生的信息。刪除學生成績信息:可以直接根據(jù)學號確定是否刪除對應學生的成績信息。修改學
3、生成績信息:直接根據(jù)學生學號來修改學生的姓名,學號,成績。學生成績信息管理系統(tǒng)添加學生信息顯示所有學生成績信息學號或姓名查詢成績查詢刪除學生成績信息修改學生成績信息重新添加信息繼續(xù)添加信息圖1-1 系統(tǒng)功能模塊圖2 系統(tǒng)設(shè)計2.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計struct stu/定義結(jié)構(gòu)體類型char name10;/姓名char num10;/學號char score10;/成績if(fp1=fopen("Ca1.txt","w")=NULL)/文件名,使用文件方式printf("信息寫入失敗");exit(0);char wjm20;/文件名2
4、.2 函數(shù)設(shè)計表1 函數(shù)列表序號函 數(shù) 原 型功 能 說 明1void addnew()新增學生姓名,學號,成績信息2void addold()在原有基礎(chǔ)上繼續(xù)增加其他同學的信息3void printall()顯示所有已經(jīng)存入學生的成績等信息4void search()根據(jù)姓名或者學號查詢學生分數(shù)5void jgsearch()根據(jù)成績查詢對應的同學6void del()刪除學生信息7void modify()修改學生信息8system(“cls”);清屏2.3部分功能設(shè)計1.刪除學生的信息,輸入學生的學號進行刪除操作,如果沒有此人,系統(tǒng)將會提示無此人,如果找到,系統(tǒng)將會確認你是否需要刪除,流
5、程圖如1-2所示。輸出刪除成功結(jié)束開始輸入學號在文件里查找輸出文件無此人確認刪除輸入1輸入0是否找到Y(jié)esNoYes圖1-2 刪除學生信息流程圖2.輸入學號進行查詢對應同學的成績,流程圖如圖1-3所示。YesNo開始輸入學號或姓名在文件中查找是否找到輸出姓名,學號,成績結(jié)束輸出文件無此人記錄圖1-3 查詢功能流程圖3 系統(tǒng)實現(xiàn)源程序3.1 主函數(shù)設(shè)計void main()int x;system("cls");/*清屏*/doprintf("n 歡迎使用學生成績信息管理系統(tǒng)nnnnn"); printf(" 1 -添加學生信息nn")
6、; printf(" 2 -顯示所有學生成績信息nn"); printf(" 3 -學號或姓名查詢nn");printf(" 4 -成績查詢nn"); printf(" 5 -刪除學生成績信息nn");printf(" 6 -修改學生成績信息nn");printf(" 0 -退出");printf(" 請您選擇:");choice:scanf("%d",&x);switch(x)case 1:add();break;case 2
7、:printall();break;case 3:search();break;case 4:jgsearch();break;case 5:del();break;case 6:modify();break;case 0:break;default:printf("n 錯誤的選擇,請重新選擇:");goto choice; while(x!=0);system("cls");printf("nn 歡迎再次使用學生成績管理系統(tǒng)n"); 3.2 添加學生信息/*學生成績信息管理系統(tǒng)*/#include <stdio.h>#i
8、nclude <stdlib.h>#include <string.h>int c,j,t;struct stu/*定義結(jié)構(gòu)體類型*/ char name10;char num10;char score10;student100,newstudent100;/*添加學生個人信息*/ void addnew()int a,b,k;FILE *fp,*fp1,*fp2; /*FILE類型指針變量的定義形式*/ for(a=0;a<200;a+)system("cls");printf(" 歡迎使用學生成績管理系統(tǒng)nnn");pr
9、intf(" 錄入學生信息nn");printf("輸入學生姓名:");scanf("%s",&);printf("輸入學生學號:");scanf("%s",&studenta.num);printf("輸入學生成績:");scanf("%s",&studenta.score);printf("輸入1繼續(xù),0結(jié)束n");/*判斷輸入是否結(jié)束*/ scanf("%d",
10、&b);if(b=0)c=a;system("cls");break;if(fp1=fopen("Ca1.txt","w")=NULL)/*文件名,使用文件方式*/ printf("信息寫入失敗");exit(0);if(fp2=fopen("Ca2.txt","w")=NULL)printf("信息寫入失敗");exit(0);if(fp=fopen("Ca3.txt","w")=NULL)printf(&
11、quot;信息寫入失敗");exit(0);j=sizeof(struct stu);for(a=0;a<=c;a+)if(fwrite(&studenta,j,1,fp)!=1)printf("存入失敗!");for(a=0;a<=c;a+)if(strcmp(studenta.score,"80")=0)fwrite(&studenta,j,1,fp1);elsefwrite(&studenta,j,1,fp2);printf("添加成功!nn");printf("請輸入
12、39;0'返回n");scanf("%d",&k);fclose(fp1);fclose(fp2);fclose(fp);if(k=0)system("cls");/*繼續(xù)添加成員*/void addold()int a,b,k,p,q;char wjm20;FILE *fp;j=sizeof(struct stu);system("cls");printf(" 歡迎使用學生成績信息管理系統(tǒng)nnn");printf(" 錄入學生信息nn");printf("n
13、n存儲文件名有 Ca1.txt Ca2.txt Ca3.txtnn");printf("請輸入想繼續(xù)添加的文件名:");scanf("%s",wjm);for(a=0;a<200;a+)printf("輸入學生姓名:");scanf("%s",&);printf("輸入學生學號:");scanf("%s",&newstudenta.num);printf("輸入學生成績:");scanf(&q
14、uot;%s",&newstudenta.score);printf("輸入1繼續(xù),0結(jié)束n");/判斷輸入是否結(jié)束scanf("%d",&b);if(b=0)c=a;system("cls");break;if(fp=fopen(wjm,"r")=NULL)printf("文件打開失??!");exit(0);a=0;while(!feof(fp)fread(&studenta,j,1,fp);a+;fclose(fp);t=a-1;for(q=0,p=t;q&
15、lt;=c,p<=t+c;q+,p+)strcpy(,);strcpy(studentp.num,newstudentq.num);strcpy(studentp.score,newstudentq.score);if(fp=fopen(wjm,"w")=NULL)printf("文件打開失??!");exit(0);for(a=0;a<=t+c;a+)if(fwrite(&studenta,j,1,fp)!=1)printf("存入失敗!");printf(
16、"添加成功!nn");printf("請輸入'0'返回n");scanf("%d",&k);fclose(fp);if(k=0)system("cls");void add()int x;system("cls");printf(" 歡迎使用學生成績信息管理系統(tǒng)nnn");printf(" 添加學生信息nn");printf(" 1 重新添加信息n");printf(" 2 繼續(xù)添加信息n")
17、;printf(" 0 返回nnn");printf(" 請選擇:");scanf("%d",&x);choice:switch(x)case 1:addnew();break;case 2:addold();break;case 0:break;default:printf("n 錯誤的選擇,請重新選擇:");goto choice; system("cls");/*顯示所有學生的成績*/ void printall()int a,b;FILE *fp,*fp1,*fp2;system
18、("cls");printf(" 歡迎使用學生成績信息管理系統(tǒng)nnn");printf(" 全部已錄入學生信息nn");printf("%-10s%-20s%-50sn","姓名","學號","成績");j=sizeof(struct stu);if(fp=fopen("Ca1.txt","r")=NULL)printf("n打開失敗");exit(0);if(fp1=fopen("Ca
19、2.txt","r")=NULL)printf("信息寫入失敗");exit(0);if(fp2=fopen("Ca3.txt","r")=NULL)printf("信息寫入失敗");exit(0);a=0;while(!feof(fp)if(fread(&studenta,j,1,fp)=1)printf("%-10s%-20s%-50sn",,studenta.num,studenta.score);a+;a=0;while(!
20、feof(fp1)if(fread(&studenta,j,1,fp1)=1)printf("%-10s%-20s%-50sn",,studenta.num,studenta.score);a+;a=0;while(!feof(fp2)if(fread(&studenta,j,1,fp2)=1)printf("%-10s%-20s%-50sn",,studenta.num,studenta.score);a+;fclose(fp);fclose(fp1);fclose(fp2);prin
21、tf("返回上級請輸入0!n:");scanf("%d",&b);if(b=0)system("cls");3.3 姓名學號查詢void search()int k,b,a;char cx20;FILE *fp;system("cls");j=sizeof(struct stu);doprintf(" 歡迎使用學生成績信息管理系統(tǒng)nnn");printf(" 查找已錄入學生成績信息nn");k=0;if(fp=fopen("Ca1.txt",&qu
22、ot;r")=NULL)printf("n打開失敗!");exit(0);printf("請輸入學號或姓名:n");scanf("%s",cx);if(cx0<'0')|(cx0>'9')a=0;while(!feof(fp)fread(&studenta,j,1,fp);if(strcmp(,cx)=0)printf("nn已查到,該記錄為:nn");printf("%-10s%-20s%-50sn",&q
23、uot;姓名","學號","成績");printf("%-10s%-20s%-50sn",,studenta.num,studenta.score);k=1;a+;if('0'<=cx0<='9')a=0;while(!feof(fp)fread(&studenta,j,1,fp);if(strcmp(studenta.num,cx)=0)printf("nn已查到,該記錄為:nn");printf("%-10s%-2
24、0s%-50sn","姓名","學號","成績");printf("%-10s%-20s%-50sn",,studenta.num,studenta.score);k=1;a+;if(!k)printf("n文件中無此人的記錄。");fclose(fp);printf("n輸入“1”繼續(xù)查找,“0”結(jié)束n");scanf("%d",&b);system("cls");while(b!=0);s
25、ystem("cls");3.4 成績查詢void jgsearch()int b,a;char cx20;FILE *fp;system("cls");j=sizeof(struct stu);doprintf(" 歡迎使用學生成績信息管理系統(tǒng)nnn");printf(" 查找學生成績信息nn");if(fp=fopen("Ca1.txt","r")=NULL)printf("n打開失敗!");exit(0);printf("請輸入學生成績:n
26、");scanf("%s",cx);a=0;while(!feof(fp)fread(&studenta,j,1,fp);if(strcmp(cx,studenta.score)=0)printf("%-10s%-20s%-50sn","姓名","學號","成績");printf("%-10s%-20s%-50sn",,studenta.num,studenta.score);a+;fclose(fp);printf("n
27、輸入“1”繼續(xù)查找,“0”結(jié)束n");scanf("%d",&b);system("cls");while(b!=0);system("cls");3.5 刪除學生成績信息void del()int m=0,k=0,b,a,q,p;char xh20,wjm20;FILE *fp;system("cls");j=sizeof(struct stu);doprintf(" 歡迎使用學生成績信息管理系統(tǒng)nnn");printf(" 刪除學生成績信息nn");pr
28、intf("nn存儲文件名有 Ca1.txt Ca2.txt Ca3.txtnn");k=0;printf("n請輸入學號:");scanf("%s",xh);printf("n請輸入欲刪除的文件名:");scanf("%s",wjm);if(fp=fopen(wjm,"r")=NULL)printf("n文件打開失敗!");exit(0);a=0;while(!feof(fp)fread(&studenta,j,1,fp); /將文件內(nèi)容輸入到數(shù)
29、組中a+;fclose(fp);t=a-1;for(a=0;a<=t;a+)if(strcmp(xh,studenta.num)=0)k=1;break;if(a=t)printf("nn文件中無此人的記錄。");if(k=1)printf("nn已查到,該記錄為:nn");printf("%-10s%-20s%-50s","姓名","學號","成績");printf("%-10s%-20s%-50s",,studenta.
30、num,studenta.score);printf("n確實要刪除記錄,請按1;不刪除記錄,請按0:n");scanf("%d",&m);if(m)for(p=a,q=a+1;p<t,q<=t;q+,p+)strcpy(,);strcpy(studentp.num,studentq.num);strcpy(studentp.score,studentq.score);if(fp=fopen(wjm,"w")=NULL)printf("n文件打開失敗!&
31、quot;);exit(0);for(a=0;a<t;a+)fwrite(&studenta,j,1,fp);if(m)printf("n刪除成功!");fclose(fp);printf("n輸入“1”繼續(xù),“0”結(jié)束n");scanf("%d",&b);system("cls");while(b!=0);system("cls");3.6 修改學生成績信息void modify()int k=0,b,a;char xh20,wjm20;FILE *fp;system(&
32、quot;cls");j=sizeof(struct stu);doprintf(" 歡迎使用學生成績信息管理系統(tǒng)nnn");printf(" 修改學生成績信息nn");printf("nn存儲文件名有 Ca1.txt Ca2.txt Ca3.txtnn");printf("n請輸入學號:");scanf("%s",xh);printf("n請輸入欲修改文件名:");scanf("%s",wjm);if(fp=fopen(wjm,"r+
33、")=NULL)printf("n打開失敗!");exit(0);a=0;while(!feof(fp)fread(&studenta,j,1,fp);a+;fclose(fp);t=a-1;for(a=0;a<=t;a+)if(strcmp(xh,studenta.num)=0)k=1;break;if(a=t)printf("nn文件中無此人的記錄。");if(k=1)printf("nn已查到,該記錄為:nn");printf("%-10s%-20s%-50s","姓名&qu
34、ot;,"學號","成績");printf("%-10s%-20s%-50s",,studenta.num,studenta.score);printf("n請輸入新的姓名:");scanf("%s",);printf("n請輸入新的學號:");scanf("%s",studenta.num);printf("n請輸入新的成績:");scanf("%s",stude
35、nta.score);if(fp=fopen(wjm,"w")=NULL)printf("n文件打開失敗!");exit(0);for(a=0;a<t;a+)fwrite(&studenta,j,1,fp);printf("n修改成功!");fclose(fp);printf("n輸入“1”繼續(xù),“0”結(jié)束n");scanf("%d",&b);system("cls");while(b!=0);system("cls");4 功能測試
36、4.1 菜單測試學生成績管理系統(tǒng)運行后的主菜單界面如圖4-1所示。圖4-1系統(tǒng)主界面4.2 系統(tǒng)功能測試1 添加學生信息在主菜單按1后,會顯示圖4-2,再按2添加學生的信息如圖4-3所示,如果按1的話那么所有以前的保存的信息都將被清除,接著再重新輸入數(shù)據(jù)。圖4-2 學生信息輸入界面圖4-3 學生信息輸入界面2 顯示所有學生成績信息在系統(tǒng)菜單上面按2,則所有的學生成績都會顯示如圖4-4所示。圖4-4 學生成績?yōu)g覽3. 學號或姓名查詢在主菜單上輸入3,然后在根據(jù)姓名或者學號,可以查到該同學的分數(shù),如圖4-5和4-6圖所示。圖4-5 根據(jù)學號查詢分數(shù)圖4-6 根據(jù)姓名查詢分數(shù)4. 成績查詢在主菜單上
37、輸入4,可以得到圖4-7所示,這是根據(jù)分數(shù)來確定學生。圖4-7 根據(jù)分數(shù)來確定學生5. 刪除學生成績信息在主菜單上按5,選擇需要刪除的對應文檔里的該學生的成績信息,可以得到圖4-8所示。圖4-8 刪除學生信息6. 修改學生的信息在主菜單上按6,選擇需要修改的人的學號,再進行一系列的修改,可以得到圖4-9所示。圖4-9 修改學生信息5 系統(tǒng)設(shè)計遇到的問題及解決方法1.*和 在定義時只是說明作用,不能誤解為運算符&、*、 是C語言提供的三種運算符,分別是取地址運算符、指針運算符和下標運算符,其中,&與*互為逆運算。在表達式中它們的意義很明確,但是在定義中*、 只是起說明作用,不能看作運算符。例如:int number=10; Int *pt=&n
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年對二甲氨基苯甲酸行業(yè)深度研究分析報告
- 2025年車牌轉(zhuǎn)讓與回收利用合作協(xié)議書4篇
- 二零二五年度木制戶外家具制作木工勞務(wù)承包服務(wù)協(xié)議3篇
- 二零二五年數(shù)字經(jīng)濟企業(yè)獨立董事數(shù)字經(jīng)濟發(fā)展與戰(zhàn)略規(guī)劃合同3篇
- 買賣合作合同完整版3篇
- 2025鉆床加工中心項目承包及工藝流程優(yōu)化合同3篇
- 2025年度智能電網(wǎng)工程轉(zhuǎn)讓協(xié)議書范本2篇
- 2025年度風力發(fā)電場基礎(chǔ)沉降觀測合同4篇
- 2025年度航空航天器安裝與性能優(yōu)化合同4篇
- 2025年度建筑工程竣工驗收評價合同招標文件3篇
- 2024版塑料購銷合同范本買賣
- JJF 2184-2025電子計價秤型式評價大綱(試行)
- GB/T 44890-2024行政許可工作規(guī)范
- 2024年安徽省中考數(shù)學試卷含答案
- 2025屆山東省德州市物理高三第一學期期末調(diào)研模擬試題含解析
- 2024年滬教版一年級上學期語文期末復習習題
- 兩人退股協(xié)議書范文合伙人簽字
- 2024版【人教精通版】小學英語六年級下冊全冊教案
- 汽車噴漆勞務(wù)外包合同范本
- 2024年重慶南開(融僑)中學中考三模英語試題含答案
- 2023年最新的校長給教師春節(jié)祝福語
評論
0/150
提交評論