[計算機類論文精品]C語言課程設(shè)計源程序_第1頁
[計算機類論文精品]C語言課程設(shè)計源程序_第2頁
[計算機類論文精品]C語言課程設(shè)計源程序_第3頁
[計算機類論文精品]C語言課程設(shè)計源程序_第4頁
[計算機類論文精品]C語言課程設(shè)計源程序_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、c語言課程設(shè)計源程序第一天21輸入學(xué)生成績并顯示22顯示輸入數(shù)據(jù)33日歷源程序3第二天4字符排序4第三天5指法練習(xí)5第四天7漢諾塔(2)7第五天11排序(2)11第六天17模擬時鐘(3)17第七、八、九天261貪吃蛇游戲262學(xué)生管理系統(tǒng)31第一天1輸入學(xué)生成績并顯示 # include struct studentchar number6;char name6;int score3; stu2;void output(struct student stu2);void main()int i, j;for(i=0; i2; i+)printf(請輸入學(xué)生%d的成績:n, i+1);print

2、f(學(xué)號:);scanf(%s, stui.number);printf(姓名:);scanf(%s, );for(j=0; j3; j+)printf(成績 %d. , j+1);scanf(%d, &stui.scorej);printf(n);output(stu);void output(struct student stu2)int i, j;printf(學(xué)號 姓名 成績1 成績2 成績3n); for(i=0; i2; i+)printf(%-6s%-6s, stui.number, );for(j=0; j3; j+)printf(%-8d,

3、 stui.scorej);printf(n);2顯示輸入數(shù)據(jù)#include#define a * * *#define b * *#define c * #define d *main()static char *head510=a,d,a,a,b,a,a,a,a,a,b,d,d,d,b,c,c,d,b,b,b,d,a,a,a,a,a,d,a,a,b,d,c,d,d,d,b,d,b,d,a,d,a,a,d,a,a,d,a,a;int num,i,j;char str5;scanf(%d,&num);itoa(num,str,10);for(i=0;i5;i+)printf(%10s, );

4、for(j=0;j4;j+) printf(%s ,headistrj-0); putchar(n); 3日歷源程序#includemain()int week,day,month,maxday;int year;int i;printf(input year and month);scanf(%d%d,&year,&month);printf(input weekday and daysum:);scanf(%d%d,&week,&maxday);printf(n=%d year%2d month=n,year,month);printf( sun mon tue web tur fri s

5、atn);for(i=0;iweek;i+)printf(%4c,);for(day=1;day=maxday;day+) printf(%4d,day); week=(week+1)%7; if(week=0) printf(n); 第二天字符排序輸入一個字符串,可將字符串中的字符由小到大排列#include #include bubble(strings,count)char *strings;int count;register int m,n;register char s;for(m = 1;m= m;-n)if(stringsn-1stringsn)s = stringsn-1;s

6、tringsn-1 = stringsn;stringsn = s;int main(void)int count;char str200;printf(請輸入字符串:n);gets(str);count = strlen(str);bubble(str,count);printf(排序之后的字符串是:n);printf(%s.n,str);return 0;第三天指法練習(xí)/*模擬指法測試程序: 完成輸入文字后,統(tǒng)計輸入的正確率和輸入速度。*/#include#include#include#define size 30win() clrscr(); gotoxy(20,2);printf(*

7、-*); gotoxy(20,3);printf(* fingering training system *); gotoxy(20,4);printf(* designed by prove *); gotoxy(20,5);printf(* 2005-09-06 *); gotoxy(20,6);printf(*-*); gotoxy(16,7);printf(.press any key to entry the system.); getch(); clrscr(); gotoxy(5,2);printf(input original text:n); gotoxy(5,22);pri

8、ntf(-); gotoxy(5,23);printf( correctrate:%); gotoxy(33,23);printf(speed: w/s);main() char o1150,o2size,o3size,o4size;/*每一行原文,最多150字符*/ char i1150,i2size,i3size,i4size;/*每一行輸入*/ int i; long error = 0,correct = 0; float crate; double speed; double ti; char flag; struct time t1,t2; start:win(); gotoxy(

9、5,4);printf(-); gotoxy(5,3);gets(o1); gotoxy(5,6);printf(-); gotoxy(5,5);gets(o2);strcat(o1,o2); gotoxy(5,8);printf(-); gotoxy(5,7);gets(o3);strcat(o1,o3); gotoxy(5,10);printf(-); gotoxy(5,9);gets(o4);strcat(o1,o4); gotoxy(5,11);printf(start now!n); gotoxy(5,13);printf(-); gettime(&t1); /*計時開始*/ got

