




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言课程设计实习报告C语言课程设计实习报告专 业:地球物理与空间信息学院学 号: 班级序号: 姓 名: * * * 指导教师: 张 * C语言程序设计报告(实习日期: 2013-12至2014-1)一、C语言课程设计的目的:2二、题目:教师上课点名系统3三、总体设计3四、详细设计41、结构体42、主函数43、各功能模块设计7(1)点名模块7(2)次数统计模块9(3)次数清零模块10五、上机操作111、进入界面112、进行点名123、点名次数查询13六、算法和系统的优缺点16七、源程序(附录)16一、C语言课程设计的目的: 高级语言课程设计是学习完高级语言程序设计课程后进行的一次全面
2、的综合性上机实验。其目的在于为同学提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼同学的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。二、题目:教师上课点名系统制作一个自动点名系统使之有以下功能: 1、 每次选取相应的功能,系统随即抽取一个学生,显示给老师,用做点名。2、 学生名单存在一个文本文件students.txt中。3、 可以使用另一个文本文件,记录学生被点名的次数,或在students.txt文件中加入一个记录学生被点名次数的字段。4、 一般用文本界面显示菜单,自行设计和完成菜单功能,供老师点选,可以考虑动态显示系统选择的过程,最好能设
3、计成图形界面。5、 每个学生被点中的概率和次数尽量一样,不能出现一个学生被点两次了,还有学生没被点中的情况。 三、总体设计根据分析,整个系统可以设计为以下四个部分:上课点名系统读取数据进行点名次数统计次数归零四、详细设计1、结构体struct studentint num;char name20;int time;stdSIZE;2、主函数主函数的设计用来打开文本文件,并提供数据输入和数据处理以及三个函数的调用,其中各功能模块用菜单方式选择。void main()void function1();void function2();void function3();主函数具体的程序如下:void
4、 main()void kaishidianming();void dianmingcishu();void cishuguiling(); /*对被调用函数的声明*/char s;FILE * fp;if(fp=fopen("D:ckechengshejistudents.txt","r+")=NULL)printf("cannot open this filen");exit(0); /*打开文本文件*/for(i=0;i<SIZE;i+)fscanf(fp,"%d%s",&stdi.num,st
5、);stdi.time=0; /*读取文本文件 保存在内存中*/printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*n");printf("-*-*-*-*-*-点名了 请小心!-*-*-*-*-*-n");printf("-*-*-* 输入1:开始点名 *-*-*-n");printf("-*-*-* 输入2:点名情况 *-*-*-n");printf("-*-*-* 输入3:次数归零 *-*-*-n");printf("-*-*-*
6、-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*nn");for(;)s=getchar();switch(s)case'1':kaishidianming();break;case'2':dianmingcishu();break;case'3':cishuguiling();break; /*使用switch语句进行选择 实现不同函数功能*/fclose(fp);主函数的流程图如下:开始 显示菜单功能判断调用函数实现各功能结束3、各功能模块设计(1)点名模块void kaishidianming()l+;k=k+l/(S
7、IZE+1);loop:srand(unsigned)time(NULL); /*产生随机数进行点名*/for(m=0;m<1;m+)n=rand()%57;if(stdn.time<k) /*实现公平点名 避免有人没点到有人被点多次的情况产生*/stdn.time+;printf("学号tt姓名tt被点次数n");printf("%d%-15d%-10s%10dn",t,stdn.num,,stdn.time);else goto loop;点名模块流程图如下:不公平开始产生随机数点名判定公平性点名次数加一结束公平(2)次
8、数统计模块void dianmingcishu()printf("学号tt姓名tt被点次数n");for(i=0;i<SIZE;i+)printf("%d%-15d%-10s%10dn",t,stdi.num,,stdi.time);(3)次数清零模块void cishuguiling()for(i=0;i<SIZE;i+)stdi.time=0;k=1;l=0;printf("点名次数已归零n");五、上机操作1、进入界面2、进行点名3、点名次数查询4、次数归零学习心得在以前C程序设计的学习中,我们只需
9、要写几个简单的程序,完成一些简单的功能,输入手段也都是单一的从键盘输入,从未涉及到对文件的操作,所以书本上九、十章的内容基本上没怎么掌握。但是通过这次C语言课程设计的学习,我感受到了独自完成一个程序去实现一个目的快乐,也增强了对于C语言相关知识的了解。当然,过程不是一帆风顺的。为了完成程序,由于对文件操作内容的不熟悉,我首先把课本看了几遍,弄清楚了一些基本的知识。还有在程序编写的过程中,错误频出,虽然经常是一些简单的问题,但寻找错误的过程总是那么的痛苦。所以,经过这次C语言课程设计,我深深的感受到了耐心和细心在程序编写中的重要性。最后祝贺自己完成了程序!六、算法和系统的优缺点此系统最大的有点是
10、简明易懂,操作方便,在一次点名过程中,实现了点名的公平性。但每次退出点名系统后,不能对点名次数进行保存,不便于调用。改进思路:可以用一个文件,将点名的次数进行保存。七、源程序(附录)#include <stdio.h>#include <stdlib.h>#include <math.h>#include <time.h>#define SIZE 57int i,n,m;int k=1,l=0,t=0; /*全局变量的定义*/struct studentint num;char name20;int time;stdSIZE; /*结构体数组的定
11、义*/void main()void kaishidianming();void dianmingcishu();void cishuguiling(); /*对被调用函数的声明*/char s;FILE * fp;if(fp=fopen("D:ckechengshejistudents.txt","r+")=NULL)printf("cannot open this filen");exit(0); /*打开文本文件*/for(i=0;i<SIZE;i+)fscanf(fp,"%d%s",&stdi
12、.num,);stdi.time=0; /*读取文本文件 保存在内存中*/printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*n");printf("-*-*-*-*-*-点名了 请小心!-*-*-*-*-*-n");printf("-*-*-* 输入1:开始点名 *-*-*-n");printf("-*-*-* 输入2:点名情况 *-*-*-n");printf("-*-*-* 输入3:次数归零 *-*-*-n");printf("
13、;-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*nn");for(;)s=getchar();switch(s)case'1':kaishidianming();break;case'2':dianmingcishu();break;case'3':cishuguiling();break; /*使用switch语句进行选择 实现不同函数功能*/fclose(fp);void kaishidianming()l+;k=k+l/(SIZE+1);loop:srand(unsigned)time(NULL); /*产生随机数进行点名*/for(m=0;m<1;m+)n=rand()%57;if(stdn.time<k) /*实现公平点名 避免有人没点到有人被点多次的情况产生*/stdn.time+;printf("学号tt姓名tt被点次数n");printf("%d%-15d%-10s%10dn",t,stdn.num,,stdn.time);else goto loop;void dianmingcis
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络游戏虚拟物品交易安全认证与技术支持协议
- 农田水利设施灌溉用水权承包转让合同
- 生命科学企业细胞冻存服务及专用储存盒租赁合同
- 保险退保金结算与客户权益保障协议
- 微信小程序电商运营培训与客户关系管理协议
- DB42-T 2018-2023 大水面渔业资源调查评价技术规范
- 上海电子信息职业技术学院《农业相关政策培训》2023-2024学年第二学期期末试卷
- 江西工业职业技术学院《中西医结合重症医学》2023-2024学年第二学期期末试卷
- 四川省乐山市犍为县2025年初三下学期强化选填专练(二)生物试题含解析
- 江西现代职业技术学院《建筑史纲》2023-2024学年第一学期期末试卷
- 2024年安徽安庆安桐城乡发展集团有限公司招聘真题
- 拆除冷库施工方案
- 2025年九江市第一批面向社会公开招聘留置看护队员【68人】笔试备考题库及答案解析
- 2025-2030中国可再生能源行业发展分析及投资前景与战略规划研究报告
- 10.1 美国课件2024-2025学年度七年级下学期人教版地理
- 铆接粘接与锡焊教案
- 工业数字孪生测试要求
- 2025统编版语文六年级下册第二单元解析+任务目标+大单元教学设计
- 灾后救援与重建
- 上海第二工业大学《高等数学B(上)》2023-2024学年第二学期期末试卷
- 2025届上海市(春秋考)高考英语考纲词汇对照表清单
评论
0/150
提交评论