高級(jí)程序語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告材料(共38頁(yè))_第1頁(yè)
高級(jí)程序語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告材料(共38頁(yè))_第2頁(yè)
高級(jí)程序語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告材料(共38頁(yè))_第3頁(yè)
高級(jí)程序語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告材料(共38頁(yè))_第4頁(yè)
高級(jí)程序語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告材料(共38頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)題目:多重模塊管理專 業(yè) 計(jì)算機(jī) 班 級(jí) 1306班 學(xué) 生 林道松 學(xué) 號(hào) 指導(dǎo)教師 鮑春波 /肖琳 起止時(shí)間 2014-2-172014-2-21 2014年 2月專心-專注-專業(yè)目錄A組題目題目1: 寫(xiě)一個(gè)函數(shù)計(jì)算下列函數(shù)的值f(0),f(3),f(-3),測(cè)試之。函數(shù)如下: 解:#include<stdio.h>int main()int f(int n); int num,result; printf("input the x : "); scanf("%d",&num);

2、 result=f(num); printf("the result is %dn",result);int f(int n) int s; if(n>0) s=3*n*n-4; if(n=0) s=2; if(n<0) s=0; return s;評(píng)析:這是一個(gè)簡(jiǎn)單的選擇判斷結(jié)構(gòu),只需將條件編寫(xiě)清楚即可。題目2:寫(xiě)一個(gè)函數(shù)void maxMinAver(int *data, int *max, int *min,float * ave,int size), 求一組數(shù)據(jù)的最大值、最小值和平均值,測(cè)試之。其中data指向給定數(shù)據(jù)的數(shù)組的指針,max、min、ave

3、分別指向最大值、最小值和平均值,size是數(shù)組的大小。要求第一個(gè)實(shí)參是數(shù)組,第2、3、4個(gè)實(shí)參都是對(duì)普通的簡(jiǎn)單變量的某種操作,最后一個(gè)實(shí)參是數(shù)組的大小。測(cè)試之解:#include<stdio.h>#include<malloc.h>void maxMinAver(int *data,int *max, int *min,float * ave,int size);int main() int n,i; int max,min; float ave; int *data; printf("please enter the numbers:n"); sc

4、anf("%d",&n); data=(int*)malloc(n*sizeof(int); for(i=0;i<n;i+) scanf("%d",&datai); maxMinAver(data,&max,&min,&ave,n); printf("max:%dnmin:%dnave:%.1fn",max,min,ave); return 0;void maxMinAver(int *data,int *max, int *min,float * ave,int size) int i,

5、sum=0; *max=data0; *min=data0; for(i=0;i<size;i+) if(*max<=datai) *max=datai; if(*min>=datai) *min=datai; sum+=datai; *ave=(float)sum/size;評(píng)析:這是一個(gè)以指針為參數(shù)的函數(shù),用冒泡法對(duì)數(shù)組中的每一個(gè)數(shù)進(jìn)行比較,這道題目的需要注意的地方就是在函數(shù)的調(diào)用需注意函數(shù)實(shí)參,以及對(duì)數(shù)組內(nèi)存空間的申請(qǐng)。題目3:寫(xiě)一個(gè)函數(shù)用指針型字符串實(shí)現(xiàn)兩個(gè)字符串比較,int mystrcmp(const char *str1, const char *str2),如

6、果大于返回1,等于返回0,小于返回-1,測(cè)試之解:#include<stdio.h>int mystrcmp(const char *str1, const char *str2);int main() char str1100,str2100; scanf("%s %s",str1,str2); printf("%dn",mystrcmp(str1,str2); return 0;int mystrcmp(const char *str1, const char *str2) int i; for(i=0;*(str1+i) != '

7、;0' && *(str2+i) !='0'i+) if(*(str1+i) > *(str2+i) return 1; if(*(str1+i) < *(str2+i) return -1; if(*(str1+i) =*(str2+i) return 0; 評(píng)析:這道題的比較方法是將字母一一進(jìn)行對(duì)比,利用指針將字母一個(gè)個(gè)進(jìn)行比較,需要注意的地方就是取*運(yùn)算。題目4:定義一個(gè)學(xué)生結(jié)構(gòu)體,取別名STU,包含學(xué)號(hào)、姓名、數(shù)學(xué)、語(yǔ)文、計(jì)算機(jī)、英語(yǔ)等 課程成績(jī),還有總分和平均分,寫(xiě)一個(gè)函數(shù)實(shí)現(xiàn)求一組學(xué)生每個(gè)學(xué)生各門(mén)課程的平均值,函數(shù)原型為float

8、 ave(STU stu,int size)。測(cè)試之。解:#include<stdio.h>#include<string.h>#define SIZE 2typedef struct student int num; char name10; float math; float english; float computer; float chinese; float total; float average;STU;STU stuSIZE;float ave(STU stu,int size);int main() int i; printf("pleas

9、e input the studet's information:n"); for(i=0;i<SIZE;i+) scanf("%d %s %f %f %f %f",&stui.num,, &stui.math,&stui.english,&puter,&stui.chinese); ave(stu,SIZE); for(i=0;i<SIZE;i+) printf("num:%dnname:%snaverage:%.2fnn", stui.num,st

10、,stui.average); return 0;float ave(STU stu,int size) int i; for(i=0;i<size;i+) stui.total=stui.math+stui.english+puter+stui.chinese; stui.average=stui.total/4; 評(píng)析:這是一個(gè)用結(jié)構(gòu)體數(shù)組進(jìn)行信息保存管理的函數(shù),需要注意到的地方是在輸入信息與打印信息時(shí)要將注意結(jié)構(gòu)體數(shù)組的名稱題目5 :寫(xiě)一個(gè)函數(shù)能夠從文件讀入一組學(xué)生STU的信息,保存到一個(gè)結(jié)構(gòu)體數(shù)組中。解:#include<stdio.h>