10、oxy(5,12);gets(i1); gotoxy(5,15);printf(-); gotoxy(5,14);gets(i2);strcat(i1,i2); gotoxy(5,17);printf(-); gotoxy(5,16);gets(i3);strcat(i1,i3); gotoxy(5,19);printf(-); gotoxy(5,18);gets(i4);strcat(i1,i4); gettime(&t2);/*計時結(jié)束*/ for(i = 0;i strlen(o1);i+) if(o1i != i1i) error+; else correct+; crate =(fl

11、oat) correct / (float)strlen(i1) * 100; ti = (double)(t2.ti_hour * 3600 + t2.ti_min * 60 + t2.ti_sec ) - (t1.ti_hour * 3600 + t1.ti_min * 60 + t1.ti_sec ); speed = (double)strlen(i1) / (double)ti; gotoxy(20,23);printf(%f,crate); gotoxy(40,23);printf(%lf,speed); gotoxy(5,20);printf(continue or not(y/

12、n) ?); flag = getch(); if(flag = y | flag = y) goto start; else clrscr(); gotoxy(26,7);printf(welcome to use!); gotoxy(19,8);printf(.press any key to exit.); getch(); exit(1); getch(); 第四天漢諾塔(2)#include #include char dd1020,space20;int a11,b11,c11;init()int i,j;for(i=0;i20-1;i+) spacei= ;spacei=0;fo

13、r(i=0;i10;i+) for(j=0;j20-1;j+)ddij= ; ddij=0; for(j=9-i;j=9+i;j+)ddij=a+i;for(i=0;i10;i+) ai=i,bi=-1,ci=-1;a10=2,b10=25,c10=50;for(i=0;i10;i+)gotoxy(a10,10+i);cprintf(%s,ddi);move(int *s,int *d) int i,j; for(i=0;si=-1&i10;i+); gotoxy(s10,10+i); cprintf(%s,space); for(j=0;dj=-1&j10;j+); j-; gotoxy(d

14、10,10+j); cprintf(%s,ddsi); dj=si;si=-1; getche();void hanoi(int n,int *s,int *w,int *d)int i;if(n= =1)move(s,d);elsehanoi(n-1,s,d,w);move(s,d);hanoi(n-1,w,s,d);main()clrscr();init();getche();hanoi(10,a,b,c);getche();/* 源程序2*/*漢諾塔2*/#include struct h int data15;/*存放每個盤的代號*/ int top;/*每個塔的具體高度*/num3;

15、/*三個塔*/void move(char x,char y,struct h num3);/*移動的具體過程*/void hanoi(char x,char y,char z,int n,struct h num3);/*遞歸*/void init(void);/*初始化*/void close(void);/*圖形關(guān)閉*/int computer=1;/*自動控制與手動控制的標(biāo)志*/int speed=0;/*全局變量speed主要是演示過程的速度*/void main(void) init();/*初始狀態(tài)*/ close();/*圖形關(guān)閉*/ exit(0);void init(voi

16、d)/*初始化*/ int gd=detect,gm; int i,n,color; clrscr(); printf(please input n(n=10): );/*輸入要演示的盤子數(shù)*/ scanf(%d,&n); printf(please input 1 or 2:puter 2.peoplen); scanf(%d,&i); if(i=2)/*選擇手動控制標(biāo)志為0*/ computer=0; if(n10) n=10;/*越界的話n當(dāng)10處理*/ if(computer)/*如果是自動控制的話輸入速度*/ printf(please input speed: );/*輸入速度*/

