运动会计分系统 - 课程设计

更新时间:2024-04-12 19:33:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

编 号: B04931082 学 号: 201240450137

课 程 设 计

教 学 院 课程名称

题 目 专 业

计算机学院

高级语言程序设计Ⅱ

运动会比赛计分系统

软件工程 (一)班 包先跃

石奇、吕鹏飞、陈立阳

祁文青

班 级 姓 名 同组人员 指导教师

2013 年 06 月 29 日

课程设计任务书

2012 ~2013 学年第 2 学期

学生姓名: 包先跃 专业班级: 12软件工程 指导教师: 祁文青 工作部门: 计算机学院

一、课程设计题目:运动会比赛计分系统

二、课程设计内容:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数各项

目名次取法有如下几种:取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2; 功能要求:

(1)系统以菜单方式工作

(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。 (3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩 (4)查看参赛学校信息和比赛项目信息等。

三、进度安排

1.分析问题,给出数学模型,选择数据结构。 2.设计算法,给出算法描述。 3.给出源程序清单。 4. 编辑、编译、调试源程序。 5. 撰写课程设计报告。

四、基本要求

1.界面友好,函数功能要划分好。 2.总体设计应画一流程图。 3.程序要加必要的注释。 4.要提供程序测试方案。

5.程序一定要经得起测试,要能运行起来,不能运行的程序是没有价值的。

目录

目录 ................................................................................................................................................................. 3 一 概述 ......................................................................................................................................................... 3 二 总体方案设计 ........................................................................................................................................... 4 三 详细设计 ................................................................................................................................................... 6

5.1.1提出问题............................................................................................................................... 9 5.1.2解决问题.............................................................................................................................10 5.1.3提出问题.............................................................................................................................10 5.1.4分析问题.............................................................................................................................10 5.1.5解决问题.............................................................................................................................10 5.1.6提出问题.............................................................................................................................10 5.1.7分析问题.............................................................................................................................10 5.1.8解决问题.............................................................................................................................10 5.2算法的效率及改进设想 .................................................................................................................10 四 程序的调试与运行结果分析 ..................................................................................................................12

(一) 用户手册..................................................................................................................................12 (二)调试过程中出现的问题和处理方式 ........................................................................................16 五 课程设计总结 ......................................................................................................................................... 17 附录:(源程序) .........................................................................................................................................18 参 考 文 献 .................................................................................................................................................28

一 概述

1. 课程设计的目的

1.理解和掌握该课程中的有关基本概念,程序设计思想和方法。

2.培养综合运用所学知识独立完成课题的能力。

3.培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。

4.掌握从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。

2. 课程设计的要求

1)可以输入各个项目的前三名或前五名的成绩; 2)能统计各学校总分,

3)可以按学校编号或名称、学校总分、男女团体总分排序输出;

4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。

5)数据存入文件并能随时查询

6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称 输出形式:有合理的提示,各学校分数为整形

界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;

测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;

二 总体方案设计

(1)运动项目定义:

typedef struct Sport //运动项目结构{ char name[20]; //运动项目名称 int isboy; //0为女项目,1为男项目

int is3; //0为取前五名,1为取前五名 int number; //项目编号 (2)主要算法的设计思想:

本程序主要是使用链表来实现操作。一个运动会包括运动项目和参加运动会的成员。因此构造两个链表Department,Sport。根据输入的不同选择不同的功能,有输入运动项目,按总分排序,按男团体总分排序,按女团体总分排序,按项目标号查询,退出。为了操作的方便,并且能够保存输入数据,所以通过文件操作来实现数据的写和读。每次添加新的数据后都要输入0退出,数据才能保存。对于总分的排序使用了冒泡排序。为了使整个程序看起来更加友好,又添加了程序启动画面。

在此次课程设计小组中我所承当的工作是:对总程序的结构体的定义,界面菜单的建立以及void funct6(ALLNode *g2) 和 按学校编号查询学校某个项目情况的子函数程序编写。void funct7(ALLNode *g2) 是按学校编号查询学校某个项目情况 ;void funct6(ALLNode *g2):按女团体总分排序输出。(各部分解决问题详见详细设计中遇到的较重要问题的回顾)

三 详细设计

3、1程序流程图

1) 设计运动会的学校编号或名称、项目成绩、男女团体总分的数

