某农业学校python(四)

1.成绩统计

【问题描述】

当前目录下有一个文件名为score1.txt

score1.txt的文本文件,存放着某班学生的Python课程成绩,共有学号、姓名、平时成绩、期末成绩四列。请根据平时成绩占30%,期末成绩占70%的比例计算总评成绩(int()函数取整数),并分学号、姓名、总评成绩三列中间用一个空格间隔写入另一文件score2.txt。同时在屏幕上输出学生总人数,按总评成绩计90以上、80~89、70~79、60~69、60分以下各成绩档的人数和班级总平均分(int()函数取整数)。

【样例输出】

total:51

>90:25

80-89:9

70-79:8

60-69:9

<60:0

aver of class:84

f = open("score1.txt")
a = f.readline()
line = (f.readline()).strip()
f2 = open("score2.txt",'w')
f2.write("stuno name total\n")
L2 = [0,0,0,0,0]
count = 0
sum = 0
while (len(line) != 0):
    L1 = line.split()
    f2.write(L1[0]+" "+L1[1]+" ")
    temp = int(L1[2]) * 0.3 + int(L1[3]) * 0.7
    f_score = int(temp)
    if 90< f_score <=100:
        L2[0] += 1
    elif f_score >=80:
        L2[1] += 1
    elif f_score >=70:
        L2[2] += 1
    elif f_score >=60:
        L2[3] += 1
    else :
        L2[4] += 1
    count += 1
    sum += f_score
    f2.write(str(f_score)+"\n")
    line = (f.readline().strip())
f.close()
f2.close()
avg_score = int(sum/count)
print('total:%d'%count)
print('>90:%d'%L2[0])
print('80-89:%d'%L2[1])
print('70-79:%d'%L2[2])
print('60-69:%d'%L2[3])
print('<60:%d'%L2[4])
print('aver of class:%d'%avg_score)
2.复数加减

【问题描述】

编写一个程序,功能是:用户输入两个复数,完成复数相加和相减操作,输出相加和相减的结果。要求用类来表示复数,并分别用方法实现复数相加和相减操作。

【输入形式】

输入分两行,每一行一个复数。复数的格式是a+bi。a,b都是正整数。

【输出形式】

输出相加和相减的结果

【样例输入】

3+5i

4+6i
【样例输出】

7+11i

-1-1i
【样例说明】

-1-1i不能写成-1+-1i。

a = input()
b = input()
lena,lenb = len(a),len(b)
cout1,cout2 = 0,0
for i in a:
    if i=='+' or i=='-':
        count1 = i
        cout1 += 1
for i in b:
    if i=='+' or i=='-':
        count2 = i
        cout2 += 1
a1 = int(a[0:cout1])
a2 = int(a[cout1:lena-1])
b1 = int(b[0:cout2])
b2 = int(b[cout2:lenb-1])
#print(a1,a2)
if count1=="+":
    aa = complex(a1,+a2)
if count1=='-':
    aa = complex(a1,-a2)
if count2 =='+':
    bb = complex(b1,+b2)
if count2 =='-':
    bb = complex(b1,-b2)
temp1 = str(aa+bb)
len1 = len(temp1)
temp1 = temp1[1:len1-2]
print(temp1+i)
temp2 = str(aa-bb)
len2 = len(temp2)
temp2 = temp2[1:len2-2]
if temp2=='':
    print("0+1i")
else:
    print(temp2+i)
3.最长单词

【问题描述】

编写一个函数maxWord(s),用以找出已知字符串s中的最长单词。

【输入形式】
【输出形式】
【样例输入】

I am a student and my name is Mary!

【样例输出】

student

def maxWord(s):
    max = ' '
    for i in s:
        if len(i) > len(max):
            max = i
    return max

s = input().split(' ')
t = maxWord(s)
print(t)
4.回文数

【问题描述】

编写一个函数isHui(n),用以实现对正整数n判断是否是回文数。

提示:回文数定义:是指顺读与倒读数字相同的正整数。如12321。

【输入形式】
【输出形式】
【样例输入】

1234321
【样例输出】

True

def isHui(n):
    sum = len(n)
    if n[:]!=n[::-1]:
        return False
    return True

n = input()
print(isHui(n))
5.阶乘计算

【问题描述】

编写一个函数fac(n )求给定整数的阶乘,调用此函数实现以下公式,结果保留一位小数。(请分别使用递归和普通函数实现)

【输入形式】

【输出形式】
【样例输入】

3

2

【样例输出】

