数据结构题目二:大赛投票系统

上传人:suij****uang 文档编号:166193384 上传时间:2022-10-31 格式:DOCX 页数:4 大小:26.08KB
返回 下载 相关 举报
数据结构题目二:大赛投票系统_第1页
第1页 / 共4页
数据结构题目二:大赛投票系统_第2页
第2页 / 共4页
数据结构题目二:大赛投票系统_第3页
第3页 / 共4页
点击查看更多>>
资源描述
151617181920212223242526272829303132333435363738394041424344454 647484950515253545556#include stdio.h#include /#define Maxsize 9#define LIST_INIT_SIZE 3 /线性表存储空间的初始分配量 #define LIST_INCREMENT 3/线性表存储空间的分配增量typedef struct nodechar name 9;/* 选手姓名 */int num; /*选手编号 */ int score; /* 选手得分 */ int tax; /*选手名次*/ElemType;typedef structElemType data;int len;/当前长度int listsize; /当前分配的存储容量(以sizeof(NODE)为单位) SeqList;void Init_sq(SeqList *L,int n)L-data=(ElemType*)malloc(nsizeof(ElemType);if(!L-data) exit(1);/存储分配失败L-len = n;/空表长度为0L-listsize = n; /初始存储容量void Init(SeqList *L)ElemType newbase;int i,n;printf请输入选手个数:);scanf%d,&n);Init_sq(L,n);printf请输入选手姓名和编号n);printf姓名 t 编号tn);if(L-len=L-listsize)newbase = (ElemType*)realloc(L-data,(L-listsize+LIST_INCREMENT)*sizeof(ElemType);if(!newbase) exit(1);/分配失败58L-data newbase;59L-listsize +LIST INCREMENT;6061for(i=1;i=L-len;i+)6263scan %s%d,L-datai.name,&L-datai.num);64L-datai.score = L-dataitax0;6566 6768 void Toupiao(SeqList *L)69 70int i,num;71printf请输入您要为几号选手投票:(0结束)n);72do7374scan %d,&num);75if(num 0 | num L-len)7677print你输入的编号错误请重新输入(1-%d)n,L-len);78continue;7980else81for(i=1;i=L-len;i+)82if(L-datai.num = num)83L-datai.score 1;84while(num != 0);85 8687 void Shellsort(SeqList *L)88 89int i,j;/,flag;90int increment=L-len;91do9293increment=incremen 3+1;/* 增量序列 */94for(i=increment+1;i=L-len;i+)9596if (L-datai.score L-datai-increment.score)/*L-ri插入有序增量子表*/9798L-da0a=L-datai;/* 暂存在 L-r0 */99for(j=i-increment; j0 & L-data0.score L-dataj需将 score;j-=increment)100L-dataj+increment=L-data /*;记录后移,查找插入位置*/101L-dataj+increment=L-daOa /* 插入*/102 103104while(increment);105106/*计算选手名次*/107void Mingci(SeqList *L)108109int i;110L-data1.tax=1;111for(i=2;i=L-len;i+)112if(L-dataiT.score=L-datai.score)113L-datai.tax= L-data1.tax;114else115L-datai.tax= L-data1-.tax+1;116printf正在计算选手名次请稍后n排序成功n);117118/*119void check(SeqList *L,SeqList *P)120121int i;122for(i=1;i=L-len-1;i+)123if(L-datai.score=L-datai+1.score)124125126*/127void Display(SeqList *L)128129int i;130printf 姓名t编号t票数t名次tn);131for(i=1;i=L-len;i+)132printf(%st%dt%dt%dtn,L-datai.name,L-datai.num,L-datai.score,L-datai.tax);133printfn);134135136void Save(SeqList *L)137138FILE fp;139int i;140char filename20;141printf 请输入目标文件名:n);142scanf%sfilename);143fp=fopen(filenamew);144fprintf(fp 姓名t编号t票数t名次n);145for(i=1;i=L-len;i+)146 fprintf(fp,%st%dt%dt%dtn,L-datai.name,L-datai.num,L-datai.score,L-datai.tax);147fclose(fp);148printf数据已成功保存! n);149150151void meun()153printf(*输入选手信息(姓名、编号)*n);155printf(*开始投票* ); 156printf(*排序*); 157printf(*查看结果* ); 158/printf(*选出前三名*nL59printf(*保存到文件*);160printf(*退出*);161152printf*n)154printf(*n);162 163 164 void main()165166int sel;167SeqList L;168SeqList P;169do170171meun();172print 请输入您的选择:);173scan %d,&sel);174switch(sel)175176case1 :Init(&L); break;177case2:Toupiao(&L);break;178case3:Shellsort(&L);179Mingci (&break;180case4:Display(&L);break;181case5 : Save(&L); break;183while(sel!=0);
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!