摘要:
从键盘输入一指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量,要求显示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少张。#include <stdio.h>#include <conio.h>int main(){int a1,a2,a3,a4,a5,a6,a7,a8,a9;float f;a1=a2=a3=a4=a5=a6=a7=a8=a9=0;printf("please input a float number:");scanf("%f",&f);while(f> 阅读全文
摘要:
编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。#include <stdio.h>#include <conio.h>int main(){int num;unsigned int i=0;int R;int bitnum[100];scanf("%d,%d",&num,&R);while(num!=0){ bitnum[i]=num%R; i++; num=num/R; }while(i--)printf("%d",bitnum[i]);return 0;} 阅读全文
摘要:
1、编程实现对键盘输入的英文名句子进行加密。用加密方法为,当内容为英文字母时其在26字母中的其后三个字母代替该字母,若为其它字符时不变。#include <stdio.h>int main(){char c;printf("please input a string :");while((c=getchar())!='\n'){if(c>='A' && c<='W' || c>='a' && c<='w')c=c+3;elsei 阅读全文
摘要:
1.信息系统的建设按其生命周期可依次分为总体规划阶段、系统分析阶段、系统设计阶段、系统实施与运维阶段等。2.数据流图(DFD)是一种便于用户理解、分析系统数据流程的图形工具,是软件系统分析阶段用于描述系统逻辑模型的图形描述工具,用于回答软件系统“做什么”的问题,它摆脱了系统的物理内容,精确地在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分。3.数据流图从数据传递和加工的角度,以图形的方式描述数据在系统流程中流动和处理的移动变换过程。通常,数据流图有4种基本图形元素。4.数据流图(DFD)具有抽象性和概括性。抽象性表现在它完全舍去了具体的物质,只剩下数据的流动、加工处 阅读全文
摘要:
需求获取系统分析人员通过与用户的交流、对现有系统的观察即对任务进行分析,确定系统或产品范围的限制性描述、与系统或产品有关的人员即特征列表、系统的技术环境的描述、系统功能的列表及应用于每个需求的领域限制、一组描述不同运行不同运行条件下系统或产品使用状况的应用场景以及为更好地定义需求而开发的任意原型。需求获取的工作产品为进行需求分析提供了基础。需求分析与协商需求获取结束后,分析活动对需求进行分类组织,分析每个需求其他需求的关系来,检查需求的一致性,重叠和遗漏的情况,并跟进用户的需要对需求进行排。在需求获取阶段经常出现以下问题:1.用户提出的要求超出软件系统可以实现的范围或实现能力2.不同的用户提出 阅读全文
摘要:
1.基于计算机的系统所谓基于计算机的系统是指:通过处理信息来完成某些预定义目标而组织在一起的元素的集合或排列组成基于计算机系统的元素主要有:软件、硬件、人员、数据库、文档和规程2.系统元素软禁——指计算机程序、数据结构和相关的工作产品,他们起到所需要的逻辑方法、规程或控制的作用。硬件——指提供计算能力的电子设备、使能数据流动的互连设备(如网络交换机、电信设备)和提供外部世界的电子机械设备(如传感器、马达等)人员——指硬件和软件的用户和操作者。数据库——指有软件和持续超时访问的大型的有组织的信息集合。文档——指描绘系统的使用和/或操作的描述性信息 阅读全文
摘要:
1.5 内存资源内存分配管理是实现高性能网络协议栈的关键因素,操作系统中的网络协议栈需要连续高可靠地运行,因此它需要频繁的为接收到的数据包分配缓冲区,同时也需要拼房释放处理完的数据缓冲区。1.5.1 高速缓冲区内核使用函数kmalloc和kfree来分配和释放内存块。这两根函数的使用语法是用户空间C库函数的malloc和free类似。在内核的各种组件中,经常需要为同一类型数据结构分配多个实例,如存放网络数据包的Socket Buffer。当分配内存空间和释放内存的操作发生的非常频繁时,内核组件的初始化函数通常为自己初始化一个特殊的高速缓冲区来为其数据结构分配内存空间,在数据对象使用结束释放内存 阅读全文
摘要:
模块功能的注册和取消应用程序的作用通常是运行后完成一定的功能,模块的主要任务是为当前内核中的其他组件提供服务。某个时候内核以模块的方式增加新功能,运行一段时间后,当不再需要这种功能时,可能将其移走。在系统启动阶段我们无从知道将会有什么功能以模块的形式加入到系统中,所以我们需要为模块提供接口来注册。内核中各个组件都有相应的模块注册的接口(如注册和取消网络驱动程序、文件系统、协议等)这些接口很容易从其函数名识别出来,一般是以register_...和unregister_...开始的函数。 阅读全文
摘要:
自动装载模块除了使用以上命令工具外,内核模块可以在需要的时候自动装载到内核中。使用我们的签名介绍的工具装载模块和卸载模块需要用户的干预,而且处于安全原因只有根用户能使用insmod和rmmod来加载和卸载模块。虽然这样保证了安全,但却带来了不便。例如,当一个用户程序在运行过程中需要使用一个功能,但该功能的模块还没有加载到内核中,这就需要内核有能力自动调度模块到内核地址空间。 通常,在程序运行过程中如果需要的资源或某个设备驱动程序没有注册,内核会报错。你可以事先用内核函数request_模块申请需要的组件模块。为了使用这个函数,在配置内核时需要激活项Kernel Module Loaderre. 阅读全文
摘要:
管理内核模块内核模块由目标代码组成,它在运行时装载到内核地址空间并运行。在系统启动时,内核事先并不知道会有什么功能的模块会装载到系统中,所以模块必须自己通知内核,让相应的组件知道模块加载与否。当模块移走时,它也需要移走所有在内核地址空间对它的引用,释放占用的系统资源。这里有两个方法是用来完成以上任务的。init_模块:向内核注册由模块提供的所有功能cleanup_模块:撤销任何有init_模块所作的功能。这两根方法每个模块都需要实现,在进一步深入理解模块的工作原理之前,我们首先给出一些常规的命令,以便了解如何从内核外来管理模块,用户可以用以下工具来手动插入和卸载模块1.插入模块insmod模块 阅读全文