C语言实现的歌唱比赛评分系统设计方案_第1页
C语言实现的歌唱比赛评分系统设计方案_第2页
C语言实现的歌唱比赛评分系统设计方案_第3页
C语言实现的歌唱比赛评分系统设计方案_第4页
C语言实现的歌唱比赛评分系统设计方案_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《软件设计实践》

汇报

学院:中北大学信息商务学院

专业:__________通信工程专业______________

题目:_________歌唱比赛评分系统___________

王泽

学生姓名:________郭世杰___________

贺鑫

完毕时间:________完23年1月18FI_____________

指导教师:鲁旭涛姚爱琴李沅

目录

课程设计任务书............................3

1需求分析......................................5

1.1题目分析..................................5

1.2系统分析..................................5

2设计概要......................................6

3程序设计及模块分工明细........................7

3.1人员模块分工..............................7

3.2人员模块分工明细..........................7

4测试成果.....................................47

4.1调试与测试...............................47

4.2测试成果截图.............................48

设计总结.......................................55

致谢..........................................56

参照文献.......................................57

附录...........................................58

课程设计任务书

1设计目的

C语言是通信工程专业一门重要H勺专业技术课程,它是一门实践性很强的课程。

软件设计实践课程是为配合c语言课程,对学生进行全面综合训练、与课堂教学、作业练

习题、上机试验相辅时必不可少H勺一种教学环节。

运用所学的C语言知识及其编程措施:构造程序设计、数组、指针、构造体、文献操作等

内容,通过布置具有一定难度的实际程序设计题目,规定学生独立完毕所布置题目。在分析设

计过程中,规定学生养成良好的编程习惯,学会分析处理简朴的实际问题,学会C语言的实际

调试技巧和措施,规定学生在教师的指导下逐渐完毕应用程序的设计

2设计内容和规定

有十个选手参与歌唱比赛,十个裁判对每个选手H勺演唱进行打分,去掉一种最高分,去掉

一种最低分,剩余分数的平均值作为每位选手最终的成绩。

规定:

(1)采用构造体定义每个选手的参赛编号,姓名以及十个裁判打出的分数;

(2)从键盘输入每个选手的有关信息:参赛编号,姓名和十个得分;

(3)计算每位选手的最终得分,并按分数由高到低排序;

(4)行询功能:输入参赛选手的编号或姓名,便可输出该选手的得分以及排名;

以上功能采用菜单操作方式,即从键盘输入1到3这三个数,分别完毕以上(2)到(4)

W'J功能。

3设计工作任务及工作量的规定

♦每个组员完毕自己的模块设计。

♦完毕一份设计阐明书。

♦有对日勺口勺运行成果及成果分析

1需求分析

1.1题目分析

软件设计实践课程是为配合C语言课程,对学生进行全面综合训练、与课堂教学、

作业练习题、上机式验相辅的必不可少的I一种教学环节。

运用所学的JC语言知识及其编程措施:构造程序设计、数组、指针、构造体、文献

操作等内容,通过布置具有一定难度打勺实际程序设计题目,规定学生独立完毕所布置题

目。在分析设计过程中,规定学生养成良好的编程习惯,学会分析处理简朴口勺实际问

题,学会C语言打勺实际调试技巧和措施来处理实际问题。

1.2系统分析

歌唱比赛评分系统包括:

♦菜单:系统以菜单方式工作,界面友好,易于操作。

♦录入:在每个输入前均有详细分类和提醒,简朴明了,根据提醒输入参赛选手号

数,姓名,各个评委打提成绩。

♦查询:顾客输入查询条件,系统规则地在界面显示查询成果,不光可以输入号数,

查询到该选手唁息,每位评委打分;还可以选择排名查询,显示日勺数据全面。

♦修改:在己经有数据的基础上实现对每位选手口勺信息,以及评分口勺修改。

♦排名:运用冒泡程序对数组进行排序,删除•种最高与最低然后进行讲剩余的值平

均,得出选手最终得分,再根据分数高卜.排名。

♦储存:对于已经输入的数据,己文档的信息储存到电脑硬盘中,实现永久储存。

系统的程序设计环境:

本系统使用VisualC++作为程序开发工具。VisualC++是基于对象的迅速应用程序

开发工具,是当今最强大、最灵活的应用程序开发工具之一,具有良好的可视化应用程

序开发环境和强大的可扩展数据库功能。运用VisualC++提供的可视化组件库进行编

