




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中 国 地 质 大 学本科生课程论文封面课程名称 C语言课程设计 教师姓名 邵老师 本科生姓名 赵鸿 本科生学号 20091000477 本科生专业 应用化学 所在院系 材化学院 类别: C.本科生 日期: 2010 年 7 月 5 日 课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总 成 绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。目 录课程设计评语2目 录31课程论文题目42程序设计思路43功能模块图54数据结构设计55算法设计66程序代码137程序运行结果228编程中遇到的困难及解决方法259总结心得及良好建议2610致谢26课程论文题目1校际运动会管理系统一、题目要求(1)信息初始化 输入:N参赛学校总数,M男子竞赛项目数, W女子竞赛项目数; 各项目名次取法有如下几种:取前5名:第一名得分 7,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;用户自定义:各名次权值由用户指定。(2)提醒用户填写比赛结果,输入各项目获奖运动员信息。(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,察看参赛学校信息和比赛项目信息等。2程序设计思路根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操作,由于在程序中提供查询功能所以应有显示、查找等操作。根据上面的需求分析,可以将这个系统的设计分为1、信息输入模块 2、比赛结果录入模块 3、查询模块。具体校际运动会管理系统分为 信息的输入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。3功能模块图(每个功能模块都标注函数名称,如右图)Saveathele ()保存运动员信息Saveschool ()保存学校信息InformationSaveprogram ()保存项目信息Savescore() 比赛结果录入Main Ttzf () 查询团体总分Search ( )Csxx ()查询参赛学校信息Bsxm ()查询团体总分Exi t(0)4数据结构设计 数据结构采用结构体的形式,包括学校、项目、运动员三个结构体。比如学校结构体成员包括学校校名、竞赛项目、得分;项目结构体成员包括项目名、权值。struct athlete/定义运动员信息char univ5;char name8;char prog15; char mingci5;int score;atSIZE;struct xuexiao/定义学校信息char univ5;char prog15;int num_athlete;xxN;struct program/定义项目信息char prog5;int quming; char ath15;char ath25;char univ15;char univ25;proWM;struct zongfen /定义学校得分信息char univ5;char prog15;char prog25;char prog35;int score1;int score2;int score3;int total_score;zfN;5算法设计1.主函数一般设计的较为简洁,只提供输入、功能处理和输出部分的函数调用。其中各功能模块用菜单方式选择。另外菜单部分也可以写成函数。显示一系列功能选项输入,判断是否是4根据的值调用各功能模块函数图主函数流程图 Y程序void main()menu(); void menu()int n,w1;do puts(tt*_ Welcome to load sports system! _*n); puts(tt*MENU*n); puts(tt* 1.Enter the information *n); puts(tt* 2.Score 比赛结果录入 *n); puts(tt* 3.Search *n); puts(tt* 4.Exit *n); puts(tt*n); printf(Choice your number(1-4): bb); scanf(%d,&n); if (n4) w1=1; getchar(); else w1=0; while (w1=1); switch(n) case 1:Information();break; /输入信息 case 2:savescore();break;/比赛结果录入 case 3:Search();break;/查询模块 case 4:exit(0); 2. 各功能模块设计(1) 信息输入模块一是参赛学校信息,二是参赛运动员信息,三是比赛项目信息,分别输入并保存信息输入读入、显示参赛学校读入、显示运动员读入比赛项目图信息输入模块流程图 void Information() int n,w ; do puts(nnn); puts(tt*_ Welcome to load 信息录入 system! _*n); puts(tt*MENU*n); puts(tt* 1.saveathlete *n); puts(tt* 2.saveschool *n); puts(tt* 3.saveprogram() *n); puts(tt* 4.back *n); puts(tt*n); printf(Choic your number(1-4): bb); scanf(%d,&n); if (n4) w=1;getchar(); else w=0; while (w=1); switch(n) case 1 : saveathlete(); break;/ 保存运动员信息子函数 case 2 : saveschool(); break;/保存学校信息子函数 case 3 : saveprogram();break;/保存项目比赛信息子函数 case 4 : exit(0); (2) 结果录入模块录入运动员比赛得分图4比赛结果录入模块流程图分析计算各学校总分 (3)查询信息模块分析查询信息模块提供按不同方式查询各种信息机返回功能,其中各功能模块用菜单方式选择。菜单部分也可写成函数。查询信息模块查询学校查询运动员查询项目返回主菜单图6查询信息模块流程图定义结构体指针UNI*next输入学校名字判断输入名字与结构体中学校名是否相同指针变量值向下一组数据调用输出函数图8 查询学校名流程图 6程序代码/ 杨雪.cpp : Defines the entry point for the console application./#include#include#include#include#define SIZE 9#define N 3 #define WM 3void bsxm();void csxx();void Information();void main();void menu();void printf_back();void saveathlete();void saveprogram();void saveschool();void savescore();void Search();void ttzf();int i;FILE *fp1,*fp2,*fp3,*fp4;struct athlete/定义运动员信息char univ5;char name8;char prog15; char mingci5;int score;atSIZE;struct xuexiao/定义学校信息char univ5;char prog15;int num_athlete;xxN;struct program/定义项目信息char prog5;int quming; char ath15;char ath25;char univ15;char univ25;proWM;struct zongfen /定义学校得分信息char univ5;char prog15;char prog25;char prog35;int score1;int score2;int score3;int total_score;zfN;void Information() int n,w ; do puts(nnn); puts(tt*_ Welcome to load 信息录入 system! _*n); puts(tt*MENU*n); puts(tt* 1.saveathlete *n); puts(tt* 2.saveschool *n); puts(tt* 3.saveprogram() *n); puts(tt* 4.back *n); puts(tt*n); printf(Choic your number(1-4): bb); scanf(%d,&n); if (n4) w=1;getchar(); else w=0; while (w=1); switch(n) case 1 : saveathlete(); break;/ 保存运动员信息子函数 case 2 : saveschool(); break;/保存学校信息子函数 case 3 : saveprogram();break;/保存项目比赛信息子函数 case 4 : exit(0); void saveathlete()/保存运动员信息子函数 printf(n请输入各项目获奖运动员的信息:);for(i=0;iSIZE;i+) printf(n请输入第%d个运动员的信息:n,i+1);printf(姓名:); scanf(%s,); printf(学校:); scanf(%s,ati.univ); printf(参赛项目:); scanf(%s,g);printf(名次:);scanf(%s,ati.mingci); printf(得分:); scanf(%d,&ati.score);fp1=fopen(ath,w);for(i=0;iSIZE;i+)if(fwrite(&ati,sizeof(struct athlete),1,fp1)!=1)printf(File write error!n);fclose(fp1);fp1=fopen(ath,r); printf(n现在各运动员的信息如下:nn); printf(姓名 学校 项目 名次 得分n);for(i=0;iSIZE;i+)fread(&ati,sizeof(struct athlete),1,fp1); printf(%-10s%-10s%-18s%-10s%dn,,ati.univ,g,ati.mingci,ati.score);fclose(fp1);printf_back();void saveschool()/保存学校信息子函数printf(n请输入各参赛学校的信息:);for(i=0;iN;i+)printf(n请输入第%d个学校的信息:n,i+1);printf(学校:);scanf(%s,xxi.univ);printf(参赛的项目:);scanf(%s,g);printf(参赛者数:);scanf(%d,&xxi.num_athlete);fp3=fopen(xxiao,w);for(i=0;iN;i+)if(fwrite(&xxi,sizeof(struct xuexiao),1,fp3)!=1)printf(File write error!n);fclose(fp3); printf_back();void saveprogram()/保存项目比赛信息子函数printf(n请输入关于比赛项目的信息:);for(i=0;iWM;i+)printf(n请输入第%d项比赛的信息:n,i+1);printf(项目:);scanf(%s,g);printf(取分情况:);scanf(%d,&proi.quming);printf(参赛者1:);scanf(%s,proi.ath1);printf(所属学校:);scanf(%s,proi.univ1);printf(参赛者2:);scanf(%s,proi.ath2);printf(所属学校:);scanf(%s,proi.univ2); fp4=fopen(pr,w);for(i=0;iN;i+)if(fwrite(&proi,sizeof(struct program),1,fp4)!=1)printf(File write error!n);fclose(fp4); printf_back();void savescore()/保存学校得分情况子函数printf(N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数。n);printf(W.100-女子一百米比赛,M.100-男子一百米,M.200-男子两百米。n);printf(n各项名次得分权值如下:n);printf(取前三名:第一名5分 第二名3分 第三名2分n);printf(n请输入各学校的得分情况:); for(i=0;iN;i+)printf(n请输入第%d个学校的得分情况:n,i+1);printf(学校:);scanf(%s,zfi.univ); printf(参赛项目1:);scanf(%s,g1);printf(得分:);scanf(%d,&zfi.score1);printf(参赛项目2:);scanf(%s,g2);printf(得分:);scanf(%d,&zfi.score2);printf(参赛项目3:);scanf(%s,g3);printf(得分:);scanf(%d,&zfi.score3);zfi.total_score=zfi.score1+zfi.score2+zfi.score3; fp2=fopen(zfen,w);for(i=0;iN;i+)if(fwrite(&zfi,sizeof(struct zongfen),1,fp2)!=1)printf(File write error!n);fclose(fp2); printf_back();void Search()int n,w2;do puts(tt*_ Welcome to load search system! _*n); puts(tt*MENU*n); puts(tt* 1.search ttzf *n);/查看团体总分 puts(tt* 2.search csxx *n);/查看参赛学校信息! puts(tt* 3.search bsxm *n);/查看比赛项目信息! puts(tt* 4.Exit *n);/退出 puts(tt*n); printf(Choice your number(1-4): bb); scanf(%d,&n); if (n4) w2=1; getchar(); else w2=0; while (w2=1); switch(n) case 1:ttzf();break; case 2: csxx();break; case 3:bsxm();break; case 4: exit(0);break; default: printf(未进行任何操作!); void ttzf()/查看学校团体总分子函数fp2=fopen(zfen,r); printf(n各学校的团体总分情况如下:nn); printf(学校 参赛项目 总分n);for(i=0;iN;i+)fread(&zfi,sizeof(struct zongfen),1,fp2); printf(%-8s%s,%s,%-12s%-12dn,zfi.univ,g1,g2,g3,zfi.total_score);fclose(fp2);printf_back();void csxx()/查看参赛学校信息子函数 fp3=fopen(xxiao,r); printf(n各参赛学校的情况如下:nn); printf(学校 参赛项目 参赛者数n);for(i=0;iN;i+)fread(&xxi,sizeof(struct xuexiao),1,fp3); printf(%-8s%-20s%-12dn,xxi.univ,g,xxi.num_athlete);fclose(fp3); printf_back();void bsxm()/查看比赛项目子函数 fp4=fopen(pr,r); printf(n各比赛项目的信息如下:nn); printf(项目 取分情况 参赛者1 所属学校 参赛者2 所属学校n);for(i=0;iN;i+)fread(&proi,sizeof(struct program),1,fp4); printf(%-12s%-10d%-10s%-12s%-10s%-12sn,g,proi.quming,proi.ath1,proi.univ1,proi.ath2,proi.univ2);fclose(fp4);printf_back();void main()menu(); void menu()int n,w1;do puts(tt*_ Welcome to load sports system! _*n); puts(tt*MENU*n); puts(tt* 1.Enter the information *n); puts(tt* 2.Score 比赛结果录入 *n); puts(tt* 3.Search *n); puts(tt* 4.Exit *n); puts(tt*n); printf(Choice your number(1-4): bb); scanf(%d,&n); if (n4) w1=1; getchar(); else w1=0; while (w1=1); switch(n) case 1:Information();break; /输入信息 case 2:savescore();break;/比赛结果录入 case 3:Search();break;/查询模块 case 4:exit(0); 7程序运行结果【() 主菜单函数() 信息录入模块() 查询子菜单() 按学校名字查询信息(5) 按项目查询项目信息() 查询团体总分8编程中遇到的困难及解决方法在学习C语言时,最初使用的是Microsoft visual 6+计算机编程软件,但我们是使用C+Sourse File 编一个.c程序。而老师则要求我们使用工程的MFC AppWizad exe 编程。这是c+里的知识。尽管当时听老师讲c+与C语言有许多共同之处,但我们还是无从下手。后来老师把程序发该我们,让我们用.C的编程就好多了。在编程的过程中,经常会在语句结束时少“;”或者把中文输入的引号输入文件,很难发现错误所在。在编程题时也出现了一些编译中的问题。例如,在开始未加头文件#include导致有许多未定义的errors;在输入字符串时用到“%S”,使功能无法输出。由于原来题目要求较少,题目较简单,在编译时,我先按照题目要求将它编写好,之后又给它添加了很多功能。在帮同学修改程序的过程中,也遇到过一个问题。在头文件后定义了子函数,可是之后忘了编写子函数,在纠错时,有的是不会发现错误的,但是连接过程中就会报告出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年药品经济学专业考试相关试卷及答案
- 2025年药物治疗与管理专业知识考试试卷及答案
- 2025年信息安全与网络攻防能力测试卷及答案
- 2025年外语翻译专业研究生考试试卷及答案
- 2025年建筑设计师考试试题及答案
- 2025年国际贸易单证员考试试卷及答案
- 《小学计算几何概念培养实践课教案》
- 金融创新的策略及实施路径
- 计算机组成原理模拟卷
- 南京高三语文辅导作文8篇
- TFT-LCD显示原理介绍
- 2024年陕西省中考物理试题(A卷)含答案
- 两人之间协议书(2篇)
- 基于PLC的物料分拣系统设计
- 国开(内蒙古)2024年《创新创业教育基础》形考任务1-3终考任务答案
- 妇幼保健机构绩效考核评分细则
- 汽车发动机油底壳与油封维修考核试卷
- (新版)山东省物流工程师职称考试参考试题库-下(多选、判断题)
- 青年兴则国家兴青年强则国家强
- 山东省青岛市英语中考试题及解答参考(2025年)
- 多功能热洗车热洗清蜡QHSE作业指导书及操作规程
评论
0/150
提交评论