搜档网
当前位置:搜档网 › 代码大全核心checklist

代码大全核心checklist

代码大全核心checklist
代码大全核心checklist

为了更好的评估代码写的哪里有问题,我把《代码大全》里核心的部分checklist整理出来了,大家可以大概过一遍,不一定每写完一个程序都要一条一条的去检查,但心里应该有这么一

张检查表,在写代码和review代码时自然而然的想起来。

设计

设计是否经过多次迭代,并最终决定了最好的一个?

是否同时使用自上而下和自下而上的方法来解决设计问题?

类与类之间的交互关系是否已经设计为最小化?

设计被划分为层次吗?

你对把这一程序分解成为子程序,包和类的方式感到满意吗?

程序是不是易于维护?

设计是否精简?设计出来的每一个部分都绝对必要吗?

整体而言,你的设计是否有助于最小化偶然性和本质性的复杂度吗?

类的设计

你是否把程序中的类都看做是抽象数据类型了?是否从这个角度评估它们的接口了?

类是否有一个中心目的?

类的命名是否恰当?其名字是否表达了其中新目的?

类的接口是否展现了一致的抽象?

类的接口是否能让人清楚明白的知道如何用它?

类的接口是否抽象,使你能不必顾虑他是如何实现其服务的?你能把类看做黑盒子吗?

类提供的服务是否足够完整,让其它类无需动用其内部数据?

是否已从类中去除无关信息?

是否考虑过把类进一步分解?

在修改类时是否维持了其接口的完整性?

是否把成员的可访问性降到最小?

是否避免暴露类的数据成员?

类是否避免对其使用者,包括其派生类会如何使用它做了假设?

类是否不依赖于其它类?它是松散耦合吗?

继承是否只用来建立一个is a关系?派生类是否遵循了LSP原则。

继承层次是否很浅?

类中是否只有大约七个或者更少的成员?

是否把类直接或者间接调用其他类的子程序的数量减到最少?

类是否在绝对必要时才与其他类写作?

是否在构造函数中初始化了所有的数据成员?

子程序

创建子程序的理由充分吗?

一个子程序中所有适合单独提出的部分是不是已经被提出到单独的子程序中了?

过程的名字是否用了强烈、清晰的动词加宾语的词组,函数的名字是否描述了其返回值?子程序的名字是否描述它所作的全部事情?

子程序是否具有强烈的功能上的内聚性?

子程序之间是否有较松散的耦合?子程序与其它子程序之间的连接是否是最小的,明确的,可见的,灵活的?

子程序的长度是否是由其功能和逻辑自然确定,而非遵循任何人为的编码标准?

子程序的参数表是否表现出一种具有整体性且一致的抽象?

子程序参数的排列顺序是否合理?是否与类似的子程序的参数排列相符?

接口假定是否在文档中说明?

子程序的参数是否没有超过7个?

是否用到了每一个输入参数,是否用到了每一个输出参数?

子程序是否避免了把输入参数用作工作变量?

如果子程序是一个函数,那么它是否在所有可能的情况下都能返回一个合法的值?

防御式编程

子程序是否保护自己免遭有害输入数据的破坏?

你用断言来说明编程假定吗?其中包括了前条件和后条件了吗?

断言是否只说明从来不应该发生的情况?

你是否在架构或者高层设计中规定了一组特定的错误处理技术?

你是否在架构或者高层设计中规定了是让错误处理更倾向于健壮性还是正确性?

代码中用到辅助调试的代码了吗?

在防御式编程时引入的代码量是否适宜,既不过多也不过少?

你在项目中定义了一套标准化的异常处理方案吗?

如果可能的话,是否在局部处理了错误而不是把它当成一个异常跑出去?

所有异常是否都与抛出他们的子程序在同一抽象层次上?

每个异常是否包含了关于异常发生的所有背景信息?

代码中是否没有空的catch语句?

检查有害输入数据的代码是否也检查了故意的缓冲区溢出,SQL注入,HTML注入,整数溢出及其他恶意输入数据?

是否检查了所有的错误返回码?

是否捕获了所有的异常?

出错消息中是否避免出现有助于攻击者攻入系统所需的信息?

伪代码

是否检查过已满足所有的先决条件?

定义好这个类要解决的问题了吗?

高层次的设计是否清晰?能给这个类和其中的每个子程序起一个好的名字吗?

考虑过该如何测试这个类及其中的每个子程序吗?

关于效率的问题,你主要从稳定的接口和可读的实现这两个角度考虑吗?还是主要从满足资源和速度的预期目标的角度考虑过呢?

从标准库函数和其它代码库中寻找过可用的子程序或者组件吗?

从参考书中查过有用的算法了吗?

是否用详尽的伪代码设计好每一个子程序?

你在脑海里检查过伪代码吗?这些伪代码容易理解吗?

关注过那些可能让你重返设计的警告信息了吗?

是否把伪代码正确的翻译成代码了?

你反复使用伪代码编程过程了吗?

在做出假定的时候有没有对它们加以说明?

已经删除了那些冗余的注释了吗?

你是否采取了几次迭代中最好的那个结果?还是在第一次迭代之后就停止了?

