}
4.2.5.2 函数流程图 由用户输入编号 界面显示详细信息及菜单选项 用户输入选择 错误提示 系统判断输入是否合理(Y/N) N Y 对编号修改 对姓名修改 对性别修改 对年龄修改 对职务修改 对职称修改 对政治面貌修改 对文凭修改 对来院时间修改 对任职时间修改 对人员类别修改 将修改后的信息储存, 第 21 页 共 31 页 并提示用户修改成功。
4.2.5.3 模块运行界面
4.2.6 统计模块设计
【思路】系统要求程序需要完成能对在职人数 党员人数 女工人数
高学历高职称人数要求进行统计并显示信息;首先还是在界面显示出供用户选择的菜单,同样要设计容错功能;对在职人数的统计,因为人员类别除了退休人员均在职,所以根据此条件可统计出在职人员信息;对党员数,则只需要求sta[i].politic=party即可;对女工人数则只需使sta[i].sex=f即可;对于高学历只需使结构体中文凭项中存储为硕士或博士或者使结构体中职称项中为教授或副教授即可。
第 22 页 共 31 页
4.2.6.1 此模块源程序及说明
void stat(int j) {
int n;
printf(\
printf(\2. party member\\n 3.on the job\\n 4.advanced academic degrees\\n\/*提供菜单显示*/ printf(\ scanf(\ }
while(n>4||n<1)/*提供容错功能*/
{
printf(\ printf(\ scanf(\}
switch(n)/*根据用户选择调用子函数*/ {
case 1:fem(j);break; case 2:part(j);break; case 3:jo(j);break; case 4:adv(j);break; }
/*对女工人数进行统计的子函数*/
void fem(int j) {
int n=0,i=0;char a[50]={'f'};
for(n=0;n {if(strcmp(a,sta[n].sex)==0) {printf(\ sta[n].sex,sta[n].age,sta[n].duty,sta[n].title,sta[n].politic, sta[n].wenpin,sta[n].coming_time,sta[n].duty_time,sta[n].kinds_of_staff);i++;} } 第 23 页 共 31 页 } printf(\ /*对党员人数进行统计的子函数*/ void part(int j) { int n=0,i=0;char a[50]={'p','a','r','t','y'}; for(n=0;n {if(strcmp(a,sta[n].politic)==0) {printf(\ sta[n].sex,sta[n].age,sta[n].duty,sta[n].title,sta[n].politic, sta[n].wenpin,sta[n].coming_time,sta[n].duty_time,sta[n].kinds_of_staff);i++;} } printf(\} /*对在职人数进行统计的子函数*/ void jo(int k) { int n=0,i=0,j=0;char a[50]={'t','u','i','x','i','u'}; for(j=0;j {if(strcmp(a,sta[n].kinds_of_staff)!=0) {printf(\ sta[n].sex,sta[n].age,sta[n].duty,sta[n].title,sta[n].politic, sta[n].wenpin,sta[n].coming_time,sta[n].duty_time,sta[n].kinds_of_staff);i++;} } printf(\} /*对有高学历高文凭的人员进行统计*/ void adv(int k) { int n=0,i=0,j=0;char a[50]={'s','h','u','o','s','h','i'},b[50]={'b','o','s','h','i'},c[50]={'f','u','j','i','a','o','s','h','o','u'}, d[50]={'j','i','a','o','s','h','o','u'}; 第 24 页 共 31 页
相关推荐: