C语言课程设计实践报告.docx

上传人:b****2 文档编号:706799 上传时间:2022-10-12 格式:DOCX 页数:15 大小:405.83KB
下载 相关 举报
C语言课程设计实践报告.docx_第1页
第1页 / 共15页
C语言课程设计实践报告.docx_第2页
第2页 / 共15页
C语言课程设计实践报告.docx_第3页
第3页 / 共15页
C语言课程设计实践报告.docx_第4页
第4页 / 共15页
C语言课程设计实践报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C语言课程设计实践报告.docx

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

C语言课程设计实践报告.docx

C语言课程设计实践报告

北京理工大学珠海学院

C语言程序设计实践报告

2014—2015学年第1学期

学院:

计算机学院

专业班级:

计算机科学与技术

(1)班

学号:

学生姓名:

骆庆东

指导老师:

代俊雅

成绩:

  

时间:

 

 

2014年12月26日

 

 

一、实践目的与内容

实践目的

《C语言程序设计实践02180044》是面向计算机学院各专业开设的专业基础课,主要目的在于培养学生的分析问题能力,以及如何利用计算机解决问题的能力。

通过将课本上的理论知识和应用案例进行结合,提高学生程序设计、程序调试及解决问题能力。

为后续课程:

面向对象程序设计、数据结构、软件工程等专业教育课程奠定基础。

本课程分为理论和实践两部分:

理论课程重点学习结构体和指针的定义和引用等,及其作为函数参数和返回的用法;实践部分通过布置具有一定难度、一定编程量的应用案例,使学生通过编程练习深入理解C语言的程序设计思想,掌握C语言程序设计方法和编程技术,培养学生的利用计算机求解实际问题的能力,强化学生的计算思维和计算机思维。

实践内容

实践练习1:

循环结构编程(猜数游戏)

1.编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,结束游戏。

2.编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,在屏幕上输出人猜

了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则停止本次猜数,然后继续猜下一个数。

每次运行程序可以反复猜多个数,直到操作者想停止时才结束。

实践练习2:

数组与结构体编程(成绩统计)

1.学生成绩统计(一维数组)从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:

(1)统计不及格人数并打印不及格学生名单;

