㈠ C語言程序設計實驗報告
代碼:
# include <stdio.h>
# include<stdlib.h>
char stu_no[10][10];
int c_math[10],c_en[10],c_computer[10],point[10],average[10];
int i,j,max;
char c;
void input()
{
for(i=0;i<=9;i++) /*輸入學生成績*/
{
printf("請輸入學號:");
scanf("%s",&stu_no[i]);
printf("\n請輸入數學成績:");
scanf("%d",&c_math[i]);
printf("\n請輸入英語成績:");
scanf("%d",&c_en[i]);
printf("\n請輸入計算機基礎成績:");
scanf("%d",&c_computer[i]);
}
for(i=0;i<=10;i++) /*計算總分跟平均分*/
{
point[i]=c_math[i]+c_en[i]+c_computer[i];
average[i]=point[i]/3;
}
}
void paixu()
{
printf("成績按從高到低排列為:\n");
printf("\n學號 數學 英語 計算機基礎 總分 平均分\n");
for (i=0;i<=10;i++)
{ for(j=1;j<=10;j++)
if (point[i]>point[j])
max=i;
printf("%s,d,%d,%d,%d,%d,%d\n",stu_no[max],c_math[max],c_en[max],c_computer[max],point[max],average[max]);
}
}
void main()
{
input();
paixu();
}
㈡ c語言模塊化程序設計
1.模塊化編程是指將一個龐大的程序劃分為若干個功能獨立的模塊,對各個模塊進行獨立開發,然後再將這些模塊統一合並為一個完整的程序。這是C語言面向過程的編程方法,可以縮短開發周期,提高程序的可讀性和可維護性。
2.在單片機程序里,程序比較小或者功能比較簡單的時候,我們不需要採用模塊化編程,但是,當程序功能復雜、涉及的資源較多的時候,模塊化編程就能體現它的優越性了。如前面我們寫過的HT1380驅動程序、獨立按鍵掃描程序和12864程序,每一個程序都是只用一個源文件編寫就能完成,但是,當您製作一個12864液晶日歷的時候,需要用到HT1380驅動程序、獨立按鍵掃描程序和12864顯示程序,如果把這三個程序全部集中在一個源文件里,將導致主體程序臃腫且雜亂,這樣做並非不可取,只是降低了程序可讀性、可維護性和代碼的重用率。如果把這三個程序當做三個獨立的模塊放到你的主體工程進行模塊化編程,效果就不一樣了。實際上,模塊化編程就是模塊合並的過程,就是建立每個模塊的頭文件和源文件並將其加入到主體程序的過程。主體程序調用模塊的函數是通過包含模塊的頭文件來實現,模塊的頭文件和源文件是模塊密不可分的兩個部分,缺一不可。所以,模塊化編程必須提供每個模塊的頭文件和源文件。
㈢ C語言程序設計題:模擬時鍾轉動的程序,怎麼做
/*開發環境:turbo c 2.0模擬時鍾轉動程序代碼*/ #include"graphics.h" #include"math.h" #include"dos.h" #define pi 3.1415926 #define X(a,b,c) x=a*cos(b*c*pi/180-pi/2)+300 #define Y(a,b,c) y=a*sin(b*c*pi/180-pi/2)+240 #define d(a,b,c) X(a,b,c);Y(a,b,c);line(300,240,x,y) void init() /*劃時鍾邊框函數*/ { int i,l,x1,x2,y1,y2; setbkcolor(1); circle(300,240,200); circle(300,240,205); circle(300,240,5); for(i=0;i<60;i++) /*劃鍾點上的短線*/ { if(i%5==0) l=15; else l=5; x1=200*sin(i*6*pi/180)+300; y1=200*cos(i*6*pi/180)+240; x2=(200-l)*sin(i*6*pi/180)+300; y2=(200-l)*cos(i*6*pi/180)+240; line(x1,y1,x2,y2); } } main() { int x,y,i,k=1; int gdriver=9,gmode=2; unsigned char h,m,s; int o,p,q; float n; struct time t[1]; struct date d[1]; initgraph(&gdriver,&gmode,"c:\\tc"); initgraph(&gdriver,&gmode,"c:\\tc"); for(i=0;i<=6;i++) { settextstyle(TRIPLEX_FONT,HORIZ_DIR,i); /*控制輸出字元的字體,方向,大小*/ cleardevice(); settextjustify(1,1); /*在指定坐標上輸出字元串*/ outtextxy(300,80,"12") ; outtextxy(300,390,"6"); outtextxy(140,230,"9"); outtextxy(460,230,"3"); outtextxy(380,100,"1"); outtextxy(220,100,"11"); outtextxy(430,160,"2"); outtextxy(430,310,"4"); outtextxy(380,370,"5"); outtextxy(220,370,"7"); outtextxy(160,160,"10"); outtextxy(160,310,"8"); } init(); setwritemode(1); /*設置畫線的輸出模式*/ if(k!=0) { getdate(d); /*獲得系統日期函數*/ o=d[0].da_year; p=d[0].da_mon; q=d[0].da_day; gettime(t); /*獲得系統時間函數*/ h=t[0].ti_hour; m=t[0].ti_min; s=t[0].ti_sec; } setcolor(7); /*設置時針顏色*/ n=(float)h+(float)m/60; d(150,n,30); /*畫出時針*/ setcolor(14); /*設置分針顏色*/ d(170,m,6); /*畫出分針*/ setcolor(4); /*設置秒針顏色*/ d(190,s,6); /*畫出秒針*/ while(!kbhit()) /*控製程序按下任意鍵退出*/ { while(t[0].ti_sec==s) gettime(t); gotoxy(44,18); /*使游標移動到指定坐標*/ printf("\b\b\b\b\b\b\b\b\b"); /*退格,使表示時間的字元串不斷變化*/ sound(400); /*按給定的頻率打開PC揚聲器*/ delay(70); /*中斷程序的執行,時間為70毫秒*/ sound(200); delay(30); nosound(); /*按給定的頻率關閉PC揚聲器*/ setcolor(4); d(190,s,6); s=t[0].ti_sec; d(190,s,6); if(t[0].ti_min!=m) { setcolor(14); d(170,m,6); m=t[0].ti_min; d(170,m,6); } if(t[0].ti_hour!=h) { setcolor(7); d(150,h,30); h=t[0].ti_hour; d(150,h,30); sound(1000); delay(240); nosound(); delay(140); sound(2000); delay(240); nosound(); } if(s<10) /*用字元的形式輸出時間*/ { if(m<10) printf("%u:0%u:0%u",h,m,s); else printf("%u:%u:0%u",h,m,s); } else { if(m<10) printf("%u:0%u:%u",h,m,s); else printf("%u:%u:%u",h,m,s); } gotoxy(34,19); /*在指定坐標上輸出日期*/ printf("%d年%d月%d日",o,p,q); printf("\b\b\b\b\b\b\b\b\b"); } getch(); closegraph(); }