程,可以迅速、高效地开发出基fWindows环境的各类应用程序。VisualC++语言口勺特

点是面向对象设计的程序语言,VisualC++的J基础编程语言是具有面向对象特性的语

言,具有代码稳定、可读性好、编译速度快等长处,并将面向对象的概念移植到了C语

言中,使这种基础语言有了新的发展空间。与其他编程软件相比,尤其是在数据库和网

络应用方面,VisualC++具有简便易用、灵活高效日勺特点。

开发软件一般要通过修改源代码、编译、测试、再修改、再编译、再测试等操作,

这些操作形成了一种开发循环,因此迅速的编译器可以大大地减少开发周期。Visual

C++正是建立在这种高效编译器的基础之上,是针时Windows口勺最快的高级语言代码编

译器,因此生成日勺代码十分精练高效,使VisualC++程序的运行速度更快。这也是使用

VisualC++作为程序设计开发语言日勺重要原因。

2设计概要

总体设计目册):使用者可以运用本系统进行对选手信息以及评委评分的各项运算操作,如

根据需求添加选信息,删除选手信息,对选手得分进行排名等。最终清晰完整的成果于屏幕

中。以便了评分操作,不仅节省时间,并且提高精确性,可以到达事半功倍口勺效果。

总体设计方略:本系统采用时是自顶向卜、层次化的模块构造。对高层模块,采用以事务

为中心的设计方略,把一种大的I模块逐渐分解成较小的相对简朴的模块。对低层模块,采用以

变换为中心的设计方略。为了提高每个模块的内聚性、减少模块间的耦合性,将每个模块设计

成具有单一功能的模块(即功能内聚),使模块间H勺联络完全是通过主模块的控制和调用来实

现(即非直接耦合)。

结合上述分析该系统应包括如下模块:选手信息浏览,选手信息录入,选手信息保留,选

手成绩查询,选手信息修改,选手信息删除。

选手数据:编号、姓名、成绩、平均成绩。

图1.总体构造图

3程序设计及模块分工明细

3.1人员模块分工

王泽:浏览选手数据browse0;查询选手成绩search();查询选手信息print()。

郭世杰:菜单函数menu_select();修改函数update。;保留函数save。。

贺鑫:参赛选手宅息录入creal();成绩排序rank。;删除函数del();

公共模块:colorC>quit()>welcome()„

3.2人员模块分工明细

•浏览选手数据browse。

分析:实际为链表的遍历,将头节点时指针予以临时节点pl,用while语句实现链

表日勺遍历。

图2.浏览选手数据模块

/*----------------------browse函数-------------------------------*/

voidbrowseO