11、#include<stdlib.h>#define SIZE 10struct student_type char name 10; int num; int age; char addr15;studSIZE;void load();int main () load(); return 0;void load() int i; FILE*fp; if(fp=fopen("stu.txt","r")=NULL) printf("cannot open filen"); exit (0); for(i=0;i<SIZE

12、;i+) fscanf(fp,"%s %d %d %s",&, &studi.num,&studi.age,&studi.addr); printf("%-10s %4d %4d %-15sn",, studi.num,studi.age,studi.addr); fclose (fp);評(píng)析:這是一個(gè)典型的從文件中輸入信息保存在數(shù)組中在屏幕上打印出。需要注意的打開(kāi)文件所需要的頭文件以及數(shù)據(jù)輸入輸出的格式。題目6 :寫(xiě)一個(gè)函數(shù)能夠輸出某一學(xué)生結(jié)構(gòu)體數(shù)組STU stu10的信息和每個(gè)人

13、的總分、平均分到某一文本文件中,測(cè)試之。輸出格式是: “%s %s %d %d %d %d %d %5.2f” 解:#include<stdio.h>#include<stdlib.h>#define SIZE 10struct student_type char name 10; char addr15; int grade; int num; int height; int age; int score; float ave;stuSIZE;void output();int main () output(); return 0;void output() int

14、i; FILE*fp; fp=fopen("printf.txt","w"); for(i=0;i<SIZE;i+) scanf("%s %s %d %d %d %d %d %f", ,stui.addr,&stui.grade,&stui.num, &stui.height,&stui.age,&stui.score,&stui.ave); fprintf(fp,"%s %s %d %d %d %d %d %5.2fn",

15、,stui.addr,stui.grade,stui.num, stui.height,stui.age,stui.score,stui.ave); 評(píng)析:注意文件的輸入及輸出格式即可。題目7: 寫(xiě)一個(gè)函數(shù)能夠打印輸出學(xué)生結(jié)構(gòu)體數(shù)組STU stu10的信息到屏幕上,測(cè)試之解:#include<stdio.h>#define SIZE 10struct student int num; char name10; float score;stuSIZE;void print(struct student stu,int size);int main () int n; for(n=0;

16、n<SIZE;n+) scanf("%d %s %f",&stun.num,,&stun.score); print(stu,SIZE); return 0;void print(struct student stu,int size) int i; for(i=0;i<size;i+) printf("num:%dnname:%snscore:%.2fnn",stui.num,,stui.score);評(píng)析:注意函數(shù)的調(diào)用和輸入和輸出的格式。題目8 :寫(xiě)一個(gè)函數(shù)能夠把一組學(xué)生成績(jī)信息按總分