你完全理解你的代码了吗?这些代码是否容易理解?

变量

变量声明位置靠近变量第一次使用的位置吗?

尽可能在变量声明的同时初始化变量吗?

计数器和累加器经过适当初始化了吗?如果需要再一次使用,之前重新初始化了吗?

适当的重新初始化“需要重复执行的代码里的变量”了吗?

代码在通过编译器编译的时候是不是没有警告信息?你启用了所有可用的警告信息了吗?如果语言允许隐式声明,你为由此可能引发的问题做好补偿措施了吗?

如果可能,所有变量都被定义为具有最小的作用域吗?

各变量的引用点都尽可能集中在一起吗?对同一个变量的两次相邻引用,或者变量的整个生命期都这样做了吗?

控制结构符合数据类型吗?

所有声明的变量都用了吗?

变量都在合适的时间绑定了吗?也就是说你有意识的在晚期绑定所带来的灵活性和增加复杂度之间做出平衡了吗?

每个变量都有且仅有一项用途吗?

每个变量的含义都很明确且没有隐含含义吗?

变量命名

名字完整并且准确的表达了变量所代表的含义吗?

名字足够长,可以让你无需苦苦思索吗?

如果有计算限定符,它被放在名字后面吗?

名字中用Count或者index来掉提Num了吗?

循环小标的名字有意义吗?

所有临时的变量都重新命名为更有意义的名字了吗?

当布尔变量为真时,变量能准确表达其含义吗?

枚举中的名字含有能够表示其类别的前缀或者后缀吗?

具名常量是根据它所代表的抽象实体儿不是它所代表的数字来命名的吗?

命名规则能够区分局部数据,类的数据和全局数据吗?

规则能够区分类型名,具名常量,枚举类型和变量名吗?

规则能够在编译器不强制检测只读参数的语言里表示出子程序的输入参数吗?

规则能尽可能地与语言的标准规则兼容吗?

名字为可读性而加以格式化了吗?

是否避免只为了省一个字符而缩写的情况?

所有单词的缩写方式都一致吗?

名字能够读出来吗?

避免使用容易被看错和读错的名字吗?

在缩写对照表里对端名字做出说明了吗?

基本数据类型

代码中避免使用神秘数值了吗?

代码考虑了除零错误了吗?

类型转换很明显吗?

如果一条语句中存在两个不同类型的变量,那么这条语句会像你期望的那样求值吗?代码避免了混合类型比较吗?

使用整数除法表达式能按预期的那样工作吗?

整数表达式避免整数溢出问题了吗?

代码避免了对数量级相差具体大浮点数做加减运算了吗?

代码系统地阻止了舍入错误的发生吗?

代码避免对浮点数值做等量比较了吗?

代码避免使用神秘字符和字符串了吗?

使用字符串时避免了off-bye-one错误了吗?

程序用额外的布尔变量来说明条件判断了吗?

程序用额外的布尔变量来简化条件判断了吗?

程序用枚举类型而非具名常量来提高可读性和可修改行了吗?

当变量不能用true和false表示的时候,程序用枚举类型来取代布尔变量了吗?

针对枚举类型的才测试检测了非法数值了吗?

把枚举类型的第一项条目保留为“非法的”了吗?

具名常量使用一致吗?没有在某些位置使用具名常量又在其他位置使用文字量?

所有的数组下标都没有超出数组边界吗?

数组引用没有出现off-by-one的错误吗?

所有的多维数组的下标顺序都正确吗?

在嵌套循环里,把正确的变量用于数组下标来避免下标错乱吗?

不常见的数据类型

你使用结构体而不是使用单纯的变量来组织和操作相关的数据吗?

你考虑过创建一个类来代替使用结构体吗?

所有的变量是否都是局部或者是类范围的?除非绝对有必要才是全局的?

你对所有的全局变量都加以文档说明吗?

避免使用伪全局数据,即被四处传递且含有杂乱数据的的巨大对象吗?

用访问器子程序来取代全局数据了吗?

把访问其子程序和数据组织到类里了吗?

访问器子程序提供了一个在底层数据类型实现之上的抽象层吗?

所有相关的访问器子程序都位于同一抽象层吗?

把指针操作隔离在子程序里了吗?

指针引用合法吗?或者指针有可能成为悬空指针吗?

代码在使用指针之前检查它的有效性了吗?

在使用指针所指向的变量之前检查其有效性了吗?

指针用完后被设置为空了吗?

就可读性而言,代码用了所有需要使用的指针变量了吗?

链表中的指针是按正确的顺序加以释放的吗?

程序分配了一片保留的内存后备区域,以便在耗尽内存的时候能够优雅地退出吗?是不是在没有其他方法可用的情况下最终才使用指针的?

组织直线型代码

代码使得语句之间的依赖关系变得明显吗?

子程序的名字使得依赖关系变得明显吗?

子程序的参数使得依赖关系变得明显吗?

如果依赖关系不明确,你是否用注释进行了说明?

你用“内务管理变量”来检查代码中关键位置的顺序依赖关系了吗?

代码容易按照自上而下的顺序阅读吗?

相关的语句组织在一起吗?

把相对独立的语句组放进各自的子程序里吗?

