




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、1110411414蔣佳琴 程序設計語言課程設計報告1110411414蔣佳琴 程序設計語言課程設計報告上誨盜用技求禽院課程設計201T 2012學年第二學期設計題目成績記錄簿院(系) 計算機科學與信息工程學院 專 業(yè)計算機應用技術班 級 11104114 學號 1110411414學生姓名設計時間2012. 06. 25 -2012. 07. 06指導教師馬智嫻提交日期2012. 0706上海應用技術學院課程設計任務書課程名稱程序設計語言課程設計課程代碼B704010設計題目1. 小型商品管理系統(tǒng)2. 個人收支管理3. 日程表管理4. 成績記錄簿5. 信息發(fā)布平臺6. 銀行信貸管理系統(tǒng)題目序
2、號4設計時間2012.06.25-2012.07.06學院計算機科學與信息工程專業(yè)計算機應用技術班級11104114一、課程設計任務(條件)、具體技術參數(shù)(指標)1. 在指導書提供的課程設計題目中選擇一題或自選(但需經(jīng)過指導教師認可)2. 每個題目限一人完成,題目選定后不可更換。3. 用戶提供的主操作界面應該方便用戶的操作。4. 最后提交的課程設計成果包括:a) 課程設計報告電子稿。c)源程序文件。d)可執(zhí)行程序文件。二、對課程設計成果的要求(包括課程設計說明書、圖紙、圖表、實物等軟硬件要求)1. 分析課程設計題目的要求;2. 寫出詳細設計說明;3. 編寫程序代碼,調試程序使其能正確運行;4.
3、 設計完成的軟件要便于操作和使用,有整齊、美觀的使用界面;5. 設計完成后提交課程設計報告和源代碼文件的電子文檔。三、課程設計工作進度計劃:第一天選擇課程設計題目,分析課題的要求, 確定設計方案;第二天按功能模塊編寫詳細設計說明;第三天繪制程序流程圖;第四七天編寫與調試程序; 第八天寫課程設計報告; 第九天提交課程設計報告; 第十天面試或答辯。四、主要參考資料1 譚浩強.C程序設計(第四版).北京:清華大學出版社,20102 譚浩強.C程序設計題解與上機指導(第四版).北京:清華大學出版社,20103 Herbert Schildt. C語言大全(第四版).北京:電子工業(yè)出版社,20044 S
4、amuel P. Harbison HI, Guy L. Steele. C語言參考手冊(第5版).北京:機械工業(yè)出版社,20035 程序設計語言課程設計指導書.指導教師(簽名):馬智嫻教研室主任(簽名):馬智嫻2012 年 6 月 25 日2012 年 6 月 25 13目錄1設計目的52功能描述52.1模塊功能52.2流程圖63總體設計133.1功能模塊設計133.2數(shù)據(jù)結構設計133.3函數(shù)功能描述134程序實現(xiàn)144.2運行結果255課程設計總結281110411414蔣佳琴 程序設計語言課程設計報告成績記錄簿成績記錄簿1. 添加2. 刪除3. 查學生成績4. 查班成績表5. 寫入文件
5、6. 讀取文件0.退出程序的主界面1. 設計要求:基本功能a)添加成績b)刪除成績c)查詢學生成績d)查詢班級成績e)退出拓展功能a)寫入文件b)讀取文件創(chuàng)新(自擬)功能: 程序實現(xiàn)的其它功能由個人自擬。2. 設計要求具體說明基本功能:成績記錄簿中記錄以下數(shù)據(jù):學號、姓名、課程編號、課程名稱、成績、學分,所有成績都以百分制計分;輸入信息時要檢查數(shù)據(jù)項學號、課程編號、成績、學分的合法性,學號:8位數(shù)字:課程編號:5位數(shù)字;成績:0 -100之間的整數(shù),學分:15之間的實型數(shù)。添加成績:需要輸入學生的學號或姓名、課程編號及成績,如已有該門課程成績給出提示; 查詢(班級或個人)成績:a)查詢個人成績
6、:以學號或姓名作為關鍵字,可查詢一個學生的所有成績,和已完成 的總學分。b)查詢班級成績:以課程編號為關鍵字,成績表后面要統(tǒng)計平均分、及格率及全班同 學不同課程在不同分數(shù)段分布的人數(shù)及百分比。拓展功能:a)程序啟動時先從文件讀入數(shù)據(jù),如果文件中沒有數(shù)據(jù)則給出提示;b)每次修改的數(shù)據(jù)寫入文件。3. 提示定義合適的結構體類型,使用鏈表或數(shù)組的方式組織數(shù)據(jù)。1110411414蔣佳琴 程序設計語言課程設計報告1設計目的1. 鞏固和加深學生對C語言課程的基本知識的理解和掌握;2. 掌握C語言編程和程序調試的基本技能;3. 利用C語言進行基本的軟件設計;4. 掌握書寫程序設計說明文檔的能力5. 提高運用
7、C語言解決實際問題的能力2功能描述2.1模塊功能2.1.1添加功能:添加學生基本信息中可以輸入學生學號,學生姓名和學生班級。 添加學生成績可以輸入學生的課程編號、課程劣稱、成績、學分。并且可以判斷輸 入數(shù)據(jù)的合法性。2.1.2刪除功能:能夠刪除輸入錯誤或者不想要的陳舊信息。2.1.3查詢功能:能查詢學生基本信息,和學生成績。1110411414蔣佳琴 程序設計語言課程設計報告1110411414蔣佳琴 程序設計語言課程設計報告2.2流程圖圖1系統(tǒng)功能菜單1110411414蔣佳琴 程序設計語言課程設計報告1110411414蔣佳琴 程序設計語言課程設計報告圖2添加(學生基本信息)1110411
8、414蔣佳琴 程序設計語言課程設計報告圖3添加(學生成績)1110411414蔣佳琴 程序設計語言課程設計報告1110411414蔣佳琴 程序設計語言課程設計報告圖4刪除(學生基本信息)1110411414蔣佳琴 程序設計語言課程設計報告提示調出學生成績刪除結束圖5刪除(學生成績)1110411414蔣佳琴 程序設計語言課程設計報告1110411414蔣佳琴 程序設計語言課程設計報告圖6查詢(學生基本信息)1110411414蔣佳琴 程序設計語言課程設計報告1110411414蔣佳琴 程序設計語言課程設計報告圖7查詢(學生個人成績)圖8查詢班級課程成績1110411414蔣佳琴 程序設計語言課
9、程設計報告3總體設計3.1功能模塊設計3.1.1添加功能設計:添加分為兩部分添加學生基本信息和添加學生成績。添加 學生基本信息中要求輸入學生學號,學生姓名和學生班級。添加學生成績要求輸入 學生的課程編號、課程名稱、成績、學分。其中用結構體來建立輸入的學生信息的 形式。兩個結構體間用靜態(tài)鏈表連接,使其聯(lián)系起來。3.1.2刪除功能設計:刪除也分為兩部分刪除學生基本信息和刪除學生成績。刪 除用后一個來覆蓋前一個原理進行操作。3.1.3查詢功能設計:查詢學生成績可以用3種方法來進行。1.學號2.姓名3.課 程代號。班級查詢,可輸入課程代號,可得班平均分。先建立兩個結構體studenl.student2
10、o再設立全局變量,建立循壞以驗證輸入的合法性,全 局變量累加,全局變量累減。3-3函數(shù)功能描述3.3.1 幷 include <stdio.h>在使用標準函數(shù)庫中的輸入輸出函數(shù)時,編譯系統(tǒng)要求程序提供有關的信息(例如對這些 輸入輸出函數(shù)的聲明),#include<stdio.h>的作用就是用來提供這些信息的,stdio.h是C編 譯系統(tǒng)提供的一個文件名,stdio是“standard input & output”的縮寫,即有關標準輸入輸出 的信息。在程序中用到系統(tǒng)提供的標準函數(shù)庫中的輸入輸出函數(shù)時,應在程序的開頭寫上一行:#include"stdio
11、.h"或者是#include<stdio.h>,這樣才能調用庫函數(shù)3.3.2 #include<ctype.li>o#include<ctype.h>是在調用字符函數(shù)時,在源文件中包含的頭文件。字符函數(shù)如:int isspace(int ch);檢查ch是否為空格制表或換行字符。“ctype”中c為字符型char的縮寫,type為類型。3. 3. 3#includestring. h>stnng.h是個頭文件,里面寫的是關于字符串操作的一些基本函數(shù)。當程序中涉及對字符串的操作 時,會用到這個頭文件里面的函數(shù)。所以要把它include (包含)
12、進來。3.3.4 #iiiclude<stdlib.h>stdlib.h里面定義了五種類型、一些宏和通用工具函數(shù)。類型例如 size、wchar_t、div_t、ldiv_t 和 lldiv_t;宏例如 EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX 和 MB_CUR_MAX 等等;常用的函數(shù)如 malloc()、calloc()、realloc(卜 free()、system()> atoi()、atol()、rand()、srand()、 exit()等等。具體的內(nèi)容你自己可以打開編譯器的include目錄里面的stdlib.h頭文件看看。4程序實現(xiàn)
13、4.1源碼分析存include <stdio.h> #include<ctype.h> #include<strmg.h> #include<stdlib.h> mainQmt t;while(l)*成績記錄簿恤”);printf(*“)pnntfCpnntfCpnntfCpnntfCpnntfCpnntfCpnntfC*1:添加 n”);2:刪除n”);3:查詢學生成績n”);4:查詢班成績n”);5:寫入文件11");6:讀取文件11");0:退出 n");printf(”*“pnntfC請輸入數(shù)字選擇:”);s
14、ccmfC%d;&t);switch(t) case 1: tj();break;case 2: sc();bieak;case 3: cxlQ;bieak;case 4: cx2Q; break;case 5: xwQ;break;case 6: dwQ;break;case 0: exit(0);default:;stmct student 1建立結構體clw num20;char name20;int bj;;stmct student2chaixli20;char id20;char idnaine20;mt sorce;floatjd;struct student2 s220
15、0,ss,*pp;定義stmct student 1 s200、s22,s3、*oo;iiit count 1=0,count2=0;/ 設立全局變量void tjl()Ult ljgk;pnmf(“請輸入想要輸入的學生的人的個數(shù):”);scanf(”d=&n);for(j=countl J<n+countl J-H-)建立循環(huán)以驗證輸入的合法性k=0;dopmitfC'W輸入學生學號(要求8位數(shù)字):”);scanf(H%sH,sj.num);fbr(i=0;sj.numi !=,0,;i+)if(i=7)&&(isdigit(s|j .numi) !=
16、0)k=l;喚>7)k=0; while(k!=l);pirntfC*請輸入學生的姓名:“);scaiif(n%s');printf(”請輸入班級:”);count 1 =couiit 1 +n;全局變量累加void tj2()mt iijj、nn,khk2、k3,k4;pnmf(“請輸入想要輸入的學科的個數(shù):”);scanf(”d=&nn);foi(jj=count2 ;jj <mi+count2 ;jj+)kl=0;k2=0;k3=0,k4=0;doprintfC*請輸入此成績的學生學號(要求8位數(shù)字):”); scanf(H%s,s2jj.xli
17、);for(ii=0 ;s2jj .xliii!='0:ii+)if(ii=7)&&(isdigit(s2 jj .xhii)! =0)k4=l;if(ii>7)k4=0;while(k4!=l);do pnntffiW輸入課程編號(5位數(shù)字):”); scanf(H%s,s2jj.id);for(u=0 ;s2jj.idii?=0*;ii+)if(ii=4)&&(isdigit(s2jj .idii)!=0)kl=l;if(ii>4)kl=0;wliile(kl!=l);prmtf("請輸入學科的名稱:”);scanf(H%s,s
18、2jj.idname);do驗證成績的合法性pnntf(”請輸入成績(成績?yōu)?100間的整數(shù)):”); scanf(H%d'&s2Ijj.sorce);if(s2 jj sorce>=0) &&(s2 jj. sorce<=l 00)k2=l;wliile(k2!=l);dopnntf(“請輸入本門課的學分(學分為15之間實型數(shù)):“); scanf(”f;&s2jj.jd);if(s2jj.jd>=1.0)&&(s2jj.jd<=5.0)k3=l;wliile(k3!=l);count2=count2+mi;vo
19、id sc 1()mt ijgkjii=l;prmtf("請輸入想要刪除的學生的基本信息的個數(shù):”); scanff%dt&n);prmtf("請輸入想要刪除的學生的學號:“); scanf(”s”,s22mim);for(i=0;i<n;i-H-)m=strcmp(s22.num,si.num);if(m=0)for(j=iJ<nj+)strcpy(s j .num, sj+l .num); strcpy(,slj+l .name); sj.bj=s|j+l.bj;count l=countl-n;/全局變量累減pnntf(”刪除成功”)
20、;比較兩個數(shù)據(jù)pnntf(”刪除不成功“);void sc2()mt ii,jjjin,kl,k2、k3、k4、mm=;pnmf(“請輸入想要刪除的學生成績的門數(shù):”); scanf(”d”、&nn);prmtf("請輸入想要刪除的學生的學號:“);scanf(”s”,ssxh);for(ii=0; ii<mi;ii+)nun=strcmp(ss.xli.s2ii.xli);if(nmi=0)fbr(jj=ii;jj<mi:jj+)strcpy(s2 Jjj.x1ls2jj4-1.x1i);strcpy(s2Qj.id,s2jj+l.id);strcpy(s2 j
21、j .idnaine,s2 jj-l.idname);s2Qj.sorce=s2jj+l.sorce; s2|jj.jd=s2j+l.jd;count2=count2-mi:printf(”刪除成功”);elsepmitfC刪除不成功”);1110411414蔣佳琴 程序設計語言課程設計報告void tjQmt z;pnntffpnntffpnntff1. *添加學生基本信息*“);2. *添加學生成績*n”);0.* 退出 *n”);scanf(”d=&z);switch(z)case 1:break;case 2: tj2();break;case 0: exit(O); defa
22、ult:;void sc()mt z;pnntffpnntffpnntff1*刪除學生基本信息*“);2.*刪除學生成績*n”);0.* 退出 *n”);scanf(”d”、&z);switch(z)case 1: sc 1(); break: case 2: sc2();bieak;case 0: exit(O); default:;void cxlQmt i j ,n,k ,m= 1 J=O,iiaui,pp;pnntfflo *學號查詢*2o *名字查詢*W);scaiif(,'%d,&pp);if(pp=l)pnntfC請輸入想要查詢的學生的學號門;111041
23、1414蔣佳琴 程序設計語言課程設計報告scanHs'sS.num);fbr(i=0;i<countl ;i+)m=sticnip(s3 .num,si .num);printff學 號:%s學號:%s 班級:%dn,si.num ,si.num ,si.bj);fbr(ii=0;ii<count2;ii-H-)k=sticmp(s3 .num,s2 ii .xli);if(k=0)printf("課程代號:%s",s2ii.id);printfC* 課程名稱:%s",s2ii.idname);printfC* 課程成績:%d",s2
24、ii.sorce);printfC* 課程學分:%f'iiii",s2ii.jd);k=l;m=l;if(pp=2)pnntff請輸入想要查詢的學生的名字:“);scanff'%s",s3 .name);for(i=0;i<countl ;i+)m=sticnip(,);prmtf(H學號:%s”,sinum);姓名:%sn,si .name);prmtf(H 班級:%drT,sibj);fbr(ii=0;ii<count2;ii-H-)k=sticmp(si.nunKs2ii.xli);if(k=0) printf(
25、"課程代號:%s”,s2iiid); prmtf(M 課程名稱:%s's2ii.idname); pnntf(M 課程成績:%dH,s2ii.sorce); printfC* 課程學分:%f'iiii",s2ii.jd); k=l;111=1;if(pp!=l & &pp !=2)pnntf("輸入錯誤請選1或者2nM);exit(0);void cx2Qmt i,n,nidi,kl,c,k,cpp=0jt200J=0,jj.pt;float it,ct;char d20;pruitfC1請輸入想要查詢的班級:”); scanf(”
26、d”,&c);dopimtfC請輸入課程編號(5位數(shù)字):”); scanf(”s 役 d);fbr(ii=O;d ii !=*0:ii+)if(ii=4)&&(isdigit(d ii) 1=0)kl=l;while(kl!=l);for(i=0;i<countl ;i+)m=sticmp(d,s2i.id);fbi(ii=0;ii<count2;ii-H-)k=sticmp(s ii .num,s2 i .xli);if(k=0&&c=sii bj)piintf("課程代號:sn",s2ii.id); 學號:%s,si
27、.num);pnntf(M 姓名:%sH,); pnntf(M 班級:%diT,sibj);piiiitfC課程名稱:%s,s2ii.idname);pnntf(M 課程成績:%d,s2ii.sorce);printfC* 課程學分:fuiiT,s2“.jd); k=l;ttlj=s2ii.sorce;J+;if(s2 ii sorce>=60)cpp+;pt=0;pt=pt+ttjj;rt=pt/j;ct=(100*cpp)/j;平均分為pnntf(” 及格率為:百分之fiT,ct);void xw()FILE *fp;mt i、m衛(wèi);char filename 20;p
28、nmf("請輸入想要儲存的內(nèi)容:1。*學生基本信息*2。*課程成績恤”);scaiif(M%d,&m);pnnrff請輸入文件的寸盤位置及文件名鋼;scanf(H%sH,filename);if(fp=fopen(filename/wb+n)=NULL)不能打開文件n");exit(0);for(i=0;i<countl ;i+)if(fvnte(&si,siz亡obstruct studentl)J,fp)!=l)文件寫入錯誤n”); prmtfC'請輸入學生學號(要求8位數(shù)字):”); scanf(H%s,filename);fputs(f
29、ilename.fp);fputc('Ofp);pnntf(“請輸入學生的姓名:”);scanf(H%s,filename);fputs(filename.fp);fputc('Ofp);pnntf(“請輸入班級:”); scanf(n%s,filename); fputs(filenaine, fp);fclose(fp);else if(m=2)prmtfC*請輸入文件的寸盤位置及文件名J; scanf(H%sH,filename);if(fp=fdpen(filename/vb+n)=NULL)pnntf(”不能打開文件n");exit(0);fbr(i=0;i
30、<count2;i+)if(fwrite( &s2 i,sizeof(struct student2),l 耳)!=1)pnntf(”文件寫入錯誤n“);pnntf(“請輸入學生學號(要求8位數(shù)字):“); scanf(H%s,filename);fputs(filename.fp);fputcCOfp);printfC*請輸入課程編號(5位數(shù)字):”);scanf(H%s,filename);fputs(filename.fp);fputcCO',fp);prmtfC'請輸入學科的名稱:”);scanf(,%s,filename);fputs(filenaine
31、, fp);fputc('o',fp);pnntf(“請輸入成績(成績?yōu)?100間的整數(shù)):“);filename);fputs(filenaine, fp);fputcCO',fp);pnntf(“請輸入本門課的學分(學分為15之間實型數(shù)):”); filename);fputs(filenaine, fp);fclose(fp);else if(m!=l&&m!=2)pnntf("輸入錯誤請選1或者2nM);exit(0);void dv()FILE *fp;char ch;if (fp=fbpen(nd:student.txt,7frH)
32、=NULL )printf(Mcaniiot open file.nM);exit(0);while(!feof(fp) ch=fgetc(fp);piintfC%c”、ch);fclose(fp);4-2運行結果0 ,讀取目標文件,在函數(shù)開始時,初始化臨時結構體數(shù)組,讓結構體內(nèi)所有成績均為 然后運行功能函數(shù),選擇需要的功能: "C:Docujient8 arid Sett inesXAdainidt ratorjRlRiF%Jd1010420201 TibA. axe*UH- i八 需1110411414蔣佳琴 程序設計語言課程設計報告1110411414蔣佳琴 程序設計語言課程設
33、計報告圖1初始頁面1.輸入學生的學號、姓名、課程序號、課程名稱、成績、學分,并在輸入的時候檢 查輸入的合法性,然后檢查結構體數(shù)組內(nèi)是否有學號、姓名、課程序號都相同的 重復數(shù)據(jù)。”5譏師鍛計11104114!4 薦佳1110411414 蓉隹尊.“e”成績記錄蒔“詩輸入數(shù)字選律#班文文岀 加矯詢?nèi)肴?12 3 4 5 6 3?圖2輸入界面Ullin mm liiiiiii學隹半號寒京8位數(shù)字丿江2345678 錐旌名:xU I* 班級山成績記錄簿E:f?序設汁'111041M14妨佳蓉佳號翊孑-口|x|V畫文文出可間入職 査査寫侯退甌著翥%必礙紳學生林 ®*3總出w1110411414蔣佳琴 程序設計語言課程設計報告1110411414蔣佳琴 程序設計語言課程設計報告圖3輸入時判斷合法性1110411414蔣佳琴 程序設計語言課程設計報告圖4輸入時檢測是否重復fl.m)R 4|mE:fiFF設計'1110411414 養(yǎng)佳11104114M 希佳琴砲護sss、 f OS 覽十的aia. 要級 I <的學生的人的個如2(奠親卷藪字)訂234567® 名皿q(要求8位數(shù)字)汽2345679-X:xll6=fl: jR 岀rJ圖5輸入完成時2刪除己存在學生的信息,通過輸入學生的學號
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 健身器材用戶參與度提升策略實踐考核試卷
- 塑料鞋生產(chǎn)效率統(tǒng)計與分析考核試卷
- 數(shù)學空間想象力培養(yǎng)教具考核試卷
- 供應鏈大數(shù)據(jù)分析在供應鏈中的應用案例解析考核試卷
- 北京車牌借用合同范本
- 蔬菜購銷合同范本
- 藥店店員培訓課件
- 冷庫設備銷售合同范本
- 靜脈輸液的基本操作流程
- 數(shù)據(jù)傳輸網(wǎng)絡安全合作協(xié)議之數(shù)據(jù)傳輸保護服務合同
- 宮頸癌化療患者的護理
- 車間主任考核表實用文檔
- 提高領導干部的溝通能力
- 《航空公司服務質量改善研究8800字(論文)》
- GB/T 9124-2010鋼制管法蘭技術條件
- GB/T 4117-2008工業(yè)用二氯甲烷
- FZ/T 07019-2021針織印染面料單位產(chǎn)品能源消耗限額
- 人教PEP版英語五年級下冊第四單元全部課件
- 硬筆書法 社團教案
- 中國膿毒癥及膿毒性休克急診治療指南
- 工序標準工時及產(chǎn)能計算表
評論
0/150
提交評論