据存储系统设计图 图(1) (2)查询团体总分程序设计图 3)总流程图:图2

(4)算法分析:

其中

school类为:

class school:public athlete /*学校*/ { ?? public:

int count; /*学校获奖数*/ int serial; /*学校编号*/

int menscore; /*男选手总分*/ int womenscore; /*女选手总分*/ int totalscore; /*总分*/

athlete ath[MaxSize]; /*获奖运动员信息数组,包括分数,名次,项目*/ school *prev;//前指针 school *next; //后指针 };

其中部分主要的函数:

添加操作add(school* &head)

查询操作checkFunc(school *head,int &n) 文件保存save(school *head)

总分快速排序tquicksort(vector& v, int first, int last) 总分基数排序 tbaseSort(vector& v, int d) 2.关键算法 {?? 添加项目号

for ( i = 1 ; i <= n ; i++ )

{ 输入第i名运动员的学校编号temp ??

while(first!=head) //遍历链表,直到找到编号为serial的学校所在结点,或first指向表头head { if (first->serial ==要添加的编号) { (first->ath[first->count]).item =要添加的项目号; (first->ath[first->count]).range =i(名次) First指向的学校的项目加一; 更新总分 break; } first = first->next;

(5)遇到的较重要问题的回顾 5.1.1提出问题

所有输入输出内容只能在一屏内显示,学过c语言,很知道”\\n”是换行,”\\f”

是换屏的,可是在这里就是无法实现。

5.1.2解决问题

输入clrscr();

5.1.3提出问题

设置选项,供用户输入选择时,当按任意键时都会跳入下一步操作,或者直接退出系统。

5.1.4分析问题

在供用户选择时,提供了几个选项,就写几个case语句,但是当用户输入的并不是这几个数字时,系统就不能做出正确判断。

5.1.5解决问题

修改case语句,添加default语句提示出错,要求重新输入; default:{

clrscr(); /*清屏*/ printf(\输入错误,请重新选择\ }

5.1.6提出问题

当同一项目中有同一学校的两个人时,便不能正确输出或者输出相同人名。

5.1.7分析问题

由于同时有两个相同学校编号的人存在,系统在输出时,不能确定那个是正确的,

或者用后来的覆盖以前的。

5.1.8解决问题

用for函数实现从开始到结尾的遍历。

5.2算法的效率及改进设想

算法的效率:总的来讲,严重引响执行速度的便是查找,查找任意一个数据,便要将其所在的结构从头至尾遍历一次,耗费大量的时间。

改进设想:因大部分显示均是以学校为单位,所以将以由有关人的各种信息为集合的结构改为以由有关学校的各种信息为集合的结构。

在这次上机过程中遇到过一些问题,但经过我们不懈努力,解决了部分,还有的现在不能解决,留着我们日后思考和解决。

比如说在运用数据结构排序的时候,方法的选择上,总是想用时间复杂度小的算法,但结果出了问题,最后还是用了我们熟悉的选择法排序。

结构体的运用上感觉不是很熟悉,遇到结构体的时候很陌生,这是以后必须要加强的。在我们的这个程序中用了两个结构体:

struct node { int num; };

struct node *f[22];

我们同样遇到了一些还不能很好解决的问题,在输出的时候不能得到我们想要的效果,在按学校编号排序查询输出的时候,发生了重叠在做了几次修改之后都能使之满意,这有待学习和修改。

在编写之前,做整体的规划很重要,这才能让我们的效率更高和合作得更好。

四 程序的调试与运行结果分析 (一) 用户手册

1 本程序可以在vc++5.0和vc++6.0 的环境下运行。

2 在vc中创建一个工程,将源程序复制到.cpp中,编译链接就可以。 如下: 运动会计分系统 1.

2. 输入各个项目成绩并存储文件

3. 统计各学校总分

4. 按学校编号排序输出

5. 按学校总分排序输出

6. 按男团体总分排序输出

7. 按女团体总分排序输出

8. 按学校编号查询学校某个项目情况

9. 按项目编号查询取得名次的学校

(二)调试过程中出现的问题和处理方式

为了使系统具有一点的容错性,当输入错误信息时应给出相应提示以正确输入数据,如:printf(\要查询的项目编号:\

scanf(\if(s>m+w||s==0)

printf(\此次运动会不包括这个项目.\\n\\n\\n\

想在每次查询结束想返回主菜单进行其它项时,应在main( )函数中调用其它函数时再调用main( )函数,如: switch(choice)

{ case 1:

inputinformation();writedata();readdata();main();

case 2:

output();main();

case 3:

inquiry();main();

case 4:

readdata();main();

程序出现语法错误,发现是输入名次信息的地方忘带地址符&,或是程序不完整,只写了一个大括号。如:

printf(\名次:\

scanf(\

五 课程设计总结

经过几个星期的奋战,终于完成了课程设计,感觉又进一步了解了这门课程,各个知识点都加强了我似乎突然找到了方向,认真的学习这门课。

回顾这次课程设计,使我感慨颇多。的确,从理论到实践,在整整两星期的日子里,学到很多很多的的东西,同时不仅可以巩固学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,从而提高自己的实际动手编程能力和独立思考的能力。运动会计分系统,比较复杂,经过很长时间的书写,总算尝到了胜利的“滋味”

在细节的认识上,我们在开发程序的时候,在之前就要知道自己想要的效果,然后把需要实现的功能在纸上列出来,然后比如要用几个函数来实现几个功能,整体需要几个模块来搭建,这些工作都是要在未动工之前就得做好的准备工作,编程要的是有整体的思想加细心。这次的课程设计收获颇多,最大的认识到了要想高效设计出想要的东西不仅要熟悉的掌握所学知识,还要学会充分利用现有资源。在这之前,总以为自己编程方面还很差,现在才觉得,只要努力了,就会有收获,就会得到回报。

附录:(源程序)

(一)。运动会计分系统

#include #include #include #include

//#include /*屏幕操作函数*/ #define MAX 50 //#define NULL 0 typedef struct node1{

int school; /*学校编号*/ int record; /*项目成绩*/

struct node1 *next; /*链域*/ }Schools; typedef struct {

int item; /*项目编号*/

Schools *firstschool; /*链域指向链表中第一个结点*/ }ITEM; typedef struct {

int z; /* 项目总数 */ ITEM a[MAX]; }ALLitems;

typedef struct node2 {

int item; /*该学校获奖的项目*/ int record; /*项目成绩*/

struct node2 *next; /*链域*/ }Items;

typedef struct {

int school; /*学校编号*/ int score; /*学校总分*/ int boys; /*男团体总分*/ int girls; /*女团体总分*/

Items *firstitem; /*链域指向链表中第一个获奖项目的结点*/ }SCHNode;

typedef struct {

int n; /* 学校总数 */ SCHNode b[MAX]; }ALLNode;

ALLitems *g1; ALLNode *g2;

void funct1(ALLitems *g1,ALLNode *g2) { Schools *p1; Items *p2;

int i,j,k,m,w,h,x;

p1=(Schools *)malloc(sizeof(Schools)); p2=(Items *)malloc(sizeof(Items)); if(!p1||!p2) exit(1);

printf(\ ******输入各个项目信息\\n\\n\

printf(\ 输入男子项目总数m:\ scanf(\ if(m<0||m>20)

{ printf(\ 输入有误,m是20以内的整数,请重新输入:\ scanf(\ }

printf(\ 输入女子项目总数w:\ scanf(\ if(w<0||w>20)

{ printf(\ 输入有误,w是20以内的整数,请重新输入:\ scanf(\ }

printf(\ 输入参加运动会的学校总数n:\ scanf(\ if(g2->n<0||g2->n>20)

{ printf(\ 输入有误,n是20以内的整数,请重新输入:\ scanf(\ }

g1->z=m+w;

printf(\ 则项目编号为男子1-%d,女子%d-%d\ printf(\ ****记录运动会成绩****\ printf(\ (输入0标志结束)\\n\ for(k=1;k<=g1->z;k++) { g1->a[k].item=k;

g1->a[k].firstschool=NULL; }

****** for(k=1;k<=g2->n;k++) { g2->b[k].school=k; g2->b[k].firstitem=0; g2->b[k].score=0; g2->b[k].boys=0; g2->b[k].girls=0;

} g2->b[0].score=0; g2->b[0].boys=0; g2->b[0].girls=0; while(i!=0)

{ printf(\ 项目:\ scanf(\ if(i!=0)

{ printf(\ 1.前三名 2.前五名\\n\ printf(\ 请选择:\ scanf(\ if(j!=1&&j!=2)

{ printf(\ 输入有误,请重新选择:\ scanf(\ }

if(j==1) { h=3;

do{ printf(\ 第%d名:学校(学校编号为数字)\ scanf(\

p1=(Schools *)malloc(sizeof(Schools)); p1->school=x; p2=(Items *)malloc(sizeof(Items)); p2->item=i;

if(h==3) p2->record=p1->record=2; if(h==2) p2->record=p1->record=3; if(h==1) p2->record=p1->record=5; p1->next=g1->a[i].firstschool; g1->a[i].firstschool=p1;

p2->next=g2->b[x].firstitem; g2->b[x].firstitem=p2;

g2->b[x].score=g2->b[x].score+p2->record; /* 累计总分 */

if(i<=m) g2->b[x].boys=g2->b[x].boys+p2->record; /* 累计男团体总分 */ else g2->b[x].girls=g2->b[x].girls+p2->record; /* 累计女团体总分 */ h--;

}while(x!=0&&h!=0); }

if(j==2) { h=5;

do{ printf(\ 第%d名:学校(学校编号为数字)\ scanf(\

p1=(Schools *)malloc(sizeof(Schools)); p1->school=x;

p2=(Items *)malloc(sizeof(Items)); p2->item=i;

if(h==5) p2->record=p1->record=1; if(h==4) p2->record=p1->record=2; if(h==3) p2->record=p1->record=3; if(h==2) p2->record=p1->record=5; if(h==1) p2->record=p1->record=7; p1->next=g1->a[i].firstschool; g1->a[i].firstschool=p1;

p2->next=g2->b[x].firstitem; g2->b[x].firstitem=p2;

g2->b[x].score=g2->b[x].score+p2->record; /* 累计总分 */

if(i<=m) g2->b[x].boys=g2->b[x].boys+p2->record; /* 累计男团体总分 */ else g2->b[x].girls=g2->b[x].girls+p2->record; /* 累计女团体总分 */ h--;

}while(x!=0&&h!=0); } } } }

void save() { FILE *fp1,*fp2;

fp1=(FILE *)malloc(sizeof(FILE)); fp2=(FILE *)malloc(sizeof(FILE));

if((fp1=fopen(\ { printf(\ return; }

if(fwrite(g1,sizeof(ALLitems),1,fp1)!=1) printf(\ fclose(fp1);

if((fp2=fopen(\ { printf(\ return; }

if(fwrite(g2,sizeof(ALLNode),1,fp2)!=1) printf(\ fclose(fp2); }

void funct2(ALLNode *g2) /* 输出各学校总分 */ { int k;

printf(\ ****** 输出各学校总分 ******\\n\ printf(\ 学校编号\\t 总分 \\n\ for(k=1;k<=g2->n;k++)

printf(\ %d\\t\\t\\t %d\\n\ printf(\ system(\

printf(\ 按任意键返回主菜单......\ getchar(); }

void funct3(ALLNode *g2) /* 按学校编号排序输出 */ {

int k; Items *p2;

p2=(Items *)malloc(sizeof(Items));

printf(\ ****** 按学校编号排序输出 ******\\n\ printf(\ 学校编号\\t\\t\\t获奖情况 \\n\ scanf(\

for(k=1;k<=g2->n;k++) { printf(\ p2=g2->b[k].firstitem; while(p2!=NULL)

{ printf(\项目%d:得%d分 \ p2=p2->next; }

printf(\ }

printf(\ system(\

printf(\按任意键返回主菜单......\ getchar(); }

void funct4(ALLNode *g2) /* 按学校总分排序输出 */ { int i,j,k; Items *p2;

printf(\ ****** 按学校总分排序输出 ******\\n\ printf(\ 学校编号\\t\\t总分 \\n\ scanf(\

//printf(\输入要查询的项目编号:\

for(i=2;i<=g2->n;i++)

{ printf(\ p2=g2->b[k].firstitem; while(p2!=NULL)

{ printf(\ p2=p2->next; }

printf(\ g2->b[0].score=g2->b[i].score; g2->b[0].boys=g2->b[i].boys; g2->b[0].girls=g2->b[i].girls; g2->b[0].school=g2->b[i].school; j=i-1;

while(g2->b[0].scoreb[j].score&&j>0) { g2->b[j+1].score=g2->b[j].score; g2->b[j+1].boys=g2->b[j].boys; g2->b[j+1].girls=g2->b[j].girls; g2->b[j+1].school=g2->b[j].school; j--; }

g2->b[j+1].score=g2->b[0].score; g2->b[j+1].boys=g2->b[0].boys; g2->b[j+1].girls=g2->b[0].girls; g2->b[j+1].school=g2->b[0].school; }

for(k=1;k<=g2->n;k++)

printf(\ system(\

printf(\按任意键返回主菜单......\ getchar(); }

void funct5(ALLNode *g2) /* 按男团体总分排序输出 */ { int i,j,k; Items *p2;

p2=(Items *)malloc(sizeof(Items));

printf(\ ****** 按男团体总分排序输出 ******\\n\ printf(\学校编号\\t\\t男团体总分 \\n\ scanf(\

//printf(\输入要查询的学校编号:\ for(i=2;i<=g2->n;i++)

{

printf(\ p2=g2->b[k].firstitem; while(p2!=NULL)

{ printf(\ %d\\n\ p2=p2->next; }

printf(\

g2->b[0].score=g2->b[i].score; g2->b[0].boys=g2->b[i].boys; g2->b[0].girls=g2->b[i].girls; g2->b[0].school=g2->b[i].school; j=i-1;

while(g2->b[0].boysb[j].boys&&j>0) { g2->b[j+1].score=g2->b[j].score; g2->b[j+1].boys=g2->b[j].boys; g2->b[j+1].girls=g2->b[j].girls; g2->b[j+1].school=g2->b[j].school; j--; }

g2->b[j+1].score=g2->b[0].score; g2->b[j+1].boys=g2->b[0].boys; g2->b[j+1].girls=g2->b[0].girls; g2->b[j+1].school=g2->b[0].school; }

for(k=1;k<=g2->n;k++)

printf(\ %d\\n\

system(\ // 暂停等待 printf(\按任意键返回主菜单......\ getchar(); }

void funct6(ALLNode *g2) /* 按女团体总分排序输出 */ { int i,j,k; Items *p2;

p2=(Items *)malloc(sizeof(Items));

printf(\ ****** 按女团体总分排序输出 ******\\n\ printf(\学校编号\\t\\t女团体总分 \\n\

scanf(\

// printf(\输入要查询的项目编号:\

for(i=2;i<=g2->n;i++) { printf(\ p2=g2->b[k].firstitem; while(p2!=NULL)

{ printf(\ %d\\n\ p2=p2->next; }

printf(\ g2->b[0].score=g2->b[i].score; g2->b[0].boys=g2->b[i].boys; g2->b[0].girls=g2->b[i].girls; g2->b[0].school=g2->b[i].school; j=i-1;

while(g2->b[0].girlsb[j].girls&&j>0) { g2->b[j+1].score=g2->b[j].score; g2->b[j+1].boys=g2->b[j].boys; g2->b[j+1].girls=g2->b[j].girls; g2->b[j+1].school=g2->b[j].school; j--; }

g2->b[j+1].score=g2->b[0].score; g2->b[j+1].boys=g2->b[0].boys; g2->b[j+1].girls=g2->b[0].girls; g2->b[j+1].school=g2->b[0].school; }

for(k=1;k<=g2->n;k++)

printf(\ %d\\n\ system(\

printf(\按任意键返回主菜单......\ getchar(); }

void funct7(ALLNode *g2) /* 按学校编号查询学校某个项目情况 */ { int i,j;

Items *p2;

printf(\ ****** 按学校编号查询学校某个项目情况 ******\\n\

printf(\ 输入要查询的学校编号:\ scanf(\

printf(\ 输入要查询的项目编号:\ scanf(\ p2=g2->b[i].firstitem; while(p2!=NULL) { if(p2->item==j)

printf(\ 学校编号:%d\\t项目%d:得%d分\\n\ p2=p2->next; }

printf(\ system(\

printf(\ 按任意键返回主菜单......\ getchar(); }

void funct8(ALLitems *g1) /* 按项目编号查询取得名次的学校 */ { int i;

Schools *p1;

printf(\按项目编号查询取得名次的学校 ***\\n\ printf(\输入要查询的项目编号:\ scanf(\

printf(\项目编号\\t\\t\\t取得名次的学校\\n\ printf(\

p1=g1->a[i].firstschool; while(p1!=NULL)

{ printf(\学校%d:得%d分 \ p1=p1->next; }

printf(\ system(\

printf(\按任意键返回主菜单......\ getchar(); }

void main() { int t;

g2=(ALLNode*)malloc(sizeof(ALLNode)); g1=(ALLitems*)malloc(sizeof(ALLitems)); if(!g2||!g1) exit(1);

//textcolor(WHITE);

//textbackground(BLUE); //clrscr();

system(\ for(;;) {

printf(\

printf(\ 运动会分数统计系统 \\n\ printf(\

printf(\ 1.输入各个项目成绩并存储文件 *\\t \\n\ printf(\ 2.统计各学校总分 *\\t \\n\ printf(\ 3.按学校编号排序输出 *\\t \\n\ printf(\ 4.按学校总分排序输出 *\\t \\n\ printf(\ 5.按男团体总分排序输出 *\\t \\n\ printf(\ 6.按女团体总分排序输出 *\\t \\n\ printf(\ 7.按学校编号查询学校某个项目情况 *\\t \\n\ printf(\ 8.按项目编号查询取得名次的学校 *\\n\ printf(\ 0.退出 *\\n\ printf(\ printf(\ \\n\ printf(\ \\n\ printf(\ \\n\ printf(\ 请选择(0-8):\ loop:scanf(\ system(\ switch(t)

{ case 1:funct1(g1,g2);save();break; case 2:funct2(g2);break; case 3:funct3(g2);break; case 4:funct4(g2);break; case 5:funct5(g2);break; case 6:funct6(g2);break; case 7:funct7(g2);break; case 8:funct8(g1);break; case 0:exit(0);

default:{ printf(\输入有误,请重新选择:\ goto loop;} }//clrscr(); system(\ } }

参 考 文 献

[1] 《数据结构(C语言版)》,严蔚敏,吴伟民编著,清华大学出版社,2002年9月 [2] 《C语言程序设计教程》,杨路明,郭浩志,北京邮电大学出版社,2005年12月 [3] 《C程序设计(第三版)》,谭浩强,清华大学出版社,2005年2月 [4] 《数据结构实用教程》,徐孝凯,清华大学出版社,2006年8月 [5] 《数据结构》(C语言版),严蔚敏,清华大学出版社,2003 [6] 《数据结构题集》,严蔚敏,清华大学出版社,2005 [7] 《数据结构》(C语言版),刘大有,高等教育出版社,2004

[8] 《C语言程序设计案例教程》(第2版),廖湖声等, 人民邮电出版社 (2010-09出

版)

《高级语言程序设计Ⅰ》课程设计成绩评定表

1、课程设计答辩或质疑记录 1)问:当同一项目中有同一学校的两个人时,能否正确输出或者输出相同人名? 答:由于同时有两个相同学校编号的人存在,系统在输出时,不能确定那个是正确的,或者用后来的覆盖以前的。 2)问:所有输入输出内容只能在一屏内显示,学过c语言,都知道”\\n”是换行,”\\f”是换屏的,可是在这里就是无法实现,该怎么办? 答:我们可以用函数clrscr();来解决。 3)问:涉及到的算法的效率及改进思想: 答 :总的来讲,严重引响执行速度的便是查找,查找任意一个数据,便要将其所在的结构从头至尾遍历一次,耗费大量的时间。因大部分显示均是以学校为单位,所以将以由有关人的各种信息为集合的结构改为以由有关学校的各种信息为集合的结构 。 2、答辩情况 a)未能完全理解题目,答辩情况较差 □ c)理解题目较清楚,问题回答基本正确 □ b)部分理解题目,答辩情况较差 □ d)理解题目透彻,问题回答流利 □ 3、课程设计报告 a)内容: 不完整 □ 完整 □ 详细 □ b)方案设计: 较 差 □ 合理 □ 非常合理 □ c)实现: 未实现 □ 部分实现 □ 全部实现 □ d)文档格式: 不规范 □ 基本规范 □ 规范 □ 考勤成绩: , 占总成绩比例10% 答辩成绩: , 占总成绩比例30% 课程设计论文成绩: , 占总成绩比例60% 课程设计总成绩: 4、课程设计评语 指导教师签字: 年 月 日

本文来源:https://www.bwwdw.com/article/tc0p.html

Top