c语言实习报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国地质大学(武汉) C语言课程设计报告书
*****
班级:088101
班级学号:***********
指导老师:王茂才老师
目录
一、课设题目
1.具体要求 (2)
2.说明 (2)
二、题目分析 (2)
三、设计思路
1.总体设计 (2)
2.详细设计 (2)
(1)主函数 (3)
(2)各功能模块设计
①数据生成 (3)
②报名筛选 (3)
③统计人数不足班级 (4)
④统计年龄 (4)
⑤统计男女人数 (5)
⑥查找 (6)
四、实现结果 (7)
五、课设总结 (10)
六、附录(源代码) (10)
一、课程题目
地大杯学风校风演讲赛报名程序
1.具体要求:
学校组织《地大杯学风校风演讲赛》,已知文本文件f1.txt中存放了所有报名参加比赛学生的信息(不超过1000人),具体数据及存放格式为:每行存放一个学生的数据,共有4项,依次为:姓名(不超过10个字符)、性别(整数:0为男,1为女)、年龄(整数)、班号(不超过6个字符),其间用空格分隔。
请编写程序,读出文件中的内容,再按筛选条件筛选后以文本方式存放到文件f2.txt中,并实现以下功能:
(1)能够统计报名成功学生仅有1人的班级以及该生的信息。
(2)能够统计报名成功学生中年龄最小的男生信息、年龄最小的女生信息。
(3)能够统计报名成功学生中男生的人数、女生的人数。
(4)学生可以根据姓名和班号查询自己报名是否成功。
筛选条件:
(1) 同一班中只取一名年龄最小的男学生和一名年龄最小的女学生。
(2) 同班同性别同年龄的学生按先报名先取的原则。
2.说明:
①系统程序要有界面
②存入文件f2.txt中的数据,每行存一个学生的数据,每行之间的不同信息用空格分隔。
二、题目分析
根据题目要求,要将所有报名学生的信息按照要求格式写在文本文件f1.txt中,故应该提供文件的输入输出功能;再将筛选后的学生信息存放在f2.txt中,故应该提供显示、排序等操作;还要进行学生的报名信息查询,故应该提供查询的功能。
三、设计思路
(一)总体设计
根据上述要求故将系统分为数据生成、报名筛选、统计人数不足班级、统计年龄、统计男女人数、查找等模块。
(二)详细设计
1.主函数
主函数一般设计比较简单,只提供输入、处理和输出部分的函数调用。各功能模块用菜单方式选择。
[流程图]
case1.数据生成void genedata();
case2.报名筛选void choose();
case3.统计人数不足班级void staclass();
case4.统计年龄void staage();
case5.统计男女人数void stanum();
case6.查找void search();
2.各功能模块设计
(1)数据生成
这部分内容涉及随机数生成,因为我们没有学过所以老师直接给了我们这部分代码。
通过上网查询,我知道了可以在调用rand()函数之前调用srand( (unsigned)time( NULL ) ),这样以time函数值(即当前时间)作为种子数,因为两次调用rand函数的时间通常是不同的,这样就可以保证随机性了。你也可以使用srand函数来人为指定种子数。Windows 9x/NT的游戏FreeCell就允许用户指定种子数,这样用户如果一次游戏没有成功,下次还可以以同样的发牌结果再玩一次。
(2)报名筛选
[流程图]
从f1中读取
(4)统计年龄
从f2中读取
(5)统计男女人数
从f2中读取
for (j = 0; j < i; j++)
{
count[st[j].sex]++;
}
// 输出
printf("男生的人数是:%d(位),\n", count[0]);
printf("女生的人数是:%d(位)。\n", count[1]);
(6)查找
当st[j].no == cla(班号相等)为真得1
当strcmp(st[j].name, names)字符串比较,相等时返回0,取非得1 两条同时满足时,输出"恭喜你,您报名成功了!!”
不满足时,输出"很遗憾,您的报名失败! "
//提示输入
printf("请输入姓名:");
scanf("%10s",&names);
printf("请输入班级:");
scanf("%d",&cla);
// 查找
for (j = 0,k = 0; j < i; j++)
{
if (st[j].no == cla && !strcmp(st[j].name, names))
{
printf("恭喜你,您报名成功了!!\n");
k++;
}
}
if (k == 0) printf("很遗憾,您的报名失败!\n");
四、实现结果
以下是各个模块的界面图:
1.主函数菜单
2.数据生成3.报名筛选
4.统计人数不足班级
5.统计年龄
6.统计男女人数
7.查找