C语言课程设计报告类型3Word格式文档下载.docx
- 文档编号:19025418
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:47
- 大小:224.26KB
C语言课程设计报告类型3Word格式文档下载.docx
《C语言课程设计报告类型3Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告类型3Word格式文档下载.docx(47页珍藏版)》请在冰豆网上搜索。
1、输入实型数a、b、c,要求按由大到小的顺序输出(函数参数要用指针)。
2、编写一个通用的子函数,将一个一维数组进行逆序存储(第一个元素与最后一个元素值互换,依次类推.....)。
3、编写一个通用的求n×
n阶矩阵的对角线元素之和。
4、编写程序,输入10个员工的编号、姓名、基本工资、职务工资,求出“基本工资+职务工资”最少的职工(要求用子函数完成),并输出该职工记录。
5、有5个学生4门课,编写程序算出4门课的总成绩,并按总成绩进行排序,然后打印出成绩表。
6、用户由键盘输入一个文件名,然后输出一串字符(用#结束输入),存放到此文件并将字符的个数写到文件尾部。
7、有5个学生,每个学生有三门课的成绩。
从键盘输入以上数据(包括学生号、姓名号、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存在磁盘文件stud中。
8、学生成绩管理系统。
任务和要求:
(1).学习C语言基础知识,掌握C语言编程和程序调试的基本技能。
(2).对指导教师下达的题目进行系统分析。
(3).根据分析结果完成系统设计。
(4).编程:
在计算机上实现题目的代码实现。
(5).完成对该系统的测试和调试。
(6).提交课程设计报告。
(7).指标:
要求完成课程设计报告3千字以上(约二、三十页).
完成若干综合性程序设计题目,每个综合设计题目的语句行数的和在300行语句以上.
2.原始依据
了解C语言的基础知识,有一定的语言编程基础,能够熟练运用C语言进行程序设计。
通过用C语言完成的题目,提高用C语言解决实际问题的能力。
3.参考文献
[2]马靖善等.C语言程序设计.清华大学出版社,2005
2010年7月12日
[说明:
学生打印稿不能出现,字体要求等说明文字]
1按大小排序输出
1.1系统分析
输入实型数a、b、c,要求按由大到小的顺序输出(函数参数要用指针)。
1.2设计说明
1、子函数,交换两个地址的数值
函数名:
swap()
返回值:
无
参数:
float*x、float*y,含义:
指针(指向数值)
处理流程:
Step1:
定义变量z,作为交换时的暂存变量。
Step2:
将数值*x赋给z
Step3:
将数值*y赋给*x
Step4:
将数值z赋给*y
2、主函数main():
从键盘上输入a、b、c三个数,然后进行判断三个变量中数值的大小关系。
调用子函数swap()交换,使最终结果为a>
b>
c。
最后输出a、b、c。
1.3程序运行截图
1.4源程序代码
#include"
stdio.h"
voidswap(float*x,float*y)
{
floatz;
z=*x;
*x=*y;
*y=z;
}
voidmain()
floata,b,c;
scanf("
%f%f%f"
&
a,&
b,&
c);
if(a<
b)
swap(&
b);
c)
if(b<
printf("
Afterswap:
a=%f,b=%f,c=%f\n"
a,b,c);
2逆序存储
2.1功能说明
编写一个通用的子函数,将一个一维数组进行逆序存储(第一个元素与最后一个元素值互换,依次类推.....)。
2.2设计说明
1、子函数:
(1)子函数1,交换x[i]与x[n-i-1]的数值
函数名:
afterward()
float*x,,含义:
数组首地址;
intn,含义:
数组元素个数。
Step1:
定义变量z,作为交换时的暂存变量;
定义变量i,循环时使用。
Step2:
在for循环时交换x[i]与x[n-i-1]的数值。
(2)子函数2,输出数值
printarray()
返回值:
参数:
数组元素个数
处理流程:
在循环时输出数值。
2、主函数main()
从键盘上输入10个数,给一维数组x[n]赋初值。
调用afterward()交换x[i]与x[n-i-1]的数值。
再调用printarray(),输出交换后数值。
2.3程序运行截图
2.4源程序代码
voidafterward(float*x,intn)
inti;
for(i=0;
i<
n/2;
i++)
{
z=*(x+i);
*(x+i)=*(x+n-1-i);
*(x+n-1-i)=z;
}
voidprintarray(float*x,intn)
n;
printf("
%f"
x[i]);
\n"
);
main()
floata[10]={1.,2.,3.,4.,5.,6.,7.,8.,9.,10.};
afterward(a,10);
printarray(a,10);
3n×
n阶矩阵的对角线元素之和
3.1功能说明
编写一个通用的求n×
3.2设计说明
1、N的定义:
#defineN4
2、子函数,将对角线上的数值相加。
corner()
sum,对角线上数值之和。
int*x,含义:
数组行列数。
定义变量sun,存放对角线上数值之和的数值;
在for循环时将行列数相等的数组数值加到变量sun中。
判断另一条对角线上的数是否加重复,即是否为奇数矩阵的对角线中心。
Step4:
若为奇数矩阵的对角线中心数,则不加入sun,若不是奇数矩阵的对角线中心数,则加入sun中。
3、主函数main()
定义二维数组a[N],给二维数组a[N]赋初值1~16(如下图)。
定义sum,再调用corner()计算对角线上的数值,将值赋给sum,输出数值sum。
3.3程序运行截图
3.4源程序代码
intcorner(int*x,intn)
inti,sum=0;
sum=sum+*(x+i);
if(x+i!
=x+n-1-i)
{
sum+=*(x+n-i-1);
}
x=x+n;
returnsum;
inta[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
intsum;
sum=corner(*a,4);
%d\n"
sum);
4职工信息管理
4.1系统分析
编写程序,输入10个员工的编号、姓名、基本工资、职务工资,求出“基本工资+职务工资”最少的职工(要求用子函数完成),并输出该职工记录。
4.2设计说明
1、结构体employee的定义:
intnum,员工编号
charname[20],员工姓名
floatjbgz,员工基本工资
floatzwgz,员工职务工资
floatsum,工资总和=基本工资+职务工资
2、子函数:
子函数
(1):
sum()
structemployee*p,含义:
员工信息;
定义i,循环时使用。
在for循环的同时,将jbgz与zwgz的和赋值给sum。
子函数
(2):
find()
在for循环的同时,判断选出sum最小的员工。
输出员工的基本信息。
首先进行函数的声明,定义员工的基本信息(举例为五个员工,信息如下图),调用函数sum()和find(),输出结果。
4.3程序运行截图
4.4源程序代码
structemployee
{
intnum;
charname[20];
floatjbgz;
floatzwgz;
floatsum;
};
voidsum(structemployee*,int);
voidfind(structemployee*,int);
structemployeea[10]={11,"
wangLi"
660.,760.,0.,
13,"
wangLin"
690.,740.,0.,
16,"
LiuHua"
860.,760.,0.,
14,"
ZhangJun"
660.,660.,0.,
22,"
XuXia"
650.,760.,0.};
sum(a,5);
find(a,5);
voidsum(structemployee*p,intn)
{
p->
sum=p->
jbgz+p->
zwgz;
p++;
voidfind(structemployee*p,intn)
structemployee*pmax=p;
for(i=1;
if((p+i)->
sum>
pmax->
sum)pmax=p+i;
Theperson'
sinformation:
\nnumber=%d,\nname=%s,\nbasicsalary=%.2f,\njobsalary=%.2f,\ntotal=%.2f\n"
pmax->
num,pmax->
name,pmax->
jbgz,pmax->
zwgz,pmax->
sum);
5学生成绩处理
5.1系统分析
有5个学生4门课,编写程序算出4门课的总成绩,并按总成绩进行排序,然后打印出成绩表。
5.2设计说明
1、结构体student的定义:
intnum,学生学号
charname[20],学生姓名
charsex,学生性别
floats[4],学生四门课的成绩
floatsum,学生成绩总和
sum()
structstudent*p,含义:
学生信息;
结构体个数。
定义i、j,循环时使用。
定义变量d。
在for循环的同时,将各成绩之和的和赋值给d,在将d的数值赋给sum。
sort()
定义变量k。
在for循环的同时,按sum数值由小到大排列学生信息。
子函数(3):
print()
在for循环的同时,将排列好的学生信息输出。
首先进行函数的声明,定义学生的基本信息(举例为五个学生,信息如下图),调用函数sum()、sort()和print(),输出结果。
5.3程序运行截图
5.4源程序代码
structstudent
charsex;
floats[4];
voidsum(structstudent*,int);
voidsort(structstudent*,int);
voidprint(structstudent*,int);
structstudenta[5]={11,"
wangli"
'
f'
66.,76.,83.,61.,0.,13,"
wanglin"
m'
69.,74.,63.,91.,0.,16,"
liuhua"
86.,76.,93.,61.,0.,14,"
zhangjun"
66.,66.,83.,61.,0.,22,"
xuxia"
65.,76.,93.,68.,0.,};
sort(a,5);
print(a,5);
voidsum(structstudent*p,intn)
inti,j;
floatd;
d=0.0;
for(j=0;
j<
4;
j++)
d+=p->
s[j];
p->
sum=d;
p++;
voidsort(structstudent*p,intn)
structstudentt;
inti,j,k;
n-1;
k=i;
for(j=i+1;
if((p+k)->
sum<
(p+j)->
sum)k=j;
if(k!
=i)
{t=*(p+i);
*(p+i)=*(p+k);
*(p+k)=t;
voidprint(structstudent*p,intn)
{printf("
%-10d%-10s%5c%10.1f%5.1f%5.1f%5.1f%10.1f\n"
p->
num,p->
name,p->
sex,p->
s[0],p->
s[1],p->
s[2],p->
s[3],p->
6文件处理
6.1系统分析
用户由键盘输入一个文件名,然后输出一串字符(用#结束输入),存放到此文件并将字符的个数写到文件尾部。
6.2设计说明
1、主函数main()
定义文件fp,字符(串)变量ch,fname[32],定义整型变量count。
输入文件名(若不存在,则退出程序),输入字符串(以‘#’结束)。
程序将文件中的字符数统计后写入文件尾部。
6.3程序运行截图
6.4源程序代码
#include"
main()
FILE*fp;
charch,fname[32];
intcount=0;
Inputthefilename:
"
%s"
fname);
if((fp=fopen(fname,"
w+"
))==NULL)
{
Can'
topenfile:
%s\n"
exit(0);
Enterdata:
while((ch=getchar())!
='
#'
)
{
fputc(ch,fp);
count++;
fprintf(fp,"
\n%d\n"
count);
fclose(fp);
7成绩存储
7.1系统分析
有5个学生,每个学生有三门课的成绩。
7.2设计说明
charname[10];
学生姓名
ints[3];
三门课的成绩
floatave;
各科平均分
定义文件fp,结构体studentst[5],变量i,打开文件stud(若不存在,则退出程序),输入学生信息,并计算平均分。
然后将原有数据和计算出的平均分数存在磁盘文件stud中。
7.3程序运行截图
7.4源程序代码
structstudentst[5];
if((fp=fopen("
stud"
"
w"
{
cannotopenfile\n"
exit(0);
5;
number%dinputnameand3scores:
i+1);
scanf("
%s%d%d%d"
st[i].name,&
st[i].s[0],&
st[i].s[1],&
st[i].s[2]);
st[i].ave=(st[i].s[0]+st[i].s[1]+st[i].s[2])/3.0;
fprintf(fp,"
%s%d%d%d\n"
st[i].name,st[i].s[0],st[i].s[1],st[i].s[2]);
fclose(fp);
8图书馆借阅管理系统
8.1系统分析
建立图书馆借阅管理系统,采用计算机对图书馆进行图书管理、会员管理、工作人员信息查询和图书馆反馈信息的查询。
8.2设计说明
1.进入系统(如图1)
2.功能说明:
1)图书管理功能
(1)增加图书:
将新进的图书添加到图书库中,便于管理!
通过bookadd函数实现;
用户需按ALT+B组合键,选择Book功能菜单,待下拉菜单弹出之后,用户调整方向键,选择Add选项,按回车键进入图书添加功能,窗口中会显示Pleaseinputthebooknum的提示话语,用户输入书号即可;
(如图2、图3)
(2)删除图书:
删除丢失或废弃的图书。
通过bookdel函数实现;
用户需按ALT+B组合键,选择Book功能菜单,待下拉菜单弹出之后,用户调整方向键,选择Del选项,按回车键进入图书删除功能,窗口中会显示Pleaseinputthebookname的提示话语,输入书名,点击回车,所要删除的图书即可删除;
(如图4)
(3)查询图书:
对已经加入到图书库中的图书进行查询(书号,书名,书的价钱等),
通过bookconsult函数实现;
用户需按ALT+B组合键,选择Book功能菜单,待下拉菜单弹出之后,用户调整方向键,选择Consult选项,按回车键进入图书查询功能,窗口中会显示Pleaseinputthebookname的提示话语,用户输入书名,系统会显示图书的编号,书名,价钱及借阅情况等;
(4)图书的借阅:
对于借阅的图书进行记录,便于管理,通过bookborrow函数实现;
用户需按ALT+B组合键,选择Book功能菜单,待下拉菜单弹出之后,用户调整方向键,选择Borrow选项,按回车键进入图书借阅功能,窗口中会显示Pleaseinputthemembername的提示话语,输入会员名即可,若是非会员,窗口则显示Youarenotmember,pleaseregister!
的提示话语;
(如图5)
(5)图书的归还:
对于借出图书后的归还进行记录,并将图书返回书库。
通过Bookreturn函数实现;
用户需按ALT+B组合键,选择Book功能菜单,待下拉菜单弹出之后,用户调整方向键,选择Return选项,按回车键进入图书归还功能,窗口中会显示Pleaseinputthebookname的提示话语,输入书名即可,若是非书库中的书,窗口会显示ReturnFail!
的提示话语。
(如图6)
2)会员管理功能
(1)添加会员:
添加已经办理好会员手续的人资料,便于管理!
通过memberadd函数实现;
用户需按ALT+M组合键,选择Member功能菜单,待下拉菜单弹出之后,用户调整方向键,选择Add选项,按回车键进入会员添加功能,窗口中会显示Pleaseinputnewmembername的提示话语,输入姓名即可,然后用户输入会员的性别和年龄,按回车键添加成功;
(如图7)
(2)删除会员:
对退出会员的人进行删除。
通过memberdel函数实现;
用户需按ALT+M组合键,选择Member功能菜单,待下拉菜单弹出之后,用户调整方向键,选择Del选项,按回车键进入会员删除功能,窗口中会显示P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 类型