用python写管理系统需求分析_Python IO编程和软件工程需求分析

Python IO 编程

1.编写代码,将学生的学号,姓名,成绩输出,并且计算出学生个人的平均成绩。

#写进二进制数据

import struct

f=open('d:\\student.dat','wb')

n=input('请输入学生人数:')

#输入数据为字符串类型

#先把字符串转为int型,再打包为bytes型

s=struct.pack('i',int(n))

#写入二进制文件

f.write(s)

i=0

while (i

num=input('请输入第'+str(i+1)+'人的学号(2位):')

name= input('请输入姓名(3个字母):')

a1= input('请输入高等数学成绩:')

a2= input('请输入线性代数成绩:')

a3= input('请输入计算机编程导论成绩:')

#对输入的数据进行编码

s=struct.pack('2s3s',num.encode('utf-8'),name.encode('utf-8'))

s=s+struct.pack('fff',float(a1),float(a2),float(a3))

#把记录写入文件

f.write(s)

i=i+1

f.close()

#读取二进制数据

f=open('d:\\student.dat','rb')

s=f.read(4)#读出人数所占的4个字节

#将读出的bytes解包为tuple

n=struct.unpack('i',s)

#观察人数是否正确

print('n=',n[0])

i=0

li=[]

while (i

i=i+1

s=f.read(2)#读出学号

#将bytes按照utf-8方式解码

num=str(s,'utf-8')

s=f.read(3*1)

name=str(s,'utf-8')

s=f.read(4*3)

a1,a2,a3=struct.unpack('fff',s)

a4=(a1+a2+a3)/3#计算平均分

li2=[num,name,a1,a2,a3,a4]

#存入列表

li.append(li2)

#输出成绩表

i=0

j=0

print('平均分')

while (i

s2=(li[i][0]+' ')

s2=s2+li[i][1]+' '*2

j=2

while j<6:

s='%-13.2f'%li[i][j]

j=j+1

s2=s2+s

print(s2)

i=i+1

f.close()

2.编写代码,将当前工作目录修改为“D:\”,并验证,最后将当前工作目录恢复为原来的目录。

import os

print(os.getcwd())

os.chdir('D:\\')

print(os.getcwd())

os.chdir('C:\\')

print(os.getcwd())

3.编写程序,用户输入一个目录和一个文件名,搜索该目录及其子目录中是否存在该文件。

import sys

import os

#提取命令行参数1,作为查找目录

directory=sys.argv[1]

#提取命令行参数2,作为查找文件名

filename=sys.argv[2]

#获取查找目录下所有路径

paths=os.walk(directory)

for root,dirs,files in paths:

#若存在同名文件,则输出为Yes

if filename in files:

print('Yes')

break

else:

print('No')

@在第三题的运行过程中,一定要先创建好文件夹和该目录下的文本文件夹。之后创建运行配置文件,在Parameters中写出创建的文本文件夹的地址。

软件工程需求分析

某单位工资档案管理系统中“职务津贴计算”加工逻辑过程:

假定职工的职称只分为助工、工程师和高工三种,保底津贴分别是350、400、500元,并且单位根据职工的工作年限给予津贴适当的上浮奖励,具体上浮情况如下:无论助工、工程师和高工,工作年限在10年(包含10年的)以下的无浮动;对于在单位工作超过10年但不到20年的职工,助工、工程师津贴上浮20%,高工上浮30%;对于在单位工作超过20年(包含20年的)的职工,助工津贴上浮30%,工程师津贴上浮35%,高工上浮40%。

请用判定表和判定树描述上述规则。

渺小的我,有大大的梦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值