c语言实习报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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.查找

相关文档
最新文档