毕业生就业统计系统Word下载.docx
《毕业生就业统计系统Word下载.docx》由会员分享,可在线阅读,更多相关《毕业生就业统计系统Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
、需求分析
、程序流程图
、核心技术的实现说明及相应程序段..10
四、课设总结
15
五、参考文献
16
六、源程序
经过对程序设计题目的分析可知,整个程序的设计实现大致分为七个模块,其中每一个模块对应一个函数,它们的功能分别是:
读取文件信息函数,录入学生信息函数,显示学生信息函数,查询函数(包括对学生工作单位、城市、单位性质的查询)。
在这些函数的实现严格按照题目的要求,而前面的三个函数属于附加功能。
1、录入学生信息函数主要实现程序最初运行时学生信息的录入以及其后的运行中学生信息的追加功能;
2、显示学生信息函数主要实现对录入的学生信息进行显示方便下面的调用;
3、查询函数实现的功能是按照要求对学生的信息记录进行查询、调用;
4、查询相同单位学生信息函数按照题目的具体要求实现的是对相同单位学生的信息的调用、查询;
5、查询相同城市学生信息函数按照题目的具体要求实现的是对相同城市学生的信息的调用、查询;
6、查询相同性质单位信息函数按照题目的具体要求实现的是对相同性质单位的信息的调用、查询;
7、退出函数实现的是在程序的一次运行当中循环执行所有功能时根据需要终止程序的执行的功能。
每一个学生记录都包含学号、姓名、班级、专业,
而每一个学生的单位信息包含单位名称、地点、性质还
有签约时间,在程序当中,将学生记录类型定义为结构student.dat文件中,其它函数每次对学生记录的访问,其数据来源都是student.dat文件,这样做不但可以保证学生数据的一致性,而且可以对学生数据进行永久保存,保证每次运行程序都可以采用原来的数据。
程序总体结构图
1、
2、具体功能框图
(1)读取学生信息函数reads()
(2)录入学生信息和单位信息函数add
(3)显示学生信息和单位信息、签约时间函数
从文件中读出学生信息、单位信息和签约时间信息
输出“序号学号姓名班级专业单位地点性质签约时间”
i=0;
i<
n;
i++
输出学生所有有信息
输入字符串
(4)调用相同单位的学生信息danwei
(5)调用相同城市的学生信息Chengshi
(6)调用相同单位性质的学生信息xingzhi
循环变量i=0
从文件中读取学生数据
输出“请输入待查询的性质名称,按回车确认”
当i<
=n
strcmp(xingzhi,stu[i].xingzhi)==0假
输出学生学生信息
、核心技术的实现说明及相应程序段
本程序主要由七个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。
在这些函数当中,录入信息函数、显示信息、查询信息函数程序中较为核心的部分,下面分别进行说明。
1、录入信息函数
添加信息分为两种情况,其一是在学生文件
(student.txt)不存在的情况下,首先由程序创建一个新文件,并将录入的学生信息写入该文件当中;
其二是在学生文件(student.txt)已经存在的情况下,此时文件要以读写方式或追加的方式打开,这样才可以保证以前已经存在的数据不丢失。
具体的程序段如下
voidadd()/*录入学生信息函数*/
{FILE*fp;
intn,i;
structstudentstu;
if((fp=fopen("
d:
\\student.txt"
"
r+"
))!
=NULL)
{
printf("
请输入要添加的学生数量,按回车键确认:
"
);
scanf("
%d"
&
n);
fseek(fp,0L,2);
for(i=1;
i<
=n;
i++)
{printf("
\n请输入第%d个学生的学号、姓名、班级、专业,用空格分开,并按回车键确认:
\n"
i);
scanf("
%s%s%s%s"
stu.num,stu.name,stu.clas,stu.pro);
\n请输入第%d个学生的单位名称、地点、性质、签约时间,用空格分开,并按回车键确认:
seanf("
stu.danwei,stu.chengshi,stu.xingzhi,stu.shijian);
fprintf(fp,"
\n%s%s%s%s%s%s%s%s"
stu.num,stu.name,stu.clas,stu.pro,stu.danwei,stu.chengshi,stu.xingzhi,stu.shijian);
}
else
if((fp=fopen("
w"
=NULL){
"
\n请输入第%d个学生的学号、姓名、班级、专业,用空格分开,并按回车键确认:
\n请输入第%d个学生的单位名称、地点、性质、签约时间,用空格分开,并按回车键确认:
stu.num,stu.name,stu.clas,stu.pro,stu.danwei,stu.chengshi,stu.xingzhi,stu.shijian);
fclose(fp);
该函数主要是为下面的查询函数提供查询的依据。
该函数执行时,首先调用reads函数将文件中的学生信息读出然后输出所有学生信息。
具体程序段如下:
voidshow()/*显示所有学生信息函数*/
{structstudentstu[N];
inti,n;
reads(stu,&
/*从文件中读出学生信息*/
*****************所有学生信息如下
*****************"
)・
\n序号学号姓名班级专业单位地点性质签约时间"
for(i=0;
n;
i++)printf("
\n%5d%9s%5s%7s%7s%5s%5s%9s%5s\n"
i+1,stu[i].num,stu[
i].name,stu[i].clas,stu[i].pro,stu[i].danwei,stu[i].chengshi,stu[i].xingzhi,stu[i].shijian);
getch();
查询相同单位学生信息函数
3、
该函数的核心内容是输入单位名称实现对同一单
位学生信息的调用。
该函数执行时,首先调用reads函数将文件中的学生信息读入数组当中,并由用户输入待查询学生的就业单位,而后按照该单位进行查找,如果文件中存在该学生的数据,就按照调用学生函数的方法调
用,否则不输出任何信息。
对学生信息的具体调用是在结构体数组中实现的,当学生的信息被找到后,依次在数组的学生记录中寻找相同的信息,这些操作完成后,要调用的学生信息就被调用出来了,也就实现了查询的作用。
voiddanwei()/*学生单位信息查询*/
structstudentstu[N];
chardanwei[20];
inti;
\n请输入待查询的单位名称,按回车键确认:
%s"
danwei);
ivn;
if(strcmp(danwei,stu[i].danwei)==0)
printf("
\n%5s%5s%5s%5s\n"
stu[i].num,stu[i].name,stu[i].clas,stu[i].pro);
4、查询相同城市学生信息函数
该函数的核心内容是输入城市名称实现对学生信息
的调用。
该函数执行时,首先调用reads函数将文件中的学生信息读入数组当中,并由用户输入待查询学生的城市,而后按照该城市进行查找,如果文件中存在该学生的数据,就按照调用学生函数的方法调用,否则不输出
任何信息。
对学生信息的具体调用是在结构体数组中实现的,当学生的信息被找到后,依次在数组的学生记录中寻找相同元素的信息,这些操作完成后,要调用的学生信息就被调用出来了,也就实现了查询的目的。
voidchengshi()/*学生就业城市信息查询*/
charchengshi[20];
\n请输入待查询的城市名称,按回车键确认:
chengshi);
if(strcmp(chengshi,stu[i].chengshi)==0)
5、查询相同单位性质学生信息函数
该函数的核心内容是输入性质实现对学生信息的调
用。
该函数执行时,首先调用reads函数将文件中的学生信息读入数组当中,并由用户输入待查询单位的性质,而后按照该单位性质进行查找,如果文件中存在该学生的数据,就按照调用学生函数的方法调用,否则不输出任何信息。
对学生信息的具体调用是在结构体数组中实现的,当学生的信息被找到后,依次在数组的学生记录中寻找相同单位性质的信息,这些操作完成后,要调用的学生信息就被调用出来,也就实现了查询。
voidxingzhi()/*学生就业单位性质信息的查询*/
charxingzhi[20];
\n请输入待查询的单位性质,按回车键确认:
xingzhi);
if(strcmp(xingzhi,stu[i].xingzhi)==0)
stu[i].num,stu[i].name,stu[i].clas,stu[i].pro);
之前在大一就学过了C语言,但是学的不是很