17、 scanf(%d,&speed); initgraph(&gd,&gm,c:tc); cleardevice(); for(i=0;i3;i+) numi.top=-1;/*三個地方的高度開始都為-1*/ for(i=0;i); outtextxy(310,30,num2); settextstyle(0,0,2); setfillstyle(solid_fill,black);/*把原來的地方移去涂黑*/ bar(100+150*(x-97)-(33-3*numx-97.datanumx-97.top),400-20*numx-97.top-8,100+150*(x-97)+(33-3*n

18、umx-97.datanumx-97.top),400-20*numx-97.top+8); numy-97.top+;/*入棧,目標(biāo)點的top加1*/ numy-97.datanumy-97.top=numx-97.datanumx-97.top;/*在目標(biāo)點盤子的代號與源點盤子的代號相同*/ numx-97.top-;/*出棧,原來地方的top減1*/ setfillstyle(solid_fill,numy-97.datanumy-97.top+1);/*盤子顏色代碼是棧頂盤子代號加1*/ bar(100+150*(y-97)-(33-3*numy-97.datanumy-97.top)

19、,400-20*numy-97.top-8,100+150*(y-97)+(33-3*numy-97.datanumy-97.top),400-20*numy-97.top+8); if(computer)/*自動控制就用delay*/ delay(speed);/*延時函數(shù)*/ else getch();/*手動控制的話就自己按鍵盤來控制*/void hanoi(char one,char two,char three,int n,struct h num3)/*遞歸n為盤子數(shù),num為堆棧*/ if(n=1) move(one,three,num);/*如果盤子為1,將這個盤子從塔座a移動

20、到塔座c*/ else hanoi(one,three,two,n-1,num);/*將塔座a的前n-1個盤子移到塔座b*/ move(one,three,num);/*將塔座a的第n個盤子移到塔座c*/ hanoi(two,one,three,n-1,num); /*將塔座b的n-1個盤子移到塔座c*/ void close(void)/*圖形關(guān)閉*/ getch(); closegraph();第五天排序(2)/*1. 源程序*/-冒泡排序法#include # include #define n 8 /*定義排序數(shù)據(jù)為8個*/void init(int a);/*初始狀態(tài)*/void c

21、lose(void);/*圖形模式結(jié)束*/void pr(int a,int n);/*輸出數(shù)組*/void drawchange(int i,int j);/*畫交換箭頭*/void bubble_sort(int a,int n);/*冒泡排序*/void main(void) int i,an; printf(please enter 8 int numbern); /*輸入8個整數(shù)*/ for(i=0;in;i+) scanf(%d,&ai); init(a);/*初始狀態(tài)*/ bubble_sort(a,8);/*具體排序*/ close();/*圖形模式結(jié)束*/ exit(0);v

22、oid init(int a)/*初始狀態(tài)*/ int gd=detect,gm,i; initgraph(&gd,&gm,);/*初始化圖形系統(tǒng)*/ cleardevice(); /*清屏*/ setcolor(yellow); /*設(shè)置顏色*/ outtextxy(210,10,any key to continue); /*顯示壓任意鍵繼續(xù)*/ pr(a,40);/*第一次輸出數(shù)組*/ getch(); /*等待壓任意鍵*/void close (void) /*圖形模式結(jié)束*/ getch(); /*等待壓任意鍵*/ closegraph(); /*關(guān)閉圖形模式*/void pr(in

23、t a,int n)/*輸出數(shù)組*/ int i; char num5; settextstyle(0,0,2); /*設(shè)置輸出樣式*/ setcolor(green); /*設(shè)置輸出顏色*/ for(i=100;i500;i+=50)/*i控制顯示位置和計算數(shù)組下標(biāo)*/ sprintf(num,%d,a(i-100)/50); /*將數(shù)值轉(zhuǎn)化為字符串*/ outtextxy(i,n,num); /*輸出字符串*/ void drawchange(int i,int j)/*畫交換箭頭,畫五根線組成一雙向箭頭線*/ setcolor(6); line(j*50+120,i+8,j*50+140

24、,i+8); /*按給出的坐標(biāo)位置畫直線*/ line(j*50+120,i+8,j*50+120+5,i+4); line(j*50+120,i+8,j*50+120+5,i+12); line(j*50+140,i+8,j*50+140-5,i+4); line(j*50+140,i+8,j*50+140-5,i+12);void bubble_sort(int a,int n)/*冒泡排序*/ int i,j,t,flag; char num15,num25; for(i=0;in-1;i+)/*冒泡排序*/ flag=0; /*設(shè)置數(shù)據(jù)交換標(biāo)志*/ for(j=0;jaj+1)/*如果

25、前面的大于后面的*/ flag=1; /*置交換標(biāo)志*/ drawchange(i*40+80,j);/*畫交換箭頭*/ setcolor(red); outtextxy(100+j*50,i*40+80,num1); outtextxy(100+(j+1)*50,i*40+80,num2); t=aj;/*交換*/ aj=aj+1; aj+1=t; sleep(1); setfillstyle(solid_fill,black);/*黑巨型的方式把這行給刪除*/ bar(0,i*40+60,640,i*40+100); pr(a,i*40+80); /*輸出數(shù)*/ sleep(1); if(

26、flag=0)break; /*如果本次比較沒有發(fā)生交換則跳出循環(huán)*/ /*2. 源程序*/-/*二分查找程序*/#include #include #define n 15 /*結(jié)點數(shù)設(shè)為15*/void find(int x,int y,int z);/*具體查找過程*/void init(int x,int *n);/*圖形初始化*/void close();/*圖形關(guān)閉*/void put(int x,int y);/*輸出數(shù)值*/void up(int x);/*畫上箭*/void down(int x);/*畫下箭*/void mid(int x);/*畫中間箭*/void clr