result:3.0

def fac(n,m):
    sum1,sum2,sum3 = 1,1,1
    for i in range(1,n+1):
        sum1 = sum1*i
    for j in range(1,m+1):
        sum2 = sum2*j
    for t in range(1,n-m+1):
        sum3 = sum3*t
    return sum1/(sum2*sum3)


n = int(input())
c = input()
m = int(input())
sum = fac(n,m)
print("result:%.1f"%sum)
6.公式计算

【问题描述】编写三个函数fz(n), fm(n), sum_(n)分别计算下列公式的分子和,分母积以及公式总和值,输出结果保留4位小数。

【输入形式】

【输出形式】

 2
【样例输入】

2.5000

def fz(n):
    s = 0.0
    for i in range(n):
        s += i+1
    return s

def fm(n):
    s = 1.0
    for i in range(n):
        s *= i+1
    return s

def sum_(n):
    s = 0.0
    for i in range(n):
       s += fz(i+1)/fm(i+1)
    return s

n=int(input())
sum = sum_(n)
print("%.4f"%sum)
7.文件-单位转换


【问题描述】从文件in162.txt中连续读入10个以磅为单位的重量值,将其转换为以千克为单位的值并求和,将计算所得的和sum输出到文件out162.txt中。
            说明:一磅等于0.454千克。
【输入形式】文件输入的每一行包含10个浮点数数值,以空格分隔。
【输出形式】文件输出一个两位小数的数值sum。
【样例输入】1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
【样例输出】4.54

fd1 = open("in162.txt", "r")
sum = 0
count = 0
line = fd1.readline()    # 读入一行字符串
weight = list(line.split()) # 以空格提前字符串
for item in weight:
    sum += eval(item)*0.454
    count += 1
    if count == 10:
        break
fd2 = open("out162.txt", 'w')
fd2.write("%.2f" % sum)
fd1.close()
fd2.close()
8.文件内容转成大写

【问题描述】

当前目录下有一个文本文件sample.txt,其内容包含小写字母和大写字母。请并将原文件中的小写字母全部转换为大写字母,其余格式均不变,转换后结果存入另一文件sample_copy.txt。

sample.txt

fp1 = open('sample.txt')
fp2 = open('sample_copy.txt','w')
lines = fp1.readlines()
for i in lines:
    fp2.write(i.upper())

fp1.close()
fp2.close()
  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
纯C语言学生成绩管理系统(以包含文件的形式写的),结构体,链表,数组,以下是main.c #include #include #include #define m 3/*宏定义m的值为3*/ struct node/*链表初始化*/ { char name[20]; int no; float score[m]; float sum; float avg; struct node *next; }; char ch[m+4][20]={{"学号"},{"姓名"},{"语文"},{"数学"},{"英语"},{"总分"},{"平均分"}};/*定义并初始化一个全局二维字符数组*/ #include "save.c"/*包含保存文件*/ #include "read.c"/*包含读取文件*/ #include "output.c"/*包含打印文件*/ #include "set.c"/*包含录入文件*/ #include "demand.c"/*包含查询文件*/ #include "sort.c"/*包含排序文件*/ #include "modified.c"/*包含修改文件*/ #include "add.c"/*包含添加文件*/ #include "del.c"/*包含删除文件*/ void main() { int n; printf("\n\t\t\t欢迎使用学生成绩管理系统\n\n"); printf("\t\t\t\t\t\t制 作: XIA XIA\n"); do { printf("\n\n1:学生成绩录入,并保存\n"); printf("2:学生成绩查询\n"); printf("3:学生成绩的排序\n"); printf("4:学生成绩的修改\n"); printf("5:学生成绩的打印\n"); printf("6:学生信息的添加\n"); printf("7:学生信息的删除\n"); printf("0:退出学生成绩管理系统\n\n\n"); printf("输入你要执行操作的相应序号\n"); scanf("%d",&n);/*输入相就的操作的序号*/ switch (n) { case 1: set();break;/*调用录入函数*/ case 2: demand();break;/*调用查询函数*/ case 3: sort();break;/*调用排序函数*/ case 4: modified();break;/*调用修改函数*/ case 5: output();break;/*调用打印函数*/ case 6: add();break;/*调用添加函数*/ case 7: del();break;/*调用删除函数*/ case 0: printf("正在退出学生成绩管理系统......\n");exit(0);/*直到输入“0”退出学生成绩管理系统*/ default:printf("输入错误码,请重新输入\n"); } }while(1); }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值