(2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单;

(3)以直方图方式统计各分数段的学生人数及所占的百分比。

形式如下:

分段人数图形

<603(10%)***

60‐698(…)********

70‐797(…)*******

80‐898(…)********

>=904(…)****

2.成绩排名次(结构体数组)某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试,学号可以用输入的序号代替。

考试后要求:

(1)计算每个学生的总分和平均分;

(2)按总分成绩由高到低排出成绩的名次;

(3)打印出名次表,表格内包括学生编号、各科分数、总分和平均分;

(4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数。

实践练习3:

函数编程(函数调用与参数传递)

将实践练习2中的第2题利用函数的思想进行修改,并将学生的成绩等信息输出到文件中。

要求函数参数中包含结构体数组或指针。

输出到ASCII文件的信息包括每个学生的学号、三门成绩和名次,每人一行。

实践练习4:

数组/结构体/函数/文件编程(成绩统计与分析)学生信息统计和查询

每位学生信息包括:

学号、姓名、性别、学院、10门成绩。

共有不超过100位同学的信息存放在ASCII文件中;不超过10个学院的信息存放在中,性别代码存放在中,均为代码和其对应的名称。

要求:

1.定义至少包含以上学生信息和学院代码的结构体类型和指针(或数组)变量。

2.函数实现从文件中输入信息到定义的数据中。

3.函数实现排序

(1):

学生平均成绩的降序排序,并输出所有信息到显示屏。

4.函数实现排序

(2):

学生姓名的升序排序,并输出所有信息到显示器。

5.函数实现查询

(1):

根据学号查询学生信息,并输出该生信息,并输出所有信息到显示器。

6.函数实现查询

(2):

根据姓名查询学生信息,并输出该姓名的学生信息,并输出所有信息到显示器。

7.函数实现查询(3):

根据学院代号列出该学院的所有学生信息,并输出到显示器。

8.函数实现统计:

根据学生平均成绩统计各分数段的人数级所占的百分比,并以直方图方式输出,形式如下:

分段人数图形

<603(10%)***

60‐698(…)********

70‐797(…)*******

80‐898(…)********

>=904(…)****

进入程序后,无条件执行从指定文件名中读入数据;数据读入后,以菜单的形式选择后续的执行:

1.平均成绩降序排序

2.姓名升序排序

3.学号查询

4.姓名查询

5.学院学生列表

6.平均成绩统计

7.退出

其中的查询模块中,须为循环结构,用户可以选择继续查询,当输入的为0时,结束当前查询,返回主菜单。

提高模块**:

1.函数执行需有密码(密码在文件中不得以明文出现);

2.密码修改模块

二、任务内容分析

实践练习1

先编写第1个程序,然后试着在第1个程序的基础上编写第2个程序,……

程序1编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则计算机给出提示“Right!

”,否则提示“Wrong!

”,并告诉人所猜的数是大还是小,然后结束游戏。

要求每次运行程序时机器所“想”的数不能都一样。

程序2编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。

程序3编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,结束游戏。

程序4编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则停止本次猜数,然后继续猜下一个数。

每次运行程序可以反复猜多个数,直到操作者想停

止时才结束。

 

实践练习2

(1)使用一维数组来存放学号,再用一维数组来记录输入成绩的学生变量,计算总分、平均分,调用函数比较学生成绩,得出排名,再根据数组定义对应存放各变量的位置,最后得到名次表和直方图。

(2)使用结构体数组来实现,该结构体中包括学生学号和成绩,用二维数组存放每个学生各门课程的成绩,用一维数组存放每个学生的学号,用一维数组存放每个学生的总分,用一维数组存放每个学生的平均分。

 

实践练习3

用函数编程实现计算每个学生的总分。

用函数编程实现按总分由高到低对学生成绩排序。

实践练习4

题目要求完成一个学生信息统计和查询系统,要求能进行对学生的信息统计和查询,同时可以对学生的信息进行排序。

系统的使用,有用户的存在,即需要用户登录才能使用。

本课程实验环境由任课教师自行决定:

VC++、VisualStudio2010或以上版本(建议采用VisualStudio2012)。

编程语言为C。

系统有以下几个功能性要求:

1.学生的信息查询:

输入学号/用户名,查询对应学生的信息。

2.学生的信息排序:

对学生的信息按指定的要求进行排序。

3.学生的信息统计:

对学生的成绩按平均分进行统计。

4.用户验证:

用户使用该系统,首先进行验证,验证成功,才能登入系统。

三、程序设计

实践练习1

主要代码实现:

while

(1)

{

srand(time(NULL));

k=rand()%100+1;

for(Num=1;Num<11;Num++)

{

printf("请输入一个1~100之间的数:

");

scanf("%d",&i);

if(k==i)

{

printf("Right!

\n");

printf("Num=%d\n",Num);

break;

}

else

{

printf("Wrong!

\n");

if(k>i)printf("Toosmall\n");

elseprintf("Toolarge\n");

}

}

if(k==i)break;

printf("是否继续游戏?

\n");

scanf("%d",&x);

if(x==2)break;

}

实践练习2

主要代码实现:

for(i=0;i

for(j=i+1;j

if(stu[i].sum

t=stu[i];

stu[i]=stu[j];

stu[j]=t;

}

}

}

printf("按总成绩高低排序\n");

printf("名次\t学号\t姓名\t数学\t英语\t物理\t总成绩\t平均分\n");

for(i=0;i

printf("%d\t%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n",i+1,stu[i].number,stu[i].name,stu[i].MT,stu[i].EN,stu[i].PH,stu[i].sum,stu[i].ave);

printf("请输入要查询学生的学号:

");

scanf("%d",&k);

for(i=0;i

if(stu[i].number==k){

printf("名次\t学号\t姓名\t数学\t英语\t物理\t总成绩\t平均分\n");

printf("%d\t%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n",i+1,stu[i].number,stu[i].name,stu[i].MT,stu[i].EN,stu[i].PH,stu[i].sum,stu[i].ave);

break;

}

if(i==N-1){

printf("输入错误!

\n");

printf("请重新输入要查询学生的学号:

");

scanf("%d",&k);

i=0;

}

}

实践练习3

主要代码实现:

structstudentstu[30];

do{

printf("请输入学生的总人数(不超过30人):

");

scanf("%d",&N);

}while(N>30);

for(i=0;i

printf("请输入第%d个学生的学号:

",i+1);

scanf("%d",&stu[i].number);

printf("请输入学生的姓名:

");

scanf("%s",stu[i].name);

printf("请输入数学的成绩:

");

scanf("%f",&stu[i].MT);

printf("请输入英语的成绩:

");

scanf("%f",&stu[i].EN);

printf("请输入物理的成绩:

");

s

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

当前位置:首页 > 解决方案 > 学习计划

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

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