C语言课程设计报告类型3Word格式文档下载.docx

上传人:b****6 文档编号:19025418 上传时间:2023-01-03 格式:DOCX 页数:47 大小:224.26KB
下载 相关 举报
C语言课程设计报告类型3Word格式文档下载.docx_第1页
第1页 / 共47页
C语言课程设计报告类型3Word格式文档下载.docx_第2页
第2页 / 共47页
C语言课程设计报告类型3Word格式文档下载.docx_第3页
第3页 / 共47页
C语言课程设计报告类型3Word格式文档下载.docx_第4页
第4页 / 共47页
C语言课程设计报告类型3Word格式文档下载.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

C语言课程设计报告类型3Word格式文档下载.docx

《C语言课程设计报告类型3Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告类型3Word格式文档下载.docx(47页珍藏版)》请在冰豆网上搜索。

C语言课程设计报告类型3Word格式文档下载.docx

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模板 > 其它模板

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

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