运动会积分系统C语言

上传人:沈*** 文档编号:124933756 上传时间:2022-07-25 格式:DOC 页数:21 大小:310.04KB
返回 下载 相关 举报
运动会积分系统C语言_第1页
第1页 / 共21页
运动会积分系统C语言_第2页
第2页 / 共21页
运动会积分系统C语言_第3页
第3页 / 共21页
点击查看更多>>
资源描述
程序设计报告(214 / 05学年 第2学期)题 目:运动会积分系统专 业 组长学号姓名 组员学号姓名 指 导教 师 指 导 单 位 日 期 成员分工组长()组员()组员()评分细则评分项优秀良好中等差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性用户界面设计报告书写认真程度内容详实程度文字表达熟练程度回答问题准确度简短评语教师签名:年月日评分等级查柯丞贾世恩备注评分等级共五种:优秀、良好、中等、及格、不及格运动会积分系统一、 课题内容和要求学生运动会成绩数据库系统记录某校运动会上全部运动项目,各系获得的分数及排名的情况,包括5、00、200,40,10米,跳高,跳远,标枪,铅球铁饼等。请设计一个积分系统,方便学校对比赛成绩进行统计管理.二、 需求分析运动会积分系统的功能框架图如图所示运动会积分系统录入模块按院系编号排序按男团体总分排序按女团体总分排序按院系总分按院系编号查询院系某个项目情况统计总分按项目编号查询图 功能框架图管理员:)以管理员身份登录,预先设定参加运动会的系院数目,男子项目数女子项目数,(每项目取前三名,分别为10,,2分)2)管理员凭密码进入录入成绩状态,填写比赛结果,输入各项目获奖运动员的信息,但录入完成后不得修改成绩。可以按各系院编号输出总分;按总分排序;按男团体总分排序 ;按系院编号查询;按项目编号查询;按女团体总分排序.3)审核各院系提交的复核申请,予以批准后修改成绩普通用户:)普通用户可以查询各个比赛成绩,生成团体总分报表,查看参赛院系的成绩和各比赛项目最终名次等。2)允许提交复核申请,提请管理员修改成绩。三、概要设计1主要结构体tpedf struct node1nt chool;/*院系编号in rcod; /*项目成绩*strut ode *next; /*链域Schos;typf tuct nt tem; *项目编号*/choos irstshol; *链域指向链表中第一个结点*ITEM;typede rtint z;/*项目总数 */ITEaMAX;ALLiem;typedef stru nod2 in itm; *该院系获奖的项目*nt ecord;/*项目成绩suctnde2 next; /*链域*/Ies;typf stt int school; /院系编号*/i sore; /*院系总分n boys;/男团体总分*/int girs; /女团体总分ems firiem; /链域指向链表中第一个获奖项目的结点*/CHNode;typeftruct nn; /* 院系总数 /SCHode bMA;Aode;LLitem *1;ALNod *g2;主要函数流程图开始开始是否管理员初始化用户名和密码NY输入密码普通用户界面登录N密码是否正确管理员界面Y进入菜单操作选择功能结束N返回菜单图2登录函数 是否结束Y结束图主函数流程四、源程序代码#nldestdo。h#ncldeslib。h#icludestin。hincludeo.h/#icludenio。h 屏幕操作函数*/ #deieA 50 /defineUL 0 srtuserchr ue_Name6;cha ue_Ps;stu1 = ”admin”, ”admi”;/初始化用户名和对应密码vodprint_Passd(void)nt i 0;/当前账号标记itfag1= ;/登录成功标记int flag 0;/密码正确标记cr p;/临时用户名har s;/临时密码chrum= ;/密码次数chartemp;/登录后改密码printf(”请输入登录名:n”);scanf(”%s”, );if (strcmp(stu.user_ae, p)= )flag =1;if (1 = lag)prtf(”请输入密码:n”);scan(%s”, );elseprintf(”没有此用户:n”);xi(0);l (stcmp(stui。uer_ass, s) ! 0)print(”密码错误!n);prif(”请重新输入密码:n);scanf(”s, s);pintf(”登录成功!n”);prnt(”注:你是管理员!n);tydefstrcnodeit scho; /*院系编号int reord; /*项目成绩*/structode1 *ex; /*链域*/Sool;ypefstru int e; /*项目编号*/Schol *firtschol; /*链域指向链表中第一个结点*/I;tpedftruct int z; * 项目总数 */ITEM A;ALitem;typdetructnode2 i item; /该院系获奖的项目*/itrecord; /项目成绩*structd2 *next; /*链域/Ites;typdftct nt sch; /院系编号*/int score; *院系总分*/in boys; /*男团体总分/int irls; /女团体总分*em rstite; *链域指向链表中第一个获奖项目的结点*/SCHode;typedstruc t n; 院系总数 /SCHNde bMAX;ALNod;ALitems *;ALLNode *g2;voi fut(ALLitems *g1, ALLNde*g2)Shools *p1;Itms*p;nt i = ,j, k, m, w, h, x;1 (chools )maloc(seof(Shools);2= (tems*)maloc(sizeof(Items));if (!p1 | !)exit();intf(”n *输入各个项目信息 * n);pntf(” 输入男子项目总数m:);canf(”%, &m);i ( 0| 20)intf(” 输入有误,m是20以内的整数,请重新输入:”);scanf(d”, &m);pritf( 输入女子项目总数w:”);scaf(%d, &w);i (w ); (g2n | -20)rnf(” 输入有误,n是20以内的整数,请重新输入:);scan(”, 2-n);g1-z =m +w;printf(” 则项目编号为男子1d,女子%d-%d”, m, m + 1,1);prtf(nn *记录运动会成绩*”);pintf(”n (输入标志结束)”);rit(”t项目1:5米、项目2:10米、项目:200米、项目4:40米、项目:500米、”);pint(”项目6:跳高、项目7:跳远 、项目8:标枪 、项目9:铅球、项目10:铁饼n);o (k ; k bk.se = 0;-k。bo 0;2-b.grs 0;g2-b0。sore = ;g2。boys = ;g2b0.grls 0;whle(i!= 0)rintf( 项目:”);anf(%”, i);f (i != )pntf( 请输入前三名:n);h= 3;oprintf( 第名:院系(院系编号为数字)”,);cnf(d, &x);p1 = (Schos *)ma(szeof(hols));p1schol x;2 = (Items*)mallo(sizof(Item));-im = ;(h = 3) ecorp1rer = 2;if( 2) prcrd= p1recor=5;if(h= ) p2-ecrd= 1ecor = 0;p1-nxt 。fisthol;1ai.firstschol p1;p-xt g2-x.fiitem;g2-xfistitem = p2;2bx。scor g2-bx。sce + p2ecord; * 累计总分 */if(i m) g2bx。boys = g2bx。ys+ p2cord; 累计男团体总分/lse2。girlsg-bx。rs + 2ecord; / 累计女团体总分 */h; hile ( ! & != 0);v save()FILfp1, *p2;f1= (FIL*)mall(sizof(ILE));fp2 = (L )mallo(sof(ILE);if (p = pn(”sorts1”, w)) = NUL)prtf(”canot opefile.n”);rtur;f(fwrie(1, seo(ALLitms), 1, fp1)!= 1)rintf(fierite ro.n”);flose(1);i (fp2 =fopn(”srt, ”wb) = NUL)printf(canno pile。n”);rturn;if (fwrite(2,sieo(ANode), , )!= 1)pintf(fle write erorn);fcos(fp2);od fuc(ANod *2) /* 输出各院系总分/it ;ntf( *输出各院系总分 *n”);pint(” 院系编号 总分 n);fr ( = 1; k rord);p xt;prit(”n”);pintf(”n”);stem(pase”);prinf(”按任意键返回主菜单。”);etcar();oi uct4(AL g) / 按院系总分排序输出 */int i, j, k;Ims *p2;pint(”n * 按院系总分排序输出 *n”);pritf( 院系编号t总分 n”);scaf(d, k);/pnt(”输入要查询的项目编号:);for( = 2; i b.school, bk。cor);2 =p2net;prn(n);g2-b0.screg2i。sco;g2b0。boy= 2bibos;2.girls = g2girs;-0shoo= g2-b。school;j= i 1;while (g2-b0。sce2-j。cor&j0)2-b + 1。sre = gbj.coe;2+1.bos = g2bj。boys;g-bj 1.gils =2bj。rs;g2-bj 。choo = gbj。scool;j-;g-bj + 1。core =g2b0。score;g2bj + 。boys = 2-b。boys;gb+ 1。girs= g2-0。irls;g2b+ 1。chol = gb0.col;fo (k ; k n;i+)rint(d, );p2 =g2bk。firite;while( != NUL)prin(”%dtt %d”, g2k.schol,g2bk。oys);2 = p2nx;pnt(n”);gb0。soe=g2。cre;gb0。boys=g。boys;2b0。girls = 2-bi。irl;2b0schog2bi。shoo; = i 1;hil (g-0byg2j.bo0)gb+ 1。score 2b。scoe;g-bj+ .boy= g2bjboys;g2-bj+ 1 = gbj。grls;g2-bj + 1。choo =g2j。schol;-;g2bj 1。scoe= g20。soe;g2b+ 1.boys = 0.ys;g2bj +1。grls = g2b0。grs;2b +1。scl =g2b0。scho;fr (k = 1; = g; k+)itf(”%dt n”, gbk。scol,g2-b。ys);sys(”pause”); / 暂停等待pif(”按任意键返回主菜单.。”);getchar();vi fuc6(LNode *g2) /* 按女团体总分排序输出 /i ,j,;Ites p2;p (Ites *)mallo(sizof(Iem));prntf(”n *按女团体总分排序输出 *n”);pn(”院系编号t女团体总分 n”);anf(%d, &k);/pntf(”输入要查询的项目编号:);fr(i = 2; bk。fisttem;whe (p != LL)pi(”dt ”, g2bk。o, g2-bk.girls);2 =2next;intf(”n”);b0。sce = 2bi。cor;g2b0。oys = g2bi。bos;2b0。gls = g2i。grls;g2-0。scholg2bi。chol;j = i -1;hl(2b0。girlg2bj.r&0)2b+ 1scoe= g2bj。scoe;bj + 1。boys =2bj。boy;gbj +1。irls = g2j.girs;-b+ 1。sol = gb。sco;j-;gbj+1.scre g2-b0。score;g2-bj +1by= g2-b0。bys;g2bj + 1。ils = g2-b0.girs;g2j+1。choo=gb0。school;fo (k = 1; k = g; k+)prinf(%d dn”, 2b.schl, g2b。girs);sstm(”pe”);rint(”按任意键返回主菜单。);getchar();vid funct(ALLode *2) * 按院系编号查询院系某个项目情况 */it i, j;Iems *p2;rinf(n * 按院系编号查询院系某个项目情况 *”);printf( 输入要查询的院系编号:”);cnf(”d”, &i);ptf(t项目:米、项目:100米、项目3:200米、项目4:00米、项目5:500米、n”);pntf(t项目6:跳高、项目7:跳远、项目:标枪 、项目:铅球 、项目10:铁饼n);printf(” 输入要查询的项目编号:);snf(”, &); = g2-bi。firstitem;hil (p!= NUL)i(p2item = j)printf(” 院系编号:%d项目%d:得%d分n”, i,p2iem, p2ecor);p =2next;pint(”n”);stem(pause);rntf( 按任意键返回主菜单.。”);gethar();vidfunc(ALLes*1) / 按项目编号查询取得名次的院系*/n i;choolsp1;prntf(”n* 按项目编号查询取得名次的院系 ”);printf(”输入要查询的项目编号:);scnf(%d”, i);prnf(项目编号ttt取得名次的院系”);printf(dt”,i);p1 = g1ai。frtchl;while(p1 != NU)prnf(”学校%d:得%分 ”, p1sol, p1recd);p=nex;printf(”n);sste(”pause”);rint(”按任意键返回主菜单。.。”);geha();void main()in t;pritf(”管理员请按1,普通用户请按2”);scn(”%d”, &tep);i (1 = temp)itt;voiprin_Pswd(voi);le(1)priPsswd();break; (ALNode*)mlloc(ieof(ALNoe));g (ALLitem*)lloc(szeo(LLitems);i(!g | !g1)it(1);/excol(WHITE); /extbackgrnd(BLU); /lrscr(); systm(”cs”);for (;)rin(”tt * * * * * * * * * * * * * * *n”);prit(tt 运动会分数统计系统 n”);nt(”t * * * * * * * * * * * * * *”);prif(t* 1。输入各个项目成绩并存储文件 *t n”);printf(t* 。统计各院系总分 t ”);prnt(”t* 3.按院系编号排序输出 *t ”);pif(t 。按院系总分排序输出 *t n”);pntf(”tt 5。按男团体总分排序输出 t n”);rintf(”tt 按女团体总分排序输出 t n”);rintf( 7.按院系编号查询院系某个项目情况 *t n”);printf(”t* .按项目编号查询取得名次的院系 n);printf(t 。退出 *n”);printf(” * * * * * * * * * * * * * * *n”);printf(tt ”);printf(”tt n”);pritf(”t n”);prinf(”tt 请选择(08):);lo1:scanf(”%d”, &);system(ls”);switch (t)ce 1:nct1(g1, g2); sve(); bre;cae 2:func(2);reak;ce :fnct3(2);brak;cse :fnc4(g2); bea;as 5:fnt5(g2); break;ca 6:funct6(g2); bre;c 7:func7(g2);reak;cse 8:funt8(g1);brek;cas 0:eit(0);falt: prtf(”输入有误,请重新选择:”);t loop1;/clrc();sstem(”cl”);eseint u;g = (LNde)mloc(izef(LNode);g1 =(ALis*)malloc(sizeof(items);f(! |!g)eit(1);/tetcoor(WHITE); /textckgrund(BLE); /lrscr(); syte(ls);for (;;)pintf(t * * * * * * * *n”);printf(”tt 运动会分数统计系统 n”);ntf(”tt * * * * * * * * * * n);pinf(t 1。统计各院系总分 n”);pritf(”t*2。按院系编号排序输出 *t n);printf(”t3。按院系总分排序输出 *t n”);pitf(”tt* 4。按院系编号查询学校某个项目情况t );prin(”t 按项目编号查询取得名次的院系 *n”);tf(tt* 0.退出 *n”);rintf(”tt * * * * * * * * * * * * * *n”);intf(tt n”);pintf(”t ”);printf(”tt n”);prif(tt 请选择(-5):”);op:sca(”%d”,&u);system(cls”);switch ()cae 1:fnc2(2); break;case 2:funct3(2); bak;case 3:fuct4(g2);bea;cas4:func7(g2);bea;cas 5:funct8(1); re;cse :et(0);dfult: pintf(输入有误,请重新选择:”);otoloop2; /crr(); sst(ls);五、测试数据及其结果分析图一 登录界面图二管理员界面图三普通用户界面图四 输入信息图五男团体总分排序图六 查询院系某个项目结果分析(1)进入管理员界面需要正确输入密码,普通用户不需要输入密码,但管理员界面的功能更多(2)输入信息时项目和院系编号必须输入数字且不能超过预先设定的项目总数和院系总数()总分排序和团体总分排序要先输入项目编号,进行查询和排序时也需要输入正确的院系编号和项目编号六、调试过程中的问题此处至少写5点。(1)运行时出现rnime checilure 或untime hec flr3说明有变量越界或有变量没有初始化,需要扩大变量范围或给变量赋值(2)调试时出现乱码或程序终止则很有可能输入了错误的数据类型,需要重启程序并正确输入数据类型(3)选择普通用户后无法显示菜单界面只有光标但输入数字可以选择功能,问题是yse(”cs”)函数放在了选择之前导致了清屏(4)结构体定义时缺最后的分号,strc node1应改为strct nde1 ;(5)在定义字符串变量时要指定数据长度七、课程设计总结从经验、个人感悟、建议等方面总结程序设计,要求600字以上,语句通顺、逻辑清晰,不得从网上拷贝。经过一个星期的C语言上机实验我学到了很多,也对C语言的特点和用法有了进一步的了解和体会,C语言与其他语言相比有着独有的特点,主要体现在以下几个方面:1。 简洁紧凑、灵活方便、2。 运算符丰富、3。 数据结构丰富、4.语法限制不太严格、程序设计自由度大、5。C语言适用范围大,可移植性好。C语言虽然运算符和控制语句不算很多,但程序书写自由,它把高级语言的基本结构和语句与低级语言的实用性结合起来,可以对位、字节和地址进行操作,另外,语言的语法没有其他高级语言那么严格,允许程序编写者有较大的自由度.编程是一个繁复且需要耐心的工作,在C语言编程的过程中有许多需要注意的地方比如每一个C程序必须有一个main(),且也只能有一个an( ),程序始终是从main的第一个开始执行的;ai( )、switc( )、cse、defaut、( )、else、while( )、for()等语句后不能加分号;C程序中用到的所有变量,都必须“先定义,后使用”,且“先有值,后运算”;san( )和pritf()中的双引号中的格式符必须从左到右与其后的输入项、输出项类型匹配、个数相等。scan()中的输入项前应该跟地址符,而格式符对应的输入项除外。总结:虽然语言相比其他语言相比其他高级语言简洁自由,但在编写过程中仍需要注意许多细节,并且需要能充分理解语句的功能和用法,因此我们在学习语言的过程中要注意语法的细节,学会灵活应用并记住语法规则,并且要在上机的过程中练习语法,积累经验,这样在编写大程序的时候才能减少错误,并能更快发现错误解决问题。经过一个星期的程序上机实习,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先对语言的一些标准库函数不够了解,对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不熟练,通过实践,使我在这几个方面的认识有所提高。通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。 课程设计是一个重要的教学环节,通过课程设计使我们了解到一些实际与理论之间的差异。通过课程设计不仅可以巩固专业知识,为以后的工作打下了坚实的基础,而其还可以培养和熟练使用资料,运用工具书的能力,把我们所学的课本知识与实践结合起来,起到温故而知新的作用.课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门设计课,给了我许多道,给了我很多思路,给了我莫大的空间。过而能改,善莫大焉.在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。通过此次课程设计,使我更加扎实的掌握了有关语言方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵.-
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


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

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


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