源代码分门别类管理,通过头文件。
放置一些函数声明,变量声明,常量定义,宏定义。
hotel.h
#ifndef HOTEL_H_INCLUDED#define HOTEL_H_INCLUDED#define HOTEL1 872.0 // 各家酒店的默认房费#define HOTEL2 1838.0 // 各家酒店的默认房费#define HOTEL3 789.0 // 各家酒店的默认房费#define HOTEL4 1658.0 // 各家酒店的默认房费#define DISCOUNT 0.95 // 折扣率// 菜单函数:显示菜单选项,接收并返回用户的输入int Menu(void);// 返回用户预订的天数int GetNights(void);// 根据入住的天数显示最终需要支付的金额double ShowPrice(int choice,int nights);#endif // HOTEL_H_INCLUDED
hotel.c
#include// 自定义的头文件用双引号#include "hotel.h"char hotelNames[4][50] = { "贝罗酒店","香榭丽舍酒店","阿斯图里亚斯酒店","斯克里布酒店"};int Menu(void) { int choice; // 用户的选择 int i; printf("请选择入住的酒店:\n"); for (i = 0; i< 4;i++) { printf("%d、%s\n",i+1,hotelNames[i]); // 写完就去main中测试一下 } printf("5、退出程序\n"); printf("请输入您的选择:"); int result = scanf("%d",&choice); // 判断是否合法 while ( result !=1 || choice < 1 || choice >5 ) { if (result != 1) { scanf("%*s"); // 消除错误的输入 // fflush(stdin); } printf("必须输入1-5之间的整数:"); result = scanf("%d",&choice); } return choice;}int GetNights(void) { int nights; printf("先生、女士,请输入要入住的天数:"); int result = scanf("%d",&nights); // 判断是否合法 while ( result !=1 || nights < 1) { if (result != 1) { scanf("%*s"); // 消除错误的输入 // fflush(stdin); } printf("必须输入大于1的整数!\n"); printf("先生、女士,请输入要入住的天数:"); result = scanf("%d",&nights); } return nights;}double ShowPrice(int choice,int nights) { double hotelPrice; double totalPrice = 0; if (choice == 1) { hotelPrice = HOTEL1; } if (choice == 2) { hotelPrice = HOTEL2; } if (choice == 3) { hotelPrice = HOTEL3; } if (choice == 4) { hotelPrice = HOTEL4; } int i; for (i = 0 ;i
main.c
#include#include #include "hotel.h" // 最好引入一下头文件extern char hotelNames[4][50]; // 声明为外部变量int main(){ int choice; int nights; double totalPrice; // 用户输入入住的酒店和天数,程序计算出对应的金额 // 1.显示菜单 - 封装成函数 choice = Menu(); if (choice > 0 && choice <5) { printf("当前用户选择的是:%s\n",hotelNames[choice-1]); // 多遇到一些错误,在错误中成长。将顺序思维,改为模块思维。 } if (choice == 5) { printf("欢迎使用本系统,再见。\n"); exit(0); } nights = GetNights(); if (nights > 0) { printf("当前用户选择入住%d天\n",nights); // 多遇到一些错误,在错误中成长。将顺序思维,改为模块思维。 } // 2.计算过程 totalPrice = ShowPrice(choice,nights); printf("您入住的酒店是:%s \t 入住天数: %d \t 总费用: %0.2f \n",hotelNames[choice-1],nights,totalPrice); printf("欢迎使用本系统,再见。\n"); return 0;}
头文件有约束作用。可以重复使用。