27、(int x);/*擦除畫面上的一些內(nèi)容*/void sort(int x,int n);/*對隨機數(shù)組排序*/void main(void) int an,x; init(a,&x);/*x為要查找的數(shù)*/ put(a,n); find(a,x,n); close(); exit(0);void mid(int n)/*畫中間鍵*/ setcolor(white);/*中間箭的顏色為白色,以下三條線畫成了箭頭,以下兩個函數(shù)一樣*/ line(25+n*40,120,25+n*40,80); line(25+n*40,120,20+n*40,110); line(25+n*40,120,30+

28、n*40,110);void down(int n)/*畫上箭*/ setcolor(6); line(25+n*40,120,25+n*40,80); line(25+n*40,120,20+n*40,110); line(25+n*40,120,30+n*40,110);void up(int n)/*畫下箭*/ setcolor(6); line(25+n*40,180,25+n*40,220); line(25+n*40,180,20+n*40,190); line(25+n*40,180,30+n*40,190);void clr(int y)/*擦除畫面上的一些內(nèi)容*/ setfi

29、llstyle(solid_fill,0);/*每次演示的時候先將下面顯示的文字給去處掉*/ bar(0,y+50,640,y-50);/*這里是用矩形的方式*/void put(int a,int n)/*輸出數(shù)值*/ int i; char num5; setcolor(green); settextstyle(0,0,2);/*設(shè)置字體的大小*/ for(i=0;in;i+) sprintf(num,%d,ai);/*將數(shù)字轉(zhuǎn)換成字符串輸出*/ outtextxy(20+i*40,150,num); settextstyle(0,0,1); setcolor(blue); outtext

30、xy(250,250,anykey to continue); getch();void find(int a,int y,int n)/*具體的查找*/ int low,high,mid,i; char str15,str25; sprintf(str1,%d,y); low=0; high=n-1; setcolor(red); settextstyle(0,0,2); outtextxy(200,10,find); outtextxy(330,10,str1); while(low=high) clr(250); clr(80); clr(230);/*這里三個clr是為了把屏幕上的箭頭

31、和文字刪了*/ mid=(high+low)/2;/*計算中間位置*/ up(high); /*顯示上邊箭頭*/ down(low); /*顯示右邊箭頭*/ mid(mid);/*畫好了三個箭頭后開始查找*/ if(amid=y) /*如果找到跳出循環(huán)*/ break; if(amidy) low=mid+1; /*修改左邊界*/ sprintf(str2,%d,amid); outtextxy(250,250,str2); /*顯示比較數(shù)據(jù)的情況*/ outtextxy(300,250,); outtextxy(350,250,str1); sleep(2);/*間隔一秒好執(zhí)行下一次*/ s

32、etcolor(11); if(low=high)/*找到*/ outtextxy(250,350,find); else/*沒找到*/ outtextxy(250,350,not find);void sort(int a,int n)/*冒泡排序,自上而下*/ int i,j,t; for(i=0;in-1;i+) for(j=0;jaj+1) t=aj; aj=aj+1; aj+1=t; /*數(shù)據(jù)交換*/void init(int a,int *x)/*圖形驅(qū)動*/ int i; int gd=detect,gm; randomize();/*隨機函數(shù)*/ for(i=0;in;i+)/

