毕业生就业统计系统-C语言课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一、需求分析 (2)
二、程序流程图 (4)
四、技术要点 (15)
五、个人总结 (20)
六、参考文献 (21)
七、源程序 (21)
一、需求分析
经过对程序设计题目的分析可知,整个程序的设计实现大致分为七个模块,其中每一个模块对应一个函数,它们的功能分别是:读取文件信息函数,录入学生信息函数,显示学生信息函数,查询函数(包括对学生工作单位、城市、单位性质的查询)。在这些函数的实现严格按照题目的要求,而前面的三个函数属于附加功能。
1、录入学生信息函数主要实现程序最初运行时学生信息的录入以及其后的运行中学生信息的追加功能;
2、显示学生信息函数主要实现对录入的学生信息进行显示方便下面的调用;
3、查询函数实现的功能是按照要求对学生的信息记录进行查询、调用;
4、查询相同单位学生信息函数按照题目的具体要求实现的是对相同单位学生的信息的调用、查询;
5、查询相同城市学生信息函数按照题目的具体要求实现的是对相同城市学生的信息的调用、查询;
6、查询相同性质单位信息函数按照题目的具体要求实
现的是对相同性质单位的信息的调用、查询;
7、退出函数实现的是在程序的一次运行当中循环执行所有功能时根据需要终止程序的执行的功能。
每一个学生记录都包含学号、姓名、班级、专业,而每一个学生的单位信息包含单位名称、地点、性质还有签约时间,在程序当中,将学生记录类型定义为结构体类型,添加以及追加的学生信息直接写入D盘的student.dat文件中,其它函数每次对学生记录的访问,其数据来源都是student.dat文件,这样做不但可以保证学生数据的一致性,而且可以对学生数据进行永久保存,保证每次运行程序都可以采用原来的数据。
二、程序流程图
1、程序总体结构图
2、具体功能框图
(1)读取学生信息函数reads()
(2)录入学生信息和单位信息函数add
(3)显示学生信息和单位信息、签约时间函数
(4)调用相同单位的学生信息danwei
(5)调用相同城市的学生信息chengshi
(6)调用相同单位性质的学生信息xingzhi
三、主要界面截图
四、技术要点
本程序主要由七个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。在这些函数当中,录入信息函数、显示信息、查询信息函数程序中较为核心的部分,下面分别进行说明。
1、录入信息函数
添加信息分为两种情况,其一是在学生文件(student.txt)不存在的情况下,首先由程序创建一个新文件,并将录入的学生信息写入该文件当中;其二是在学生文件(student.txt)已经存在的情况下,此时文件要以读写方式或追加的方式打开,这样才可以保证以前已经存在的数据不丢失。具体的程序段如下:
void add()/*录入学生信息函数*/
{FILE *fp;
int n,i;
struct student stu;
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%s%s%s%s",stu.num,,stu.clas,stu.pro,stu. danwei,stu.chengshi,stu.xingzhi,stu.shijian);
fprintf(fp,"\n%s %s %s %s %s %s %s %s",stu.num,,stu.clas,s tu.pro,stu.danwei,stu.chengshi,stu.xingzhi,stu.shijian);
}
}
else
{
if((fp=fopen("d:\\student.txt","w"))!=NULL) {
printf("请输入要添加的学生数量,按回车键确认:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{ printf("\n请输入第%d个学生的学号、姓名、班级、专业、单位名称、地点、性质、签约时间,用空格分开,并按回车键确认:\n",i);
scanf("%s%s%s%s%s%s%s%s",stu.num,,stu.clas,stu.pro,stu. danwei,stu.chengshi,stu.xingzhi,stu.shijian);
fprintf(fp,"\n%s %s %s %s %s %s %s %s",stu.num,,stu.c las,stu.pro,stu.danwei,stu.chengshi,stu.xingzhi,stu.shijian);
}
}
}
fclose(fp);
}
2、显示学生信息
该函数主要是为下面的查询函数提供查询的依据。该函数执行时,首先调用reads函数将文件中的学生信息读出然后输出所有学生信息。
具体程序段如下:
void show()/*显示所有学生信息函数*/
{struct student stu[N];
int i,n;
reads(stu,&n);/*从文件中读出学生信息*/
printf(" *****************所有学生信息如下*****************");
printf("\n 序号学号姓名班级专业单位地点性质签约时间");
for(i=0;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函数将文件中的学生信息读入数组当中,并由用户输入待查询学生的就业单位,而后按照该单位进行查找,如果文件中存在该学生的数据,就按照调用学生函数的方法调用,否则不输出任何信息。对学生信息的具体调用是在