毕业生就业统计系统文档格式.docx
- 文档编号:19684171
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:19
- 大小:261.02KB
毕业生就业统计系统文档格式.docx
《毕业生就业统计系统文档格式.docx》由会员分享,可在线阅读,更多相关《毕业生就业统计系统文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
随着科技的发展,愈来愈多的学校选择了运用毕业生信息管理程序来管理毕业生的各项信息。
职工信息管理程序是一个学校不可缺少的部分,学校可以利用这套程序进行毕业生的各种信息管理,也方便查询修改毕业生的各项信息,可以提高统计工作的效率和简化统计工作的程序。
有利的为学校节省了运作成本,优化资源利用率,这也正是编写本程序的目的所在。
根据课程设计任务书要求,本系统开发主要完成以下功能和性能。
1.录入毕业生的信息(学号,姓名,班级,专业),并保存到一个磁盘文件中;
2.录入每个毕业生就业单位信息(单位名称、性质、地点),签约时间;
3.统计毕业生去向(统计相同单位的学生、统计同一城市的信息、统计同一性质的单位信息);
2.1功能需求
经过对程序设计题目的分析可知,整个程序的设计实现大致分为以下几个模块,其中每一个模块对应一个函数,它们的功能分别是:
读取文件信息函数,录入学生信息函数,查询函数(包括对学生工作单位、城市、单位性质的查询)。
2.2数据需求
需要向系统输入学号,姓名,班级,专业,单位名称,性质,地点等信息。
2.3性能需求
在运行本程序时只要按照正确的操作方法不会出现无法运行的情况,系统稳定性好,安全,可靠。
3.总体设计
3.1功能模块设计
1、录入学生信息函数主要实现程序最初运行时学生信息的录入以及其后的运行中学生信息的追加功能;
2、查询函数实现的功能是按照要求对学生的信息记录进行查询、调用;
3、查询相同单位学生信息函数按照题目的具体要求实现的是对相同单位学生的信息的调用、查询;
4、查询相同城市学生信息函数按照题目的具体要求实现的是对相同城市学生的信息的调用、查询;
5、查询相同性质单位信息函数按照题目的具体要求实现的是对相同性质单位的信息的调用、查询;
6、退出函数实现的是在程序的一次运行当中循环执行所有功能时根据需要终止程序的执行的功能。
每一个学生记录都包含学号、姓名、班级、专业,而每一个学生的单位信息包含单位名称、地点、性质还有签约时间,在程序当中,将学生记录类型定义为结构体类型,添加以及追加的学生信息直接写入D盘的student.dat文件中,其它函数每次对学生记录的访问,其数据来源都是student.dat文件,这样做不但可以保证学生数据的一致性,而且可以对学生数据进行永久保存,保证每次运行程序都可以采用原来的数据。
3.2系统设计方案
设计一个总菜单,1Creatworker'
sinformation;
2Printworker'
3Deleteworker'
4Fixworker'
5Qualifications统计list;
6按工资范围查询职工信息;
7按姓名查询职工信息支持模糊查询;
8保存到文件;
9EXIT,基本功能的实现都将体现在这几个菜单选项中。
建立结构体如下:
structstaff
{
intnum;
//工号
charname[20];
//姓名
charsex;
//性别(F/M)
intage;
//年龄
charqua;
//学历(P:
Primary小学,J:
junior中学,S:
Senior高中,U:
University大学,M:
Master硕士)
intpay;
//工资
longtel;
//联系电话
structstaff*next;
};
根据模块需要本系统需要用到条件选择、for循环结构等。
structstaff*creat(void)//创建函数
voidprint(structstaff*head)//输出函数
structstaff*del(structstaff*head)//删除函数
structstaff*fix(structstaff*head)//修改函数
structstaff*sco(structstaff*head)//按工资查询函数
voidsta(structstaff*head)//统计函数
voidluanqibazao(structstaff*head)//模糊查询函数
voidwritetofile(structstaff*head)//写入文件
4.详细设计
1、4.1程序总体结构图
(1)读取学生信息函数reads()
Y
N
Y
(2)录入学生信息和单位信息函数add
读写方式打开D盘studeng.txt文件不成功?
真假
写方式打开文件不成功
输入追加学生数量n
从文件读出学生数量记录数量赋给k
输出文件打开失败
输入学生数量n
文件位置指针重新回到开头
将n写入文件
返回
学生记录总数n+k写入文件
循环变量i=1
文件位置指针定位在结尾fseek
当i<
=n时
输入信息并写入文件i++
=n时输入学生信息和单位信息
并写入文件i++
关闭文件
(3)调用相同单位的学生信息danwei
循环变量i=0
从文件中读取学生数据
输出“请输入待查询的单位名称,按回车确认”
=n
strcmp(danwei,stu[i].danwei)==0
假真
输出学生学生信息
(4)调用相同城市的学生信息chengshi
输出“请输入待查询的城市名称,按回车确认”
strcmp(chengshi,stu[i].chengshi)==0
假真
(5)调用相同单位性质的学生信息xingzhi
输出“请输入待查询的性质名称,按回车确认”
strcmp(xingzhi,stu[i].xingzhi)==0
假真
输出学生学生信息
5.调试与测试
5.1调试
调试是软件开发过程中的一个重要环节,也是最复杂,对软件开发者者来说也是最艰巨的任务。
调试的任务是及时改正测试过程中发现的软件错误。
具体地说,调试过程由两个步骤组成,它从表示程序中存在错误的某迹象开始,首先确定错误的准确位置,也就是找出哪个模块或哪个语句引起的错误。
然后仔细研究推断代码以确定问题的原因,并设法改正。
调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找到相关的问题所在。
本系统调试过程中遇到问题、原因和解决方法如下面介绍。
(1)程序不能运行
定义的指针,很多次引用,过个函数里面,定义的不明确,造成错误连连发生。
(2)不能正确输出信息,有乱码现象
原因是键入信息的时候,没有一一对应,逗号的位置不正确,后来,用的是信息逐一输入,保证了信息的一一对应和高度的准确性,使程序可以正常运行。
(3)程序运行途中,出现错误,被迫中止
其中定义字符数组,却没有定义长度,导致定义类型变成了字符型,而不能接受字符串,因此出现了错误。
5.2测试
软件测试是软件生存期中的一个重要阶段,是软件质量保证的关键步骤从用户的角度来看,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,所以软件测试应该是“为了发现错误而执行程序的过程”。
或者说,软件测试应该根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误或缺陷。
过度测试则会浪费许多宝贵的资源。
到测试后期,即使找到了错误,然而付出了过高的代价。
6.结论
课程设计顺利完成,题目所要求的功能也都一一实现,可以对职工信息进行添加,修改,删除,查询,模糊查询,按条件查询,存储至文本文件等,在通常情况下,可以良好的运作。
不过这个程序还有些不够完善,例如有时候,输出的结果会因为字符的长短,与上面的提示栏对不上。
而且,由于自己英语的不够特别好,后几个功能不知道该怎么翻译,就直接写的汉字,显得程序主菜单有点乱,以后会加强英语,好好规划编程。
结束语
为期两个礼拜的的软件综合课程设计实习终于顺利完成,在这期间,我学到了很多课堂上学不到的东西,而且,将所学付之于实践,理论联系实际,是令我很兴奋的,但同时也感觉到了难度。
对C语言,有了更深一步的了解,并且培养出了良好的思考方式,对于编程。
虽然困难很多,问题出现的也很多,但好在,顺利完成任务了,很有成就感。
.
参考文献
[1]谭浩强.C语言程序设计(第三版).北京:
清华大学出版社,2005.7
附录1-用户手册
.
图1程序界面
.
图2录入学生信息
图3按单位查询.
图4按城市查询
图5按单位性质查询
图6退出系统
附录2-源程序
#include<
stdio.h>
stdlib.h>
conio.h>
string.h>
#defineN20
structstudent
{charnum[20];
charname[10];
charbanji[10];
charzhuanye[10];
chardanwei[10];
charchengshi[10];
charxingzhi[10];
charshijian[10];
}stu[N];
intn;
voidmenu()
printf("
*************************************************"
);
\t1请录入录入学生信息\t\t2按单位名称统计\n"
\t3按输入城市名称统计\t\t4按输入单位性质统计\n"
\t5完全退出\n"
**********************************************\n"
}
voidreads(structstudentstu[N],int*n)
FILE*fp;
inti=0;
if((fp=fopen("
d:
\\student.txt"
"
r"
))==NULL)/*在指定目录下创建或打开文件*/
{printf("
文件打开失败!
\n"
return;
}
else
{
for(i=0;
!
feof(fp);
i++)
fscanf(fp,"
%s%s%s%s%s%s%s%s"
stu[i].num,stu[i].name,stu[i].banji,stu[i].zhuanye,stu[i].danwei,stu[i].chengshi,stu[i].xingzhi,stu[i].shijian);
*n=i;
fclose(fp);
voidadd()/*录入学生信息函数*/
{FILE*fp;
intn,i;
structstudentstu;
r+"
))!
=NULL)/*在指定目录下创建或打开文件*/
{
请输入添加学生数量,按回车键确认:
"
scanf("
%d"
&
n);
fseek(fp,0L,2);
for(i=1;
i<
=n;
\n请输入第%d个学生的学号、姓名、班级、专业,用空格分开,并按回车键确认:
\n"
i);
%s%s%s%s"
stu.num,stu.name,stu.banji,stu.zhuanye);
\n请输入第%d个学生的单位名称、地点、性质、签约时间,用空格分开,并按回车键确认:
stu.danwei,stu.chengshi,stu.xingzhi,stu.shijian);
fprintf(fp,"
\n%s%s%s%s%s%s%s%s"
stu.num,stu.name,stu.banji,stu.zhuanye,stu.danwei,stu.chengshi,stu.xingzhi,stu.shijian);
w"
=NULL)/*在指定目录下创建或打开文件*/{
\n请输入第%d个学生的单位名称、地点、性质、签约时间,用空格分开,并按回车键确认:
fprintf(fp,"
}
voiddanwei()/*学生同一单位信息查询*/
structstudentstu[N];
chardanwei[20];
inti;
reads(stu,&
\n请输入单位名称:
%s"
danwei);
n;
if(strcmp(danwei,stu[i].danwei)==0)
if(strcmp(danwei,stu[i].danwei)!
=0)
{printf("
没有找到该学生\n"
printf("
\n%5s%5s%5s%5s\n"
stu[i].num,stu[i].name,stu[i].banji,stu[i].zhuanye);
voidchengshi()/*学生同一城市信息查询*/
charchengshi[20];
\n请输入城市名称:
chengshi);
if(strcmp(chengshi,stu[i].chengshi)==0)
if(strcmp(chengshi,stu[i].chengshi)!
没有找到该学生信息\n"
else
/*输出信息*/
voidxingzhi()/*学生就业单位同一性质的查询*/
charxingzhi[20];
\n请输入单位性质:
xingzhi);
if(strcmp(xingzhi,stu[i].xingzhi)==0)
if(strcmp(xingzhi,stu[i].xingzhi)!
voidmenu();
voidread(structstudentstu[N],int*n);
voidadd();
voiddanwei();
voidchengshi();
voidxingzhi();
voidmain()
intm;
while
(1)
\t\t\t\t学生毕业信息管理\n"
menu();
\n请选择操作序号,按回车键确认:
m);
switch(m)
{case1:
add();
break;
case2:
danwei();
case3:
chengshi();
case4:
xingzhi();
case5:
exit(0);
default:
输入错误,请输入存在的序号!
}
}
完成日期:
2012/7/16
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业生 就业 统计 系统