17、進(jìn)行排序,測(cè)試之。解:#include<stdio.h>#define SIZE 2struct student int num; char name10; float score;STUSIZE;void comp(struct student stu);int main() int n; for(n=0;n<SIZE;n+) scanf("%d %s %f",&STUn.num,STU,&STUn.score); printf("The Order Is:n"); comp(STU); for(n=0;n

18、<SIZE;n+) printf("%6d%10s%8.1fn",STUn.num,STU,STUn.score); return 0;void comp(struct student stu) int i,j,k,m; for(i=0;i<SIZE-1;i+) k=i; for(j=i+1;j<SIZE;j+) if(STUj.score>STUk.score) k=j; m=STUk.score; STUk.score=STUi.score; STUi.score=m; 評(píng)析:應(yīng)用選擇法對(duì)學(xué)生信息進(jìn)行比較,注意結(jié)構(gòu)體數(shù)組信息的格式。題

19、目9 :寫(xiě)一個(gè)函數(shù)能夠查找給定學(xué)號(hào)的學(xué)生成績(jī)信息,如果找到打印成績(jī)信息,如果沒(méi)有,顯示“not found!”.測(cè)試之。解:#include<stdio.h>struct student int num; char name15; int chinese; int math; int english;void searchscore(struct student stu);int main() struct student stu5=10110,"zhang",70,80,90,10111,"lin",90,80,90, 10086,&quo

20、t;zhao",70,80,90,10010,"zhang",70,70,70,10120,"chen",80,80,90; searchscore(stu); return 0;void searchscore(struct student stu) int n,m,number=0; printf("enter the number you want:n"); scanf("%d",&m); printf("The Result Is:n"); for(n=0;n<5

21、;n+) if(m=stun.num) printf("num:%dnname:%snchinese:%dnmath:%dnenglish:%dn",stun.num,, stun.chinese,stun.math,stun.english); number=1; if(number=0) printf("not found!n");評(píng)析;這是一個(gè)信息搜索程序,學(xué)生的信息可以是事先定義,也可以采用用戶輸入形式。題目10 : 設(shè)計(jì)一個(gè)界面函數(shù),包含上述11個(gè)題目的調(diào)用,即 請(qǐng)選擇1 調(diào)用第一個(gè)函數(shù)(具體的函數(shù)名)2 調(diào)用第二個(gè)函數(shù)(具體

22、的函數(shù)名)3 . . 9 調(diào)用第9個(gè)函數(shù)(具體的函數(shù)名) 繼續(xù)嗎?輸入y繼續(xù)下一次選擇,輸入n結(jié)束 解: #include<stdio.h>#include<string.h>#include<malloc.h>#define SIZE 10int f();void maxMinAver();int mystrcmp();float ave();typedef struct student int num; char name10; float math; float english; float computer; float chinese; float

23、 total; float average;STU;STU stuSIZE;void load();struct student_type char name 10; int num; int age; char addr15;studSIZE;void output();struct Student_type char name 10; char addr15; int grade; int num; int height; int age; int score; float ave;StuSIZE;void print();struct sTudent int num; char name

24、10; float score;sTuSIZE;void comp();struct studenT int num; char name10; float score;StUSIZE;void searchscore();struct stuDent int num; char name15; int chinese; int math; int english;int sw(int m);void menu();int main() int num1,num2; char str; menu(); scanf("%d",&num1); sw(num1); get

25、char(); scanf("%c",&str); while (str='N'|str='n'&&str='Y'|str='y') if(str='y') scanf("%d",&num2); sw(num2); if(str='n') break; getchar(); scanf("%c",&str); return 0;int sw(int m) int x,n,i,max,min; char

