《软件设计》任务书(6题)[2024-06-14]

《软件设计》任务书(6题)[2024-06-14]

电子与光学工程学院、柔性电子(未来技术)学院

《软件设计》任务书
本任务书共6个课题,分A、 B两类:
A类课题为传统软件设计课题。需依据设计要求,借助VC、MATLAB、Jave、Python等软件开发工具,设计开发出功能完整、性能稳定的软件程序,并具有友好的输入输出界面。
B类课题为面向工程设计的嵌入式软件设计课题。需要依据设计要求,借助Keil、Proteus等嵌入式开发工具,设计开发出具有完整功能、性能稳定的嵌入式模拟系统。

源码联系UP主 -> https://space.bilibili.com/329101171

A类课题:
A1、打字程序(10分)
课题内容:
设计一个打字程序。包括随机产生字符串,以及字符串比较和统计。通过此课题,熟练掌握数组、格式输出、字符串处理等。
课题要求:
(1)随机产生一字符串,每次产生的字符串内容、长度都不同;
(2)根据(1)的结果,输入字符串,判断输入是否正确,输出正确率;
(3)具有输入输出界面。

A2、文本编辑器(10分)
课题内容:
设计一个简单的文本编辑器,该系统要求对一个文本文件中的内容进行各种常规操作,如:插入、删除、查找、替换等功能。通过此课题,熟练掌握文本文件的操作及用字符数组或字符指针实现字符串操作的功能。
插入: 字符、位置。
课题要求:
(1)编辑文本;
(2)保存、打开指定位置的文本文件;
(3)具有输入输出界面。

A3、学生成绩核算系统的设计与实现(30分)
课题内容:
设计一个学生成绩核算系统。能实现从文件中读取学生成绩资料,并提供成绩查询统计服务。通过此课题,熟练掌握文件、数组、结构体的各种操作以及友好界面的设计。
课题要求:
(1)按班级按课程从文件中读入相应的平时成绩、期中考试成绩和期末考试成绩。
(2)三个成绩对总评成绩的百分比被定义为常数,各占总成绩的30%、30%和40%。
(3)计算每位学生的总评成绩。
(4)计算该班级本课程的总平均成绩。
(5)计算处于优、良、中、及格、不及格的学生人数以及占总人数的百分比。其中100-90为优,89-80为良,79-70为中,69-60为及格,60分以下为不及格。
(6)按要求输出成绩在优、良、中、及格、不及格各区间的学生学号、成绩。

程序设计参考思路:
1、建立文本文件 note.dat,第一行为学生的总人数,其后为每个学生的成绩,每个学生的信息占一行,格式为:
学号(9位) 平时成绩 期中考试成绩 期末考试成绩

例如:
B19040801 88 75.5 66
B19040802 91 79.5 76
B19040803 85 75 77
B19040804 79 82 80.5
B19040805 94 83.5 81.5
B19040806 80 69 68
B19040807 82 77 71
B19040808 77 57 58
B19040809 91 88 86
B19040810 96 89 90
B19040814 70 45.5 50
B19040812 74 65 66
B19040813 81 71 76
B19040814 83 75 77
B19040815 85 78 79

2、从文件中读入相应的平时成绩、期中考试成绩和期末考试成绩时,数据的读入方式可用C语言中的文件读入方式进行,也可用C++中的流实现。
3、 每次计算出的结果可在屏幕输出,并把每个学生的总评成绩输入到新文件out.dat文件中,
格式为: 学生学号(9位) 总评成绩 成绩等级
例如: B19040801 88 B
为查询方便,可把总评成绩所处等级(优、良、中、及格、不及格)同时保存在文件out.dat中,分别用字母A、B、C、D、E表示。
4、数据结构(可用C++实现)
两个类:学生(student)和学生成绩(marks)
(1)学生类
数据成员: 学号、姓名、专业等
数据类型
属性(私有、保护、公有)
方法:
构造函数和析构函数
设置学号 void SetId( long );
读取学号 long GetId( ); 等等
(2)学生成绩类 —— 从学生类派生
数据成员:平时成绩、期中考试成绩、期末考试成绩、总评成绩、成绩等级
数据类型
属性(私有、保护、公有)
方法:
读入成绩 void In( ifstream& ); 或 void In( FILE* );
输出成绩 void Out( ofstream& ); 或 void Out( FILE* );
显示成绩 void print( );
求总评成绩 void ComputeZP( );
求等级 void ComputeDJ( );
读取总评成绩 float GetZP( );
读取等级 char GetDJ( ); 等等
5、设计
基本思想:自顶向下、逐步细化
主要功能:

(1)总控模块
功能:编制菜单,不断从菜单选择计算或查询功能执行,直到退出。
程序流程图:~
(2)计算
(3)查询~
6、实现
编程时要求每一个类建两个文件,即类的定义和实现文件。
注意包含相关的文件。

B类课题(嵌入式):
B1、科学计算器(25分)
课题内容:
基于嵌入式开发流程,设计一个科学计算器。能够完成基本的加减乘除运算,并能对显示结果进行进制转换(二、八、十、十六进制数互相转换),系统基本框图如下。通过此课题,熟练掌握字符串、格式输出、进制换算等各种操作。

课题要求:
(1) 可输入数据和运算符。
(2) 依据按键输入运算信息,将运算公式及结果(默认十进制)显示。
(3) 通过按键 按要求进制对运算结果进行显示(二、八、十、十六进制)。

B2、加密通信(25分)
课题内容:
构建一套嵌入式加密通信系统,完成用户双方的保密通信,系统组成框图如下。信息发送方完成对信息的加密(明文+密钥的转换);接收方接收加密信息后,依据正确密钥解密信息,并将信息显示。通过此课题,熟练掌握数组、格式输出、字符串处理、类型转换等。

课题要求:
(1) 信息收发双方,通过按键输入加密秘钥K。
(2) 信息发送方,通过按键输入任意一段明文M,并在显示模块中显示;
(3)信息发送方,根据以下公式将信息加密为密文C,通过串口发送出去。
Ci = mi + K ,其中i = 0,1,……n-1 , K 为密钥;
(4)信息接收方,通过串口接收密文,并将解密信息进行显示。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值