第一篇:大學(xué)C語(yǔ)言課程設(shè)計(jì)之信息發(fā)布平臺(tái)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)之信息發(fā)布平臺(tái) 1程序測(cè)試
進(jìn)入程序主界面,選擇3
選擇1,可以查看信息,查看全部信息。
發(fā)表評(píng)論,選擇4
并且同時(shí)保存文件
查看評(píng)論,選擇2
保存信息,提示保存該信息。
刪除信息,選擇5 1
附錄1 程序源代碼
#include
struct information {
char
nId[10];
//信息編號(hào)
char
szName[20];
//發(fā)布者姓名
char szTime[21];
//信息時(shí)間
char
szText[80];
//信息內(nèi)容
} I[A];
//定義結(jié)構(gòu)體變量I[A]
struct comment { char num2[10];
//被評(píng)論的信息編號(hào)
char nID[10];
//評(píng)論編號(hào)
char szName[15];
//評(píng)論者姓名
char szTime[21];
//評(píng)論時(shí)間
char szText[80];
//評(píng)論內(nèi)容
struct comment *next;
//定義鏈表
} C[A];
/****************************************************** 功能:獲取系統(tǒng)當(dāng)前時(shí)間
輸入:待存入時(shí)間的數(shù)組或字符串指針 輸出:存入時(shí)間的數(shù)組或字符串指針
******************************************************/ char * getCurTime(char szTime[]){
time_t now;
struct tm *pTime;
time(&now);
pTime = localtime(&now);
sprintf(szTime,“%04d-%02d-%02d %02d:%02d:%02d”,(1900 + pTime->tm_year),(1 + pTime->tm_mon),pTime->tm_mday,pTime->tm_hour,pTime->tm_min,pTime->tm_sec);
return szTime;
}
int i,long_ifm,long_cmt;char ch;void save(){ FILE *fp;if((fp=fopen(“information.txt”,“w”))!=NULL){
for(i=0;i { fprintf(fp,“t%st%st%st%stn”,I[i].nId,I[i].szName,I[i].szTime,I[i].szText); } fclose(fp);} if((fp=fopen(“comment.txt”,“w”))!=NULL){ for(i=0;i { fprintf(fp,“t%st%st%st%st%stn”,C[i].nID,C[i].szName,C[i].szTime,C[i].szText,C[i].num2); } fclose(fp);} } void load(){ FILE *fp;if((fp=fopen(“information.txt”,“r”))!=NULL){ i=0; while(!feof(fp)) { fscanf(fp,“t%st%st%st%stn”,&I[i].nId,&I[i].szName,&I[i].szTime,&I[i].szText); if(!feof(fp)) i++; } long_ifm=i; fclose(fp);} if((fp=fopen(“comment.txt”,“r”))!=NULL){ i=0; while(!feof(fp)) { fscanf(fp,“t%st%st%st%st%stn”,&C[i].nID,&C[i].szName,&C[i].szTime,&C[i].szText,&C[i].num2); if(!feof(fp)) i++; } long_cmt=i; fclose(fp);} } int findInfomation(char s[]){ int m=0; for(;m if(strcmp(I[m].nId,s)==0 && i!=m) return 1; return 0;} void showInfomation(){ printf(“t信息編號(hào)t發(fā)布者姓名t信息時(shí)間t信息內(nèi)容tn”);for(i=0;i printf(“t%st%st%st%stn”,I[i].nId,I[i].szName,I[i].szTime,I[i].szText);} void showComment() { char n[10]={0},s[10]={0}; printf(“請(qǐng)輸入信息編號(hào):n”); gets(s); if(findInfomation(s)== 1)strcpy(n,s); else { while(findInfomation(n)!= 1) { printf(“請(qǐng)重新輸入信息編號(hào):n”); gets(s); strcpy(n,s); } } printf(“t評(píng)論編號(hào)t評(píng)論者姓名t評(píng)論時(shí)間t評(píng)論內(nèi)容t被評(píng)編號(hào)tn”); for(i=0;i { {printf(“t%st%st%st%st%stn”,C[i].nID,C[i].szName,C[i].szTime,C[i].szText,C[i].num2);} } } void addInfomation(){ for(i=long_ifm;i printf(“請(qǐng)輸入信息編號(hào):n”); gets(I[i].nId); while(findInfomation(I[i].nId)== 1) { printf(“信息編號(hào)重復(fù),請(qǐng)重新輸入:n”); printf(“請(qǐng)輸入信息編號(hào):n”); gets(I[i].nId); } printf(“請(qǐng)輸入發(fā)布者姓名:n”); gets(I[i].szName); printf(“信息時(shí)間為:n 系統(tǒng)當(dāng)前時(shí)間n”); getCurTime(I[i].szTime); printf(“請(qǐng)輸入信息內(nèi)容:n”); gets(I[i].szText); long_ifm++; printf(“一條信息發(fā)布完成,是否繼續(xù)發(fā)布下一條信息?(y/n):”); while(1) { ch=getchar(); getchar(); if(ch=='y' || ch=='Y' || ch=='n' || ch=='N') break; else printf(“輸入錯(cuò)誤請(qǐng)重新輸入:n”); } if(ch=='n' || ch=='N') break;} save();printf(“發(fā)布成功!并已保存到文件。n”); } int findComment(char s[]){ int m=0; for(;m if(strcmp(C[m].nID,s)==0 && i!=m) return 1; return 0;} void addComment(){ char s[20]; printf(“請(qǐng)輸入要評(píng)論信息編號(hào):n”);gets(s); for(i=0;i if(strcmp(I[i].nId,s)==0) break;if(i==long_ifm){ printf(“對(duì)不起!你輸入的信息編號(hào)不存在。n”); return;} i=long_cmt;printf(“請(qǐng)輸入評(píng)論編號(hào):n”);gets(C[i].nID);while(findComment(C[i].nID)== 1){ printf(“評(píng)論編號(hào)重復(fù),請(qǐng)重新輸入:n”); printf(“請(qǐng)輸入評(píng)論編號(hào):”); gets(C[i].nID);} printf(“請(qǐng)輸入評(píng)論者姓名:n”);gets(C[i].szName);printf(“評(píng)論時(shí)間為:n 系統(tǒng)當(dāng)前時(shí)間n”);getCurTime(C[i].szTime);printf(“請(qǐng)輸入評(píng)論內(nèi)容:n”);gets(C[i].szText);long_cmt++;save();printf(“評(píng)論成功!并已保存到文件。n”);} void delInfomation(){ char s[20]; printf(“請(qǐng)輸入要?jiǎng)h除的信息編號(hào):”);gets(s); for(i=0;i if(strcmp(I[i].nId,s)==0) break;if(i==long_ifm){ printf(“對(duì)不起!你輸入的信息編號(hào)不存在。n”); return;} printf(“ 您將刪除以下信息:n”);printf(“t信息編號(hào)t發(fā)布者姓名t信息時(shí)間t信息內(nèi)容tn”); printf(“t%st%st%st%stn”,I[i].nId,I[i].szName,I[i].szTime,I[i].szText);printf(“是否確定刪除這條信息?(y/n):”);while(1){ ch=getchar(); getchar(); if(ch=='y' || ch=='Y' || ch=='n' || ch=='N') break; else printf(“輸入錯(cuò)誤請(qǐng)重新輸入:”);} if(ch=='n' || ch=='N'){ printf(“信息未刪除!n”);} else { I[i]=I[long_ifm-1]; long_ifm--; save(); printf(“刪除成功,并已保存到文件!n”);} } void delComment(){ char s[20]; printf(“請(qǐng)輸入要?jiǎng)h除的評(píng)論編號(hào):”);gets(s); for(i=0;i if(strcmp(C[i].nID,s)==0) break;if(i==long_cmt){ printf(“對(duì)不起!你輸入的評(píng)論編號(hào)不存在。n”); return;} printf(“ 您將刪除以下信息:n”);printf(“t評(píng)論編號(hào)t評(píng)論者姓名t評(píng)論時(shí)間t評(píng)論內(nèi)容t被評(píng)編號(hào)tn”); printf(“t%st%st%st%st%stn”,C[i].nID,C[i].szName,C[i].szTime,C[i].szText,C[i].num2);printf(“是否確定刪除這條信息?(y/n):”);while(1){ ch=getchar(); getchar(); if(ch=='y' || ch=='Y' || ch=='n' || ch=='N') break; else printf(“輸入錯(cuò)誤請(qǐng)重新輸入:”);} if(ch=='n' || ch=='N'){ printf(“評(píng)論未刪除!n”);} else { I[i]=I[long_ifm-1]; long_cmt--; save(); printf(“評(píng)論刪除成功,并已保存到文件!n”);} } int menu(){ int c; printf(“******************************************************n”); printf(“ n”);printf(“ 信息發(fā)布平臺(tái) n”); printf(“ 1.查看信息 n”); printf(“ 2.查看評(píng)論 n”); printf(“ 3.發(fā)布信息 n”); printf(“ 4.發(fā)表評(píng)論 n”); printf(“ 5.刪除信息 n”); printf(“ 6.刪除評(píng)論 n”); printf(“ 0.退出系統(tǒng) n”);printf(“ n”);printf(“******************************************************n”);printf(“nn”); printf(“請(qǐng)選擇(0-6):”);scanf(“%d”,&c);getchar();return c;} main(){ int k;load();while(1){ k=menu(); switch(k) { case 1: showInfomation();break; case 2: showComment();break; case 3: addInfomation();break; case 4: addComment();break; case 5: delInfomation();break; case 6: delComment();break; case 0: exit(0); } } } C語(yǔ)言課程設(shè)計(jì) 飛機(jī)空戰(zhàn)小游戲 一、實(shí)驗(yàn)環(huán)境 運(yùn)行系統(tǒng) WINDOWSXP 編程工具C++6.0 地點(diǎn) 程序設(shè)計(jì)與仿真實(shí)驗(yàn)室 桌號(hào)19電腦IP地址221.12.10.218 二、實(shí)驗(yàn)?zāi)康暮鸵?實(shí)驗(yàn)?zāi)康模?/p> (1)使學(xué)生進(jìn)一步理解和掌握課堂上所學(xué)各種基本抽象數(shù)據(jù)類型的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和操作算法。 (2)使學(xué)生進(jìn)一步掌握程序設(shè)計(jì)、編寫、調(diào)試能力。(3)使學(xué)生了解軟件開(kāi)發(fā)的基本步驟和內(nèi)容。 實(shí)驗(yàn)要求::飛機(jī)空戰(zhàn)小游戲。功能要求: 1)有主菜單界面,能讓用戶選擇開(kāi)始、退出、難度等級(jí)、查看用戶積分功能; 2)飛機(jī)能通過(guò)A、S、D、W或上下左右鍵控制移動(dòng)方向,使用空格鍵發(fā)射子彈; 3)屏幕隨機(jī)出現(xiàn)從上到下的敵方子彈; 4)當(dāng)打中敵方子彈時(shí),積分加1; 5)當(dāng)敵方子彈打正飛機(jī)時(shí),游戲結(jié)束,并提示用戶是否保存記錄(記錄包括用戶名及積分值),保存后退回到主菜單; 6)當(dāng)選擇主菜單中的“查看用戶積分”選項(xiàng)時(shí),進(jìn)入第二級(jí)菜單,用戶可查看全部用戶積分記錄,也可僅查看積分最高者,也可根據(jù)用戶輸入的用戶名查看;(此處要求使用到鏈表,用于臨時(shí)存儲(chǔ)用戶積分?jǐn)?shù)據(jù));(對(duì)鏈表的查找操作) 7)所有用戶積分信息使用文件進(jìn)行永久性保存; 8)用戶選擇“難度等級(jí)”,可設(shè)定游戲不同難度,難度越高,出現(xiàn)敵方子彈數(shù)目及間隔將增加。 三、實(shí)驗(yàn)內(nèi)容和結(jié)果 系統(tǒng)總體設(shè)計(jì):編寫出c語(yǔ)言代碼,運(yùn)行程序,并調(diào)試程序,最終實(shí)現(xiàn)游戲的功能。本程序主要包含游戲控制函數(shù)、設(shè)置是否繼續(xù)游戲函數(shù)、輸出函數(shù)、子彈移動(dòng)函數(shù)、敵機(jī)移動(dòng)函數(shù)、設(shè)置函數(shù)、菜單函數(shù)等7個(gè)主要函數(shù),包含了不同的功能,對(duì)原來(lái)的程序作出了很大的改進(jìn),用到的主要語(yǔ)句有if語(yǔ)句,for語(yǔ)句、while語(yǔ)句、printf語(yǔ)句、switch語(yǔ)句等等,添加了顏色函數(shù)。 系統(tǒng)模塊設(shè)計(jì):包含游戲控制函數(shù)、設(shè)置是否繼續(xù)游戲函數(shù)、輸出函數(shù)、子彈移動(dòng)函數(shù)、敵機(jī)移動(dòng)函數(shù)、設(shè)置函數(shù)、菜單函數(shù)等7個(gè)主要函數(shù),其中是否繼續(xù)游戲函數(shù),菜單函數(shù)主要運(yùn)用了SWITCH語(yǔ)句和If語(yǔ)句,子彈移動(dòng)函數(shù),敵機(jī)移動(dòng)函數(shù)通過(guò)數(shù)組內(nèi)各數(shù)值的變化來(lái)完成,設(shè)置函數(shù)主要用PRINTF和SCANF語(yǔ)句進(jìn)行各項(xiàng)數(shù)值的設(shè)置,游戲控制函數(shù)使用if函數(shù),kbhit()函數(shù),switch函數(shù)組合控制數(shù)組中飛機(jī)進(jìn)行的移動(dòng)和圖案的變換。最后用打印數(shù)組的方式打印出數(shù)組變換。最后運(yùn)用SWITCH函數(shù)進(jìn)行各項(xiàng)菜單內(nèi)容的操作。 實(shí)驗(yàn)的測(cè)試和結(jié)果: 四、實(shí)驗(yàn)中的問(wèn)題及心得 通過(guò)本次試驗(yàn),使我對(duì)c語(yǔ)言有了更深一層次的了解,對(duì)for語(yǔ)句、while語(yǔ)句、printf語(yǔ)句、switch語(yǔ)句、顏色函數(shù)等等的了解及使用更加詳細(xì)了一些,明白了這些語(yǔ)句的用法,明確了c語(yǔ)言的使用環(huán)境,功能。同時(shí)我了解到了一些方法來(lái)實(shí)現(xiàn)一些C語(yǔ)言作為一個(gè)基礎(chǔ)性編程語(yǔ)言是我們?cè)谝院缶幊讨胁豢苫蛉钡恼Z(yǔ)言,使用率肯定會(huì)進(jìn)一步增高。掌握了c語(yǔ)言就相當(dāng)于掌握了一門技術(shù),同時(shí)c語(yǔ)言相對(duì)而言簡(jiǎn)單一些,更容易理解。自己雖然對(duì)這個(gè)小游戲進(jìn)行一部分的改造,但是我也感覺(jué)這只是其中的很很小的一部分,肯定會(huì)有更加強(qiáng)大的功能等待著我們?nèi)ジ纳啤?/p> 同時(shí),我也發(fā)現(xiàn)了自己很多的不足,需要進(jìn)一步加強(qiáng)這一方面的學(xué)習(xí),在數(shù)據(jù)結(jié)構(gòu)鏈表的使用上還很欠缺,無(wú)法使用鏈表進(jìn)行數(shù)據(jù)的讀取和輸入,還有在兩個(gè)程序的連接上還有困難,對(duì)于頭文件的理解不到位,鏈表的結(jié)構(gòu),定義,使用指針的方式??這些都需要提高。這些技能的欠缺導(dǎo)致了在 這個(gè)小游戲中無(wú)法順利完成有關(guān)用戶名和記錄的一些要求。?? 附錄:程序清單 #include void movebul(int [][N]);//子彈移動(dòng)函數(shù) void movepla(int [][N]);//敵機(jī)移動(dòng)函數(shù) void setting(void);//設(shè)置函數(shù) void menu();//菜單 int scr[50][N]={0},pl=9,width=15,speed=16,density=40,score=0,death=0,length=18,y=0,x=5,z=15,life=1,max=0;//全局變量:界面、我機(jī)初始位、界面寬度、敵機(jī)速度、敵機(jī)密度、得分、死亡,子彈,飛機(jī),敵機(jī)初始圖案,生命 char name[N];char first[N];void main(){ menu();getch();} void print(int a[][N])//輸出函數(shù) { int i,j;system(“cls”);for(i=0;i a[i][width-1]=4; for(j=0;j { if(a[i][j]==0)printf(“ ”); if((a[i][j]==1)&&(x<15))printf(“%c”,x);//輸出我機(jī)的符號(hào) if((a[i][j]==2)&&(z<35))printf(“%c”,z);//子彈 if((a[i][j]==3)&&(y<4))printf(“%c”,y+1);//輸出敵機(jī)符號(hào) if(i==1&&j==width-1)printf(“總積分:%d”,score);//顯示得分 if(i==2&&j==width-1)printf(“已經(jīng)死亡了%d 次,剩余 %d 條命”,death,life-death);//右上角顯示死亡次數(shù) if(i==3&&j==width-1)printf(“普通按鍵:AD控制左右飛行”); if(i==4&&j==width-1)printf(“ W 發(fā)射子彈”);if(i==5&&j==width-1)printf(“特殊按鍵:+-號(hào)加減敵機(jī)速度”);if(i==6&&j==width-1)printf(“ /*號(hào)單列敵機(jī)密度減小增大(均有限制)”); if(i==7&&j==width-1)printf(“VIP按鍵:X鍵變化飛機(jī)圖案,Y鍵變化敵機(jī)圖案”); if(i==8&&j==width-1)printf(“tZ鍵變化子彈圖案,P鍵增加生命(均有限制)”); if(i==9&&j==width-1)printf(“注意:向下移動(dòng)后按其他方向鍵飛機(jī)顯現(xiàn)”); } printf(“n”);} } void movebul(int a[][N]){ int i,j;for(i=0;i { if(i==0&&a[i][j]==2) a[i][j]=0; if(a[i][j]==2) { if(a[i-1][j]==3)//加分 { score+=1; printf(“7”); } a[i][j]=0,a[i-1][j]=2; } } } void movepla(int a[][N]){ int i,j;for(i=length-1;i>=0;i--)//從最后一行往上是為了避免把敵機(jī)直接沖出數(shù)組。 for(j=0;j if(i==length-1&&a[i][j]==3) a[i][j]=0;//消除敵機(jī),在最低層 if(a[i][j]==3)a[i][j]=0,a[i+1][j]=3;//敵機(jī)移動(dòng) } if(a[length-2][pl]==3&&a[length-1][pl]==1)death++;//死亡 } void continuegame()//繼續(xù)游戲 { printf(“用戶%s”,name);printf(“你的得分是%dn”,score);if(score==0)printf(“tttt 恭喜你刷新了最低記錄na”,score);if((score>0)&&(score<20)) printf(“tttt 回家再練 練吧na”,score);if(score>19) printf(“tttt 你真厲害 na”,score);printf(“游戲結(jié)束n”);printf(“按y鍵繼續(xù)游戲,空格鍵退出游戲(y/n)?n”);printf(“ttt”);switch(getch())//是否要繼續(xù)游戲 { case 'y': case 'Y':system(“cls”),death=0,score=0,life=1,x=5,y=0,z=15;menu();break;} } void setting(void)//設(shè)置函數(shù) { system(“cls”);//清屏 printf(“n 輸入游戲界面的大小(默認(rèn)3):1-10 ”);scanf(“%d”,&width);width=(width+1)*5;printf(“n 請(qǐng)輸入敵機(jī)密度大?。J(rèn)3):1-5 ”);scanf(“%d”,&density);density=(7-density)*10;printf(“n 輸入敵機(jī)的飛行速度大?。J(rèn)3):1-10 ”);scanf(“%d”,&speed);speed=(11-speed)*2;printf(“n 輸入我機(jī)的生命(默認(rèn)1):1-100 ”);scanf(“%d”,&life);printf(“n 輸入飛機(jī)的圖案(默認(rèn)1):1-2 ”);scanf(“%d”,&x);x=x+4;printf(“n 輸入子彈的圖案(默認(rèn)1):1-10 ”);scanf(“%d”,&z);z=z+14;printf(“n 輸入敵機(jī)的圖案(默認(rèn)1):1-3 ”);scanf(“%d”,&y);y=y-1;} void run(){ int i=0,j=0,k=0,b=0;printf(“請(qǐng)輸入用戶名:”);scanf(“%s”,name);printf(“您的用戶名是:%s”,name);if(getch()==27)setting();printf(“游戲說(shuō)明:按AWSD控制我機(jī)左右飛行,空格鍵發(fā)射子彈n特殊按鍵:-號(hào)敵機(jī)減速,+號(hào)敵機(jī)加速n特殊按鍵:/號(hào)單列敵機(jī)密度減小,*號(hào)單列敵機(jī)密度增大n”);printf(“VIP按鍵:X鍵變化飛機(jī)圖案,Y鍵變化敵機(jī)圖案ntZ鍵變化子彈圖案,P鍵增加生命n”);printf(“任意鍵開(kāi)始游戲,esc鍵進(jìn)入游戲設(shè)置n”);printf(“游戲時(shí)也可更改游戲設(shè)置任意鍵開(kāi)始nn”);system(“color a”);//設(shè)置背景顏色 if(getch()==27)setting();scr[length-1][pl]=1;//我方飛機(jī)初始位置 scr[0][5]=3;while(death { if(kbhit()) switch(getch())//控制設(shè)置按鍵 { case 'a': case 'A':if(pl>0) scr[length-1][pl]=0,scr[length-1][--pl]=1;break; case 'd': case 'D':if(pl scr[length-1][pl]=0,scr[length-1][++pl]=1;break;case 'W': case 'w':if(length>10) { scr[length-1][pl]=0,scr[length-2][pl]=1; length=length-1; };break; case '+':if(speed>2) { speed=speed-2; };break; case '-':speed=speed+1;break;case '*':if(density>5) { density=density-5; };break; case '/':density=density+10;break; case 'l':if(width<40) { width=width+2; };break; case 's':if(length<30) { scr[length-1][pl]=0; length=length+1; scr[length-1][pl]='5'; };break; case ' ':scr[length-2][pl]=2;break; case 'y':y=(y+1)%4;break; case 'x':x=(x)%2+5;break; case 'z':if(z<25) { z=z+1; } else z=15;break; case 'p':life=life+1;break;} if(++j%density==0)//控制生產(chǎn)敵機(jī)的速度 { j=0; srand(time(NULL));//產(chǎn)生隨機(jī)數(shù) scr[0][rand()%width]=3; scr[rand()%3][rand()%(width+2)]=3; scr[rand()%2][rand()%(width+1)]=3; scr[rand()%4][rand()%(width+4)]=3;//生成隨機(jī)敵方飛機(jī) } if(++i%speed==0)//控制敵機(jī)移動(dòng)速度,相對(duì)于子彈移動(dòng)速度 movepla(scr);//飛機(jī)移動(dòng) movebul(scr);//子彈移動(dòng) print(scr);//繪制游戲畫面 } if(score>=max){ max=score; for(i=0;i { name[i]=first[i]; } } if(score score=score;} continuegame();getch();} void menu(){ printf(“n1:游戲設(shè)置n2:游戲說(shuō)明n3:開(kāi)始游戲n4:查看用戶信息n5:退出游戲n”); switch(getch()){ case '1': setting();menu();break; case '2':printf(“游戲說(shuō)明:按AWSD控制我機(jī)左右飛行,空格鍵發(fā)射子彈n特殊按鍵:-號(hào)敵機(jī)減速,+號(hào)敵機(jī)加速n特殊按鍵:/號(hào)單列敵機(jī)密度減小,*號(hào)單列敵機(jī)密度增大n”);printf(“VIP按鍵:X鍵變化飛機(jī)圖案,Y鍵變化敵機(jī)圖案ntZ鍵變化子彈圖案,P鍵增加生命n”);printf(“ 任意鍵開(kāi)始游戲,esc鍵進(jìn)入游戲設(shè)置n”);printf(“ 游戲時(shí)也可更改游戲設(shè)置”);menu();break; case '3':run();menu();break; case '4':seerecord();menu();break; case '5':exit(0);break;default:menu();break;} } seerecord(){ printf(“最高紀(jì)錄為%s,%d”,first[N],max);} C語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì) 設(shè)計(jì)題目:專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):2010級(jí)計(jì)算機(jī)二班組長(zhǎng)姓名:馬得才【P101712944】成員姓名:孫麗欣【P101712927】 趙廣峰【P101712926】 遲成凱【P101712928】 冶成意【P101712930】 2010年5月20日 題目: 指導(dǎo)教師:普措才仁 一、案例需求 二、案例分析 三、案例設(shè)計(jì) 四、案例實(shí)現(xiàn) 五、參考文獻(xiàn) #include int num1; char name1[20]; int score; int nelepeo;//課程已選人數(shù) int Melepeo;//課程人數(shù)上限 struct couse * next;}; int student(); //學(xué)生登陸 int teacher(); //教師登陸 struct student//學(xué)生信息結(jié)構(gòu)體 { int num2; char name2[20]; int nelenum[50];//已選課程編號(hào) int nelen;//已選課程數(shù)量 struct student * next;}; void Ms(){ for(kk1=0;kk1<1100;kk1++) for(kk2=0;kk2<1200;kk2++) for(kk3=0;kk3<1200;kk3++);} void keyboardc()//錄入課程子函數(shù)(從鍵盤錄入){ void intoc();struct couse *p1,*p2;N1=0;p1=p2=(struct couse*)malloc(sizeof(struct couse));printf(“n課程編號(hào):”);fflush(stdin);scanf(“%d”,&p1->num1);printf(“n課程名稱:”);scanf(“%s”,p1->name1);printf(“n學(xué)分:”);scanf(“%d”,&p1->score);printf(“n課程人數(shù)上限:”);scanf(“%d” ,&p1->Melepeo);printf(“ntttt輸入成功!”);p1->nelepeo=0;head1=NULL;while(p1->num1!=0){ N1=N1+1; if(N1==1)head1=p1; else p2->next=p1; p2=p1; p1=(struct couse *)malloc(sizeof(struct couse)); printf(“n-----------------------------”); printf(“n課程編號(hào):(輸入0結(jié)束)”);scanf(“%d”,&p1->num1);printf(“n課程名稱:”);scanf(“%s”,p1->name1);printf(“n學(xué)分:”);scanf(“%d”,&p1->score);printf(“n課程人數(shù)上限:”);scanf(“%d” ,&p1->Melepeo); p1->nelepeo=0; printf(“ntttt輸入成功!”);} p2->next=NULL;intoc();} void filec()//錄入鍵盤子函數(shù)(從文件錄入){ void intoc(); FILE * fp; char filepath[20]; struct couse *p1,*p2; N1=0; printf(“輸入要讀入的文件路徑:”); getchar(); gets(filepath); if((fp=fopen(filepath,“r”))==NULL) { printf(“找不到%s文件!n”,filepath); exit(0); } p1=p2=(struct couse*)malloc(sizeof(struct couse)); fscanf(fp,“%d%s%d%d%d”,&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo); head1=NULL; while(!feof(fp)) { N1=N1+1; if(N1==1)head1=p1; else p2->next=p1; p2=p1; p1=(struct couse *)malloc(sizeof(struct couse)); fscanf(fp,“%d%s%d%d%d”,&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo); } p2->next=NULL; intoc();} void inputc()//錄入課程主函數(shù) { int i; printf(“ttt錄入課程信息n”); printf(“n1.從鍵盤錄入n”); printf(“2.從文件錄入n”); printf(“3.返回主菜單n”); printf(“請(qǐng)選擇(1~3):n”); scanf(“%d”,&i); switch(i) { case(1):keyboardc();break; case(2):filec();break; case(3):system(“cls”);return;break; //return } } void insertc(struct couse *incouse)//課程管理子函數(shù)(增加課程){ void intoc(); struct couse *p0,*p1,*p2; p1=head1; p0=incouse; if(head1==NULL) { head1=p0; p0->next=NULL; } else { while((p0->num1 > p1->num1)&&(p1->next!=NULL)) { p2=p1; p1=p1->next; } if(p0->num1 <= p1->num1) { if(head1==p1)head1=p0; else p2->next=p0; p0->next=p1; } else { p1->next=p0; p0->next=NULL; } } N1=N1+1; intoc();} void delc(int num1)//課程管理子函數(shù)(刪除課程){ void intoc(); struct couse *p1,*p2; if(head1==NULL) { printf(“n沒(méi)有課程,無(wú)法刪除!n”); goto end; } p1=head1; while(num1!=p1->num1 && p1->next!=NULL) { p2=p1; p1=p1->next; } if(num1==p1->num1) { if(p1==head1)head1=p1->next; else p2->next=p1->next; printf(“已刪除該編號(hào)課程!n”); N1=N1-1; } else printf(“無(wú)該編號(hào)的課程!n”); end:; intoc();} void managementc()//課程管理主函數(shù) { struct couse * incouse; struct couse *p1; int i,num1; printf(“ttt課程管理n”); printf(“1.新增課程n”); printf(“2.刪除課程n”); printf(“3.返回主菜單n”); printf(“請(qǐng)選擇(1~3):n”); scanf(“%d”,&i); switch(i) { case(1): { incouse=(struct couse *)malloc(sizeof(struct couse)); printf(“n課程編號(hào):”); fflush(stdin); scanf(“%d”,&p1->num1); printf(“n課程名稱:”); scanf(“%s”,p1->name1); printf(“n學(xué)分:”); scanf(“%d”,&p1->score); printf(“n課程人數(shù)上限:”); scanf(“%d” ,&p1->Melepeo); printf(“ntttt輸入成功!”); incouse->nelepeo=0; insertc(incouse); break; } case(2): { printf(“請(qǐng)輸入要?jiǎng)h除課程的編號(hào):n”); scanf(“%d”,&num1); delc(num1); break; } case(3):system(“cls”);return;break; } } void keyboards()//錄入學(xué)生信息子函數(shù)(從鍵盤錄入){ void intos(); int i; struct student *p1,*p2; N2=0; p1=p2=(struct student *)malloc(sizeof(struct student)); printf(“n學(xué)生學(xué)號(hào):”); scanf(“%d”,&p1->num2); printf(“n學(xué)生姓名:”); scanf(“%s”,p1->name2); p1->nelen=0; for(i=0;i<50;i++)p1->nelenum[i]=0; head3=NULL; while(p1->num2!=0) { N2=N2+1; if(N2==1)head3=p1; else p2->next=p1; p2=p1; p1=(struct student *)malloc(sizeof(struct student)); //return printf(“n學(xué)生學(xué)號(hào):(輸入0結(jié)束?。?; scanf(“%d”,&p1->num2); printf(“n學(xué)生姓名:”); scanf(“%s”,p1->name2); p1->nelen=0; for(i=0;i<50;i++)p1->nelenum[i]=0; } p2->next=NULL; intos();return;} void files()//錄入學(xué)生信息子函數(shù)(從文件錄入){ int i=0; FILE * fp; char filepath[20]; struct student *p1,*p2; N2=0; printf(“輸入要讀入的文件路徑:”); getchar(); gets(filepath); if((fp=fopen(filepath,“r”))==NULL) { printf(“找不到%s文件!n”,filepath); exit(0); } p1=p2=(struct student*)malloc(sizeof(struct student)); fread(p1,sizeof(struct student),1,fp); head3=NULL; while(!feof(fp)) { i=0; N2=N2+1; if(N2==1)head3=p1; else p2->next=p1; p2=p1; p1=(struct student *)malloc(sizeof(struct student)); fread(p1,sizeof(struct student),1,fp); } p2->next=NULL;} void inputs()//錄入學(xué)生信息主函數(shù) { int i; printf(“nttt錄入學(xué)生信息n”); printf(“n1.從鍵盤錄入n”); printf(“2.從文件錄入n”); printf(“3.返回主菜單n”); printf(“請(qǐng)選擇(1~3):n”); scanf(“%d”,&i); switch(i) { case(1):keyboards();break; case(2):files();break; case(3):system(“cls”);return;break; } return 0;} void inserts(struct student * incouse)//學(xué)生信息管理子函數(shù)(填加學(xué)生信息){ void intos(); struct student *p0,*p1,*p2; p1=head3; p0=incouse; if(head3==NULL) { head3=p0; p0->next=NULL; } else { while((p0->num2 > p1->num2)&&(p1->next!=NULL)) { p2=p1; p1=p1->next; } if(p0->num2 <= p1->num2) { if(head3==p1)head3=p0; else p2->next=p0; p0->next=p1; } else { //return p1->next=p0; p0->next=NULL; } } N2=N2+1; intos();} void dels(int num2)//學(xué)生信息管理子函數(shù)(刪除學(xué)生信息){ void intos(); struct student *p1,*p2; if(head3==NULL) { printf(“n沒(méi)有該學(xué)生信息,無(wú)法刪除!n”); goto end; } p1=head3; while(num2!=p1->num2 && p1->next!=NULL) { p2=p1; p1=p1->next; } if(num2==p1->num2) { if(p1==head3)head3=p1->next; else p2->next=p1->next; printf(“已刪除該學(xué)生信息!n”); N2=N2-1; } else printf(“無(wú)該學(xué)號(hào)的學(xué)生!n”); intos(); end:;} void managements()//學(xué)生信息管理主函數(shù) { struct student * incouse; int i,num2; printf(“ttt學(xué)生信息管理n”); printf(“1.新增學(xué)生信息n”); printf(“2.刪除學(xué)生信息n”); printf(“3.返回主菜單n”); printf(“請(qǐng)選擇(1~3):n”); scanf(“%d”,&i); switch(i) { case(1): { incouse=(struct student *)malloc(sizeof(struct student)); incouse->nelen=0; incouse->nelenum[0]=0; printf(“學(xué)生學(xué)號(hào)t學(xué)生姓名n”); scanf(“%d%s”,&incouse->num2,incouse->name2); inserts(incouse); break; } case(2): { printf(“請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào):n”); scanf(“%d”,&num2); dels(num2); break; } case(3):system(“cls”);return;break; //return } } void elect(struct student * s)//選課 { void intos(); struct couse * p; int num1,i; printf(“請(qǐng)輸入要選課的編號(hào):n”); scanf(“%d”,&num1); for(i=0;s->nelenum[i]!=0;i++); s->nelenum[i]=num1; (s->nelen)++; p=head1; while(p->num1!=num1)p=p->next; (p->nelepeo)++; intos();} void cheak()//學(xué)生選課子函數(shù)(查詢可選課程){ char e; struct couse * c; struct student * s; int num2,i,j=0,t=0; printf(“請(qǐng)輸入你的學(xué)號(hào):”); scanf(“%d”,&num2); s=head3; while((s->num2!=num2)&&(s->next!=NULL))s=s->next; if(s->num2!=num2) { printf(“不存在你的信息,請(qǐng)進(jìn)入主菜單錄入你的信息!n”); goto end; } c=head1; printf(“你的可選課程編號(hào):n”); while(c!=NULL) { for(t=0,i=0;s->nelenum[i]!=0;i++) { if(c->num1==s->nelenum[i])t=1; } if(t==0 &&(c->nelepeo!=c->Melepeo)) { printf(“%dn”,c->num1); j++; } c=c->next; } if(j==0) { printf(“你已選完所有課程,無(wú)法再多選!n”); goto end; } printf(“選課(y/n)?:n”); getchar(); e=getchar(); i=0; while((e=='y')||(e=='Y')) { elect(s); printf(“繼續(xù)選課(y/n)?:n”); getchar(); e=getchar(); } end:;} void back(struct student * p)//退課 { void intos(); struct couse * p1; int num1,i,j; printf(“請(qǐng)輸入你要退掉的課程編號(hào):n”); scanf(“%d”,&num1); p1=head1; while(p1->num1!=num1)p1=p1->next; for(i=0;p->nelenum[i]!=num1;i++); for(j=i;p->nelenum[j]!=0;j++)p->nelenum[j]=p->nelenum[j+1]; p->nelenum[--j]=0; (p1->nelepeo)--; printf(“退課成功!n”); intos();} void hcheak()//學(xué)生選課子函數(shù)(查詢已選課程){ char c; struct couse * p0; struct student * p; int num2,i,f=0; printf(“請(qǐng)輸入學(xué)號(hào):n”); scanf(“%d”,&num2); p=head3; while(p->num2!=num2 && p!=NULL)p=p->next; if(p==NULL) { printf(“不存在你的信息,請(qǐng)回主菜單錄入信息:n”); goto end; } printf(“已選課程編號(hào):n”); if(p->nelenum[0]==0) { printf(“你還沒(méi)選課!n”); goto end; } for(i=0;p->nelenum[i]!=0;i++) { printf(“%dn”,p->nelenum[i]); p0=head1; while(p0->num1!=p->nelenum[i])p0=p0->next; f=f+p0->score; } printf(“總學(xué)分:%dn”,f); printf(“是否進(jìn)行退課(y/n)?”); getchar(); c=getchar(); while((c=='y')||(c=='Y')) { back(p); printf(“繼續(xù)退課(y/n)?”); getchar(); c=getchar(); (p->nelen)--; } end:;} void elective()//學(xué)生選課主函數(shù) { int i; printf(“ttt學(xué)生選課n”); printf(“1.查詢可選課程n”); printf(“2.查詢已選課程n”); printf(“3.返回主菜單n”); printf(“請(qǐng)輸入(1~3):n”); scanf(“%d”,&i); switch(i) { case(1):cheak();break; case(2):hcheak();break; case(3): system(“cls”);return;break; // return } } void listc()//輸出課程信息 { struct couse * p; p=head1; printf(“課程編號(hào) 課程名稱 學(xué)分 課程已選人數(shù) 課程人數(shù)上限n”); while(p!=NULL) { printf(“%-8d%10s%6d%8d%12dn”,p->num1,p->name1,p->score,p->nelepeo,p->Melepeo); p=p->next; } } void lists()//輸出學(xué)生信息 { struct student * p; p=head3; printf(“學(xué)生學(xué)號(hào) 學(xué)生姓名 已選課程數(shù)量n”); while(p!=NULL) { printf(“%-4d %10s %6dn”,p->num2,p->name2,p->nelen); p=p->next; } } void intoc()//存儲(chǔ)課程信息 { FILE * fp; struct couse * p; char filepath[30]; if((fp=fopen(“課程信息.dat”,“a+”))==NULL) { printf(“n保存失敗!”); exit(0); } p=head1; while(p!=NULL) { fprintf(fp,“%d %s %d %d %dn”,p->num1,p->name1,p->score,p->nelepeo,p->Melepeo); p=p->next; } fclose(fp); printf(“課程信息已保存成功!n”);} void intos()//存儲(chǔ)學(xué)生信息 { int i; FILE * fp; struct student * p; char filepath[30]; if((fp=fopen(“學(xué)生信息.dat”,“a+”))==NULL) { printf(“n保存失敗!”); exit(0); } p=head3; while(p!=NULL) { fwrite(p,sizeof(struct student),1,fp); p=p->next; } fclose(fp); printf(“學(xué)生信息已保存成功!n”); printf(“ntttt選擇菜單:”); printf(“ntttt1.繼續(xù)添加ntttt2.返回主菜單:”); printf(“請(qǐng)選擇:”); scanf(“%d”,&i); switch(i) { case 1:inputs();break; case 2:teacher();break; default:printf(“n輸入有誤!n”);} } void store()//信息主函數(shù) { int i; printf(“tt系統(tǒng)信息查看及存儲(chǔ)n”); printf(“1.查看課程信息n”); printf(“2.查看學(xué)生信息n”); printf(“3.返回主菜單n”); printf(“請(qǐng)輸入(1~3):n”); scanf(“%d”,&i); switch(i) { case(1):listc();break; case(2):lists();break; case(3):system(“cls”);return;break; } } int main()//主函數(shù) //retuen { int i; FILE *fp; printf(“nttt歡迎使用學(xué)生選課系統(tǒng)!n”); printf(“n請(qǐng)選擇菜單:”); printf(“ntttt1.教師登陸ntttt2.學(xué)生登陸n”); printf(“請(qǐng)選擇:”); scanf(“%d”,&i); switch(i) { case 1:teacher();break; case 2:student();break; default:printf(“輸入有誤!”); } } int student() { int i; printf(“ntttt1.學(xué)生選課n”); printf(“ntttt2.系統(tǒng)信息查看及存儲(chǔ)n”); printf(“ntttt3.退出系統(tǒng)n”); printf(“請(qǐng)選擇:”); scanf(“%d”,&i); switch(i) { case 1: { system(“cls”); elective(); break; } case 2: { system(“cls”); store(); break; } default:printf(“輸入有誤!”); } } int teacher() { FILE *fp; int i; printf(“菜單:n”); printf(“1.錄入課程信息n”); printf(“2.課程管理n”); printf(“3.錄入學(xué)生信息n”); printf(“4.學(xué)生信息管理n”); printf(“5.系統(tǒng)信息查看n”); printf(“6.退出系統(tǒng)n”); if((fp=fopen(“課程信息.dat”,“rb”))==NULL) { printf(“n打開(kāi)系統(tǒng)文件失??! n”); //fp=fopen(“信息.dat”,“rb”)); // } // if(feof(fp)) // { printf(“n還未添加課程信息,請(qǐng)?zhí)砑诱n程信息!n”); inputc(); } while(!feof(fp)) { emp1=(struct couse*)malloc(sizeof(struct couse)); if(emp1==NULL) { printf(“n分配內(nèi)存失??!n”); return; } fread(emp1,sizeof(struct couse),1,fp); if(feof(fp))break; if(head1==NULL) { head1=emp1; head2=emp1; } else{ head2->next=emp1; head2=emp1; } head2->next=NULL; } fclose(fp); fp==NULL; if((fp=fopen(“學(xué)生信息.dat”,“rb”))==NULL) printf(“n打開(kāi)系統(tǒng)文件失??!n”); // //if(feof(fp)==1) // { printf(“還未添加學(xué)生信息,請(qǐng)?zhí)砑訉W(xué)生信息!”); inputs(); while(!feof(fp)) { emp1=(struct student*)malloc(sizeof(struct student)); if(emp2==NULL) { printf(“n分配內(nèi)存失??!n”); return; } fread(emp2,sizeof(struct student),1,fp); if(feof(fp))break; if(head3==NULL) { head3=emp2; head4=emp2; } else{ head4->next=emp2; head4=emp2; } head4->next=NULL; } fclose(fp); fp==NULL; printf(“n請(qǐng)輸入菜單選項(xiàng)(1~6):n”); scanf(“%d”,&i); switch(i) { case(1): { system(“cls”); inputc(); break; } case(2): { system(“cls”); managementc(); break; } case(3): { system(“cls”); inputs(); break; } case(4): { system(“cls”); managements(); break; } case(5): { system(“cls”); store(); break; } case(6): { system(“cls”); printf(“感謝使用本系統(tǒng)!nn再見(jiàn)!n”); } } return 1; } 前言 讓自己所學(xué)的知識(shí)應(yīng)用于實(shí)際生活中,理論聯(lián)系生活,學(xué)以致用,我們將更好服務(wù)于民。我們是新一代的年輕人,要想將來(lái)在社會(huì)上更好的立足,就必須讓自己強(qiáng)大起來(lái),努力的學(xué)習(xí)新東西,了解新事物,跟上時(shí)代的步伐,這樣我們才能與時(shí)俱進(jìn),不被社會(huì)所淘汰。C語(yǔ)言在大學(xué)里是一門很重要的課程,也是一門很實(shí)用的課程,學(xué)好C語(yǔ)言在當(dāng)今的信息時(shí)代是一個(gè)很好的敲門磚。而且,我們是電子信息工程專業(yè)的,更應(yīng)該學(xué)好C語(yǔ)言,這對(duì)我們以后走向社會(huì)有很大的幫助,為我們以后大學(xué)畢業(yè)去求職提升競(jìng)爭(zhēng)力。從C語(yǔ)言產(chǎn)生到現(xiàn)在,它已經(jīng)成為最重要和最流行的編程語(yǔ)言之一。在各種流行編程語(yǔ)言中,都能看到C語(yǔ)言的影子,如Java的語(yǔ)法與C語(yǔ)言基本相同。學(xué)習(xí)、掌握C語(yǔ)言是每一個(gè)計(jì)算機(jī)技術(shù)人員的基本功之一。C語(yǔ)言具有高級(jí)語(yǔ)言的強(qiáng)大功能,卻又有很多直接操作計(jì)算機(jī)硬件的功能(這些都是匯編語(yǔ)言的功能),因此,C語(yǔ)言通常又被稱為中級(jí)語(yǔ)言。學(xué)習(xí)和掌握C語(yǔ)言,既可以增進(jìn)對(duì)于計(jì)算機(jī)底層工作機(jī)制的了解,又為進(jìn)一步學(xué)習(xí)其他高級(jí)語(yǔ)言打下了堅(jiān)實(shí)的基礎(chǔ)。需求分析 當(dāng)今社會(huì)是信息社會(huì),誰(shuí)的信息越快速越準(zhǔn)確,誰(shuí)就會(huì)更好的生活在這個(gè)社會(huì)上,他的人生也將走向成功。信息業(yè)正在21世紀(jì)扮演著越來(lái)越重要的角色,也是中國(guó)十二五規(guī)劃中的重要一環(huán),因此,我們應(yīng)該努力的去學(xué)習(xí)好這門課程,力爭(zhēng)在以后的生活工作中大展身手?,F(xiàn)在的社會(huì)日新月異,各種信息在不斷的傳遞交流,誰(shuí)最先獲取了信息誰(shuí)就會(huì)成功。所以,作為我們這類專業(yè)的人才,在畢業(yè)以后一定會(huì)大顯身手,實(shí)現(xiàn)自己的人生價(jià)值。 2.1 課程設(shè)計(jì)目的 本課程設(shè)計(jì)為信息類公共課《計(jì)算方法與程序設(shè)計(jì)》配套的課程設(shè)計(jì)。是該課程的理論學(xué)習(xí)的延伸。通過(guò)本課程設(shè)計(jì)有助于鍛煉綜合運(yùn)用C語(yǔ)言相關(guān)知識(shí)設(shè) 為1;若n大于1,則開(kāi)始循環(huán)運(yùn)算(見(jiàn)圖3.22流程圖),直到i小于n不成立時(shí)結(jié)束循環(huán)。在循環(huán)運(yùn)算的過(guò)程中,要調(diào)用兩個(gè)函數(shù)即函數(shù)pit1和函數(shù)pit2(見(jiàn)圖3.23流程圖)。在調(diào)用函數(shù)pit1和函數(shù)pit2中,這兩個(gè)函數(shù)進(jìn)行相互遞歸調(diào)用。最后將調(diào)用函數(shù)pit1和pit2的值返回主函數(shù)main函數(shù)中,再輸出高能質(zhì)子數(shù)目t3和低能質(zhì)子數(shù)目t4。 3.1 系統(tǒng)流程圖 程序一系統(tǒng)流程圖(如圖3.11所示): 開(kāi)始輸入nt1=3,t2=1,i=1否n==0否是n==1是否i 3.2主要模塊的流程圖 程序一模塊流程圖如圖3.21所示: 否i 圖3.21流程圖 程序二模塊流程圖如圖3.22和圖3.23所示: i=1否i 圖3.22流程圖 } {t3=3*t1+2*t2;t4=t1+t2;t1=t3;t2=t4;} printf(“n the high=%d the low=%dn”,t3,t4); 程序代碼4.1 程序二代碼如下所示: #include “stdio.h” int pit1(int a){ if(a==1) } int pit2(int b){ if(b==1) } main(){ int n,i,t3,t4;printf(“n input n”);scanf(“%d”,&n);if(n==0){ return(1);return(pit1(b-1)+pit2(b-1));else return(3);return(3*pit1(a-1)+2*pit2(a-1));else 圖5.11 程序二運(yùn)行結(jié)果:如圖5.12(程序運(yùn)行時(shí),當(dāng)輸入時(shí)間變量n是3時(shí),輸出高能粒子是41,低能粒子是15。) 圖5.12 參考文獻(xiàn) [1 ]張福祥.C語(yǔ)言程序設(shè)計(jì)[M].遼寧大學(xué)出版社,2008.[2] 張福祥,王萌.C語(yǔ)言程序設(shè)計(jì)習(xí)題解答與實(shí)驗(yàn)實(shí)訓(xùn).沈陽(yáng):遼寧大學(xué)出版社,2008. [3] 牛莉,劉遠(yuǎn)軍等.計(jì)算機(jī)等級(jí)考試輔導(dǎo)教程[M].北京:中國(guó)鐵道出版社,2008. [4]李勇帆,謝兵.大學(xué)計(jì)算機(jī)應(yīng)用教程.北京:中國(guó)鐵道出版社,2009. [5]田淑清.全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)教程.北京:高等教育出版社,2011. [6]楊振山,龔沛曾.大學(xué)計(jì)算機(jī)基礎(chǔ).北京:高等教育出版社,2006. [7]盧湘鴻.信息技術(shù)應(yīng)用基礎(chǔ).北京:高等教育出版社,2004. 致 謝 在這次課程設(shè)計(jì)的撰寫過(guò)程中,我得到了許多人的幫助。首先我要感謝我的老師在課程設(shè)計(jì)上給予我的指導(dǎo)、提供給我的支持和幫助,這是我能順利完成這次報(bào)告的主要原因,更重要的是老師幫我解決了許多技術(shù)上的難題,讓我能把系統(tǒng)做得更加完善。在此期間,我不僅學(xué)到了許多新的知識(shí),而且也開(kāi)闊了視野,提高了自己的設(shè)計(jì)能力。其次,我要感謝幫助過(guò)我的同學(xué),他們也為我解決了不少我不太明白的設(shè)計(jì)商的難題。同時(shí)也感謝學(xué)院為我提供良好的做畢業(yè)設(shè)計(jì)的環(huán)境。最后再一次感謝所有在設(shè)計(jì)中曾經(jīng)幫助過(guò)我的良師益友和同學(xué)。第二篇:C語(yǔ)言課程設(shè)計(jì)
第三篇:C語(yǔ)言課程設(shè)計(jì)范文
第四篇:C語(yǔ)言課程設(shè)計(jì)
第五篇:C語(yǔ)言課程設(shè)計(jì)