26、 str1100,str2100; float kave; int *data; struct stuDent stuD5=10110,"zhang",70,80,90,10111,"lin",90,80,90, 10086,"zhao",70,80,90,10010,"zhang",70,70,70,10120,"chen",80,80,90; switch(m) case 1:scanf("%d",&x); printf("%dn",f(x);

27、break; case 2:scanf("%d",&n); data=(int*)malloc(n*sizeof(int); for(i=0;i<n;i+) scanf("%d",&datai); maxMinAver(data,&max,&min,&kave,n); printf("max:%dnmin:%dnave:%.1fn",max,min,kave);break; case 3:scanf("%s %s",str1,str2); printf("%d

28、n",mystrcmp(str1,str2);break; case 4:for(i=0;i<SIZE;i+) scanf("%d %s %f %f %f %f",&stui.num,, &stui.math,&stui.english,&puter,&stui.chinese); ave(stu,SIZE); for(i=0;i<SIZE;i+) printf("num:%dnname:%snaverage:%.2fnn", stui.num,stui.na

29、me,stui.average);break; case 5:load();break; case 6:output();break; case 7:for(n=0;n<SIZE;n+) scanf("%d %s %f",&sTun.num,sT,&sTun.score); print(sTu,SIZE);break; case 8:for(n=0;n<SIZE;n+) scanf("%d %s %f",&StUn.num,StU,&StUn.score); printf("

30、The Order Is:n"); comp(StU); for(n=0;n<SIZE;n+) printf("%6d%10s%8.1fn",StUn.num,StU,StUn.score);break; case 9:searchscore(stuD);break; printf("n"); printf("繼續(xù)嗎?n");void menu() printf("|*|n"); printf("| 請(qǐng)選擇你所需要的函數(shù) |n"); printf("|*|n

31、"); printf("| 1.求分段函數(shù)的值f(x) |n"); printf("| 2.求一組數(shù)據(jù)的最大值和最小值以及平均值 |n"); printf("| 3.比較兩個(gè)字符串大小 |n"); printf("| 4.求一組學(xué)生每個(gè)學(xué)生各門(mén)課程的平均值 |n"); printf("| 5.從文件讀入一組學(xué)生的信息 |n"); printf("| 6.輸出結(jié)構(gòu)體數(shù)組的信息到文本文件中 |n"); printf("| 7.打印輸出學(xué)生結(jié)構(gòu)體數(shù)組的信息到屏幕

32、上 |n"); printf("| 8.把一組學(xué)生成績(jī)信息按總分進(jìn)行排序 |n"); printf("| 9.查找給定學(xué)號(hào)的學(xué)生成績(jī)信息 |n"); printf("|*|n"); printf("|*|nn"); printf("請(qǐng)輸入所調(diào)用函數(shù)序號(hào):n");int f(int n) int s; if(n>0) s=3*n*n-4; if(n=0) s=2; if(n<0) s=0; return s;void maxMinAver(int *data,int *max

33、, int *min,float * ave,int size) int i,sum=0; *max=data0; *min=data0; for(i=0;i<size;i+) if(*max<=datai) *max=datai; if(*min>=datai) *min=datai; sum+=datai; *ave=(float)sum/size;int mystrcmp(const char *str1, const char *str2) int i; for(i=0;*(str1+i) != '0' && *(str2+i) !=&

34、#39;0'i+) if(*(str1+i) > *(str2+i) return 1; if(*(str1+i) < *(str2+i) return -1; if(*(str1+i) =*(str2+i) return 0; float ave(STU stu,int size) int i; for(i=0;i<size;i+) stui.total=stui.math+stui.english+puter+stui.chinese; stui.average=stui.total/4; void load() int i; FILE*fp; i

35、f(fp=fopen("stu.txt","r")=NULL) printf("cannot open filen"); exit (0); for(i=0;i<SIZE;i+) fscanf(fp,"%s %d %d %s",&, &studi.num,&studi.age,&studi.addr); printf("%-10s %4d %4d %-15sn",, studi.num,studi.age,studi.

36、addr); fclose (fp);void output() int i; FILE*fp; fp=fopen("PRINT.txt","w"); for(i=0;i<SIZE;i+) scanf("%s %s %d %d %d %d %d %f", S,Stui.addr,&Stui.grade,&Stui.num, &Stui.height,&Stui.age,&Stui.score,&Stui.ave); /fprintf(fp,"name ad

37、dr grade num height age score aven"); fprintf(fp,"%s %s %d %d %d %d %d %5.2fn", S,Stui.addr,Stui.grade,Stui.num, Stui.height,Stui.age,Stui.score,Stui.ave); void print(struct sTudent sTu,int size) int i; for(i=0;i<size;i+) printf("num:%dnname:%snscore:%.2fnn",sTui.

38、num,sT,sTui.score);void comp(struct studenT stu) int i,j,k,m; for(i=0;i<SIZE-1;i+) k=i; for(j=i+1;j<SIZE;j+) if(StUj.score>StUk.score) k=j; m=StUk.score; StUk.score=StUi.score; StUi.score=m; void searchscore(struct stuDent stu) int n,m,number=0; printf("enter the number you want

39、:n"); scanf("%d",&m); printf("The Result Is:n"); for(n=0;n<5;n+) if(m=stun.num) printf("num:%dnname:%snchinese:%dnmath:%dnenglish:%dn",stun.num,, stun.chinese,stun.math,stun.english); number=1; if(number=0) printf("not found!n");評(píng)析:這是一個(gè)大型數(shù)

40、據(jù)系統(tǒng),將以上9個(gè)函數(shù)集結(jié)成一個(gè)大型數(shù)據(jù),制作了精美的封面,主要用途與前9個(gè)題目相似,需要注意變量名與結(jié)構(gòu)體數(shù)組名不能重復(fù)定義,系統(tǒng)結(jié)構(gòu)要清晰。題目11:創(chuàng)建一個(gè)工程文件,包含三個(gè)文件,第一個(gè)是主函數(shù)所在的源文件,含有顯示界面,選擇1-10,調(diào)用不同的函數(shù),第二個(gè)是各個(gè)函數(shù)所在的源文件,第三個(gè)是各個(gè)函數(shù)原型所在的頭文件。解:1. arrangemain.c#include<stdio.h>#include<string.h>#include<malloc.h>#define SIZE 10#include"arrange.h"int ma

41、in() int num1,num2; char str; menu(); scanf("%d",&num1); sw(num1); getchar(); scanf("%c",&str); while (str='N'|str='n'&&str='Y'|str='y') if(str='y') scanf("%d",&num2); sw(num2); if(str='n') break; getch

42、ar(); scanf("%c",&str); return 0;2. Arrange.c#include<stdio.h>#include<string.h>#include<malloc.h>#define SIZE 10typedef struct student int num; char name10; float math; float english; float computer; float chinese; float total; float average;STU;STU stuSIZE;struct st

43、udent_type char name 10; int num; int age; char addr15;studSIZE;struct Student_type char name 10; char addr15; int grade; int num; int height; int age; int score; float ave;StuSIZE;struct sTudent int num; char name10; float score;sTuSIZE;struct studenT int num; char name10; float score;StUSIZE;struc

44、t stuDent int num; char name15; int chinese; int math; int english;int sw(int m) int x,n,i,max,min; char str1100,str2100; float kave; int *data; struct stuDent stuD5=10110,"zhang",70,80,90,10111,"lin",90,80,90, 10086,"zhao",70,80,90,10010,"zhang",70,70,70,1012

45、0,"chen",80,80,90; switch(m) case 1:scanf("%d",&x); printf("%dn",f(x);break; case 2:scanf("%d",&n); data=(int*)malloc(n*sizeof(int); for(i=0;i<n;i+) scanf("%d",&datai); maxMinAver(data,&max,&min,&kave,n); printf("max:%

46、dnmin:%dnave:%.1fn",max,min,kave);break; case 3:scanf("%s %s",str1,str2); printf("%dn",mystrcmp(str1,str2);break; case 4:for(i=0;i<SIZE;i+) scanf("%d %s %f %f %f %f",&stui.num,, &stui.math,&stui.english,&puter,&stui.chinese);

47、 ave(stu,SIZE); for(i=0;i<SIZE;i+) printf("num:%dnname:%snaverage:%.2fnn", stui.num,,stui.average);break; case 5:load();break; case 6:output();break; case 7:for(n=0;n<SIZE;n+) scanf("%d %s %f",&sTun.num,sT,&sTun.score); print(sTu,SIZE);break; case 8:

48、for(n=0;n<SIZE;n+) scanf("%d %s %f",&StUn.num,StU,&StUn.score); printf("The Order Is:n"); comp(StU); for(n=0;n<SIZE;n+) printf("%6d%10s%8.1fn",StUn.num,StU,StUn.score);break; case 9:searchscore(stuD);break; printf("n"); printf("繼續(xù)嗎?n");void menu() printf("|*|n"); printf("| 請(qǐng)選擇你所需要的函數(shù) |n"); printf("|*|n"); printf("| 1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論