使用条件语句

代码的正常路径清晰吗?

if-then测试对等量分支的处理方式正确吗?

使用了else字句并加以说明了吗?

else字句用的对吗?

用对了if和else字句,即没有把它们用反吗?

需要执行的正常情况维护if而不是else字句里吗?

if-then-else-if把复杂的判断封装到布尔函数里了吗?

if-then-else-if先判断最常见的情况了吗?

if-then-else-if判断包含所有的情况吗?

if-then-else-if是最佳的实现吗?比Case语句还要好吗?

case子句排序的有意义吗?

case子句的每种情况操作简单吗?必要的时候调用了其它子程序了吗?

case语句检测的是一个真实的变量,而不是为了滥用case语句而而刻意制造变量吗?默认字句用的合法吗?

用默认字句来检测和报告意料之外的情况了吗?

在c,c++和java里,每一个case的末尾有一个break吗?

循环

在合适的情况下用while循环取代for循环了吗?

循环是由内到外创建的吗?

是从循环的头部进入循环的吗?

初始化代码是直接位于循环前面吗?

循环是无限循环或者事件循环吗?阿德结构是否清晰?

避免使用像for i = 1 to 9999这样的代码吗?

如果这是一个c++,c或java中的for循环,那么把循环头留给循环控制代码了吗?

循环使用了{}及其等价物来括上循环体,以防止因修改不当而出错吗?

循环体内有内容吗?他是非空的吗?

把内务处理集中地放在循环开始或者循环结束处了吗?

循环像定义良好的子程序那样只执行一件操作吗?

循环短的足以一目了然吗?

循环的嵌套层次不多于3层吗?

把长循环的内容提取成单独的子程序吗?

如果循环很长,那么它非常清晰吗?

如果这是一个for循环,那么其中的代码有没有随意修改循环下标值?

是否把重要的循环下标值保存在另外的变量里,而不是在循环体外使用该循环下标?

循环下标是序数类型或者枚举类型,而不是浮点类型吗?

循环下标的名字有意义吗?

循环避免了下标串话问题吗?

循环是在所有可能的条件下都能终止吗?

如果建立了某种安全计数器标准,循环使用了安全计数器了吗?

循环的退出条件清晰吗?

如果使用了break或者continue,那么它们用对了吗?

不常见的控制结构

每一个子程序都仅在有必要的时候才使用return吗?

使用return有助于增强可读性吗?

递归子程序中包含了停止递归的代码吗?

子程序用安全计数器来确保子程序能停下来吗?

递归只位于一个子程序里面吗?

子程序递归深度处于程序栈容量可以满足的限度内吗?

递归是实现子程序的最佳方法吗?它要好于简单的迭代吗?

是否在万不得已的时候才使用goto?如果用了goto,是否仅仅处于增强可读性和可维护性呢?如果处于效率因素而使用的goto,那么对这种效率上的提升做出衡量并且加以说明了吗?

一个子程序里最多只用了一个goto标号吗?

所有的goto都向前跳转,而不是向后跳转吗?

所有的goto标号都用到了吗?

表驱动法

你考虑过把表驱动法作为复杂逻辑的替代方案吗?

你考虑过把表驱动法作为复杂继承结构的替代方案吗?

你考虑过把表数据存储在外部并在运行期间读入,以便在不修改代码的情况下就可以改变这些数据吗?

如果无法用一种简单的数组索引去访问表,那么你把计算访问键值的功能提取成单独的子程序,而不是在代码中重复地计算键值吗?

一般控制问题

表达式中用的是true和false,而不是1和0吗?

布尔值和true以及false做比较是隐式进行的吗?

对数值做比较是显式进行的吗?

有没有通过增加新的布尔变量,使用布尔函数和决策表来简化表达式?

布尔表达式是用肯定形式表达的吗?

括号配对吗?

在需要括号来明确的地方都使用括号了吗

判断是按照数轴顺序编写了吗?

如果适当的话,java中的判断用的是a.equals(b)方式,而没有用a==b方式吗?

空语句表述得明显吗?

用重新判断部分条件,转换成if-then-else或者case语句、把嵌套代码提取成单独的子程序、换成一种更面向对象的设计或者其他的改进方法来简化嵌套语句了吗?

如果一个子程序的决策点超过10个,那么能提出不重新设计的理由吗?

- 全文完 -

手机结构设计checklist

手机结构设计检查表一.通用性项目 二.功能性项目 1.镜片Sub Len s 镜片的工艺(IMD/IML/模切/注塑+硬化/电铸+模切)

