实习报告书Word格式.docx
- 文档编号:21149286
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:20
- 大小:217.85KB
实习报告书Word格式.docx
《实习报告书Word格式.docx》由会员分享,可在线阅读,更多相关《实习报告书Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
通过各模块完成这七项功能:
1、输入每个选手的数据包括编号、姓名、十个评委的成绩,根据输入计算出总成绩和平均成绩(去掉最高分,去掉最低分)。
2、显示数据。
3、对输入的选手的数据分数进行排序,链表的插入排序,把排序后的结果显示出来
4、追加选手数据,把新增加的选手添加到链表中。
5、把所有选手的数据信息写入到文件啊,方便调用,使用。
6、可以读出数据文件。
7、退出系统。
三、总体设计
(1)将歌手比赛系统程序分成10部分:
1.定义结构体2.创建链表函数
3.输入选手数据4.计算分数
5.选手分数排序6.追加选手信息
7.写入数据文件8.读出数据文件
9.退出系统
10.主函数,调用各部分。
(2)系统模块图为:
(3)系统的流程图:
Y
四、详细设计说明
(1)输入选手数据:
创建链表L,voidcreateList(),包含的参数有选手姓名name,选手编号num,选手的分数sort[10]
输入函数流程图
(2)计算选手分数:
把相应的选手的十个分数输入,在floataverage(int*arr)子程序中算出选手的平均分,平均分=(十个分数—最高分—最低分)/8、
(3)选手排序:
每位选手的平均分都已经算出并放在L链表的aver中,voidpaixu()是用来排序的子程序块。
过程是再建立两个指针,先把L链表折开,然后通过另外两个指针来进行比较,这样按从大到小或从小到大重新链成有序的链表例如下图:
(4)追加选手:
编写了voidAppend()程序块来完成选手的追加功能,如下例的模块图:
(5)写入数据文件:
把所有选手的数据通过voidsave()子程序写入文本文件中,方便调用,和用户的使用。
操作时以写的方式打开文件,用fwrite()函数把信息写入文本文件中,写入完毕后,把文件关闭。
(6)读出数据文件:
把在文本文件中的信息通过voiddu()模块,读到程序中,这样不用用户一次次的输入。
以读的方式打开文件,用fread()函数把信息从文本文件中读出到程序里。
(7)退出系统:
用exit(0)来退出编写的系统。
五、软件使用说明
1.首先显示进入系统的界面:
2.选择“1.输入选手信息”项,可输入选手的编号,姓名,十个分数,显示如下图:
3.选择“2显示选手信息”时的界面为:
4.选择“3.成绩排序”后,系统自动显示出选手的排序后的信息:
5选择“4.追加选手数据”后的信息图如下;
6写入数据文件和读出数据文件,会形成一个文本文件,选手“读出数据文件”,会从外存中的文本文件中把数据信息读到内存中。
7.选择“7.退出系统”,则关于退出运行的系统,回到程序中。
六、调试与测试
在调试中会出现“0X00401742”指令引用的“0X00000038”内存。
该内存不能为“read”或”write”。
要终止程序,请单击“确定”,要调试程序,请单击“取消”。
出现这些问题,是应该指针指向了别处,不能正常运转,所以出错了,把指针指向修改下就行了。
这个歌手比赛系统包含了八个函数:
voidmain(),voidcreateList(),voiddisplayList(),voidpaixu(),voidAppend(),voidSave(),voidDu(),voidexit(0)
其中:
main()为主函数,显示出主菜单,并可是调用其他的七信子程序;
voidcreateList()是建链表,创建歌手的信息,把选手的相关信息选手号和姓名,还有十个分数输入到一个链表中。
voiddisplayList()是用来显示输出选手的数据;
voidpaixu()是用来排序,把选手按平均分的大小排序,这样使选手有序。
在这个子程序中排序出现很多问题,只输入第一个大的选手信息,最后把原链表折分开,再按大小重新组合在一块,这样一个有序的链表形成了,再显示出来。
voidAppend()是插入函数,用来插入新的选手的数据;
voidSave()定入数据文件的函数,将选手的数据保存到文本文件中,便于下次调用程序时调用。
voidDu()文件导入函数,把文本文件中的信息读出来,读到此程序中。
七、工作日志
(按天说明每日工作及进展等)
2012年2月20日:
今天是实训第一天,我从三十个题目中选出一道“歌手比赛系统”的题目,这是我十天实训要完成的题。
有一点的不知所措,但我心里给自己加油,相信一定能够完成,期间的困难我也会战胜。
今天就想想了我的题目的构想,输入歌手的信息,评委对其的打分,要算出输出歌手的成绩,并排序。
还得把程序输入成文件,便于使用。
2012年2月21日:
昨天把整体的框架想好了,今天开始编程写代码,就开始写“输入选手数据”的那一个子程序,在主程序中调用。
可是就是这一个小程序一上午都没有弄清楚。
还累的半死。
心里有点泄气了,真的。
但是看见老师那不厌其烦的给我讲解,说实施很感动啊。
真的!
自己没有泄气的理由,必须编下去,既使下面会更难。
但是我会一点一点的走下去,去理解,不学习,永远都不会做,最后是个失败者。
所以下午开始编“评委打分”第二个小子程序。
他依然有很多的错误,但是我坚持改下去,相信会调式成功的。
今天的一天又悄然而去了,明天依然坚持。
加油!
!
2012年2月22日:
昨天把第一部分“输入选手数据”的编好了,今天接着向下编,可是在编写把数据写入文件中,程序没的错了,可是打开创建的文件,却没有数据,所以还的修改。
今天把数据成功写入文件,这一部分就解决了。
2012年2月23日:
今天通过编写和老师的帮助把文件的写入和读出都成功的完成了,把数据的评分程序又重新改写下,把随机产生改成手动输入,也能调试成了。
慢慢的对一些函数有一些了解了。
今天的任务完成了,明天更加努力。
2012年2月24日:
今天应该把选手的成绩排序好,显示出来,可是一天结束了,也没有排成功,不过现在把每个选手的平均成绩计算出来了,现在就只剩下选手平均分的排序了。
再接再励!
2012年2月27日:
排序总是排不好啊。
今天又重新编写了排序,可是现在就能找到最大的数,并写入链表,后面的数还是不成功。
我都不知道怎么办,但是还得接着编。
2012年2月28日:
今天终于把最后问题排序在老师的帮助下解决了,这个大难题愁了我两天,呵呵,现在程序编完了,心里的大石头下有着落了,程序的各个子程序都编好了,用主程序一调用,都成功了。
接下来就是程序的优化了,让自己的程序再好一点,再准确一些,这样用户如果输入错误,也可以重新输入。
2012年2月29日:
代码已经写完了,程序也能够正常运行,当然其中还有些不足之处。
总之而言之,程序是完成了,今天的任务是写实习报告,把实习报告写完了,明天的任务是对实习报告修改,这样两周的实训就马上结束了。
2012年3月1日:
今天是实训的最后一天了,程序等都已经完成了,明天就要交报告和代码了,就要给老师上交作业了。
心里不免有点兴奋,两周的实训过的真快啊。
八、综合训练心得与体会
两周的实训马上就要结束了,回想起来真是有辛酸,也有快乐。
我们大一第一学期学的C语言,第二学期学的数据结构,由于自己学的不扎实,这次实训前心里一点底也没有。
甚至有一点的害怕,害怕自己编不好。
但是不管学的如何都得面对,并且的好好完成,我选择的“歌手比赛系统”,我知道编程期问会有困难,但是相信我能够克服,编下去。
我要做的这个程序分六个小步骤,首先要能输入选手的信息,然后评委打分,接着在排出选手的名次,显示出来。
最后还得把数据写入文件,并且能读出文件,这样便于使用。
让自己的程序能接近现实中的情况。
可是在编程序的过程中,从第一部分建立链表开始就不停的出错,建表建的我都无语了,错误好多好多。
我当时真的好想放弃啊,不想编了,但是看着老师不厌其烦的给我讲解,我心里酸溜溜的。
想想我有什么权力去放弃啊。
在老师的帮助下,我终于把链表建好了,并且能够准确的输入选手信息。
心里很是兴奋啊,真的像喝了蜜似的。
这回对下来的那五个小程序有一点的信心了,慢慢的编下去。
接下来的另外五个子程序也都有不同的错误,于是我就查阅书本,和同学讨论,问老师等等,最终解决掉了所有的错误,把这个程序编好了。
回想起这两个星期,我真的是收获很多。
这次的实训让我真正的了解了编程序,以前只是课本学习一下,老师让上机操作,都是在偷懒,这次纯粹是自己对着电脑敲出代码。
这样对C语言和数据结构又有了新的认识,认识加深了。
并且在编程中有很多的错误都是由于粗心大意造成的,自己一个一个的修改,我了解到编程时必须认真,细心,不能马马虎虎的,那样错误会更多,所以在今天一定要细心的对待每一件事情。
还感受到和同学老师的交流是非常的重要。
有时一个错误自己好长时间都改不对,可是老师提点一下就行了,和同学交流一个,也可能豁然开朗,因此,我们做事不能自己一个人编写,也应该和别人交流一下,一块受益。
当我把自己的程序都编好,顺畅的整体运行一遍后,心里那个高兴的劲,呵呵,很兴奋啊。
自己终于把一个系统程序编好了,虽然其中还有一些的不足,但是还是满高兴的。
在实训前,我们一直都是理论者,理论也不是太好,通过实训过程中,自己遇到的错误,并改正,这样发现了很多,自己也收获很多,能学习到一些课本上没有的知识。
在以后的实训课上,一定要自己动手动及,好好的去做,让你自己能在实训中收获。
当然在以后的实训中一定要认真的完成,让自己把所学的熟练些。
总之这两周的实训真的让我回味无穷!
九、意见和建议
通过这样的培训我觉得很好,这样能让我们理论联系到实际中,编程就应该多上机操作,这样才能熟练。
如果只是在书本上学习感觉很简单,真正自己上机操作就会发现很多错误,才会知道自己的错误所在,还知道自己编程应该仔细些。
所以希望这种实训机会能够多一些,让我们能够更加的熟练,培训多了,以后工作就有一点的把握了。
我觉得平时上理论课时,也要多增加一些上机的课程,这样学的时候能够多练习下。
如果可以的话,学校可以和一个公司连办,假期让我们到一些公司去实训一下,去学习学习,这样能多实践一下。
附件:
歌手比赛系统原代码:
#include<
stdio.h>
stdlib.h>
time.h>
string.h>
#defineM10
#defineN3
structplayer
{
intnum;
charname[8];
intscore[M];
floataver;
structplayer*next;
};
typedefstructplayerLNode,*LinkList;
LinkListL=NULL;
voiddisplayList()/*显示数据*/
{inti;
LinkListp;
p=L->
next;
printf("
====================================\n"
);
while(p)
{
printf("
%d\t%s\t%f\n"
p->
num,p->
name,p->
aver);
for(i=0;
i<
10;
i++)
printf("
%d"
score[i]);
\n"
p=p->
}
floataverage(int*arr)/*求选手得分*/
intmax=arr[0];
intmin=arr[0];
intsum=arr[0];
inti;
for(i=1;
if(arr[i]<
min)min=arr[i];
if(arr[i]>
max)max=arr[i];
sum+=arr[i];
return(float)((sum-min-max))/8;
voidcreateList()/*创链表,输入选手数据*/
{
LNode*p;
intbianhao;
charxingmin[8];
intfenshu[M];
L=(LinkList)malloc(sizeof(LNode));
L->
next=NULL;
while
(1)
请输入选手信息:
请输入选手编号(整型)\n"
scanf("
%d"
&
bianhao);
请输入选手姓名\n"
%s"
xingmin);
请输入选手的十个得分(整形)\n"
scanf("
fenshu[i]);
if(bianhao!
=-1)
{
p=(LinkList)malloc(sizeof(LNode));
p->
num=bianhao;
strcpy(p->
name,xingmin);
for(i=0;
p->
score[i]=fenshu[i];
aver=average(fenshu);
p->
next=L->
L->
next=p;
}
elsebreak;
}
voidpaixu()/*数据排序*/
{
LinkListp=L->
next->
LinkListq,s;
{
q=L;
s=p;
while(q->
next!
=NULL&
&
q->
aver>
s->
aver)
q=q->
}
s->
next=q->
q->
next=s;
displayList();
voidAppend()/*追加选手数据*/
{inti;
LinkListp=L;
LinkListq;
q=(LinkList)malloc(sizeof(LNode));
请输入追加选手信息:
num);
q->
name);
请输入十个分数\n"
i++){
fenshu[i]=q->
score[i];
q->
while(p->
=NULL)
p->
next=q;
voidSave()/*写入数据文件*/
FILE*fp;
fp=fopen("
D:
\\data.txt"
"
wb"
将数据写入文件中:
fwrite(p,sizeof(LNode),1,fp);
if(fclose(fp))
Filecloseerror!
}
voidDu()/*读出数据文件*/
rb"
读出文件\n"
fread(p,sizeof(LNode),1,fp);
%d\t%s\n"
p=p->
voidmain()
intflag=1;
intn;
欢迎走进星光歌手比赛系统\n"
while(flag)
****1.输入选手数据****\n"
****2.显示数据********\n"
****3.成绩排序********\n"
****4.追加选手数据****\n"
****5.写入数据文件****\n"
****6.读出数据文件****\n"
****7.退出系统********\n"
可以选择1--7任一操作\n"
scanf("
n);
switch(n)
case1:
createList();
break;
case2:
displayList();
break;
case3:
paixu();
break;
case4:
Append();
case5:
Save();
case6:
Du();
case7:
exit(0);
default:
flag=0;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实习 报告书
![提示](https://static.bdocx.com/images/bang_tan.gif)