1、、需求分析、程序流程图、核心技术的实现说明及相应程序段 .10四、课设总结15五、参考文献16六、源程序经过对程序设计题目的分析可知,整个程序的设计 实现大致分为七个模块,其中每一个模块对应一个函数, 它们的功能分别是:读取文件信息函数,录入学生信息 函数,显示学生信息函数,查询函数(包括对学生工作 单位、城市、单位性质的查询) 。在这些函数的实现严格 按照题目的要求,而前面的三个函数属于附加功能。1、录入学生信息函数 主要实现程序最初运行时学生 信息的录入以及其后的运行中学生信息的追加功能;2、显示学生信息函数 主要实现对录入的学生信息进 行显示方便下面的调用;3、查询函数 实现的功能是按照
2、要求对学生的信息记 录进行查询、调用;4、查询相同单位学生信息函数 按照题目的具体要求 实现的是对相同单位学生的信息的调用、查询;5、查询相同城市学生信息函数 按照题目的具体要求实 现的是对相同城市学生的信息的调用、查询;6、查询相同性质单位信息函数 按照题目的具体要求实 现的是对相同性质单位的信息的调用、查询;7、退出函数 实现的是在程序的一次运行当中循环执 行所有功能时根据需要终止程序的执行的功能。每一个学生记录都包含学号、姓名、班级、专业,而每一个学生的单位信息包含单位名称、地点、性质还有签约时间,在程序当中,将学生记录类型定义为结构 stude nt.dat文件中,其它函数每次对学生记
3、录的访问,其 数据来源都是student.dat文件,这样做不但可以保证学生 数据的一致性,而且可以对学生数据进行永久保存,保 证每次运行程序都可以采用原来的数据。程序总体结构图1、2、具体功能框图(1)读取学生信息函数reads()(2)录入学生信息和单位信息函数 add(3)显示学生信息和单位信息、签约时间函数从文件中读出学生信息、单位信息和签约时间信息输出“序号 学号 姓名 班级 专业单位地点性质签约时间”i=0;i n ;i+输出学生所有有信息输入字符串(4)调用相同单位的学生信息da nwei(5)调用相同城市的学生信息Che ngshi(6)调用相同单位性质的学生信息 xin gz
4、hi循环变量i=0从文件中读取学生数据输出“请输入待查询的性质名称,按回车确认”当 i=nstrcmp( xingzhi,stui.xingzhi )=0 假输出学生学生信息、核心技术的实现说明及相应程序段本程序主要由七个自定义函数和一个主函数组成,其中 主函数以菜单的形式调用其它函数来实现要求的所有功 能。在这些函数当中,录入信息函数、显示信息、查询 信息函数程序中较为核心的部分,下面分别进行说明。1、录入信息函数添加信息分为两种情况,其一是在学生文件(student.txt)不存在的情况下,首先由程序创建一个新 文件,并将录入的学生信息写入该文件当中;其二是在 学生文件(student.t
5、xt)已经存在的情况下,此时文件要 以读写方式或追加的方式打开,这样才可以保证以前已 经存在的数据不丢失。具体的程序段如下void add()/*录入学生信息函数*/FILE *fp;int n,i;struct stude nt stu;if(fp=fo pen (d:stude nt.txt, r+)!=NULL)printf(请输入要添加的学生数量,按回车键确认:);sca nf(%d,&n);fseek(fp,0L,2);for(i=1;i=n ;i+) printf(n请输入第%d个学生的学号、姓名、班级、专业,用 空格分开,并按回车键确认:n,i);scan f(%s%s%s%s,
6、stu. nu m,stu. name,stu.clas,stu. pro);n请输入第%d个学生的单位名称、地点、性质、签 约时间,用空格分开,并按回车键确认:sea nf(,stu.da nwei,stu.che ngshi,stu.x in gzhi,stu.shijia n);fprin tf(fp,n%s %s %s %s %s %s %s %s,stu. nu m,stu. name,stu.clas,s tu.p ro,stu.da nwei,stu.che ngshi,stu.x in gzhi,stu.shijia n);elseif(fp=fo pen( w=NULL) n
7、请输入第%d个学生的学号、姓名、班级、专业, 用空格分开,并按回车键确认:n请输入第%d个学生的单位名称、地点、性质、 签约时间,用空格分开,并按回车键确认:,stu. num,stu. name,stu.c las,stu .p ro,stu.da nwei,stu.che ngshi,stu.x in gzhi,stu.shijia n);fclose(fp);该函数主要是为下面的查询函数提供查询的依据。该函数执行时,首先调用reads函数将文件中的学生信息 读出然后输出所有学生信息。具体程序段如下:void show()/*显示所有学生信息函数*/struct stude nt stuN
8、;int i,n;reads(stu,&/*从文件中读出学生信息*/ * 所有学生信息如下*)n 序号 学号 姓名 班级 专业单位地点 性质签约时间for(i=0; n;i+) prin tf(n%5d%9s%5s%7s%7s%5s%5s%9s%5sn,i+1,stui. nu m,stui. name,stui.clas,stui. pro,stui.da nwei,stui.che ngshi,stui.x in gzhi ,stui.shijia n);getch();查询相同单位学生信息函数3、该函数的核心内容是输入单位名称实现对同一单位学生信息的调用。该函数执行时,首先调用 read
9、s函数 将文件中的学生信息读入数组当中,并由用户输入待查 询学生的就业单位,而后按照该单位进行查找,如果文 件中存在该学生的数据,就按照调用学生函数的方法调用,否则不输出任何信息。对学生信息的具体调用是在 结构体数组中实现的,当学生的信息被找到后,依次在 数组的学生记录中寻找相同的信息,这些操作完成后, 要调用的学生信息就被调用出来了,也就实现了查询的 作用。void danwei()/*学生单位信息查询*/struct stude nt stuN;char dan wei20;int i;n请输入待查询的单位名称,按回车键确认:%s,da nwei);i vn ;if(strc mp (da
10、 nwei,stui.da nwei)=0)prin tf(n%5s%5s%5s%5sn,stui. nu m,stui. name,stui.clas,stui.p ro);4、查询相同城市学生信息函数该函数的核心内容是输入城市名称实现对学生信息的调用。该函数执行时,首先调用reads函数将文件中的 学生信息读入数组当中,并由用户输入待查询学生的城 市,而后按照该城市进行查找,如果文件中存在该学生 的数据,就按照调用学生函数的方法调用,否则不输出任何信息。对学生信息的具体调用是在结构体数组中实 现的,当学生的信息被找到后,依次在数组的学生记录 中寻找相同元素的信息,这些操作完成后,要调用的学
11、 生信息就被调用出来了,也就实现了查询的目的。void chengshi()/*学生就业城市信息查询*/char che ngshi20;n请输入待查询的城市名称,按回车键确认:,che ngshi);if(strcm p( che ngshi,stui.che ngshi)=0)5、查询相同单位性质学生信息函数该函数的核心内容是输入性质实现对学生信息的调用。该函数执行时,首先调用reads函数将文件中的学生 信息读入数组当中,并由用户输入待查询单位的性质, 而后按照该单位性质进行查找,如果文件中存在该学生 的数据,就按照调用学生函数的方法调用,否则不输出 任何信息。对学生信息的具体调用是在结构体数组中实 现的,当学生的信息被找到后,依次在数组的学生记录 中寻找相同单位性质的信息,这些操作完成后,要调用 的学生信息就被调用出来,也就实现了查询。void xingzhi()/* 学生就业单位性质信息的查询*/char xin gzhi20;n 请输入待查询的单位性质,按回车键确认:,xi ngzhi);if(strc mp(xin gzhi,stui.x in gzhi)=0),stui. nu m,stui. name,stui. clas,stui. pro);之前在大一就学过了 C语言,但是学的不是很
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1