C语言课程设计报告完整版Word文档下载推荐.docx
- 文档编号:18890567
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:32
- 大小:161.10KB
C语言课程设计报告完整版Word文档下载推荐.docx
《C语言课程设计报告完整版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告完整版Word文档下载推荐.docx(32页珍藏版)》请在冰豆网上搜索。
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
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;
{if(i%5==0)
printf("
\n"
);
%10d"
f[i]);
}
getch();
}
2.1系统分析
输出杨辉三角前10行
2.2设计说明
1、N的定义:
#defineN10
2、主函数,判定是否j==0或者j==1
函数名:
返回值:
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源程序代码
{inti,j,a[N][N];
N;
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];
10;
{for(j=0;
%4d"
a[i][j]);
3.1系统分析
打出n,系统求出各个n!
,并求出其和。
3.2设计说明
1、子函数,计算一个数的阶乘。
pow()
n*pow(n-1)函数的递归调用。
intn,含义:
一个自然数。
如果自然数是1,则返回本身;
如果不是1,则利用函数的递归调用求阶乘,直到n再次等于1;
返回最后结果。
2、主函数main()
给s赋初值0,输入所要求解自然数前n项阶乘的和,再用for循环求和,最后输出结果。
3.3源程序截图
longpow(intn)
{if(n==1)return1;
elsereturnn*pow(n-1);
voidmain()
{inti,n;
longs=0;
scanf("
%d"
&
n);
for(i=1;
=n;
s=s+pow(i);
\ns=%ld\n"
s);
4.冒泡法排序
4.1系统分析
用冒泡法将一个数组中的N个整数从小到大排序并输出。
4.2设计说明
1、子函数,用选择法排成升序。
函数名sort()
i=0开始,若i<
9,执行循环,转Step2。
比较两个数组元素,若排在前面的值大于排在后面的值,交换位置,否则转Step3;
若前面的数小于后面的数,则不换位置输出。
从键盘上输入一个数组,然后调用子函数sort(),进行数组排序。
若数组中数字为无序或降序排列,则程序将用选择法将数组排成升序。
如:
(输入)12543768109
则在屏幕上显示:
12345678910
4.3程序运行截图
4.4源程序代码
{inti,j,a[N],t;
a[i]);
N-1;
N-i-1;
if(a[j]>
a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;
a[i]);
5.1系统分析
创建学生成绩管理系统
5.2设计说明
1、M的定义:
#defineM1000
2、函数名:
shuruxianshichazhaopaixucharusavexiugaishanchuquit
3、参数:
intNM,含义:
输入成绩的学生个数、学生的学号。
4、处理流程:
学生成绩管理系统主菜单
选择要进行的内容,并输入序号
若输入1则按要求输入学生成员的个数
Step4;
输入学生的学号
Step5;
输入学生的姓名
Step6;
输入学生的6门成绩
Step7;
进行保存,返回主菜单
5.3程序运行截图
5.4源程序代码
#include<
dos.h>
stdio.h>
stdlib.h>
string.h>
conio.h>
bios.h>
alloc.h>
#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()
{
\n\n\n\n\n\n\n\t\t\t\t\t\t\t\t\t\n"
textcolor(YELLOW);
textbackground(BLUE);
welcometousethissystem!
!
sleep
(2);
load();
clrscr();
for(;
;
)
{switch(menu())
{case1:
shuru(stud);
break;
case2:
xianshi(stud);
case3:
chazhao(stud);
case4:
paixu(stud);
break;
case5:
charu(stud);
case6:
save(stud);
case7:
xiugai();
case8:
shanchu();
case9:
quit();
voidshuru(structstudentstud[])
{intn=0,i,j,k,c;
charb[4];
floatsum;
Howmanystudent'
srecorddoyouwanttoenter?
n=?
\b\b\b"
n;
)
{sum=0;
Inputthe%dthstudent'
snumber"
N+1);
%s"
stud[N].number);
if(flag(stud))
{
Therecordhasexist.\n"
Inputagain."
else
{printf("
sname"
stud[N].name);
printf("
1>
yuwen2>
shuxue3>
yingyu4>
huaxui5>
wuli6>
zhengzhi\n"
6;
{do
sscore(%d)"
N+1,j+1);
b);
stud[N].score[j]=atof(b);
if(stud[N].score[j]<
=0||stud[N].score[j]>
100)
k=1;
Errorinput!
Inputagain...\n"
k=0;
}while(k);
sum+=stud[N].score[j];
stud[N].average=sum/6;
\nEntersuccess!
\nPressanykeytoreturn."
N++;
i++;
H=1;
voidxianshi(structstudentstud[])
{inti=0,k,max,maxb,n,flag='
y'
charm[6];
if(N==0)
Therearenotrecord.\n"
Pressanykeytoreturn."
while(flag!
='
n'
{maxb=0;
i=0;
do
{if(N%10!
=0)
\n\t\tThereare%dpagesinall."
N/10+1);
\n\t\tWhichpagedoyouwanttosee?
"
N/11+1);
m);
k=atoi(m);
if(k)
{k=10*(k-1);
if(k>
=N)
\n\t\tThepageisnotexist!
"
\n\t\tInputagain.\n"
k=N+1;
}while(k>
=N);
if((k+10)>
N)
max=N;
max=k+10;
for(i=k;
max;
{n=strlen(stud[i].name);
if(n>
maxb)
maxb=n;
i=k;
if(maxb<
8)
{while(i<
max)
if(i%10==0)
\n\t\t\t\tPage:
(k+10)/10);
\n1>
\n\t|---|--------|--------|----|----|----|----|----|----|------|"
\n\t|NO:
|number|name|
(1)|
(2)|(3)|(4)|(5)|(6)|junfen|\n"
\t|---|--------|--------|----|----|----|----|----|----|------|\n"
\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++;
\n\t\b\b|---|--------|----------------|----|----|----|----|----|----|------|\n"
\n\t\b\b|NO:
|number|name|
(1)|
(2)|(3)|(4)|(5)|(6)|junfen|\n"
\t\b\b|---|--------|----------------|----|----|----|----|----|----|------|\n"
\t\b\b|%-2d|%-6s|%-16s|%-4.1f|%-4.1f|%-4.1f|%-4.1f|%-4.1f|%-4.1f|%-6.2f|\n"
\t\b\b|---|--------|----------------|----|----|----|----|----|----|----|------|\n"
\t\t\t\b\bDoyouwanttogoon?
yorn?
\b\b\b\b\b\b\b"
flag=getch();
voidchazhao(structstudentstud[])
{inti=0,n,j;
charnumber[8],flag='
{i=0;
\n\t\t\t\t\b\b\b\bThenumber--namelist:
----------------------------------------"
while(i<
if(strlen(stud[i].number)<
4)
n=4;
n=strlen(stud[i].number);
if(n+strlen(stud[i].name)<
15)
{if(n+strlen(stud[i].name)>
6)
%-4s-"
stud[i].number);
%s\t"
stud[i].name);
%s\t\t"
else
if(strlen(stud[i].number)>
j=(12-strlen(stud[i].number));
j=12-4;
for(n=0;
n<
j;
n++)
%c"
stud[i].name[n]);
.."
\n---------------------------------------"
-----------------------------------------"
\n\t\t\bInputthestudent'
snumberyouwanttosearch:
number);
i=0;
{if(strcmp(stud[i].number,number)==0)
if(strlen(stud[i].name)<
\t|---|--------|--------|----|----|----|----|----|-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 完整版