33、*隨機生成數(shù)組*/ ai=random(100); /*生成100以內(nèi)的數(shù)*/ sort(a,n);/*排序*/ for(i=0;i=1;i-) alpha=(a0+30*(11-i)*pi/180); x=x0+cos(alpha)*r0-16; y=y0-sin(alpha)*r0; sprintf(s,%2d,i); settextstyle(0,0,2); outtextxy(x,y,s); /*input second*/ for(i=60;i=1;i-) alpha=(a0+6*(60-i)*pi/180); x=x0+cos(alpha)*(r0-20); y=y0-sin(al

34、pha)*(r0-20); setcolor(14); if(i%5=0) circle(x,y,5); else circle(x,y,2); floodfill(x,y,14); setlinestyle(0,0,3); void sec(void) /*/ int x,y,i,j,k,xj,yj,xk,yk,xi,yi,x0=320,y0=240,r0=150; union regs r; unsigned char *shijie=; unsigned char *daa=; struct time tim; struct date dat; float alphai,alphak,a

35、lphaj,a0=90; xi=x0;yi=y0;xj=x0;yj=y0;xk=x0;yk=y0; do /*intput the time*/ x=38;y=12; gettime(&tim); sprintf(shijie,%02d:%02d:%02d,tim.ti_hour,tim.ti_min,tim.ti_sec); setfillstyle(solid_fill,0); bar(245,190,375,210); setcolor(15); outtextxy(245,190,shijie); /*input the date*/ /*/ getdate(&dat); sprint

36、f(daa,%02d-%02d-%02d,dat.da_year,dat.da_mon,dat.da_day); /*setfillstyle(solid_fill,3);*/ bar(225,290,395,310); setcolor(red); outtextxy(225,290,daa); x=190;y=430; setcolor(red); outtextxy(x-26,y,designed by guoliuta0); setcolor(lightred); outtextxy(x+76,y0+20,nba game); setlinestyle(0,0,3); k=tim.ti

37、_hour; j=tim.ti_min; i=tim.ti_sec; alphak=(a0+30*(12-k)-j*5/60.*6)*pi/180; alphaj=(a0-6*j)*pi/180; /*write second hand*/ alphai=(a0+6*(60-i)*pi/180; x=x0+cos(alphai)*(r0-32); y=y0-sin(alphai)*(r0-32); setcolor(black); line(x0,y0,xi,yi); setcolor(yellow); line(x0,y0,x,y); xi=x; yi=y; /*write minute h

38、and*/ x=x0+cos(alphaj)*(r0-60); y=y0-sin(alphaj)*(r0-60); setcolor(black); line(x0,y0,xj,yj); setcolor(blue); line(x0,y0,x,y); xj=x; yj=y; /*write hour hand*/ x=x0+cos(alphak)*(r0-99); y=y0-sin(alphak)*(r0-99); setcolor(black); line(x0,y0,xk,yk); setcolor(red); line(x0,y0,x,y); xk=x; yk=y; delay(100

39、00); while(!kbhit(); 模擬時鐘2:源代碼#include#include#include#includeint x1;int y1;#define pi 3.1415926int sec8=0,-180,8,-50,-8,-50,-8,-50;/*定義秒針的初始位置*/int min8=0,-150,20,-125,0,-142,-20,-125;/*定義分針的初始位置*/int hor8=0,-180,5,-155,0,-160,-5,-155;/*定義時針的初始位置*/struct time ttime,t;main()int gd=vga,gm=vgahi,m;void secminhor(int,int posi8,int,int,int);/*根據(jù)系統(tǒng)時間畫出秒、分、時針*/void mytmkd(void);/*畫出表盤*/void hitc(void);/*畫出撞鐘*/void secsound();/*秒針走動時的響聲*/void horsound();/*整點報時的聲音*/void hitmood();/*畫出撞鐘的木頭*/void bright();/*當(dāng)秒鐘指向表盤上的圓時,圓發(fā)出黃色亮光*/void digsec(int);/*在圓中用數(shù)字顯示秒數(shù)*/ initgraph(&gd,&gm,); x1=getm

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論