版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、XX應(yīng)用技術(shù)學(xué)院課程設(shè)計2011-2012學(xué)年第二學(xué)期設(shè)計題目課程名稱院系計算機科學(xué)與信息工程學(xué)院專業(yè)計算機應(yīng)用技術(shù)班級11104114學(xué)號1110411414學(xué)生XX蔣住琴設(shè)計時間2012.06.25-2012.07.06指導(dǎo)教師馬智嫻提交日期2012.07.06XX應(yīng)用技術(shù)學(xué)院課程設(shè)計任務(wù)書程序設(shè)計語言課程設(shè)計課程代碼B704010設(shè)計題目1. 小型商品管理系統(tǒng)2. 個人收支管理3. 日程表管理4. 成績記錄簿5. 信息發(fā)布平日6. 銀行信貸管理系統(tǒng)題目序號4設(shè)計時間2012.06.252012.07.06學(xué)院計算機科學(xué)與信息工程專業(yè)計算機應(yīng)用技術(shù)班級11104114一、課程設(shè)計任務(wù)條件、
2、具體技術(shù)參數(shù)指標(biāo)1. 在指導(dǎo)書提供的課程設(shè)計題目中選擇一題或自選但需經(jīng)過指導(dǎo)教師認(rèn)可2. 每個題目限一人完成,題目選定后不可更換。3. 用戶提供的主操作界面應(yīng)該方便用戶的操作。4. 最后提交的課程設(shè)計成果包括:a)課程設(shè)計報告電子稿。c)源程序文件。d)可執(zhí)行程序文件。二、對課程設(shè)計成果的要求包括課程設(shè)計說明書、圖紙、圖表、實物等軟硬件要求1. 分析課程設(shè)計題目的要求;2. 寫出詳細(xì)設(shè)計說明;3. 編寫程序代碼,調(diào)試程序使其能正確運行;4. 設(shè)計完成的軟件要便于操作和使用,有整齊、美觀的使用界面;5. 設(shè)計完成后提交課程設(shè)計報告和源代碼文件的電子文檔。三、課程設(shè)計工作進(jìn)度方案:第一天選擇課程設(shè)
3、計題目,分析課題的要求,確定設(shè)計方案;第二天按功能模塊編寫詳細(xì)設(shè)計說明;第三天繪制程序流程圖;第四七天編寫與調(diào)試程序;第八天寫課程設(shè)計報告;第九天提交課程設(shè)計報告;第十大面試或辯論。四、主要參考資料1譚浩強.C程序設(shè)計(第四版).:清華大學(xué),20102 譚浩強.C程序設(shè)計題解與上機指導(dǎo)(第四版).:清華大學(xué),20103 HerbertSchildt.C語言大全第四版.:電子工業(yè),20044 SamuelP.Harbisonm,GuyL.Steele.C語言參考手冊(第5版).:機械工業(yè),20035 程序設(shè)計語言課程設(shè)計指導(dǎo)書.指導(dǎo)教師簽名:馬智嫻教研室主任簽名:馬智嫻2012年6月25日目錄1
4、. 1設(shè)計目的42功能描述42.1模塊功能42.2流程圖53總體設(shè)計123.1功能模塊設(shè)計123.2數(shù)據(jù)構(gòu)造設(shè)計123.3函數(shù)功能描述124程序?qū)崿F(xiàn)134.2運行結(jié)果255課程設(shè)計總結(jié)29成績記錄簿設(shè)計要求:根本功能a)添加成績b)刪除成績c)查詢學(xué)生成績d)查詢班級成績e)退出拓展功能a)寫入文件b)讀取文件創(chuàng)新自擬功能:程序?qū)崿F(xiàn)的其它功能由個人自擬。2012年6月25日成績記錄簿1. 添加2. 刪除3. 查學(xué)生成績4. 查班成績表5. 寫入文件6. 讀取文件0.退出程序的主界面2. 設(shè)計要求具體說明根本功能:成績記錄簿中記錄以下數(shù)據(jù):學(xué)號、XX、課程編號、課程名稱、成績、學(xué)分,所有成績都以
5、百分制計分;輸入信息時要檢查數(shù)據(jù)項學(xué)號、課程編號、成績、學(xué)分的合法性,學(xué)號:8位數(shù)字;課程編號:5位數(shù)字;成績:0100之間的整數(shù),學(xué)分:15之間的實型數(shù)。添加成績:需要輸入學(xué)生的學(xué)號或XX、課程編號及成績,如已有該門課程成績給出提示;查詢班級或個人成績:a)查詢個人成績:以學(xué)號或XX作為關(guān)鍵字,可查詢一個學(xué)生的所有成績,和已完成的總學(xué)分。b)查詢班級成績:以課程編號為關(guān)鍵字,成績表后面要統(tǒng)計平均分、及格率及全班同學(xué)不同課程在不同分?jǐn)?shù)段分布的人數(shù)及百分比。拓展功能:a)程序啟動時先從文件讀入數(shù)據(jù),如果文件中沒有數(shù)據(jù)那么給出提示;b)每次修改的數(shù)據(jù)寫入文件。3. 提不'定義適宜的構(gòu)造體類
6、型,使用鏈表或數(shù)組的方式組織數(shù)據(jù)。1設(shè)計目的1. 穩(wěn)固和加深學(xué)生對C語言課程的根本知識的理解和掌握;2. 掌握C語編程和程序調(diào)試的根本技能;3. 利用C語言進(jìn)展根本的軟件設(shè)計;4. 掌握書寫程序設(shè)計說明文檔的能力提高運用C語言解決實際問題的能力2功能描述2.1模塊功能2.1.1添加功能:添加學(xué)生根本信息中可以輸入學(xué)生學(xué)號,學(xué)生XX和學(xué)生班級。添加學(xué)生成績可以輸入學(xué)生的課程編號、課程名稱、成績、學(xué)分。并且可以判斷輸入數(shù)據(jù)的合法性。2.1.2刪除功能:能夠刪除輸入錯誤或者不想要的陳舊信息。2.1.3查詢功能:能查詢學(xué)生根本信息,和學(xué)生成績2.2流程圖'成績記、錄簿讀取完畢圖1系統(tǒng)功能菜單圖
7、2添加學(xué)生根本信息圖3添加學(xué)生成績圖4刪除學(xué)生根本信息圖5刪除學(xué)生成績圖6查詢學(xué)生根本信息圖7查詢學(xué)生個人成績圖8查詢班級課程成績3總體設(shè)計3.1功能模塊設(shè)計3.1.1添加功能設(shè)計:添加分為兩局部添加學(xué)生根本信息和添加學(xué)生成績。添加學(xué)生根本信息中要求輸入學(xué)生學(xué)號,學(xué)生XX和學(xué)生班級。添加學(xué)生成績要求輸入學(xué)生的課程編號、課程名稱、成績、學(xué)分。其中用構(gòu)造體來建立輸入的學(xué)生信息的形式。兩個構(gòu)造體問用靜態(tài)鏈表連接,使其聯(lián)系起來。3.1.2刪除功能設(shè)計:刪除也分為兩局部刪除學(xué)生根本信息和刪除學(xué)生成績。刪除用后一個來覆蓋前一個原理進(jìn)展操作。3.1.3查詢功能設(shè)計:查詢學(xué)生成績可以用3種方法來進(jìn)展。1.學(xué)號
8、2.XX3.課程代號。班級查詢,可輸入課程代號,可得班平均分。3.2數(shù)據(jù)構(gòu)造設(shè)計先建立兩個構(gòu)造體studen1,student2再設(shè)立全局變量,建立循環(huán)以驗證輸入的合法性,全局變量累加,全局變量累減。3.3函數(shù)功能描述3.3.1#include<stdio.h>在使用標(biāo)準(zhǔn)函數(shù)庫中的輸入輸出函數(shù)時,編譯系統(tǒng)要求程序提供有關(guān)的信息例如對這些輸入輸出函數(shù)的聲明,#include<stdio.h>的作用就是用來提供這些信息的,stdio.h是C編譯系統(tǒng)提供的一個文件名,stdio是"standardinput&output"的縮寫,即有關(guān)標(biāo)準(zhǔn)輸入輸出
9、的信息。在程序中用到系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)庫中的輸入輸出函數(shù)時,應(yīng)在程序的開頭寫上一行:#include"stdio.h"或者是#include<stdio.h>,這樣才能調(diào)用庫函數(shù)3.3.2#include<ctype.h>。#include<ctype.h>是在調(diào)用字符函數(shù)時,在源文件中包含的頭文件。字符函數(shù)如:intisspace(intch)檢查ch是否為空格制表或換行字符。"ctype"電為字符型char的縮寫,type為類型。3.3.3#include<string.h>string.h是個頭文件,
10、里面寫的是關(guān)于字符串操作的一些根本函數(shù)。當(dāng)程序中涉及對字符串的操作時,會用到這個頭文件里面的函數(shù)。所以要把它include包含進(jìn)來。3.3.4#include<stdlib.h>stdlib.h里面定義了五種類型、一些宏和通用工具函數(shù)。類型例如size_t、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()等等。
11、具體的內(nèi)容你自己可以翻開編譯器的include目錄里面的stdlib.h頭文件看看。4程序?qū)崿F(xiàn)4.1源碼分析#include<stdio.h>#include<ctype.h>#include<string.h>#include<stdlib.h>main()intt;while(1)printf("nnn");printf("*成績記錄簿*n");printf("*");printf("1:添加n");printf("2:刪除n");printf
12、("3:查詢學(xué)生成績n");printf("4:查詢班成績n");printf("5:寫入文件n");printf("6:讀取文件n");printf("0:退出n");printf(printf("請輸入數(shù)字選擇:");scanf("%d”,&t);switch(t)(case1:tj();break;case2:sc();break;case3:cx1();break;case4:cx2();break;case5:xw();break;case6:dw
13、();break;case0:exit(0);default:;structstudent1/建立構(gòu)造體(charnum20;charname20;intbj;structstudent2(charxh20;charid20;charidname20;intsorce;floatjd;structstudent2s2200,ss,*pp;/定義structstudent1s200,s22,s3,*oo;intcount1=0,count2=0;設(shè)立全局變量voidtj1()(inti,j,n,k;printf("請輸入想要輸入的學(xué)生的人的個數(shù):");scanf("
14、%d”,&n);for(j=count1;j<n+count1;j+)/建立循環(huán)以驗證輸入的合法性(k=0;do(printf("請輸入學(xué)生學(xué)號要求8位數(shù)字:,scanf("%s”,sj.num);for(i=0;sj.numi!='0'i+)(if(i=7)&&(isdigit(sj.numi)!=0)k=1;if(i>7)k=0;while(k!=1);printf("請輸入學(xué)生的XX:");scanf("%s",);printf("請輸入班級:"
15、;);scanf("%d",&sj.bj);count1=count1+n;/全局變量累加voidtj2()intii,jj,nn,k1,k2,k3,k4;printf("請輸入想要輸入的學(xué)科的個數(shù):");scanf("%d",&nn);for(jj=count2;jj<nn+count2;jj+)k1=0;k2=0;k3=0,k4=0;doprintf("請輸入此成績的學(xué)生學(xué)號要求8位數(shù)字:”);scanf("%s”,s2jj.xh);for(ii=0;s2jj.xhii!='0
16、39;ii+)if(ii=7)&&(isdigit(s2jj.xhii)!=0)k4=1;if(ii>7)k4=0;while(k4!=1);doprintf("請輸入課程編號5位數(shù)字:,scanf("%s",s2jj.id);for(ii=0;s2jj.idii!='0'ii+)if(ii=4)&&(isdigit(s2jj.idii)!=0)k1=1;if(ii>4)k1=0;while(k1!=1);printf("請輸入學(xué)科的名稱:");scanf("%s”,s2jj
17、.idname);do/驗證成績的合法性printf("請輸入成績成績?yōu)?100間的整數(shù):");scanf("%d",&s2jj.sorce);if(s2jj.sorce>=0)&&(s2jj.sorce<=100)k2=1;while(k2!=1);doprintf("請輸入本門課的學(xué)分學(xué)分為15之間實型數(shù):");scanf("%f",&s2jj.jd);if(s2jj.jd>=1.0)&&(s2jj.jd<=5.0)k3=1;while(k
18、3!=1);count2=count2+nn;voidsc1()(inti,j,n,k,m=1;printf("請輸入想要刪除的學(xué)生的根本信息的個數(shù):");scanf("%d”,&n);printf("請輸入想要刪除的學(xué)生的學(xué)號:");scanf("%s”,s22.num);for(i=0;i<n;i+)(m=strcmp(s22.num,si.num);if(m=0)(for(j=i;j<n;j+)(strcpy(s田.num,sj+1.num);/比擬兩個數(shù)據(jù)strcpy(s田.name,sj+1.name);
19、s田.bj=sj+1.bj;count1=count1-n;/全局變量累減printf("刪除成功");else(printf(-刪除不成功");voidsc2()(intii,jj,nn,k1,k2,k3,k4,mm=1;printf("請輸入想要刪除的學(xué)生成績的門數(shù):");scanf("%d",&nn);printf("請輸入想要刪除的學(xué)生的學(xué)號:");scanf("%s”,ss.xh);for(ii=0;ii<nn;ii+)mm=strcmp(ss.xh,s2ii.xh);i
20、f(mm=0)(for(jj=ii;jj<nn;jj+)(strcpy(s2jj.xh,s2jj+1.xh);strcpy(s2jj.id,s2jj+1.id);strcpy(s2jj.idname,s2jj+1.idname);s2jj.sorce=s2jj+1.sorce;s2jj.jd=s2jj+1.jd;count2=count2-nn;printf("刪除成功");else(printf("刪除不成功");voidtj()(intz;printf("1.*添加學(xué)生根本信息*");printf("2.*添加學(xué)生
21、成績*n");printf("0.*退出*n");scanf("%d",&z);switch(z)(case1:tj1();break;case2:tj2();break;case0:exit(0);default:;voidsc()intz;printf(-1.*刪除學(xué)生根本信息*");printf("2*刪除學(xué)生成績*n");printf("0.*退出*n");scanf("%d”,&z);switch(z)case1:sc1();break;case2:sc2()
22、;break;case0:exit(0);default:;voidcx1()inti,j,n,k,m=1,l=0,ii,nn,pp;printf("1。*學(xué)號查詢*2。*名字查詢*n");scanf("%d",&pp);if(pp=1)printf("請輸入想要查詢的學(xué)生的學(xué)號:");scanf("%s”,s3.num);for(i=0;i<count1;i+)m=strcmp(s3.num,si.num);if(m=0)printf("學(xué)號:%s學(xué)號:%s班級:%dn",si.num,s
23、i.num,si.bj);for(ii=0;ii<count2;ii+)k=strcmp(s3.num,s2ii.xh);if(k=0)printf("課程代號:s”,s2ii.id);printf("課程名稱:s”,s2ii.idname);printf("課程成績:%d",s2ii.sorce);printf("課程學(xué)分:%fnn”,s2ii.jd);k=1;m=1;if(PP=2)printf("請輸入想要查詢的學(xué)生的名字:");scanf("%s”,);for(i=0;i<coun
24、t1;i+)m=strcmp(,);if(m=0)printf("學(xué)號:%s",si.num);printf("XX:%s",);printf("班級:%dn",si.bj);for(ii=0;ii<count2;ii+)k=strcmp(si.num,s2ii.xh);if(k=0)printf("課程代號:%s",s2ii.id);printf("課程名稱:%s”,s2ii.idname);printf("課程成績:%d",s2ii.
25、sorce);printf("課程學(xué)分:%fnn",s2ii.jd);k=1;m=1;if(pp-n133pp-n2)prmff(=善>>浦$|沛1M<2-n=);exKowvoidCX2()infLpm=k1oKcppnsu200Lli'0Hpr-rfoalI-P-CLchardMo一;prmff(=i珊善>/煙<酋哥洋滋,_-)scanf(=%d=QOc)*doprmff(=fs瞥>雍能>45a<wscanf(=%s=d);for(ili'0SMH-6-=:+)=h(=#4)QOssdigMd=:DH。)k
26、lnlTh=e(k1H1)*forunoxcounflT+)mns=rcmp(d-s2三.d);=h(mnH。)for(=no=AcounN5=:+)kns=rcmp(s【三.num-s2三.xh);=h(knnoQOQOcnnsMbj)plimf(=%,552三一.0:)prmff(=<4s=SMnumxprmff(=XXs=s三三罵巴IwordN.printf("班級:dn”,si.bj);printf("課程名稱:%s",s2ii.idname);%d",s2ii.sorce);%fnn",s2ii.jd);printf("
27、;課程成績:printf(-課程學(xué)分:k=1;ttj=s2ii.sorce;j+;if(s2ii.sorce>=60)cpp+;pt=0;for(jj=0;jj<j;jj+)pt=pt+ttjj;rt=pt/j;ct=(100*cpp)/j;printf("平均分為f",rt);printf(-及格率為:百分之%fn",ct);voidxw()FILE*fp;inti,m,n;charfilename20;printf("請輸入想要儲存的內(nèi)容:1。*學(xué)生根本信息*2。*課程成績*n");scanf("%d”,&m)
28、;if(m=1)printf("請輸入文件的寸盤位置及文件名:,scanf("%s",filename);if(fp=fopen(filename,"wb+")=NULL)(printf("不能翻開文件n");exit(0);for(i=0;i<count1;i+)if(fwrite(&si,sizeof(structstudent1),1,fp)!=1)printf("文件寫入錯誤n");printf("請輸入學(xué)生學(xué)號要求8位數(shù)字:,scanf("%s",fi
29、lename);fputs(filename,fp);fputc('0',fp);printf("請輸入學(xué)生的XX:");scanf("%s",filename);fputs(filename,fp);fputc('0',fp);printf("請輸入班級:");scanf("%s",filename);fputs(filename,fp);fclose(fp);elseif(m=2)(printf("請輸入文件的寸盤位置及文件名:,scanf("%s"
30、,filename);if(fp=fopen(filename,"wb+")=NULL)(printf("不能翻開文件n");exit(0);for(i=0;i<count2;i+)if(fwrite(&s2i,sizeof(structstudent2),1,fp)!=1)printf("文件寫入錯誤n");printf("請輸入學(xué)生學(xué)號要求8位數(shù)字:,scanf("%s",filename);fputs(filename,fp);fputc('0',fp);printf(
31、-請輸入課程編號5位數(shù)字:");scanf("%s",filename);fputs(filename,fp);fputc('0',fp);printf(-請輸入學(xué)科的名稱:");scanf("%s",filename);fputs(filename,fp);fputc('o',fp);printf("請輸入成績成績?yōu)?100間的整數(shù):");scanf("%d”,filename);fputs(filename,fp);fputc('0',fp);print
32、f(-請輸入本門課的學(xué)分學(xué)分為15之間實型數(shù):,scanf("%d",filename);fputs(filename,fp);fclose(fp);elseif(m!=1&&m!=2)printf("輸入錯誤請選1或者2n");exit(0);voiddw()FILE*fp;charch;if(fp=fopen("d:student.txt”,"r")=NULL)printf("cannotopenfile.n");exit(0);while(!feof(fp)ch=fgetc(fp);printf("%c",ch);printf("n");fclose(fp);4.2運仃結(jié)果在函數(shù)開場時,初始化臨時構(gòu)造體數(shù)組,讓構(gòu)造體內(nèi)所有成績均為0.,讀取目標(biāo)文件,然后運行功能函數(shù),選擇需要的功能圖1初始頁面1.輸入學(xué)生的學(xué)號、XX、課程序號、課程名稱、成績、學(xué)分,并在輸入的時候檢查輸入的合法性,然后檢查構(gòu)造體數(shù)組內(nèi)是否有學(xué)號、XX、課程序號都一樣的重復(fù)數(shù)據(jù)。3彖.|*司司_IL'.小_'立|十.三借.4-*.JL圖2輸入界面-EitftFTt
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024鋪面租賃合同模板:適用于商業(yè)地產(chǎn)租賃3篇
- 二零二五年度鏟車租賃及運輸配送服務(wù)合同2篇
- 二零二四醫(yī)療期間勞動合同履行與員工職業(yè)規(guī)劃指導(dǎo)協(xié)議3篇
- 2024美團(tuán)外賣平臺商家合作合同版B版
- 2025年度工業(yè)用地承包租賃合同書3篇
- 2025年度標(biāo)準(zhǔn)夫妻離婚財產(chǎn)分割協(xié)議書3篇
- 2025年度勞動合同試用期員工培訓(xùn)與發(fā)展計劃合同3篇
- 《辦公用房租賃合同》范本
- 二零二五年度智能化工程合同執(zhí)行與風(fēng)險評估策略3篇
- 年度飛機及配件競爭策略分析報告
- SBT11229-2021互聯(lián)網(wǎng)舊貨交易平臺建設(shè)和管理規(guī)范
- 如何打造頂尖理財顧問團(tuán)隊
- 土壤農(nóng)化分析課件
- 小區(qū)大型團(tuán)購活動策劃
- NEC(新生兒壞死性小腸結(jié)腸炎)92273
- 2023年租賃風(fēng)控主管年度總結(jié)及下一年展望
- 開關(guān)插座必看的七個安全隱患范文
- 高分子成型加工課件
- 消防救援-低溫雨雪冰凍惡劣天氣條件下災(zāi)害防范及救援行動與安全
- 硅石項目建議書范本
- 概率論在金融風(fēng)險評估中的應(yīng)用研究
評論
0/150
提交評論