C语言课程设计报告完整版.docx
- 文档编号:5901797
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:32
- 大小:161.10KB
C语言课程设计报告完整版.docx
《C语言课程设计报告完整版.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告完整版.docx(32页珍藏版)》请在冰豆网上搜索。
C语言课程设计报告完整版
C语言课程设计报告
ExperimentDesigningreporter
课程名称:
C语言课程设计
英文名称:
CProgramExperimentDesigning
专业:
学号:
姓名:
指导教师:
日期:
2009年6月8日 至2009年6月20日
学院
《C语言课程设计》报告
CProgramExperimentDesigning
课程编号:
01200308005学时:
40学时
适用专业:
软件工程专业授课单位:
软件学院
一、C语言课程设计目的及要求
目的:
根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。
要求:
1.熟悉TurboC的编程环境、主要菜单功能。
2.通过上机验证运算符、表达式、运算规则、函数使用。
3.熟练使用C语言的典型语句编写简单程序。
4.调试典型例题或习题。
5.提高上机编程能力
二、实验类型
设计类型
三、实验学时
40学时
四、实验设备
微型计算机、WINDOWSXP、TurboC2.0软件一套
五、C语言课程参考教材:
1.C语言程序设计清华大学出版社李瑞等主编
2.C语言课程设计电子工业出版社黄明等主编
课程设计(报告)任务书
任务及要求:
1.设计(研究)内容和要求。
研究内容:
1FIBONACCISL数列
2杨辉三角
3前n项阶乘和
4冒泡法排序
5学生成绩管理系统
任务和要求:
(1).学习C语言基础知识,掌握C语言编程和程序调试的基本技能。
(2).对指导教师下达的题目进行系统分析。
(3).根据分析结果完成系统设计。
(4).编程:
在计算机上实现题目的代码实现。
(5).完成对该系统的测试和调试。
(6).提交课程设计报告。
(7).指标:
要求完成课程设计报告3千字以上(约二、三十页).
完成若干综合性程序设计题目,每个综合设计题目的语句行数的和在300行语句以上.
2.原始依据
了解C语言的基础知识,有一定的语言编程基础,能够熟练运用C语言进行程序设计。
通过用C语言完成的题目,提高用C语言解决实际问题的能力。
3.参考文献
[1].C语言程序基础清华大学出版社李瑞等主编
[2].C语言课程设计电子工业出版社黄明等主编
2009年6月8日
目录
C语言课程设计报告1
1FIBONACCISL数列1
1.1系统分析1
1.2设计说明1
1.3程序运行截图1
1.4源程序代码1
2杨辉三角2
2.1系统分析2
2.2设计说明2
2.3程序运行截图3
2.4源程序代码3
3前n项阶乘和4
3.1系统分析4
3.2设计说明4
3.3源程序截图4
3.4源程序代码:
5
4.冒泡法排序5
4.1系统分析5
4.2设计说明5
4.3程序运行截图6
4.4源程序代码6
5学生成绩管理系统7
5.1系统分析7
5.2设计说明7
5.3程序运行截图7
5.4源程序代码8
1FIBONACCISL数列
1.1系统分析
查看Fibonacci数列。
1.2设计说明
主函数main()
Step1、定义f1,f2两个变量,f1,f2初值均为1。
Step2、在for循环中,不断用f1+f2覆盖新的f1,不断用刚才更新的f1加上原来的f2覆盖新的f2。
Step3、新的f1是每次循环求出的新的Fibonacci数列的第一个数;新的f2是每次循环求出的新的数列的第二个数。
Step4、输出数列查看。
程序运行截图
1.4源程序代码
#include"stdio.h"
main()
{inti;
intf[20]={1,1};
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<20;i++)
{if(i%5==0)
printf("\n");
printf("%10d",f[i]);
}
getch();
}
2杨辉三角
2.1系统分析
输出杨辉三角前10行
2.2设计说明
1、N的定义:
#defineN10
2、主函数,判定是否j==0或者j==1
函数名:
main()
返回值:
j==0或j==1/else,j==0||j==1:
a[i][j]=1,else:
a[i][j]=a[i-1][j]+a[i-1][j-1];
参数:
i,含义:
行的位置
参数:
j,含义:
列的位置
参数:
a[i][j],含义:
数的位置
处理流程:
Step1:
判别i,j的值,如果j==o,或j==i,则输出a[i][j]=1,否则转入Step2.
Step2:
输出a[i][j]=a[i-1][j]+a[i-1][j-1];
Step3:
输出整个杨辉三角前10行。
3、主函数main()
执行程序,则在屏幕上显示:
1
11
121
1331
14641
15101051
1615201561
172135352171
18285670562881
193684126126843691
2.3程序运行截图
2.4源程序代码
#include"stdio.h"
#defineN10
main()
{inti,j,a[N][N];
for(i=0;i for(j=0;j<=i;j++) if(j==0||j==i) a[i][j]=1; elsea[i][j]=a[i-1][j]+a[i-1][j-1]; for(i=0;i<10;i++) {for(j=0;j<=i;j++) printf("%4d",a[i][j]); printf("\n"); } getch(); } 3前n项阶乘和 3.1系统分析 打出n,系统求出各个n! ,并求出其和。 3.2设计说明 1、子函数,计算一个数的阶乘。 函数名: pow() 返回值: n*pow(n-1)函数的递归调用。 参数: intn,含义: 一个自然数。 处理流程: Step1: 如果自然数是1,则返回本身; Step2: 如果不是1,则利用函数的递归调用求阶乘,直到n再次等于1; Step3: 返回最后结果。 2、主函数main() 给s赋初值0,输入所要求解自然数前n项阶乘的和,再用for循环求和,最后输出结果。 3.3源程序截图 3.4源程序代码: #include"stdio.h" longpow(intn) {if(n==1)return1; elsereturnn*pow(n-1); } voidmain() {inti,n; longs=0; scanf("%d",&n); for(i=1;i<=n;i++) s=s+pow(i); printf("\ns=%ld\n",s); getch(); } 4.冒泡法排序 4.1系统分析 用冒泡法将一个数组中的N个整数从小到大排序并输出。 4.2设计说明 1、子函数,用选择法排成升序。 函数名sort() 处理流程: Step1: i=0开始,若i<9,执行循环,转Step2。 Step2: 比较两个数组元素,若排在前面的值大于排在后面的值,交换位置,否则转Step3; Step3: 若前面的数小于后面的数,则不换位置输出。 2、主函数main() 从键盘上输入一个数组,然后调用子函数sort(),进行数组排序。 若数组中数字为无序或降序排列,则程序将用选择法将数组排成升序。 如: (输入)12543768109 则在屏幕上显示: 12345678910 4.3程序运行截图 4.4源程序代码 #include"stdio.h" #defineN10 main() {inti,j,a[N],t; for(i=0;i scanf("%d",&a[i]); for(i=0;i {for(j=0;j if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} } for(i=0;i printf("%4d",a[i]); getch(); } 5学生成绩管理系统 5.1系统分析 创建学生成绩管理系统 5.2设计说明 1、M的定义: #defineM1000 2、函数名: shuruxianshichazhaopaixucharusavexiugaishanchuquit 3、参数: intNM,含义: 输入成绩的学生个数、学生的学号。 4、处理流程: Step1: 学生成绩管理系统主菜单 Step2: 选择要进行的内容,并输入序号 Step3: 若输入1则按要求输入学生成员的个数 Step4;输入学生的学号 Step5;输入学生的姓名 Step6;输入学生的6门成绩 Step7;进行保存,返回主菜单 5.3程序运行截图 5.4源程序代码 #include #include #include #include #include #include #include #defineM1000 intN=0; intH=0; structstudent {charnumber[8]; charname[16]; floatscore[6]; floataverage; }stud[M],temp; voidload(void); voidpaixu(structstudentstud[]); voidcharu(structstudentstud[]); voidsave(structstudentstud[]); voidxianshi(structstudentstud[]); voidchazhao(structstudentstud[]); voidshuru(structstudentstud[]); voidshanchu(void); voidxiugai(void); voidquit(void); intflag(structstudentstud[]); intmenu(void); main() { printf("\n\n\n\n\n\n\n\t\t\t\t\t\t\t\t\t\n"); textcolor(YELLOW); textbackground(BLUE); printf("welcometousethissystem! ! ! ! \n"); sleep (2); load(); clrscr(); for(;;) {switch(menu()) {case1: shuru(stud);break; case2: xianshi(stud);break; case3: chazhao(stud);break; case4: paixu(stud);break; case5: charu(stud);break; case6: save(stud);break; case7: xiugai();break; case8: shanchu();break; case9: quit(); } } } voidshuru(structstudentstud[]) {intn=0,i,j,k,c; charb[4]; floatsum; printf("Howmanystudent'srecorddoyouwanttoenter? n=? \b\b\b"); scanf("%d",&n); for(i=0;i {sum=0; printf("Inputthe%dthstudent'snumber",N+1); scanf("%s",stud[N].number); if(flag(stud)) { printf("Therecordhasexist.\n"); printf("Inputagain."); getch(); } else {printf("Inputthe%dthstudent'sname",N+1); scanf("%s",stud[N].name); printf("1>yuwen2>shuxue3>yingyu4>huaxui5>wuli6>zhengzhi\n"); for(j=0;j<6;j++) {do { printf("Inputthe%dthstudent'sscore(%d)",N+1,j+1); scanf("%s",b); stud[N].score[j]=atof(b); if(stud[N].score[j]<=0||stud[N].score[j]>100) { k=1; printf("Errorinput! ! ! \n"); printf("Inputagain...\n"); } else k=0; }while(k); sum+=stud[N].score[j]; } stud[N].average=sum/6; printf("\nEntersuccess! ! ! \n"); printf("\nPressanykeytoreturn."); getch(); N++; i++; H=1; } clrscr(); } clrscr(); } voidxianshi(structstudentstud[]) {inti=0,k,max,maxb,n,flag='y'; charm[6]; if(N==0) { printf("Therearenotrecord.\n"); printf("Pressanykeytoreturn."); getch(); } else while(flag! ='n') {maxb=0;i=0; do {if(N%10! =0) {printf("\n\t\tThereare%dpagesinall.",N/10+1); printf("\n\t\tWhichpagedoyouwanttosee? "); } else {printf("\n\t\tThereare%dpagesinall.",N/11+1); printf("\n\t\tWhichpagedoyouwanttosee? "); } scanf("%s",m); k=atoi(m); if(k) {k=10*(k-1); if(k>=N) {printf("\n\t\tThepageisnotexist! ! ! "); printf("\n\t\tInputagain.\n"); } } else k=N+1; }while(k>=N); if((k+10)>N) max=N; else max=k+10; clrscr(); for(i=k;i {n=strlen(stud[i].name); if(n>maxb) maxb=n; } i=k; if(maxb<8) {while(i { if(i%10==0) {printf("\n\t\t\t\tPage: %d",(k+10)/10); printf("\n1>yuwen2>shuxue3>yingyu4>huaxui5>wuli6>zhengzhi\n"); printf("\n\t|---|--------|--------|----|----|----|----|----|----|------|"); printf("\n\t|NO: |number|name| (1)| (2)|(3)|(4)|(5)|(6)|junfen|\n"); } printf("\t|---|--------|--------|----|----|----|----|----|----|------|\n"); printf("\t|%-2d|%-6s|%-8s|%-4.1f|%-4.1f|%-4.1f|%-4.1f|%-4.1f|%-4.1f|%-6.2f|\n",i+1,stud[i].number,stud[i].name,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].score[3],stud[i].score[4],stud[i].score[5],stud[i].average); i++; } printf("\t|---|--------|--------|----|----|----|----|----|----|------|\n"); } else {while(i { if(i%10==0) {printf("\n\t\t\t\tPage: %d",(k+10)/10); printf("\n\t\b\b|---|--------|----------------|----|----|----|----|----|----|------|\n"); printf("\n\t\b\b|NO: |number|name| (1)| (2)|(3)|(4)|(5)|(6)|junfen|\n"); printf("\t\b\b|---|--------|----------------|----|----|----|----|----|----|------|\n"); } printf("\t\b\b|%-2d|%-6s|%-16s|%-4.1f|%-4.1f|%-4.1f|%-4.1f|%-4.1f|%-4.1f|%-6.2f|\n",i+1,stud[i].number,stud[i].name,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].score[3],stud[i].score[4],stud[i].score[5],stud[i].average); i++; } printf("\t\b\b|---|--------|----------------|----|----|----|----|----|----|----|------|\n"); } printf("\t\t\t\b\bDoyouwanttogoon? yorn? \b\b\b\b\b\b\b"); flag=getch(); clrscr(); } } voidchazhao(structstudentstud[]) {inti=0,n,j; charnumber[8],flag='y'; clrscr(); while(flag! ='n') {i=0; printf("\n\t\t\t\t\b\b\b\bThenumber--namelist: \n"); printf("----------------------------------------"); printf("----------------------------------------"); while(i { if(strlen(stud[i].number)<4) n=4; else n=strlen(stud[i].number); if(n+strlen(stud[i].name)<15) {if(n+strlen(stud[i].name)>6) {printf("%-4s-",stud[i].number); printf("%s\t",stud[i].name); i++; } else {printf("%-4s-",stud[i].number); printf("%s\t\t",stud[i].name); i++; } } else {printf("%-4s-",stud[i].number); if(strlen(stud[i].number)>4) j=(12-strlen(stud[i].number)); else j=12-4; for(n=0;n printf("%c",stud[i].name[n]); printf(".."); i++; } } printf("\n---------------------------------------"); printf("-----------------------------------------"); printf("\n\t\t\bInputthestudent'snumberyouwanttosearch: "); scanf("%s",number); i=0; while(i {if(strcmp(stud[i].number,number)==0) {printf("\n1>yuwen2>shuxue3>yingyu4>huaxui5>wuli6>zhengzhi\n"); if(strlen(stud[i].name)<8) {printf("\n"); printf("\t|---|--------|--------|----|----|----|----|----|-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 完整版