镜片的厚度及最小厚度 IMD/IML/注塑镜片P/L,draft,radius? 固定方式及定位方式,最小粘接宽度是否大于1.5mm? 窗口(VA&AA)位置是否正确 镜片本身及固定区域有无导致ESD问题的孔洞存在 周边的电铸或金属件如何避免ESD 小镜片周边的金属是否会对天线有影响(开盖时) 2.转轴Hing e 转轴的直径 转轴的扭力 打开角度(SPEC) 有无预压角度(开盖预压为4-6度,建议5度 装拆有无空间问题? 固定转轴的壁厚是多少,材料(推荐PC GE C1200HF或者三星HF1023IM) 转轴配合处的尺寸及公差是否按照转轴SPEC? 3.连接FLIP(SLIDE)/BASE的FPC 1) FPC的材料,层数,总厚度 2) PIN数,PIN宽PIN距 3)最外面的线到FPC边的距离是多少(推荐0.3mm) 4) FPC内拐角处最小圆角要求大于1mm,且内拐角有0.20mm宽的布铜,防止折裂. 5)有无屏蔽层和接地或者是刷银浆? 6) FPC的弯折高度是多少(仅限于SLIDE类型) 7) FPC与壳体的长度是否合适,有无MOCKUP 验证 8)壳体在FPC通过的地方是否有圆角?多少?推荐大于0.20mm. 9) FPC与壳体间隙最小值?(推荐值为0.5mm) 10) FPC不在转轴内的部分是否有定位及固定措施? 11)对应的连接器的固定方式 12) FPC和连接器的焊接有无定位要求?定位孔? 13)补强板材料,厚度 4.LCD 模组 主副LCD的尺寸是否正确及最大厚度 主副LCD的VA/AA区是否正确 主副LCD视角,6点钟还是12点钟? 副LCD是黑白/OLED/CSTN/TFT?相应的背光是什么? 副板是用FPC还PCB? PCB/FPC的厚度及层数. LCD模组是由供应商整体提供吗? 如果不是,主LCD如何与PCB/FPC连接?连接器类型及高度or HOTBAR? 副LCD如何与PCB/FPC连接?连接器类型及高度or HOTBAR? FPC/PCB上有无接地?周边有无露铜 有无SHIELDING屏蔽?厚度,材料,如何接地? 元件的PLACEMENT图是否确定? 有无干涉? 主副LCD的定位及固定 LCD模组的定位及固定 LCD模组有无CAMERA模组,是否屏蔽?

c语言程序代码

1.要求在屏幕上输出下一行信息。 This is a c program. 程序: #include int main() { printf(“this is a c program.\n”); return 0; } 2.求两个整数之和。 程序: #include int main() { int a,b,sum; a=122; b=234; sum=a+b; printf(“sum is %d\n”,sum); return 0; } 3.求两个整数之间的较大者。

#include int main() { int max(int x,int y); int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("max=%d\n",c); return 0; } int max(int x,int y) { int z; if(x>y)z=x; else z=y; return(z); } 4.有人用温度计测量出华氏发表示的温度(如69°F),今要求把 她转换成以摄氏法表示的温度(如20℃)。 公式:c=5(f-32)/9. 其中f代表华氏温度,c代表摄氏温度。

#include int main() { float f,c; f=64.0; c=(5.0/9)*(f-32); printf("f=%f\nc=%f\n",f,c); return 0; } 5.计算存款利息。有1000元,想存一年。有一下三种方法可选: (1)活期:年利率为r1;(2)一年定期:年利率为r2;(3)存两次半年定期:年利率为r3。分别计算一年后按三种方法所得到的本息和。 程序: #include int main() { float p0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3; p1=p0*(1+r1); p2=p0*(1+r2);

C语言程序设计 入门源代码代码集合

#include <> void print_star(void) { printf("*****************\n"); } void print_welcome(void) { printf("C language,welcome!\n"); } void main() { print_star(); print_welcome(); print_star(); getchar(); } 演示2 #include "" int sum(int i,int j) { return(i + j); } void main() { int n1,n2; printf("input 2 numbers:\n"); scanf("%d%d",&n1,&n2); printf("the sum = %d\n",sum(n1,n2)); getchar(); } 演示3 #include "" int maxnum(int,int,int); main() { int a,b,c; printf("Please enter 3 numbers:\n"); scanf("%d,%d,%d",&a,&b,&c); printf("Maxnum is %d\n",maxnum(a,b,c)); return 0;

} int maxnum(int x,int y,int z) { int max=x; if(y>max) max = y; if(z>max) max = z; return max; } 演示4 #include <> int s1(int n) { int j,s; s=0; for(j=1;j<=n;j++) s=s+j; return s; } int sum(int n) { int i,s=0; for(i=1;i<=n;i++) s=s+s1(i); return s; } void main() { int n; printf("n:"); scanf("%d",&n); printf("s=%d\n",sum(n)); } 演示5 #include <>

C语言程序设计-入门源代码代码集合

演示1 #include void print_star(void) { printf("*****************\n"); } void print_welcome(void) { printf("C language,welcome!\n"); } void main() { print_star(); print_welcome(); print_star(); getchar(); } 演示2 #include "stdio.h" int sum(int i,int j) { return(i + j); } void main() { int n1,n2; printf("input 2 numbers:\n"); scanf("%d%d",&n1,&n2); printf("the sum = %d\n",sum(n1,n2)); getchar(); } 演示3 #include "stdio.h" int maxnum(int,int,int); main() { int a,b,c; printf("Please enter 3 numbers:\n"); scanf("%d,%d,%d",&a,&b,&c); printf("Maxnum is %d\n",maxnum(a,b,c));

