首页 电脑 电脑学堂 查看内容

一些国外程序的MD5加密类型和表

2010-1-23 11:43 1847 3

摘要:   yjps的博客   ------------------------------------------------------------------------------------  ...
关键词: pass md5 users members USER salt Forum phpBB Koobi Wordpress

头文件的使用** 把函数原型和常量定义放在一个头文件中是一个很好的编程习惯。例子:假设需要管理4个连锁的旅馆。对于预定住宿时间超过一天的人来说,第1天的收费是第1天的95%,而第3天的收费则是第2天的95%,等待。编写一个程序,对于指定的旅馆和住宿天数可以计算出收费总额。同时程序中要实现一个菜单,从而允许用户反复进行数据输入直到选择退出。源码:/* usehotel.c -- 旅馆房间收费程序 */#include <stdio.h>#include "hotel.h"int main(void){    int nights;    double hotel_rate;    int code;    while ((code = menu()) != QUIT)    {        switch (code)        {        case 1: hotel_rate = HOTEL1;            break;        case 2: hotel_rate = HOTEL2;            break;        case 3: hotel_rate = HOTEL3;            break;        case 4: hotel_rate = HOTEL4;            break;        default: hotel_rate = 0.0;            printf("Oops!\n");            break;        }        nights = getnights();        showprice(hotel_rate, nights);    }    printf("Thank you and goodbye.\n");    return 0;}/* hotel.c -- 旅馆管理函数 */#include <stdio.h>#include "hotel.h"int menu(void){    int code, status;    printf("\n%s%s\n", STARS, STARS);    printf("Enter the number of the desired hotel: \n");    printf("1) Fairfield Arms       2) Hotel Olympic\n");    printf("3) Chertworthy Plaza    4) The Stockeon\n");    printf("5) quit\n");    printf("%s%s\n", STARS, STARS);    while ((status = scanf("%d", &code)) != 1 ||            (code < 1 || code > 5))    {        if (status != 1)            scanf("%*s");        printf("Enter an integer from 1 to 5, please.\n");    }    return code;}int getnights(void){    int nights;    printf("How many nights are need? ");    while (scanf("%d", &nights) != 1)    {        scanf("%*s");        printf("Please enter an integer, such as 2.\n");    }    return nights;}void showprice(double rate, int nights){    int n;    double total = 0.0;    double factor = 1.0;    for (n = 1; n <= nights; n++, factor *= DISCOUNT)        total += rate * factor;    printf("The total cost will be $%0.2f.\n", total);}/* hotel.h -- hotel.c中的常量定义和函数声明 */#define QUIT 5#define HOTEL1 80.00#define HOTEL2 125.00#define HOTEL3 155.00#define HOTEL4 200.00#define DISCOUNT 0.95#define STARS "*********************"//输出选项列表int menu(void);//返回预定的天数int getnights(void);//按饭店的星级和预定的天数计算价格并显示void showprice(double, int);运行示例:******************************************Enter the number of the desired hotel:1) Fairfield Arms       2) Hotel Olympic3) Chertworthy Plaza    4) The Stockeon5) quit******************************************3How many nights are need? 1The total cost will be $155.00.******************************************Enter the number of the desired hotel:1) Fairfield Arms       2) Hotel Olympic3) Chertworthy Plaza    4) The Stockeon5) quit******************************************4How many nights are need? 3The total cost will be $570.50.******************************************Enter the number of the desired hotel:1) Fairfield Arms       2) Hotel Olympic3) Chertworthy Plaza    4) The Stockeon5) quit******************************************5Thank you and goodbye.程序特色:通过检测scanf()函数的返回值来跳过输入的非数字数据,并前使用scan("%*s")来跳至下一空白字符。在scanf()中,把*放在%和说明符之间使函数跳过相应的输入项目,即相当于没有输入。考察代码:    while (scanf("%d", &nights) != 1)    {        scanf("%*s");        printf("Please enter an integer, such as 2.\n");    }这段代码运用了C的两个运算规则:逻辑表达式从左向右运算,并且一旦结果明显为假,运算会立即停止。在本例中,只有确定scanf()已成功读取了一个整形数组后,变量code才会被检查。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

返回顶部