C语言课程设计报告完整版.docx

上传人:b****5 文档编号:5901797 上传时间:2023-01-02 格式:DOCX 页数:32 大小:161.10KB
下载 相关 举报
C语言课程设计报告完整版.docx_第1页
第1页 / 共32页
C语言课程设计报告完整版.docx_第2页
第2页 / 共32页
C语言课程设计报告完整版.docx_第3页
第3页 / 共32页
C语言课程设计报告完整版.docx_第4页
第4页 / 共32页
C语言课程设计报告完整版.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

C语言课程设计报告完整版.docx

《C语言课程设计报告完整版.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告完整版.docx(32页珍藏版)》请在冰豆网上搜索。

C语言课程设计报告完整版.docx

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|---|--------|--------|----|----|----|----|----|-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1