(

SONGER_MESSAGE*pl;

if(head==NULL&&tail==NULL)

printf("\n目前信息记录为空\n〃);

)

else

printf("\n你要浏览日勺选手信息如下\n〃);

printf('--------1--------\n〃);

printfC编号|姓名\n〃);

pl=head;

while(pl!=NULL)

printf('--------1--------\n〃);

printf("%-9d%-6s\n/?,pl->num,pl->name);

pl=pl->next;

}

printf('--------1--------\n〃);

)

}

•查询选手成绩search()

分析:提供详细成绩查询,排名查询的函数调用。其中各功能均采用菜单项选择择FJ勺方式。

图3.查询选手成绩

search函数*/

voidsearch()

(

intc;

printf("\n请选择查询内容:\n〃);

printfCl.选手详细成绩查询2.选手排名查询\n请输入您的选择:〃);

scanf(〃%d〃,&c);

switch(c)

case1:

system("cis");

print();

break;

case2:

system(〃cls〃);

rank();

break;

}

)

•查询选手信息print。

分析:实际为输出链表中的某个某个节点,输出某个选手的编号与姓名较为好实现,谕出10

位评委成绩则用时for语句来实现。

(-TART

输入要查找的选手编号

NULL&&lail==-------------------------------------------------

目前记录为空输出表头

WHILE(pl!=NULL)

4El£j^>num==seekuiuw)—

输出编号姓名指向链表的下一种

FOR(i=0;i<N;i++)

输出每个评委的分数

平均分

Return

-^HUieaU=NULL&&check__________________________________________________

选手成绩不存在

Enter

END

图4.杳询选手信息模块

---print函数

voidprint()

SONGER_MESSAGE*pl=(SONGERMESSAGE*)malloc(LEN);

intcheck=0,i;

longseoknum;

printf("\n请输入要查找H勺选手编号:〃);

scanf(“/d”,&seeknum);

if(head==NULL&&tail=NULL)

(

printf("\n对不起,目前记录为空!\n");

)

else

(

pl=head;

printff\n----------你要找H勺选手口勺成绩如下---------\n");〃在这里找到了要查找

口勺选手成绩

printfC——I——I——I一一I一一I——I——I——I一一I——I——I——I——

|----------1--------'n");

printfC编号I姓名|成绩I1|2|3|4|5|6|7|8|9|10

平均成绩\n〃);

printf('------1-------1------1----1-----1----1-

—|---------\吟;

while(pl!=NULL)

(

if(pl->num==secknum)

(

printf(*淅7d%-6s”,pl->num,pl->name);

printff〃);

for(i=0;i<N;i++)

(

printf(z,%.Ifz,,pl->grades[i]);

I

printf("%-6.21f\nw,pl->ave);

chcck=l;

getchar();

return;

)

else

pl=pl->next;

1

)

)

if(head!=NULL&&check==0)

(

printfC\n对不起,你查看的J选手成绩不存在!\n");

)

gctchar();

•菜单函数menu_select()

分析:菜单主函数规定设计比较简洁,只提供设输入,处理和输出部分的函数调用。其中各功

能模块用菜单方式选择。

定义变量charsflOOkintc:

WHILE(1)

运用atoiO函数将所接受II勺字符串转换成数值,提供应if语句判断

____________________________________________

<111c------------------------------------------

输入有误Break

SWITCH(c)

1234567default

信息浏览信息录入信息保留成绩查询信息修改信息删除退出系统Break

BreakBreakBreakBreakBreakBreakReturn

Break

Code

图5菜单模块

/*-----------------menu_select函数--------------------------*/

voidmenu_select0

chars[100];

intc;

gots(s);〃不管顾客输入吊J是数字键或是字母键使用gets都能将输入作为字

符串接受

while(l)〃限定顾客输入的数值必须在1-7之间才有效,否则规定重新输入

(

c=atoi(s);〃运用atoi()函数将所接受的字符串转换成数值,提供应if语句

判断

if(c<1||c>7)

(

printf(“您的输入有误,请重新输入:〃);

gets(s);

)

elsebreak;

)

switch(c)

(

case1:

system("cls");〃清屏

browse();〃选手信息浏览

break;

case2:

system("cis");

creat();〃选手信息录入

break;

case3:

systcm("cls");

save();〃选手信息保留

break;

case4:

system("cls");

search();〃选手成绩查询

break;

case5:

systcm("cls");

update();〃选手信息修改

break;

case6:

system("cls");

del();〃选手信息删除

break;

case7:

system(/zclsw);

quit();〃退出系统

return;

break;

default:

break;

)

gctchar();

system("cis");

menu();

menuselect();

•修改函数update()

分析;实现选手信息的修改,关键内容为链表日勺遍历。找出要修改H勺选手,修改其

/*-------------------------update函数----------------------------*/

voidupdate()

SONGER_MESSAGE*pl;//=(SONGERMESSAGE*)malloc(LEN);

intcheck=0;〃用来进行判断,与否找到了要修改口勺信息

longupdatenum;

printfC\n请输入要修改日勺选手编号:");

scanf&updatcnum);〃查找到要修改H勺选手

if(head==NULL&&tail==NULL)

(

printf("\n--------目前信息记录为空--------\n");

)

else

(

pl=hcad;

while(pl!=NULL)

if(pl->num==updatenum)

(

printf(*\n-----------你要修改的选手信息如F----------\n");

printf(*--------1--------\n");

printff编号|姓名\n〃);

printf("---\n〃);

printf("%-9d%-6s\nw,pl->num,pl->namo);

printff---------1---------\n");

printff\n------------请重新写入此选手信息:---------\n");

check=l;//从新写入修改项目

printf(〃\n修改选手编号为:〃);

scanf(飞d”,&pl->num);

printf(〃\n修改选手姓名为:〃);

scanfpl->namc);

return;

)

else

(

pl=pl>next;

)

}

)

if(head!=NULL&&check==0)

(

printfC\n对不起,你要修改的选手信息不存在!\n");

)

getchar();

)

•保留函数save。

分析:保留文献H勺流程。使用fopen()函数打开txt文献,“w”参数代表打开只写文

献,再运用fprintf。函数写入选手内容,最终用fclose()函数关闭文献。

(START)

打开一种文献,并写入格式数据

WHILE(pl!=NULL)

向文献写入“编号”,“姓名”

关闭文献

(END)

图7.保留模块

voidsave。〃将数据保留到文献

{

FILE*fp;

SONGER_MESSAGE*pl;//=(SONGERMESSAGE*)malloc(I^N);

pl-head;

fp=fopen(”参赛选手名单.txt","[v");

fprintf(fp.\n〃):

fprintf(fp/编号|姓名\n〃);

while(pl!=NULL)

(

fprintf(fp,*--------1--------;

fprintf(fp,/z%-9d%-6s\n,z,pl->num,pl->name);

pl=pl->next;

)

fprintf(fp,"--------1--------\n〃);

fclose(fp);

printfC\n\t文献已将保留到、〃参赛选手名单.txt\");

}

•参赛选手信息录入creat()

分析:录入信息体现为创立链表节点并给节点的元素赋值,然后对评委口勺分数进行排序(链表

的排序),排序选择冒泡排序法,最终去掉一种最高分去掉一种最低分。

图7.参赛选手信息录入模块

/*—----creat函数

voidcreat()

inti,j;

floatt;

charc=,y';

while(c=='y'11c=='Y')

(

SONGER_MESSAGE*pl=(SONGER_MESSAGE*)malloc(LEN);

printf("\n请输入要录入的选手信息:\n");

printf(〃\n选手编号:”);

scanf&pl->num);

printf(〃\n选手姓名:〃);

scanfpl->name);

printf("\n请输入10位评委点评成绩:");

pl->ave=0;

for(i=0;i<N;i++)

(

scanf(线f”,&(pl-〉grades[i]));//runtimeerror

pl->ave+=pl->grades[i];

for(i=0;i〈N-1;i++)〃冒泡排序法让那个成绩从小到大排

列,然后选出最大值是最终一种,最小值是第一种

for(j=0;j++)

if(pl->gradesJJ>pl->grades[j+lj)

(

t=pl->grades[j];

pl->gradesLj]=pl->gradesJ+l];

pl->gradesLj+lj=t;

}

pl->ave=(pl->ave-(pl->grades[0]+pl->grades[9]))/8;〃去掉一种最高分,去第一种这

一低分,得出最线的平均分

pl->next=NULL;

if(pl==NULL)

(

printfC\n内存分派失败\n〃);

n=n-l;

)

if(head==NULL&&tail==NULL)〃目前没有结点,创立第一种结点

hcad=pl;

head->next=NL'LL;

tail=head;

printf(",\n-----选手信息录入成功------\n");

}

else〃假如目前尚有节点则插入到尾部

(

tail->next=pl;

tail=pl;

tail->next=NL-LL;

printf(z,\n-----选手信息录入成功------\n");

)

printf(〃与否继续(Y/N):");

getchar();

scanf&c);

}

)

•成绩排序rank。

分析:用冒泡排序的措施对平均成绩(链表)进行排序。

&TART

图8.成绩排序模块

/*rank函数

voidrank()

SONGER_MESSAGE*pl,*p2,*endpt,*p;//*endpl/*控制循环比较*/*p/*临时指针变量*/

n=0;

pl-head;

if(head==NULL&&tail=NULL)

(

printf(*\n-----------目前信息记录为空--------\n");

)

else

(

pl=(SONGERMESSAGE*)malloc(LEN);

pl->next=head;/*注意理解:我们增长一种节点,放在第一种节点口勺前面,重

要是为了便于比较。由于第一种节点没有前驱,我们不能互换地址。*/

head=pl;/*让head指向pl节点,排序完毕后,我们再把pl节点释放

掉*/

for(endpt=NULL;endpt!=head;endpt=p)/*结合第6点理解*/

(

for(p二pl二head;pl->next->next!=endpt;pl=pl->next)

(

if(pl->next->ave<pl->next->next->ave)/*假如前面口勺节点键值比背面

节点的键值小,则互换*/

p2=pl->next->next;//1>排序后q节点指向p节点,在调

整指向之前,我们要保留原pH勺指向节点地址,即:p2=pl->next->next

pl->next->next=p2->next;〃2、顺着这一步一步往下推,排序后

pl->ncxt->next要指於J是p2->next,因此pl->next->next=p2->next

p2->next=pl->next;〃3、p2->next原是q发出来H勺指

向,排序后qH勺指向要变为指向p的1,而本来pl->next是指向p口勺,因此p2->next=pl->next

pl->next=p2;〃4、pl->next原是指向pH勺,排序

后图16中pl->next要指向q,本来pl->next->next(即p2)是指向q的,因此pl->next=p2

P=pl->next->next;〃5、至此,完毕了相邻两节点口勺次序

互换

}

)

pl=head;/*把pl『勺信息去掉*/

head=head->next;/*让head指向排序后的第一种节点*/

free(pl);/*释放pl*/

printfT\n----------选手成绩排名信息如下---------\n〃);

printf("--------1--------1--------1---------\n");

printfT编号I姓名I平均成绩I名次\n〃);

pl=head;

while(pl!=NULL)

printf("---------1---------1---------1---------\n");

printf("%-9d%-9s%-9.1lf%-5d\n,z,pl->num,pl->name,pl->ave,n+1);

n++;

pl=pl->next;

)

printf("---------1---------1---------1---------\n");

)

getchar();

)

•删除函数del()

分析:节点H勺删除较为繁琐。

第一种状况:数据在链表头部,并且只有一种结点。

第二种状况:数据在链表头部,头结点。

第三种状况:数据在链表中间,中间节点。

第四种状况:数据在链表尾部,尾部节点。

START

输出要删除的选手信息

head&&IL、nE--MULE)""""

删除唯一口勺节

点删除头节点

中间节点删除

成功删除尾节点

getchar();

Return

END

图9.删除模块

/*------del函数*/

voiddel()

SONGERJIESSAGE*node;//=(SONGERJIESSAGE*)malloc(LEN);

SONGERJIESSAGE*pl;

intcheck=0;〃用来进行判断,与否找到了要删除的信息

longdel_num;

printf(〃\n请输入要删除H勺选手的编号:〃);

scanf(“/d”,&del_num);

if(head==NULL&&tail==Nl)LL)

{

printf("\n目前信息记录为空,删除失败!\n〃);

)

else

(

node=hcad;

pl=head;

while(node!=NULL)

if(node->num==delnum)

printff\n-要删除的选手信息\n〃)

printff--------1--------\n");

printff编号|姓名\n");

printfC--------1--------\n");

printf(z/%-9d%-6s\nw,node->num,noth->name);〃在这里找到了要删除艮I

选手信息

printff--------1--------\n");

chcck=l;〃找到要删除的信息,赋为真

if(node==head&&head->next==NULL)〃是头结点,并且只有

一种结点

(

hcad=NULL;

tail=head;

free(node);

printf(",\n--------删除信息成功--------\n");〃删除唯一的T节点

)

elseif(nede==head&&head->next!=NULL)//删除头节点

(

node二head:

head-head->next;

free(node);

printfC\n--------删除信息成功--------\n〃);〃头节点删除成功

n=n-l;

}

elseif(ncdc->next!=NULL)//删除中间节点

(

pl->ncxt=nodo->noxt;

free(node);

printfC\n--------删除信息成功--------;〃中间节点删除成功

n=n-l;

)

elseif(ncde->next==NULL)〃删除尾节点

(

pl->next=NULL;

tail=pl;

free(node);

printfC\n删除信息成功\n");〃尾节点删除成功

n=n-l;

)

getcharO;

return;

else

pl=nodc;

node=node->ncxt;

)

}

)

if(head!=NULL&&check==0)

(

printfC\n对不起,你要删除的选手信息不存在!\n");

)

gctchar();

}

♦公共模块

•颜色控制函数color。

分析:为了使程序看起来更美观,因此引入wind5Vsapi末控制颜色函数,用来变化字体颜色。

/*---------------------------color函数------------------------------*/

voidcolor(constunsignedshortcolorl)

/*仅限变化0-15H勺颜色;假如在0-15那么实现他H勺颜色由于假如超过15背面

日勺变化的是文本背景色。,/

if(colorl>=0&&colorl<=15)

SetConsoleTextAttribute(GetStdllandle(STD_OUTPUT_HANDLE),colorl);

/*假如不在0T5日勺范围颜色,那么改为默认的颜色白色;*/

else

SetConsoleTextAttribute(GetStdllandle(STD_OUTPUTJIANDLE),7);

/*颜色对应值:

0:黑色8;灰色

1二蓝色9二淡蓝色

2二绿色10;淡绿色Oxa

3二湖蓝色11;淡浅绿色Oxb

4:红色12二淡红色Oxc

5二紫色13二淡紫色Oxd

6:黄色14二淡黄色Oxe

7=白色15=亮白色Oxf

*/

)

•退出函数quit。

分析:用来退出程序

/*----------------------quit函数------------------------------*/

voidquit()

(

printf(/z\n\n\t==========^感谢您使用歌唱比赛评分系统«==========\n\n/z);

}

•目录函数menu。

分析;为程序入口提供显示,因篇幅有限,因此显示有错乱。

/*--------------------------------------menu函数---------------------------

---------------*/

voidmenu()

(

system(z,modeconcols=100lines=30/z);

color(11):

printf(,z\t.;rl55551r

\n〃);

printf(〃、1★+★☆歌唱比赛评分系统:rlhhhhhhhhhhlr:

printf(〃\t:ISSSSSSSSSr

\n〃);

printf(z,\t.sSSS55SSl.

\n〃);

printf选手信息浏览hS5555SSiiSh.

\n〃);

printf(〃\trS555SSh,.sSSSl

\n〃);

printf(z/\trh55SS5i;5S555S,

\n〃);

printf(z,\t2.选手信息录入ShSS5r,lSS5555Si

\n〃);

printf("\thhSS5r..sSS555555S;

\n〃);

printf("\t,hS555555SSS5r..r5ss555555s5.

\n〃);

printf(z/\t3.选手信息保

留:SS555SSS1;,sSSS5555555SS;

printf(〃\t

iSSSShi.;1SSS55555555SS;\n〃);

printf(z,\t,sr,,r5ss55555555SSS1,

si.\n〃);

printf(〃\t4.选手成绩查询

i533SSSSSSSSSSS5s,.lSS5i\n");

printf("\t.:islh5555hlsi,.r5S

55SSh;\n〃);

printf(〃\t..,;s5SS5

5555SS1,\n〃);

printf(z,\t5.选手信息修

改.sS3SSSs.\n");

printf("\t,r5SS5

5555555ss5i\n〃);

printf("\t;hS

SS5555555SSh:\n〃);

printfC\t6.选手信息删

除:sSSS5555555SSl,

\n〃);

printf(zz\t

,r5SS5555555SSr.\n〃);

printf("\t

.ihSSS55555SS5;\n〃);

printf(/z\t7.退出系

统:1SSS55555SS

s\n〃);

printf(〃\t

,r5ss5555s5\n〃);

printf("\t

:shhhhh:\n〃);

color(15);

}

•欢迎模块welcome()

分析:一种系统需要一种美观欢迎界面,由于DOS窗口有限,因此用点阵字写出“welcome”

并且在右下角增长目前时间显示。时间用的time.h库来实现。

/*-------------------------------welcome函数------------------------------*/

intwelcome0

system(z,modeconcols=65lincs=25");

printf(〃\n\n\n\n〃);

color(14);printf(z,#n#######n#########

#######\n〃);

color(14);printf(z,n###nn蝴##

#\n〃);

color(ll);printf(z,##n##n####

#\n〃);

color(11);printf("itnnnnnnnitaantun

附###\n〃);

color(11);printf(z,n###n#####n

#\n〃);

color(13);printf(z,##########n

#\n");

color(13);printfC#############¥##########

#######\n〃);

color(lO);printf("\n\n\n\n\n制作:电子信息工程系通信工程1班42王泽

38郭世杰49贺鑫\n〃);color(15);

time_tit;

it=time(NULL);

ptr=localtime(&it);

printfC\n\t\t\t目前系统时间:%4d年$02d月%02d

日%d:%d\n”,ptr->tm_year+1900,ptr->tm_mon+l,ptr->tm_mday,ptr->tm_hour,ptr->

ptr->tm_sec);

printf(z,\n\n按任意健进入主菜单\n〃);

getchO;

system("cis");

menu();

menuselect();

return0;

)

•主函数main。

分析;提供程序入口。

/*---------------------------------------------------------main函数

-----------------------*/

intmain()

(

welcome();

return0;

)

•库函数

ttinclude<stdio.h>

^include<stdlib.h>

#include<conio.h>

ttinclude<string.h>

■include<malloc.h>

#include<Windows.h>

#include<timc.h>

#defineLENsizeof(S0NGERJ1ESSAGE)

ttdefineN10

•构造体

structtm*ptr;//用于welcome()显示时间的构造体

typedefstructsonger〃定义选手信息链表构造

tr

longnum;〃选手编号

charname[20];

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论