return 0; } int maxnum(int x,int y,int z) { int max=x; if(y>max) max = y; if(z>max) max = z; return max; } 演示4 #include int s1(int n) { int j,s; s=0; for(j=1;j<=n;j++) s=s+j; return s; } int sum(int n) { int i,s=0; for(i=1;i<=n;i++) s=s+s1(i); return s; } void main() { int n; printf("n:"); scanf("%d",&n); printf("s=%d\n",sum(n)); } 演示5

一些比较简c语言程序源代码

/**返回的long型的最大值是startLongValue+count-1(产生一个随机数) * param needCount * param count * param startLongValue * return */ public static List randomNoRepeatLongArray(int needCount,int count,long startLongValue){ //这种情况会出现无限循环的 if(needCount>count) return null; Random random = new Random(); int[] ints = new int[count]; for(int i=0;i list = new ArrayList(); while(list.size() #include #include

C语言程序设计(医院信息管理系统)附源代码

专业设计报告 课程名称: C 语言程序设计 课题名称:医院信息管理系统 专业班别: 12本计算机科学与技术二班 姓名: 学号: 指导教师: 设计日期: 2012-5-25

教师评语:

成绩评定: 指导教师签名: 日期: 2012 年月日 课程设计题目医院信息管理程序 作者姓名: 同组成员: 摘要利用结构体存储每个病人的信息和每种药品的信息,并使用链表存储全部病人的信息;能完成对医院内所有病人信息的注册、查询、删除和修改等操作,同时又能对药房内库存的药品进行查询;可以将链表中的病人信息保存在文件中,并且可以对文件中的病人信息进行读取与显示 1.专业设计目的

1、掌握链表的操作,包括链表节点的创建、释放还有链表的遍历 2、掌握对二进制文件的创建、增添等基本操作。 3、熟悉C语言函数的使用方法,学会模块化处理问题以及多个源文件的处理方式 2.设计基本要求( 1、使用结构体来存储病人的信息,结构体中包括病的id号码、姓名、病历以及消费信息,并用链表将所有病人信息整合。 2、用文件来存储链表的信息以便下次再使用该程序时载入病人信息 3、能够实现病人信息的注册、病人信息的查询、病人消费统计、保存链表信息、载入链表信息、查询库存等几项功能。 4、要求用四个源文件、、、 5、系统完成后应实现类似下面所示界面

3、算法分析 1、数据结构 设计链表中的一个节点存储一个病人的信息,使用下面的结构体类型定义:struct patient{ char id[10]; char name[10]; char casehist[200]; int cost[3]; int transfusion;

产品结构设计等方面的checklist

模具的checklist表: 产品名称模具编号材料收缩率 序号内容自检确认 1与客户交流清楚外观面位置及外观要求如镜面,皮纹,亚光等。 2清楚产品的安装方向,产品的出模方向及它们之间的关系。 3产品在出模方向无不合理结构。 4壁厚合理,壁厚均匀,没有过薄,过厚及壁厚突变。 5圆角齐全,所有外观面倒圆角(特殊要求除外),所有非外观面倒圆角,非外观面圆角足够大。且圆角处壁厚均匀,无漏掉的圆角。 6脱模斜度齐全,正确,无放反的情况,脱模斜度足够大,已用DRAFTCHECK命令进行检查。7透明件,皮纹处理的外观面,插穿面脱模斜度足够大,满足标准。 8透明件已考虑外观效果,可见结构,并与客户进行交流。 9需贴膜的件已经考虑到膜在实际安装方向的定位, 10电镀件装配考虑到镀层厚度和装配间隙, 11一面用插接,一面用卡爪的结构已考虑到装配过程中是否有与外观干涉,是否有造成外观面破坏的情况,卡爪是否易断 12加强筋高度,宽度,脱模斜度结构及工艺均合理。 13外观件检查产品结构如壁厚,加强筋(尤其是横在制品侧壁的筋考虑与侧壁的防缩)、螺钉柱等不会引起缩水,已采取防缩措施。 14产品变形,收缩等注塑缺陷轻微,且已与客户协商,得到客户的书面认可。 15需出斜顶,滑块,抽芯的结构活动距离及空间足够,结构能否简化。 16产品无引起模具壁薄,尖角等不合理结构。 17带嵌件的产品考虑嵌件在模具中的牢固固定,内桶底的嵌件要求将嵌件和包嵌件的胶位合并到一起作为模具嵌件。 18与客户交流清楚分型面的位置,外观面滑块,抽芯允许的夹线位置。 19备份产品已检查所有修模报告及更改记录并进行了更改,重要装配尺寸进行了样件的实际测绘验证。 笔记本的CHECKLIST DesignCheckListBySub-Assy. 1.U-Case 1-1上下盖嵌合部份 1-1-1上下盖PL是否Match 1-1-2Lip是否完成,是否符合外观要求(修饰沟) 1-1-3侧壁之TAPER/与下盖是否配合/考虑到开模 1-1-4上下盖之配合卡勾共几处,是否位置match 1-1-5卡勾嵌合深度多少 1-1-6卡勾两侧有无夹持Rib,拆拔时是否易断裂 1-1-7卡勾是否造成侧壁缩水(如果太厚) 1-1-8公模内面形状(如各处高度). 1-1-10PL切口处是否有刀口产生(全周Check) 1-2BOSS 1-2-1上下盖BOSS孔位是否相合 1-2-2BOSS尺寸是否标准化,内缘有没有倒角

C语言程序设计医院信息管理系统附源代码样本

专业设计报告 课程名称: C 语言程序设计 课题名称: 医院信息管理系统 专业班别: 12本计算机科学与技术二班姓名: 学号: 指导教师: 设计日期: -5-25

教师评语: 成绩评定: 指导教师签名: 日期: 年月日 课程设计题目医院信息管理程序

作者姓名: 同组成员: 摘要利用结构体存储每个病人的信息和每种药品的信息, 并使用链表存储全部病人的信息; 能完成对医院内所有病人信息的注册、查询、删除和修改等操作, 同时又能对药房内库存的药品进行查询; 能够将链表中的病人信息保存在文件中, 而且能够对文件中的病人信息进行读取与显示1.专业设计目的 1、掌握链表的操作, 包括链表节点的创立、释放还有链表的遍历 2、掌握对二进制文件的创立、增添等基本操作。 3、熟悉C语言函数的使用方法, 学会模块化处理问题以及多个源文件的处理方式 2.设计基本要求( 1、使用结构体来存储病人的信息, 结构体中包括病的id号码、姓名、病历以及消费信息, 并用链表将所有病人信息整合。 2、用文件来存储链表的信息以便下次再使用该程序时载入病人信息 3、能够实现病人信息的注册、病人信息的查询、病人消费统计、保存链表信息、载入链表信息、查询库存等几项功能。 4、要求用四个源文件main.c、link.c、find.c、save_load.c 5、系统完成后应实现类似下面所示界面

3、算法分析 1、数据结构 设计链表中的一个节点存储一个病人的信息, 使用下面的结构体类型定义: struct patient{ char id[10]; char name[10]; char casehist[200]; int cost[3]; int transfusion; int surgery; struct patient *next; };

运动会c语言源程序代码

#include #include #include #include #define n 2 #define m 1 #define w 1 #define null 0 typedefstruct { intitemnum; int top; int range[5]; int mark[5]; }itemnode; typedefstruct { intschoolnum; int score; intmscore; intwscore; itemnode c[m+w]; }headnode; headnode h[n]; voidinputinformation() { inti,j,k,s; for(i=0;i

scanf("%d",&h[i].c[j].itemnum); printf("*****取前3名or前5名:"); scanf("%d",&h[i].c[j].top); printf("*****获得几个名次:"); scanf("%d",&k); for(s=0;s<5;s++) h[i].c[j].range[s]=0, h[i].c[j].mark[s]=0; for(s=0;s

汽车内外饰工艺数据checklist

仪表板内饰工艺数据checklist 1、是否根据确定方案进行设计; 2、数模分层符合公司标准; 3、零部件编号是否符合标准; 4、电子文档命名、版本编制是否符合规范; 5、零部件坐标系的统一性(模型一律采用整车坐标系); 6、检查**件与点云偏差,车身结构件数模有安全配合是否的面与测量云的偏差± 0.3;自由曲面数模与测量云偏差±1;安装孔位与测量点云的偏差± 0.5; 7、明细表中件号、数模是否对应; 8、零件成型方法是否合格; 9、仪表板最高的及两端点,校核仪表板位置参数,是否满足人机工程要求; 10、各零件的成型工艺是否确定(如注射、挤出、模压、压延、铸型、吹塑等成型的方法); 11、脱模方向是否正确; 12、检查塑料零件壁厚是否均匀一致,壁厚不均匀处易产生气泡和收缩变形,甚至产生断裂; 13、检查数模内部是否有凹陷(即复角部分),凹陷存在不便出模; 14、选用合适的脱模斜度和适当的脱模剂,脱模斜度大小与塑料件材料的性质、厚度、形状等有关;

15、载塑料零件上,是否避免锐角及直角过渡; 16、安装方式是否正确; 17、正确的选择定位尺寸基准,应尽可能使设计基准和工艺基准重合,避免装配过程中,误差的积累过大; 18、经常所装的零部件,为了更换方便,应以螺栓成自攻螺钉和簧片螺母配合紧固连接; 19、明确安装工具,预留所需的被动空间; 20、在安装过程中,需要进行装配调整的零部件要考虑孔位的合理布置及适当地预留间隙调整; 21、考虑到仪表板内线束的固定,明确线卡固定点及固定方式,钣金上的线束的过孔是否加以保护套成翻边结构; 22、检查保险杆外表面在X方向是否有负面保证模具成型后外表面的完整和美观; 23、检查外表面面与面的偏差是否超标; 24、检查外表面可增厚性; 25、检查零件的强度是否适当,是否有强度薄弱的区域(薄弱的区域需增加加强筋); 26、检查零件的材料选用是否适当(如毛面需要镀铬地零件应选用同ABS 等可镀铬材料,不能选用PP难镀的材料; 27、在塑料件结构设计中,为避免转角处应刀集中,应采用圆弧过渡,这对于模具制造及使用寿命足很有利的; 28、对于保险杆要进行相关国家法规的检查(接近角、离车角等);

c语言动画程序源码

C语言动画程序 #include #include #include #include #define pi 3.1415926535 double ca3mm1(double m1,double m2); double ca3fm1(double cosine,double sine); double ca5fm2(double a6m,double a5m,double a4m,double a4f,int shang); double ca6fm2(double a4m ,double a4f,double a5m , double a5f); char inbox(int x,int y,int x1,int y1); char buf(); main() { double m=3.0; double xo=100.0,yo=200.0,a1=30.0,t1=pi; double xc=xo+m*a1,yc=yo; double a2=8.0,a3,a4=25.0,a5=30.0,a6=20.0,a7=35.0; double t2,t3,t4,t5,t6,t7; double xo1=xo+m*150,yo1=yo; double xc1=xo1-m*a1,yc1=yo1; double i,j,k; double l1; double n=116.1,nt; initscreen(); setfillstyle(SOLID_FILL,DARKGRAY); bar(0,0,640,480); mybutton(10,10,"BEGIN",1,0); mybutton(500,10,"EXIT",1,0); line(0,69,640,69); mouseinit(); changemousecross(); setmousexy(320,20); mouseshow(); setmousearea(0,0,640,60); do{ if(inbox(10,10,70,26)&&button()==1) {mousehide(); mybutton(10,10,"BEGIN",0,0); mouseshow(); mousehold(); mousehide(); mybutton(10,10,"BEGIN",1,7); mouseshow(); break; }

(完整版)手机结构设计检查表-checklist-重要

一. 塑胶件 Plastic components 1.有无做干涉检查? If interference test 2.有无做draft检查? If draft test 3.有无透明件背后丝印/喷涂要求?如果有,不能有任何特征在该面上. If requirements of silk printing or painting in the back of the transparency components, and with no features on it. 4.壳体材料, Housing material 5.壳体最小壁厚,侧面是否厚度小于1.2mm. If the least thickness of the side wall of the housing less than 1.2mm 6.设计考虑的浇口位置,有无避位? If anti-interference according with the gate 7.熔接线位置是否会是有强度要求的地方? If weld line with requirements of intensity 8.壁厚突变1.6倍以上处有无逃料措施? If wall thickness break over 1.6 times with slope transition 9.壳体对主板的定位是否足够(至少四点) If housing locating to main board enough(at least with four points) 10.壳体对主板的固定方式,如果是螺丝柱夹持,是否会影响附近的键盘手感? If the screw nipping method of housing to PCBA affect the near key click 11.壳体之间的固定及定位应该有四颗螺丝+每侧面两个卡扣+顶面两卡扣+周边唇边 If housing fixing and locating with four screws and each side with two snap fits and upper side two snap fits and lip around. 12.螺丝是自攻还是NUT?螺径?单边干涉量?配合长度?螺丝头的直径?( 机械螺钉锁3 牙,自攻螺钉5牙以上) If screws manner, such as self-tapping or nut, the screw diameter? One side interference quantity? Matching length? The screw cap diameter?(Over 3 pitch assembly length mechanical screw, over 5 self-tapping screw) 13.螺柱的直径?孔的直径?螺柱壁厚? The screw boss diameter? The boss hole diameter? The thickness of boss wall ? 14.螺丝面是定位面吗?测量基准是什么? If screw surface locating surface? The measure benchmark? 15.唇边的宽度(1/2壁厚左右),高度?之间的配合间隙是否小于0.10mm? The lip width(about1/2 wall thickness),height? If the assembling clearance less than 0.10mm 16.卡扣壁厚/宽度?公卡扣壁厚是否小于0.70mm?卡扣干涉量是否小于0.5mm? The clip thickness/width? If male clip thickness less than 0.70mm, or clip interference less than 0.5mm 17.卡扣导入方向有无圆角或斜角? If clip guide direction with R or bevel

C语言程序设计(医院信息管理系统)附源代码

C语言程序设计(医院信息管理系统)附源代码

————————————————————————————————作者:————————————————————————————————日期:

专业设计报告 课程名称: C 语言程序设计课题名称:医院信息管理系统 专业班别:12本计算机科学与技术二班 姓名: 学号: 指导教师: 设计日期:2012-5-25

教师评语: 等级 优良中及格差项目 专业设计目的 设计基本要求 算法分析 源程序代码 源程序代码测试 设计总结 成绩评定: 指导教师签名: 日期:2012 年月日

课程设计题目医院信息管理程序 作者姓名: 同组成员: 摘要利用结构体存储每个病人的信息和每种药品的信息,并使用链表存储全部病人的信息;能完成对医院内所有病人信息的注册、查询、删除和修改等操作,同时又能对药房内库存的药品进行查询;可以将链表中的病人信息保存在文件中,并且可以对文件中的病人信息进行读取与显示 1.专业设计目的 1、掌握链表的操作,包括链表节点的创建、释放还有链表的遍历 2、掌握对二进制文件的创建、增添等基本操作。 3、熟悉C语言函数的使用方法,学会模块化处理问题以及多个源文件的处理方式 2.设计基本要求( 1、使用结构体来存储病人的信息,结构体中包括病的id号码、姓名、病历以及消费信息,并用链表将所有病人信息整合。 2、用文件来存储链表的信息以便下次再使用该程序时载入病人信息 3、能够实现病人信息的注册、病人信息的查询、病人消费统计、保存链表信息、载入链表信息、查询库存等几项功能。 4、要求用四个源文件main.c、link.c、find.c、save_load.c 5、系统完成后应实现类似下面所示界面

C语言动画程序源码

C语言动画程序 #include <> #include <> #include <> #include <> #define pi double ca3mm1(double m1,double m2); double ca3fm1(double cosine,double sine); double ca5fm2(double a6m,double a5m,double a4m,double a4f,int shang); double ca6fm2(double a4m ,double a4f,double a5m , double a5f); char inbox(int x,int y,int x1,int y1); char buf(); main() { double m=; double xo=,yo=,a1=,t1=pi; double xc=xo+m*a1,yc=yo; double a2=,a3,a4=,a5=,a6=,a7=; double t2,t3,t4,t5,t6,t7; double xo1=xo+m*150,yo1=yo; double xc1=xo1-m*a1,yc1=yo1; double i,j,k; double l1; double n=,nt; initscreen(); setfillstyle(SOLID_FILL,DARKGRAY); bar(0,0,640,480); mybutton(10,10,"BEGIN",1,0); mybutton(500,10,"EXIT",1,0); line(0,69,640,69); mouseinit(); changemousecross(); setmousexy(320,20); mouseshow(); setmousearea(0,0,640,60); do{ if(inbox(10,10,70,26)&&button()==1) {mousehide(); mybutton(10,10,"BEGIN",0,0); mouseshow(); mousehold(); mousehide(); mybutton(10,10,"BEGIN",1,7); mouseshow(); break; }

C语言编程项目源代码

常用的C语言编程实例-实训01 1.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?代码: #include "stdio.h" #include "conio.h" main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } getch(); } 2.输入某年某月某日,判断这一天是这一年的第几天? 代码: #include "stdio.h" #include "conio.h" main() { int day,month,year,sum,leap; printf("\nplease input year,month,day\n"); scanf("%d,%d,%d",&year,&month,&day); switch(month) /*先计算某月以前月份的总天数*/ { case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default:printf("data error");break; }

c语言程序设计课程学籍管理系统源代码

附表1.程序源码 #include #include #include #include #define N 100 struct student { char num[13]; char name[18]; float math; float english; float cprogram; float circuit; float law; float pingjun; float score[5]; }; void mainprint(); void scoreprint(); void studentprint(); void scoreInput(); void scoreStat(); void studentStatus(); void bukao(); /*生成并打印补考通知单*/ void tuixue(); /*生成并打印退学通知单*/ void xinmingdan(); /*生成并打印新名单*/ void sortAnhao(); /*按学号排序*/ void jisuanPingjun(); /*计算平均分并排序*/ void tongjiFenshu(); /*统计分数段*/ void fenxi(); /*分析学生成绩,算出不及格门数*/\

void mynew(); /*创新功能*/ void outstudent(); void outdanke(); void teshutuixue(); void main() { char choose='\0',yes_no='\0'; do { system("color 4f"); system("cls"); mainprint(); printf(" "); choose=getche( ); switch(choose) { case'1':scoreInput();break; /*成绩录入*/ case'2':scoreStat();break; case'3':studentStatus();break; case'4':mynew();break; case'0':break; default:printf("\n %c是非法选项!\n"); break; } if(choose=='0') break; printf("\n 即将进入主菜单,要继续选择吗(Y/N)?\n"); do { yes_no=getche( ); }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); }while(yes_no=='y'||yes_no=='Y'); } void mainprint() { printf(" |******************************************|\n"); printf(" | 欢迎使用学籍管理系统|\n"); printf(" |******************************************|\n"); printf(" | 请输入选项编号(0~4) |\n"); printf(" |------------------------------------------|\n"); printf(" | 1--录入成绩|\n"); printf(" | 2--统计成绩|\n"); printf(" | 3--处理学籍|\n"); printf(" | 4--创新功能|\n"); printf(" | 0-- 退出|\n");

经典C语言源代码

经典C语言源代码 1、(1)某年某月某日是星期几 #include

??{ ?case 1:printf(”Monday\n");break; ??case2:printf(”Tuesday\n");break; ??case 3:printf("Wednesday\n”); break; ?case 4:printf("Thursday\n"); break; ?case 5:printf("Friday\n"); break; ??case6:printf(”Saturday\n”); break; case 0:printf("Sunday\n"); break; ?} ?} ?return 0; } 1、(2)某年某月某日是第几天(一维数组) #include "stdio。h” void main(){ ?int i, flag, year, month, day, dayth; ?intmonth_day[] ={ 0,31,28,31,30,31,30,31,31,30,31,30,31};...文档交流仅供参考... ?printf("请输入年/月/日:\n"); ?scanf_s("%d/%d/%d",&year, &month, &day); dayth = day; ?flag = (year %400 == 0)|| (year % 4 == 0 && year % 100 != 0);...文档交流仅供参考...

经典C语言程序50例(1-50)

经典C语言程序50例(1-50) 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++)/*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } } ============================================================== 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1;

相关主题