当前位置:文档之家› 软件工程作业3

软件工程作业3

软件工程第六章作业
9、某公司为本科以上学历的人重新分配工作,分配原则如下:如果年龄不满18岁,学历是本科,男性要求报考研究生,女性则担任行政工作;如果年龄满18岁不满50岁,学历本科,不分男女,任中层领导职务,学历是硕士,不分男女,任课题组组长;如果年龄满50岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士,不分男女,任课题组组长。

要求:画出分析过程,得出判定表,并进行化简。

条件分析表:
条件名称取值符号取值数性别男M M1=2
女 F
年龄不满18岁T M2=3
满18岁小于50岁Y
超过50岁O
文化程度硕士S M3=2
本科 B
判定表:
1 2 3 4 5 6 7 8 9 10 11 12 性别M M M M M M F F F F F F 文化程度S S S B B B S S S B B B 年龄O Y T O Y T O Y T O Y T 组长√√√√√√
领导√√
科研√
行政√资料员√
考研√
简化表:
1,2,3,7,8,9 4 5,11 6 10 12
性别------ M ----- M F F
文化程度S B B B B B
年龄------ O Y T O T
组长√
领导√
科研√
行政√
资料员√
考研√
10、研究下面的伪码程序,画出对应的程序流程图。

开始
Input X,N
Dim A(N),F(N)
I=1
Input F(i)
I>N I++ K=0
否是
A(K)=0;J=1
A(K)=A(K)+F(J)*F(J+K)/(N-K+1)
J++
K>N-K

Print K*X,A(K)
K++
K<N 结束否
是是
11、将某系统的数据流程图,转换成相应的软件结构图。

A
B
C D
E
G
F
a
b
c d
e
f1
f2
g h
软件结构图:
A
D
B C
F E G
b c
f1
d
f1f2
g f2
e
g
13、某培训中心要研制一个计算机管理系统。

它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。

如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。

如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。

如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。

要求: 1.对以上问题画出数据流程图。

2.画出该培训管理的软件结构图的主图。

数据流程图:
学员
发送信息
IPO1收集IPO2
分类IPO4
注销
IPO3
报名
IPO5
付款
DS1
课程文件
IPO3
查阅课程文件
课程信息
报名数据
注销数据
付款数据
注销信息
注销人员
财务人员
DS2
学生文件
DS3
账目文件
学生
注销单
发票
财务人员
付款信息
DS3账目文件
收费收据
软件结构图:
计算机管理系统
计算机管理系统
学员发送信件收集报名处理注销处理付款处理
分类处理
数据
数据
信件
信件
报名数据
注销数据
付款数据
编程:输入一个学生的两门课成绩(百分制),计算该学生的总分并要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。

总分在180分以上为‘A’,160~179分为‘B’,140~159分为‘C’,120~139分为‘D’,120分以下为‘E’。

学生的两门课成绩通过键盘输入,成绩应该都为整数,输入之前要有提示信息。

若输入的成绩不是百分制成绩,则给出错误提示信息,计算总分,并根据要求评价等级。

#include<stdio.h>
int main()
{ int score=0,sum=0;
int i;
for(i=0;i<2;)
{
printf("\n请输入学生第%d门课的成绩:",i+1);
scanf("%d",&score);
if(score>=0&&score<=100)
{ sum+=score;
i++;}
else
{ printf("\n输入错误!\n");
continue;}
}
if(sum>=180)
printf("总分:%d 等级:A\n",sum);
else if(sum>=160)
printf("总分:%d 等级:B\n",sum);
else if(sum>=140)
printf("总分:%d 等级:C\n",sum);
else if(sum>=120)
printf("总分:%d 等级:D\n",sum);
else
printf("总分:%d 等级:E\n",sum);
return 0;
}。

相关主题