c语言课程设计报告会员卡计费系统源代码
C语言课程设计--酒店房间登记与计费管理系统程序代码.doc

#i n c l u d e<s t d i o.h>#include<string.h> //在使用中要用到的字符串都包含在本文件中#include<stdlib.h> //exit()函数就包含在此文件中#define M 81int z[81]={0}; //定义一个数组存放使用的房间的标记的信息,且初始化为0int j,s; //定义两个全局变量FILE *fp; //定义一个指向文件的指针变量struct date{int month;int day;int year;}final;struct hotel{int price;int room_ID;struct client{char name[20];int sex;int age;char ID_card[20];int count;struct date start;}personal;}room[M]; //定义全局结构体变量,且里面又调用两个结构体 //声明刷新函数fflush( fp),且指向指针变量指向的位置void save();void search_situ( ); //声明查看客房入住情况函数void regist_infor( ); //声明客房登记入住函数void modify_infor( ); //声明客房信息修改函数函数void modify_one( ); //声明修改客房信息函数中的修改个人函数void modify_hotel( ); //声明修改客房信息函数中的修改客房函数void disp_money( ); //声明显示入住费用函数int main(){int menu(); //声明主菜单函数void print_star();void print_message();printf("\n\n\n\n\n");print_star();printf("\n");print_message();printf("\n");print_star();menu(); //把主菜单用函数来实现save();return 0;}void print_star(){int i;for(i=1;i<30;i++)printf("\t*");}void print_message(){printf("\t\t\t\t欢迎入住皇家酒店\n");}menu(){int n;do{printf("\n");printf("\t\t*********************菜单********************\n\n\n");printf("\t\t\t\t1:查看客房入住情况\n\n\n");printf("\t\t\t\t2:登记入住信息\n\n\n");printf("\t\t\t\t3:修改客房信息\n\n\n");printf("\t\t\t\t4:显示入住费用\n\n\n");printf("\t\t\t\t5:退出\n\n\n");printf("\t\t\t\t6:返回\n\n\n");printf("\t\t*********************菜单********************\n"); printf("\n\n\t\t\t 请选择输入选项[1\\2\\3\\4\\5\\6]:\n");scanf("%d",&n);while(n<1||n>6){printf("请重新输入选项!");scanf("%d",&n);}switch(n){case 1:search_situ();break; //调用查看函数case 2:regist_infor();break; //调用登记函数case 3:modify_infor();break; //调用修改函数case 4:disp_money();break; //调用显示入住费用函数case 5:exit(0);case 6:break;}}while(n!=6);scanf("%d",&n);return 0;}void search_situ( ) //查看函数{int g,count=0;for(g=1;g<=80;g++){if(z[g]==0)++count;elseif(z[g]==1)printf("\n正在使用的房间号:%d",g);}printf("\n\n未使用的房间数:%d",count); //通过循环输出未使用的房间数 printf("\n\n");printf("\n请输入需查询的房间号:\n"); //查询输入的房间号的信息,且输出该房间的相关信息scanf("%d",&s);if(z[s]==1){printf("姓名:%s",room[s]);printf("\n性别(其中:1表示男,2表示女!):%d",room[s].personal.sex);printf("\n年龄:%d",room[s].personal.age);printf("\n身份证号:%s",room[s].personal.ID_card);printf("\n入住年份:%d",room[s].personal.start.year);printf("月:%d",room[s].personal.start.month);printf("日:%d",room[s].personal.start.day);printf("\n房间号:%d",room[s].room_ID);printf("\n客房单价:%d",room[s].price);printf("\n入住人数:%d",room[s].personal.count);menu();}elseprintf("该房间未被使用!");save(); //调用保存函数}void regist_infor( ) // 登记函数{printf("请输入登记相关信息:\n");printf("\n房间号:");scanf("%d",&j);room[j].room_ID=j;printf("\n姓名:");scanf("%s",&room[j]);printf("\n性别(其中:1表示男,2表示女!):");scanf("%d",&room[j].personal.sex);printf("\n年龄:");scanf("%d",&room[j].personal.age);printf("\n身份证号:");scanf("%s",&room[j].personal.ID_card);printf("\n入住年份:");scanf("%d",&room[j].personal.start.year);printf("月:");scanf("%d",&room[j].personal.start.month);printf("日:");scanf("%d",&room[j].personal.start.day);printf("\n客房单价:");scanf("%d",&room[j].price);printf("请输入入住人数\n");scanf("%d",&room[j].personal.count);z[j]=1; //标记使用的房间为1save();}void modify_infor( ) //修改函数{int r,m;do{printf("\t\t\t *******************菜单******************\n\n\n");printf("\t\t\t\t\t 1:修改客户信息\n\n\n");printf("\t\t\t\t\t 2:修改客房信息\n\n\n");printf("\t\t\t\t\t 3:menu()\n\n\n");printf("\t\t\t\t\t4:退出\n\n\n");printf("\t\t\t *****************************************\n\n\n");printf("\t\t\t 请选择输入选项[1\\2\\3\\4]:\n");scanf("%d",&m);if(m<1||m>3){r=1;getchar();}else r=0;}while(r==1);switch(m){case 1:modify_one();break;case 2:modify_hotel();break;case 3:menu();case 4:exit(0);}save();}void modify_one() //修改个人信息函数{int q;char a[20];printf("\n请选择您要修改的个人选项\n");printf("1:姓名 2:性别(其中:1表示男,2表示女!) 3:年龄 4:身份证号 5:入住年份 6:入住月份 7入住日 8:入住人数\n");printf("\t请选择输入选项[1\\2\\3\\4\\5\\6\\7\\8]:\n\b\b");scanf("%d",&q);switch(q){int t,p;char k;case 1:printf("请输入新名字\n");for(t=0;t<20;t++)scanf("%s",&a[t]);strcpy(room[j],a);break;case 2:printf("请选择新性别(其中:1表示男,2表示女!)\n");scanf("%d",&k);room[j].personal.sex=k;break;case 3:printf("请输入新年龄\n");scanf("%d",&p);room[j].personal.age=p;break;case 4:printf("请输入新身份证号\n");scanf("%d",&p);room[j].personal.ID_card[20]=p;break;case 5:printf("请输入新年份\n");scanf("%d",&p);room[j].personal.start.year=p;break;case 6:printf("请输入新月份\n");scanf("%d",&p);room[j].personal.start.month=p;break;case 7:printf("请输入新日子\n");scanf("%d",&p);room[j].personal.start.day=p;break;case 8:printf("请输入新入住人数\n");scanf("%d",&p);room[j].personal.count=p;break;}menu();}void modify_hotel() //修改客房信息函数{int l;printf("\n\t\t\t\t请选择您要修改的客房信息\n\n");printf("\t\t\t\t1:房间号\n\n \t\t\t\t2:客房单价\n\n \t\t\t\t3:入住人数\n\n \t\t\t\t4:返回\n\n");printf("\t\t\t请选择输入选项[1\\2\\3\\4]:\n\b\b");scanf("%d",&l);switch(l){case 1:printf("请输入旧房号\n");scanf("%d",&j);printf("请输入新房号\n");scanf("%d",&s);strcpy(room[s],room[j]);room[s].personal.sex=room[j].personal.sex; room[j].personal.sex=0;room[s].personal.age=room[j].personal.age; room[j].personal.age=0;strcpy(room[s].personal.ID_card,room[j].personal.ID_card);room[s].personal.start.year=room[j].personal.start.year;room[j].personal.start.year=0;room[s].personal.start.month=room[j].personal.start.month;room[j].personal.start.month=0;room[s].personal.start.day=room[j].personal.start.day;room[j].personal.start.day=0;room[s].room_ID=s;room[s].price=room[j].price;room[s].personal.count=room[j].personal.count;z[s]=1; z[j]=0; break;case 2:printf("请输入房号\n");scanf("%d",&s);printf("请输入新单价\n");scanf("%d",&s);room[s].price=s;break;case 3:printf("请输入房号\n");scanf("%d",&s);printf("请输入新入住人数\n");scanf("%d",&s);room[s].personal.count=s;break;case 4:break;}save();menu();}void disp_money( ) //显示入住费用函数{int i,sum;printf("请输入房间号;\n");scanf("%d",&room[j].room_ID);printf("\n入住年份:%d",room[j].personal.start.year);printf("月:%d",room[j].personal.start.month);printf("日:%d",room[j].personal.start.day);printf("房间单价为:");printf("%d",room[j].price);printf("\n请输入退房时间:\n");printf("请输入年份:");scanf("%d",&final.year);printf("请输入月份:");scanf("%d",&final.month);printf("请输入日:");scanf("%d",&final.day);printf("\n请输入住房天数:\n");scanf("%d",&i);sum=room[j].price*i;printf("总费用sum=%d\n",sum);save();menu();}void save() //保存函数{FILE *fp;int i;if((fp=fopen("客房管理.txt","w+"))==NULL) //打开输出文件"客房管理.txt" {printf("cannot open file\n");exit(0);}for(i=0;i<M;i++){if(fwrite((&room[i]), sizeof(room[M]),1,fp)!=1)printf("file write error\n");fflush(fp);}fclose(fp); //关闭文件}。
c语言网吧计费系统源代码

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#define N 5struct user{char ID_card[30];char user_card[10];char user_level[50];float add_money; //充值};struct LinkList{struct user struct_user;LinkList *pNext;};struct control{char control_name[20];char control_password[15];}control_person={"apollo","apollo"};//管理员账户和密码设置////////////////////////////////void enter(int x);void tab(int x);void start();void login();void mainmenu();void submenu1();void submenu2();void submenu3();void submenu4();void xian_shi(LinkList *pHead);LinkList *adduser(LinkList *pHead);LinkList *addmoney(LinkList *pHead); //充值LinkList *shang_wang(LinkList *pHead); //上网LinkList *zhu_xiao(LinkList *pHead); //注销会员void save(LinkList *pTemp);LinkList *readsave();void cha_xun_shen(LinkList *pHead);void cha_xun_hui(LinkList *pHead);///////////////////////启动void start(){system("cls");for(int k=0;k<2;k++){for(int i=0;i<N;i++){system("color B");enter(7);tab(3);printf(" 星星网吧计费管理系统");enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 1 endenter(7);tab(3);printf(" 星星网吧计费管理系统");enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 2 endenter(7);tab(3);printf(" 星星网吧计费管理系统");enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 3 endenter(7);tab(3);printf(" 星星网吧计费管理系统"); enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 4 endenter(7);tab(3);printf(" 星星网吧计费管理系统"); enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 5 endenter(7);tab(3);printf(" 星星网吧计费管理系统"); enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 6 endenter(7);tab(3);printf(" 星星网吧计费管理系统"); enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 7 endenter(7);tab(3);printf(" 星星网吧计费管理系统");enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 8 endenter(7);tab(3);printf(" 星星网吧计费管理系统");enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 9 end }}login();}//登陆函数void login(){char name[20];char password[15];while(1){system("cls");enter(7);tab(3);printf(" 管理员登录");enter(2);tab(4);printf("Count:");fflush(stdin);if(strcmp(gets(name),control_person.control_name)==0){leap: system("cls");enter(7);tab(3);printf(" 管理员登录");enter(2);tab(4);printf("Password:");fflush(stdin);if(strcmp(gets(password),control_person.control_password)==0){mainmenu();break;}else{char ch;tab(4);printf("Your password is error!\n");tab(4);printf("Do you want to try again?(Y/N):");scanf("%c",&ch);if(ch=='Y' || ch=='y')goto leap;else if(ch=='N' || ch=='n')exit(0);else{system("cls");enter(7);tab(1);printf("Error!Please check your code then login again,thank you!\n");tab(3);exit(0);}}}else{char i;system("cls");enter(7);tab(4);printf("Your count is erorr!\n");tab(4);printf("Do you want to try again?(Y/N):");scanf("%c",&i);if(i=='Y' || i=='y')continue;else if(i=='N' || i=='n')exit(0);else{system("cls");enter(7);tab(1);printf("Error!Please check your code then login again,thank you!\n");tab(3);exit(0);}}}}//enter函数void enter(int x){for(int i=0;i<x;i++)printf("\n");}//tab函数void tab(int x){for(int i=0;i<x;i++)printf("\t");}//mainmenu主菜单void mainmenu(){struct LinkList *pHead=NULL; //初始化while(1){int i;system("cls");printf("\n\n\n\n\n\t\t\t********星星网吧计费管理系统*********\n");printf("\t\t\t** 1.注册会员**\n");printf("\t\t\t** **\n");printf("\t\t\t** 2.会员管理**\n");printf("\t\t\t** **\n");printf("\t\t\t** 3.注销**\n");printf("\t\t\t** **\n");printf("\t\t\t** 4.重启**\n");printf("\t\t\t** **\n");printf("\t\t\t** 5.关闭系统**\n");printf("\t\t\t*************************************\n");printf("\t\t\t请选择:");fflush(stdin);scanf("%d",&i);switch(i){case 1:pHead=adduser(pHead);break;case 2:submenu1();break;case 3:login();break;case 4:start();break;case 5:submenu2();break;default:printf("输入错误!\n");for(int j=0;j<100000000;j++){}break;}}}//submenu1会员管理菜单void submenu1(){struct LinkList *pHead=NULL;while(1){int i;system("cls");printf("\n\n\n\n\n\t\t\t**************会员管理***************\n");printf("\t\t\t** 1.会员消费**\n");printf("\t\t\t** **\n");printf("\t\t\t** 2.注销会员**\n");printf("\t\t\t** **\n");printf("\t\t\t** 3.查找会员信息**\n");printf("\t\t\t** **\n");printf("\t\t\t** 4.查询所有会员信息**\n");printf("\t\t\t** **\n");printf("\t\t\t** 5.返回上一级菜单**\n");printf("\t\t\t*************************************\n");printf("\t\t\t请选择:");fflush(stdin);scanf("%d",&i);switch(i){case 1:submenu3();break;case 2:pHead=zhu_xiao(pHead);break;case 3:submenu4();break;case 4:;xian_shi(pHead);break;case 5:mainmenu();break;default:printf("输入错误!\n");for(int j=0;j<100000000;j++){}break;}}}//submenu2关闭系统void submenu2(){system("cls");printf("\n\n\n\n\n\t\t\t********星星网吧计费管理系统*********\n");printf("\t\t\t** 谢谢您的使用! **\n");printf("\t\t\t** **\n");printf("\t\t\t** 欢迎再次使用! **\n");printf("\t\t\t** **\n");printf("\t\t\t** 技术支持: **\n");printf("\t\t\t** **************************\n");printf("\t\t\t** 版权所有: **\n");printf("\t\t\t** 湖南长沙英泰学院09081A班**\n");printf("\t\t\t** 2009.10 **\n");printf("\t\t\t*************************************\n");exit(0);}//submenu3消费菜单void submenu3(){int i;LinkList *pHead=NULL;while(1){system("cls");printf("\n\n\n\n\n\t\t\t**********消费内容*******************\n");printf("\t\t\t** 1.充值**\n");printf("\t\t\t** **\n");printf("\t\t\t** 2.上网**\n");printf("\t\t\t** **\n");printf("\t\t\t** 3.返回上一级菜单**\n");printf("\t\t\t*************************************\n");printf("\t\t\t请选择:");fflush(stdin);scanf("%d",&i);switch(i){case 1:pHead=addmoney(pHead);break;case 2:pHead=shang_wang(pHead);break;case 3:submenu1();break;default:printf("输入错误!请重新输入!\n");for(int j=0;j<100000000;j++){}break;}}}//submenu4会员查找函数void submenu4(){int i;LinkList *pHead=NULL;while(1){system("cls");printf("\n\n\n\n\n\t\t\t**************查找会员***************\n");printf("\t\t\t** 1.按身份证号码查找**\n");printf("\t\t\t** **\n");printf("\t\t\t** 2.按会员卡号号码查找**\n");printf("\t\t\t** **\n");printf("\t\t\t** 3.返回上一级菜单**\n");printf("\t\t\t*************************************\n");printf("\t\t\t请选择:");fflush(stdin);scanf("%d",&i);switch(i){case 1:cha_xun_shen(pHead);break;case 2:cha_xun_hui(pHead);break;case 3:submenu1();break;default:printf("输入错误!请重新输入!\n");for(int j=0;j<100000000;j++){}break;}}}//新会员注册LinkList *adduser(LinkList *pHead){LinkList *pTemp,*p;system("cls");pTemp=(LinkList *)malloc(sizeof(struct LinkList));if(pTemp==NULL)return pHead;leap:printf("\n\n\n\n\t\t");printf("输入第二代身份证号码(18位):");fflush(stdin);gets(pTemp->struct_user.ID_card);for(int i=0;i<17;i++){if(pTemp->struct_user.ID_card[i]>'9' || pTemp->struct_user.ID_card[i]<'0') //如果输入的信息大于9小于0的范围(输入的不是数字){system("cls");printf("输入的不是纯数字!\n请重新输入!\n");goto leap;}else if(strlen(pTemp->struct_user.ID_card)!=18 || strlen(pTemp->struct_user.ID_card)==0){system("cls");printf("输入不合法!\n请重新输入!\n");goto leap;}}loop:printf("\n\t\t");printf("请输入卡号(8位):");fflush(stdin);gets(pTemp->struct_er_card);for(i=0;i<8;i++){if(pTemp->struct_er_card[i]>'9' || pTemp->struct_er_card[i]<'0') //如果输入的信息大于9小于0的范围(输入的不是数字){system("cls");tab(3);printf("输入的不是纯数字!\n请重新输入!\n");goto loop;}else if(strlen(pTemp->struct_er_card)!=8 || strlen(pTemp->struct_er_card)==0){system("cls");printf("输入不合法!\n请重新输入!\n");goto loop;}}k: printf("\n\n\t\t|-----------会员优惠活动------------|\n");printf("\t\t| 普通会员>0 <=10元|\n");printf("\t\t| 铜卡会员>10 <=20元+10元|\n");printf("\t\t| 银卡会员>20 <=30元+20元|\n");printf("\t\t| 金卡会员>30 <=50元+30元|\n");printf("\t\t| VIP会员充100元送80元|\n");printf("\t\t|-----------------------------------|\n");printf("\t\t");printf("充值:");fflush(stdin);scanf("%f",&(pTemp->struct_user.add_money)); //充值if(pTemp->struct_user.add_money>1000 || pTemp->struct_user.add_money<=0) //如果输入的信息大于9小于0的范围(输入的不是数字){system("cls");printf("输入错误!\n请重新输入!\n");goto k;}else if(pTemp->struct_user.add_money>0 && pTemp->struct_user.add_money<=10){tab(2);strcpy(pTemp->struct_er_level,"普通会员");printf("■恭喜你!你已成为本网吧普通会员!■\n");}else if(pTemp->struct_user.add_money>10 && pTemp->struct_user.add_money<=20){tab(2);strcpy(pTemp->struct_er_level,"铜卡会员");printf("■恭喜你!你已成为本网吧铜卡会员!■\n");pTemp->struct_user.add_money+=10;}else if(pTemp->struct_user.add_money>20 && pTemp->struct_user.add_money<=30) {tab(2);strcpy(pTemp->struct_er_level,"银卡会员");printf("■恭喜你!你已成为本网吧银卡会员!■\n");pTemp->struct_user.add_money+=20;}else if(pTemp->struct_user.add_money>=30 && pTemp->struct_user.add_money<100) {tab(2);strcpy(pTemp->struct_er_level,"金卡会员");printf("■恭喜你!你已成为本网吧金卡会员!■\n");pTemp->struct_user.add_money+=30;}else if(pTemp->struct_user.add_money>=100){tab(2);strcpy(pTemp->struct_er_level,"VIP会员");printf("■恭喜你!你已成为本网吧VIP会员!■\n");pTemp->struct_user.add_money+=80;}pTemp->pNext=NULL;//////////////////if(pHead==NULL)pHead=pTemp;else{p=pHead;while(p->pNext!=NULL)p=p->pNext;p->pNext=pTemp;}save(pTemp);return pHead;}//保存会员注册void save(LinkList *pTemp){FILE *fp=fopen("user","ab");if(fp==NULL){tab(3);printf("读取失败!\n");exit(0);}tab(3);printf("开始保存文件!\n");if(fwrite(pTemp,sizeof(struct LinkList),1,fp)==1){tab(3);printf("文件保存成功!\n");getch();}else{tab(3);printf("文件保存失败!\n");getch();}fclose(fp);}//读取保存LinkList *readsave(){LinkList *pHead=NULL,*p;FILE *fp;fp=fopen("user","rb");if(fp==NULL){tab(3);printf("文件打开失败!\n");getch();return pHead;}while(!feof(fp)){LinkList *pTemp=(LinkList*)malloc(sizeof(LinkList));int t=fread(pTemp,sizeof(struct LinkList),1,fp);pTemp->pNext=NULL;if(t>0){if(pHead==NULL){pHead=pTemp;}else{p=pHead;while(p->pNext!=NULL)p=p->pNext;p->pNext=pTemp;}}elsebreak;}fclose(fp);return pHead;}//显示所有会员信息void xian_shi(LinkList *pHead){FILE *fp=fopen("user","rb");if(fp==NULL){system("cls");printf("\n\n\n\n\n\n\n\n\t\t\t\t");printf("没有会员信息!\n");getch();return;}LinkList *pTemp,*p;pTemp=(LinkList *)malloc(sizeof(LinkList));int count=0;system("cls");enter(5);printf(" -----------------------|-------------|--------------|--------------\n");printf("\t身份证号码\t\t会员卡号\t卡上余额\t会员级别\n");printf(" -----------------------|-------------|--------------|--------------\n");while(!feof(fp)){int t=fread(pTemp,sizeof(LinkList),1,fp);pTemp->pNext=NULL;//////////////////if(t>0){count++;if(pHead==NULL){pHead=pTemp;}else{p=pHead;while(p->pNext!=NULL)p=p->pNext;p->pNext=pTemp;}}else{break;}printf("\t%-20s\t%-10s\t%-5.1f元\t\t%-6s\n",pTemp->struct_user.ID_card,pTemp->struct_er_card,pTemp->struct_user.add_ money,pTemp->struct_er_level);}printf(" -----------------------|-------------|--------------|--------------\n");printf("\n\t\t共有会员%d个\n",count);getch();fclose(fp);}//查找会员信息(按身份证号码查找)void cha_xun_shen(LinkList *pHead){LinkList *pTemp;char shen_fen[100];system("cls");enter(9);tab(3);printf("身份证号码:");fflush(stdin);gets(shen_fen);if(strlen(shen_fen)!=18){tab(3);printf("输入错误!\n");getch();return;}pHead=readsave();if(pHead==NULL){tab(3);printf("没有找到会员信息或会员不存在!\n");getch();return;}pTemp=pHead;while(pTemp){if(strcmp(pTemp->struct_user.ID_card,shen_fen)==0){system("cls");enter(5);printf(" -----------------------|-------------|--------------|--------------\n");printf("\t身份证号码\t\t会员卡号\t卡上余额\t会员级别\n");printf(" -----------------------|-------------|--------------|--------------\n");printf("\t%-20s\t%-10s\t%-5.1f元\t\t%-6s\n",pTemp->struct_user.ID_card,pTemp->struct_er_card,pTemp->struct_user.add_ money,pTemp->struct_er_level);printf(" -----------------------|-------------|--------------|--------------\n");getch();break;}pTemp=pTemp->pNext;}}//查找会员信息(按会员卡号查找)void cha_xun_hui(LinkList *pHead){LinkList *pTemp;char shen_fen[100];system("cls");enter(9);tab(3);printf("卡号(8位:");fflush(stdin);gets(shen_fen);if(strlen(shen_fen)!=8){tab(3);printf("输入错误!\n");getch();return;}pHead=readsave();if(pHead==NULL)tab(3);printf("没有找到会员信息或会员不存在!\n");getch();return;}pTemp=pHead;while(pTemp){if(strcmp(pTemp->struct_er_card,shen_fen)==0){system("cls");enter(5);printf(" -----------------------|-------------|--------------|--------------\n");printf("\t身份证号码\t\t会员卡号\t卡上余额\t会员级别\n");printf(" -----------------------|-------------|--------------|--------------\n");printf("\t%-20s\t%-10s\t%-5.1f元\t\t%-6s\n",pTemp->struct_user.ID_card,pTemp->struct_er_card,pTemp->struct_user.add_ money,pTemp->struct_er_level);printf(" -----------------------|-------------|--------------|--------------\n");getch();break;}pTemp=pTemp->pNext;}}//保存充值、注销和上网消费后的后的会员信息void save_chong(LinkList *pHead){FILE *fp=fopen("user","wb");if(fp==NULL){tab(3);printf("文件打开失败!\n");getch();return;}LinkList *pTemp;pTemp=pHead;if(pHead==NULL){printf("没有找到会员信息!\n");getch();return;printf("开始保存修改!\n");while(pTemp){fwrite(pTemp,sizeof(LinkList),1,fp);pTemp=pTemp->pNext;}printf("保存成功!\n");getch();fclose(fp);}//充值LinkList *addmoney(LinkList *pHead){LinkList *pTemp;char shen_fen[100];system("cls");enter(9);tab(3);printf("卡号(8位):");fflush(stdin);gets(shen_fen);if(strlen(shen_fen)!=8){tab(3);printf("输入错误!\n");getch();return pHead;}pHead=readsave(); //very importantif(pHead==NULL){tab(3);printf("没有找到会员信息或会员不存在!\n");getch();return pHead;}pTemp=pHead;while(pTemp){if(strcmp(pTemp->struct_er_card,shen_fen)==0){system("cls");enter(5);printf(" -----------------------|-------------|--------------|--------------\n");printf("\t身份证号码\t\t会员卡号\t卡上余额\t会员级别\n");printf(" -----------------------|-------------|--------------|--------------\n");printf("\t%-20s\t%-10s\t%-5.1f元\t\t%-6s\n",pTemp->struct_user.ID_card,pTemp->struct_er_card,pTemp->struct_user.add_ money,pTemp->struct_er_level);printf(" -----------------------|-------------|--------------|--------------\n");float m=pTemp->struct_user.add_money;printf("请输入充值金额:");scanf("%f",&(pTemp->struct_user.add_money));pTemp->struct_user.add_money+=m;save_chong(pHead);break;}pTemp=pTemp->pNext;}return pHead;}//上网LinkList *shang_wang(LinkList *pHead){LinkList *pTemp;char shen_fen[100];system("cls");enter(2);printf("\n\n\n\n\t\t\t**********网吧计费管理系统***********\n");printf("\t\t\t** 1.普通会员3元/时**\n");printf("\t\t\t** **\n");printf("\t\t\t** 2.铜卡会员 2.5元/时**\n");printf("\t\t\t** **\n");printf("\t\t\t** 3.银卡会员2元/时**\n");printf("\t\t\t** **\n");printf("\t\t\t** 4.金卡会员 1.5元/时**\n");printf("\t\t\t** **\n");printf("\t\t\t** 5.VIP会员1元/时**\n");printf("\t\t\t*************************************\n");printf("请输入会员卡号码(8位数字):");fflush(stdin);gets(shen_fen);if(strlen(shen_fen)!=8){tab(3);printf("输入错误!\n");getch();return pHead;}pHead=readsave(); //读取文件if(pHead==NULL) //如果头指针为空,说明没有该链表{tab(3);printf("没有找到会员信息或会员不存在!\n");getch();return pHead;}pTemp=pHead; //头指针不为空while(pTemp) //访问节点{if(strcmp(pTemp->struct_er_card,shen_fen)==0) //如果找到与输入的会员卡号相同{ //则输出该会员信息printf(" -----------------------|-------------|--------------|--------------\n");printf("\t身份证号码\t\t会员卡号\t卡上余额\t会员级别\n");printf(" -----------------------|-------------|--------------|--------------\n");printf("\t%-20s\t%-10s\t%-5.1f元\t\t%-6s\n",pTemp->struct_user.ID_card,pTemp->struct_er_card,pTemp->struct_user.add_ money,pTemp->struct_er_level);printf(" -----------------------|-------------|--------------|--------------\n");float m=pTemp->struct_user.add_money;//上网前的卡上余额float time;printf("请输入上网时间(时):");fflush(stdin);scanf("%f",&time);if(strcmp(pTemp->struct_er_level,"普通会员")==0) //按会员级别来管理{ //每小时上网的费用pTemp->struct_user.add_money=m-3*time; //上网后的卡上余额save_chong(pHead); //保存修改后的内容break;}else if(strcmp(pTemp->struct_er_level,"铜卡会员")==0){pTemp->struct_user.add_money=m-2.5f*time;save_chong(pHead);break;}else if(strcmp(pTemp->struct_er_level,"银卡会员")==0){pTemp->struct_user.add_money=m-2*time;save_chong(pHead);break;}else if(strcmp(pTemp->struct_er_level,"金卡会员")==0){pTemp->struct_user.add_money=m-1.5f*time;save_chong(pHead);break;}else if(strcmp(pTemp->struct_er_level,"VIP会员")==0){pTemp->struct_user.add_money=m-1*time;save_chong(pHead);break;}}pTemp=pTemp->pNext;//指针指向下一个查找,直到找到满足上面条件为止}return pHead;}//注销会员LinkList *zhu_xiao(LinkList *pHead){LinkList *pTemp,*p;char shen_fen[100];system("cls");enter(9);tab(3);printf("卡号:");fflush(stdin);gets(shen_fen);pHead=readsave(); //读取文件if(pHead==NULL) //如果头节点为空,表示这条链表没有内容,或者没有这条链表{tab(3);printf("没有找到会员信息或会员不存在!\n");return pHead;}pTemp=pHead; //指针指向头节点while(pTemp)//访问节点{if(strcmp(pTemp->struct_er_card,shen_fen)==0)//寻找要删除的会员卡号,找到后输出{system("cls");enter(5);printf(" -----------------------|-------------|--------------|--------------\n");printf("\t身份证号码\t\t会员卡号\t卡上余额\t会员级别\n");printf(" -----------------------|-------------|--------------|--------------\n");printf("\t%-20s\t%-10s\t%-5.1f元\t\t%-6s\n",pTemp->struct_user.ID_card,pTemp->struct_er_card,pTemp->struct_user.add_ money,pTemp->struct_er_level);printf(" -----------------------|-------------|--------------|--------------\n");char ch;printf("\n你要注销该会员吗?(Y/N)\n");scanf("%c",&ch);switch(ch){case 'Y':case 'y':{if(pTemp==pHead) //如果要删除的是头节点{pHead=pTemp->pNext; //把头节点指针指向第二个节点,并把头节点覆盖printf("注销成功!\n");getch();break;}p=pHead;//不是头节点,把指针指向头节点while(1){if(p->pNext==pTemp) //如果p的指针域指向找到的节点pTemp{p->pNext=pTemp->pNext;//则把pTemp的指针域指向的下一个节点付给p的指针域printf("注销成功!\n");//删除成功getch();break;}p=p->pNext;//寻找p->pNext和要删除节点pTemp的交合}}break;case 'N':case 'n':break;}}pTemp=pTemp->pNext;//寻找shen_fen和节点的交合}save_chong(pHead);system("cls");return pHead;}//主函数void main(){start();mainmenu();}。
C语言实现会员管理系统

C语⾔实现会员管理系统本⽂实例为⼤家分享了C语⾔实现会员管理系统的具体代码,供⼤家参考,具体内容如下会员信息包括:会员号(6位数,唯⼀),姓名,⾝份证号,联系电话,状态(1表⽰正常,0表⽰挂失)。
会员管理包括:会员的添加、删除、修改(会员号不能修改)、挂失、查询、接触挂失。
先给⼤家看看效果:上代码:#include <stdio.h>#include <stdlib.h>#include <string.h>struct VIP //定义结构体,存储会员账号、姓名、⾝份证号、联系⽅式、状态、余额{long no;char name[20]; //姓名、⾝份证号含有字符,使⽤char定义char IDcard[19];char phone[12]; //联系电话有11位,超出了int的范围,使⽤字符串定义int zhuangtai; //如果状态为1,则正常,若为0,则状态为挂失int yue;};struct VIP s[50]; //定义结构体数组int n=0; //n表⽰存⼊的会员数量void init(); //含义见main主函数void print();struct VIP gete();void add1();void findbyno();void findbyname();void findbyIDcard();void findbyphone();void mod();void del();void sort();void transaction();void init() //初始化(唯⼀的6位会员账号){int f=1; //1唯⼀ 0不唯⼀printf("请输⼊会员的账号,姓名,⾝份证号码,联系电话,余额,状态\n");printf("当输⼊会员号为0时停⽌输⼊\n");while(n<=50){printf("请输⼊会员的账号:\n");scanf("%ld",&s[n].no);while(s[n].no!=0){if(s[n].no/1000000==0 && s[n].no/100000!=0){int i;for(i=0;i<n&&f==1;i++){if(s[n].no==s[i].no){f=0;printf("请输⼊唯⼀的6位会员账号\n");}}if(f==1)break;}else{printf("请输⼊6位会员账号\n");printf("请重新输⼊会员的账号:\n");scanf("%d",&s[n].no);}}if(s[n].no==0)break; //如果输⼊的账号为0,结束输⼊printf("请输⼊会员的姓名:\n");scanf("%s",s[n].name);printf("请输⼊会员的⾝份证号,联系电话,余额,状态:\n");scanf("%s%s%d%d",s[n].IDcard,s[n].phone,&s[n].yue,&s[n].zhuangtai);n++;}}void print() //输出{//|和=组合起来,使输出结果时有表格样式//%t、空格使输出时数据对其int j;printf("会员信息记录如下:\n");printf(" |===================================================================================|\n"); printf(" |账号\t姓名\t ⾝份证号 \t 联系电话 \t余额\t 状态 |\n");printf(" |-----------------------------------------------------------------------------------|\n");for(j=0;j<n;j++){printf(" |%ld\t%s\t %s\t%s\t%d\t",s[j].no,s[j].name,s[j].IDcard,s[j].phone,s[j].yue);if(s[j].zhuangtai==1)printf(" 正常 |\n");elseprintf(" 挂失 |\n");if(j<(n-1))printf(" |-----------------------------------------------------------------------------------|\n");}printf(" |===================================================================================|\n"); }struct VIP gete() //输⼊{struct VIP e;printf("请输⼊账号:\n");scanf("%d",&e.no);int f=1;while(e.no){if(e.no/1000000==0 && e.no/100000!=0){int i;for(i=0;i<n&&f==1;i++){if(e.no==s[i].no){f=0;printf("请输⼊唯⼀的6位会员账号\n");scanf("%d",&e.no);}}if(f==1)break;}else{printf("请输⼊6位会员账号\n");printf("请重新输⼊会员的账号:\n");scanf("%d",&e.no);}}printf("请输⼊姓名:\n");scanf("%s",&);printf("请输⼊会员的⾝份证号,联系电话,余额,状态:\n");scanf("%s%s%d%d",&e.IDcard,&e.phone,&e.yue,&e.zhuangtai);return e;}void add1() //添加新的会员信息{struct VIP e = gete();int i;printf("请输⼊要插⼊的位置(1-%d):\n",n);scanf("%d",&i);while(i<1||i>n+1){printf("您输⼊的位置有误!\n");printf("请重新输⼊要插⼊的位置(1-%d):\n",n);scanf("%d",&i);}for(int j=n-1;j>=i-1;j--){s[j+1]=s[j];}s[i-1]=e;n++;}void findbyno() //根据会员账号查找会员信息{int num,i;int found=1;char choice;while(1){printf("请输⼊要查找的会员的账号:\n");scanf("%d",&num);getchar();for(i=0;i<n&&found==1;i++){if(s[i].no==num){found=0;printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue); if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失!\n");}}if(found==1){printf("未找到!\n");}found=1;printf("是否继续查询(Y/N)\n");choice=getchar();if(choice=='N'|| choice=='n')break;}}void findbyname() //根据会员姓名查找会员信息{char name[20];char choice;int found=1;int i;while(1){printf("输⼊要查询会员的姓名:\n");scanf("%s",name);getchar();for(i=0;i<n&&found==1;i++){if(strcmp(s[i].name,name)==0){found=0;printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue); if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失!\n");}}if(found==1){printf("未找到!\n");}found=1;printf("是否继续查询(Y/N)\n");choice=getchar();if(choice=='N'|| choice=='n')break;}}void findbyIDcard() //根据⾝份证号查找会员信息{char num[19];int i;int found=1;char choice;while(1){printf("请输⼊要查找的会员的⾝份证号:\n");scanf("%s",num);getchar();for(i=0;i<n&&found==1;i++){if(strcmp(s[i].IDcard,num)==0){found=0;printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue); if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失!\n");}}if(found==1){printf("未找到!\n");}found=1;printf("是否继续查询(Y/N)\n");choice=getchar();if(choice=='N'|| choice=='n')break;}}void findbyphone() //根据联系电话查找会员信息{char num[12];int i;int found=1;char choice;while(1){printf("请输⼊要查找的会员的联系电话:\n");scanf("%s",num);getchar();for(i=0;i<n&&found==1;i++){if(strcmp(s[i].phone,num)==0){found=0;printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue); if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失!\n");}}if(found==1){printf("未找到!\n");}found=1;printf("是否继续查询(Y/N)\n");choice=getchar();if(choice=='N'|| choice=='n')break;}}void mod() //修改已有的会员信息{int num,i;int found=1;char choice;int opt;while(1){printf("请输⼊要修改的会员的账号(会员号⽆法修改):\n");scanf("%d",&num);getchar();for (i=0;i<n&&found==1;i++){if(s[i].no==num){found=0;printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue); if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失\n");printf("--请选择--1.修改⾝份证号 2.修改联系电话 3.修改状态\n");scanf("%d",&opt);getchar();switch(opt){case 1:printf("请输⼊⾝份证号新值:\n");scanf("%s",s[i].IDcard);getchar();break;case 2:printf("请输⼊联系电话新值:\n");scanf("%s",s[i].phone);getchar();break;case 3:printf("请输⼊状态新值:\n");scanf("%d",&s[i].zhuangtai);getchar();break;}}}if(found==1){printf("未找到!\n");}found=1;printf("是否继续修改(Y or N)\n");choice=getchar();getchar();if(choice=='N'|| choice=='n')break;}}void del() //删除已有会员信息{int num,i,j;int found=1;char choice;while(1){printf("请输⼊要删除的会员的账号:\n");scanf("%d",&num);for(i=0;i<n&&found==1;i++) //5 1-5{if(s[i].no==num){found=0;printf("你要删除的会员信息为:\n");printf("会员账号姓名⾝份证号联系电话余额状态\n");printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue);if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失!\n");for(j=i;j<n-1;j++){s[j]=s[j+1];}n--;}}if(found==1){printf("未找到!\n");}found=1;printf("是否继续(Y/N)\n");choice=getchar();getchar();if(choice=='N'|| choice=='n')break;}}void transaction() //消费或充值{int num,i,a,b;int found=1;char choice;while(1){printf("请输⼊会员的账号:\n");scanf("%d",&num);getchar();for(i=0;i<n&&found==1;i++)if(s[i].no==num){found=0;printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue);if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失!\n");printf("请选择类型:1.消费 2.充值\n");scanf("%d",&a);getchar();printf("请输⼊⾦额:\n");scanf("%d",&b);getchar();if(a==1){s[i].yue=s[i].yue-b;printf("%ld\t%s\t%s\t%s\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue); if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失!\n");}else{s[i].yue=s[i].yue+b;printf("%ld\t%s\t%s\t%s\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue); if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失!\n");}}{printf("未找到!\n");}found=1;printf("是否继续(Y/N)\n");choice=getchar();getchar();if(choice=='N'|| choice=='n')break;}}void sort() //根据会员账号从⼩到⼤排序{int i,j;struct VIP temp;for(i=0;i<n;i++){for (j=i+1;j<n;j++){if (s[i].no>s[j].no){temp=s[i];s[i]=s[j];s[j]=temp;}}}printf("\n排序后的会员信息:\n");}int main(){int opt;printf(" |*============================================*|\n");printf(" |* 欢迎使⽤会员管理系统 *|\n");printf(" |*============================================*|\n");printf(" |* 1.初始化 *|\n");printf(" |* 2.添加新的会员记录 *|\n");printf(" |* 3.修改已有会员记录/挂失 *|\n");printf(" |* 4.根据账号查询已有会员记录 *|\n");printf(" |* 5.根据姓名查询已有会员记录 *|\n");printf(" |* 6.根据⾝份证号查询已有会员记录 *|\n");printf(" |* 7.根据联系电话查询已有会员记录 *|\n");printf(" |* 8.删除已有会员记录 *|\n");printf(" |* 9.根据会员账号排序并显⽰ *|\n");printf(" |* 10.会员消费或充值 *|\n");printf(" |* 0.退出会员信息管理系统 *|\n");printf(" |*============================================*|\n");while(1){printf("请输⼊要完成的功能:0-10:");scanf("%d",&opt);getchar(); //吸收回车switch(opt){case 1:init();print();break; //初始化case 2:add1();print();break; //添加case 3:mod();print();break; //修改case 4:findbyno();print();break; //根据账号查询case 5:findbyname();print();break; //根据姓名查询case 6:findbyIDcard();print();break; //根据⾝份证号查询case 7:findbyphone();print();break; //根据联系电话查询case 8:del();print();break; //删除case 9:sort();print();break; //排序case 10:transaction();print();break; //消费/充值case 0:system("cls");exit(0);break; //退出default:printf("请输⼊0-10中的数!\n");break;}}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
29-会员卡计费管理系统

计算机科学与技术专业C程序设计课程设计任务书(15级)题目:会员卡计费管理系统学生姓名:学号:班级:题目类型:软件工程(R)指导教师:滕永晨一、课程设计的题目简介该设计要求学生以目前一些会员卡计费管理业务为背景,设计、开发一套“会员卡计费管理系统”软件。
通过该题目的设计过程,可以培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,针对c语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
得到软件工程的综合训练,提高解决实际问题的能力。
二、课程设计的任务1.查阅文献资料,一般在5篇以上;2.以目前一些会员卡计费管理业务为背景,通过调研、分析现有的管理模式和已有的管理软件,建立系统模型;3.完成软件结构设计和算法设计;4.完成系统的软件开发和测试工作;5.撰写设计说明书;6.做好答辩工作。
三、课程设计的主要内容、功能及技术指标1.问题分析及解决方案框架确定:充分地分析和理解问题本身,弄清要求做什么。
在确定解决方案框架过程中,综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。
最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系,并画出函数之间的调用关系图。
2.详细设计和编码:定义相应的存储结构,确定各个函数的算法,并画出流程图,在此基础上进行代码设计,每个明确的功能模块程序一般不超过60行,否则要进一步划分。
3.上机前程序静态检查:上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。
静态检查主要有两种途径:用一组测试数据手工执行程序;通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。
把程序中的明显错误事先排除。
4.程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。
能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。
调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果。
C语言课程设计报告酒店房间登记与计费管理系统源代码.docx

酒店房间登记与计费管理系统源代码#define M 80#include<stdlib.h>#include<stdio.h>#include<string.h>/* 函数声明 */void check_in();/*登记入住函数 */void chamber();/*入住情况函数 */void price();/*当前费用函数 */void fee();/*结账退房函数 */void infor();/*信息查询函数 */void save(int);/*保存信息函数 */void read(int);/*读取信息函数 */void choice();/*功能选择函数 */int judge_year(int); /*判断闰年函数 */void information();/*输出全部房间信息 *//* 结构体 */struct time{int year;int mon;int date;int hour;};struct room/*定义各房间信息的结构体 */{char name[40];char ID[18];int flag;/* 0-无人入住, 1- 按小时计费,2- 按天计费 */ long int deposit;time t[2];/* 0-入住时间, 1- 当前时间 */}room[M];char c1[40]={0};char c2[18]={0};/* 主函数(主界面)*/void main(){system("cls");/*清屏*/system("color 4E");int n;printf("********************************************************************************");printf("****");printf("**\t\t----------欢迎光临万豪酒店----------**");printf("****");printf("********************************************************************************\n\n");printf("\t\t\t[ 1.登记入住]\n\n");printf("\t\t\t[ 2.入住情况]\n\n");printf("\t\t\t[ 3.当前费用]\n\n");printf("\t\t\t[ 4.结账退房]\n\n");printf("\t\t\t[ 5.信息查询]\n\n");printf("\t\t\t[ 6.全部信息]\n\n");printf("\t\t\t[7.退出系统]\n\n");printf("请输入您需要的服务的代码:");scanf("%d",&n);while(n<1||n>7){printf("\n\n代码输入有误,请您重新输入:");scanf("%d",&n);}switch(n)/*根据输入数字选择功能*/ {case 1:check_in();break;/*调用登记入住函数*/ case 2:chamber();break;/*调用房间情况函数*/case 3:price();break;/*调用当前费用函数*/case 4:fee();break;/*调用结账退房函数*/case 5:infor();break;/*调用信息查询函数*/case 6:information();break;/*调用全部信息函数*/case 7:exit(0);/*调用退出系统函数*/}}void chamber(){system("cls");/*清屏*/system("color 4E");printf("\n**********************************房间使用情况**********************************\n");int count=0;int i;int j;int k;int m;for(i=1;i<=80;i++)/*统计未入住房间总数*/{read(i);if(room[i-1].flag==0)count++;}printf("当前未使用房间数:%d\n\n\n",count);chaxun:printf("请输入你要查询的房间号(1-40: 单人间, 41-80: 双人间): ");/* 输入房间号查询房间入住情况*/scanf("%d",&m);while(m<1||m>80){printf("\n\n房间号输入有误,请您重新输入:");scanf("%d",&m);}read(m);while(room[m-1].flag!=0){printf("\n\n对不起,该房间已有客人入住,请输入其他房间号:");scanf("%d",&m);read(m);}printf("\n\n该房间没有客人入住, 您要入住该房间吗?(1- 是, 2- 否):");scanf("%d",&j);while(j<1||j>2){printf("\n\n 您的选择输入有误,请您重新输入: ");scanf("%d",&j);}if(j==1)check_in();{printf("\n\n您需要继续查询吗?(1- 是, 2- 否): ");scanf("%d",&k);while(k<1||k>2){printf("\n\n您的选择输入有误,请您重新输入:");scanf("%d",&k);}if(k==1)goto chaxun;else{printf("\n\n");main();}}}/* 登记入住函数*/void check_in(){system("cls");/*清屏*/system("color 4E");int i;int j;int l;int k;int tab[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};printf("\n************************************登记入住************************************\n");printf("请输入您将入住的房间号:");scanf("%d",&i);while(i<1||i>80){printf("\n\n房间号输入有误,请您重新输入:");scanf("%d",&i);}read(i);while(room[i-1].flag!=0)/*判断房间是否入住*/{printf("\n\n对不起,该房间已有客人入住,请输入其他房间号:"); scanf("%d",&i);read(i);}printf("\n\n请输入您的姓名: ");/*客人信息登记*/ scanf("%s",room[i-1].name);j=strlen(room[i-1].name);while(j<0){printf("\n\n您的姓名输入有误,请您重新输入:\n");scanf("%s",room[i-1].name);j=strlen(room[i-1].name);}printf("\n\n请输入您的证件号码:");scanf("%s",room[i-1].ID);j=strlen(room[i-1].ID);while(j!=18){printf("\n\n您的证件号码输入有误,请您重新输入:\n");scanf("%s",room[i-1].ID);j=strlen(room[i-1].ID);}if(i<=40){printf("\n\n您选择的是单人间,该房间 148 元/ 天,8 元/ 小时。
会员计费系统c课课程设计

会员计费系统c课课程设计一、教学目标本课程旨在通过会员计费系统的设计与实现,让学生掌握基本的编程技能,理解软件工程的基本原理,培养学生的实际动手能力和问题解决能力。
同时,通过课程的学习,使学生树立正确的软件开发观念,增强团队合作意识,提升创新思维和批判性思维能力。
二、教学内容教学内容主要包括会员计费系统的设计与实现,涵盖需求分析、系统设计、编码实现、测试等环节。
具体内容包括:1.会员计费系统的基本概念和架构;2.数据库的设计与实现,包括数据表的创建、查询和更新;3.会员管理模块的设计与实现,包括会员注册、登录、信息管理等;4.计费模块的设计与实现,包括费用计算、充值、消费等;5.系统测试与优化。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法相结合的方式进行教学。
在教学过程中,教师将结合实际案例进行讲解,引导学生通过实验和项目实践来巩固知识,提高技能。
同时,鼓励学生进行小组讨论和团队合作,培养学生的沟通能力和团队协作能力。
四、教学资源教学资源包括教材、实验设备、多媒体资料等。
教材选用《会员计费系统设计与实现》一书,实验设备包括计算机、网络设备等,多媒体资料包括教学PPT、视频教程等。
此外,还将提供在线编程平台和调试工具,以便学生进行在线编程实践和交流。
五、教学评估本课程的教学评估将采取多元化方式进行,包括课堂表现、作业完成情况、阶段测试、项目实践和期末考试等。
评估内容覆盖课程的所有知识点,确保全面、公正地评价学生的学习成果。
具体评估方式如下:1.课堂表现:包括参与讨论、提出问题和回答问题等情况,占总评的10%。
2.作业完成情况:包括作业的质量和按时完成情况,占总评的20%。
3.阶段测试:包括对所学知识点的理解和应用能力,占总评的20%。
4.项目实践:包括项目的设计、实现和测试,占总评的30%。
5.期末考试:包括理论知识测试和实际编程能力测试,占总评的20%。
六、教学安排本课程的教学安排将分为16周进行,每周安排2课时。
C语言程序设计会员卡管理

【题目描述的内容】【简单的描述】设计一个图书大厦的会员卡管理程序,使其具有一些基本的功能,通过所给的提示信息便可以对会员的信息进行相应的处理。
【详细的描述】会员卡管理程序【题目描述】请设计一个图书大厦的会员卡管理程序。
该程序应该具有下列功能:(1) 录入某位持卡人的基本信息:姓名、身份证号、电话/手机并分配一个卡号(2) 给定卡号,显示此卡的基本信息;(3) 给定卡号,查询累积得分;(4) 给定卡号,进行购书的相应处理:购书款的打折;累计得分处理(5) 给定卡号或身份证号等信息进行挂失处理,挂失处理后能查到该卡号,但显示“该卡已挂失”信息。
(6) 给定卡号,对该卡进行删除处理;删除处理后无法找到该卡号。
(7) 提供一些统计各类信息的功能。
【说明】约定:任何一个人均可申请会员卡;每个人只能申请一个会员卡;卡号自动生成;购书款的打折:累积购书满1000元后享受95折、满2000元享受9折、满5000元享受8折。
【题目要求】(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;(2) 为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
【输入要求】应用程序运行后,在屏幕上显示一个菜单。
用户可以根据需求,选定相应的操作项目。
进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
【输出要求】(1) 应用程序运行后,要在屏幕上显示一个菜单;(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
【用户文档的内容】1.应用程序功能的详细说明这是一个图书大厦的会员卡管理程序。
该程序具有下列功能:使用该程序时,可以通过屏幕上显示的菜单以及所给的提示信息进行相应的操作。
程序中将菜单定义了一个函数,即:void menu(); /*菜单函数*/程序是的主页面的菜单如下:在菜单函数中通过对各项的选取,从而进入相应的函数中,继而进行接下来的操作。
c语言课程设计缴费系统

c语言课程设计缴费系统一、教学目标本课程的目标是让学生掌握C语言的基本语法,能够运用C语言设计一个简单的缴费系统。
通过本课程的学习,学生应能够理解C语言的基本数据类型、运算符、控制结构、函数等概念,并能够运用这些知识设计、编写并调试C语言程序。
同时,通过课程的学习,培养学生的逻辑思维能力、问题解决能力和团队合作能力。
二、教学内容教学内容主要包括C语言的基本语法和编程技巧。
具体包括以下内容:1.C语言的基本数据类型和运算符2.控制结构:条件语句、循环语句3.函数:定义、调用、返回值4.数组和字符串5.结构体和文件操作6.编程技巧:代码规范、调试方法、算法设计三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:用于讲解C语言的基本概念和语法规则。
2.案例分析法:通过分析实际案例,让学生掌握编程技巧和解决问题的方法。
3.实验法:通过上机实验,让学生动手实践,加深对C语言的理解和运用能力。
四、教学资源教学资源包括教材、实验设备和相关多媒体资料。
1.教材:《C语言程序设计》2.实验设备:计算机、网络设备3.多媒体资料:教学PPT、视频教程、在线编程练习平台五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分。
1.平时表现:通过课堂参与、提问、讨论等方式评估学生的学习态度和理解能力。
2.作业:布置课后编程作业,评估学生的编程能力和解决问题的能力。
3.考试:定期进行理论考试和上机考试,评估学生对C语言知识的掌握程度。
六、教学安排本课程的教学安排如下:1.教学进度:按照教材的章节顺序进行教学,确保每个章节都有充分的时间进行讲解和实践。
2.教学时间:每周安排2个课时,其中1个课时用于讲授,1个课时用于实验和实践。
3.教学地点:教室和计算机实验室交替使用,以便学生能够及时进行实践操作。
七、差异化教学根据学生的不同学习风格、兴趣和能力水平,本课程将采取以下差异化教学措施:1.学习风格:提供多种学习资源,如视频教程、PPT讲解等,以满足不同学习风格的学生的需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
break;
}
printf("\n>输入错误!(注:请选择1-%d)\n",MENU_MAIN_COUNT);
}
menu_main_func[selected-1]();//调用相应的函数指针数组中的函数,执行操作
}
intmain()/*主函数*/
{
menu();//调用菜单函数
"\t\t|2按消费总额排序\n"
"\t\t|3返回菜单\n"
"\t\t|\n"
"\t\t=======================================\n"
);
printf("请选择功能:");
scanf("%d",&f);
switch(f)
{//用switch语句选择功能
case1:p=sort_m(p);//调用按缴费总额排序
p->next=head;
head=p;
tail=NULL;//定义tail
while(tail!=head->next)
{
p=head;
q=p->next;
while(q->next!=tail)
{//判断q是否为空
if(p->next->money>q->next->money)
{
p->next=q->next;//比较大小,排序
}
returnsumc;//返回总额
}
voidstatistics()
{//统计会员信息函数
intf=0;
mem*p;
load(p);
system("cls");
printf("\t\t=======================================\n"
"\t\t|\n"
"\t\t|1按缴费总额排序\n"
q->next=q->next->next;
p->next->next=q;
}
p=p->next;
q=p->next;
}
tail=q;
}
head=head->next;
free(p);
returnhead;//返回值
}
mem*sort_c()
{//按消费金额排序
mem*q,*tail,*p=(mem*)malloc(sizeof(mem));
while(p)
{//循环,实现求总额
summ+=p->money;
p=p->next;
}
returnsumm;//返回总额
}
floatsumc(mem*p)
{//计算消费总额
floatsumc=0;
p=head;
while(p)
{//循环,实现求总额
sumc+=p->cost;
p=p->next;
default:menu();break;
}
}
/*退出系统操作*/
voidclear(mem*p)
{//释放链表空间
if(p==NULL)
{
return;
}
if(p->next==NULL)
{
free(p);
}
else
{
clear(p->next);
free(p);
p=NULL;
}
}
voidquit()
printf("\t\t=======================================\n");
while(!(selected>=1&&selected<=MENU_MAIN_COUNT))
{//判断初始值
printf("请选择:");
scanf("%d",&selected);
if(selected>=1&&selected<=MENU_MAIN_COUNT)
c语言课程设计报告会员卡计费系统源代码
#include<>.\n");
gotoa;.\n");
gotoa;
}
break;
case'3':printf("请输入年龄:");scanf("%d",&(p->age));break;
case'4':printf("请输入电话:");scanf("%s",p->tel);break;
printf("\t\t---------------------------------------\n");
}
void(*menu_main_func[])()=/*函数指针数组menu_main_func[]存储的是主菜单项中7个功能函数的地址,
分别对应1-7菜单项。例如用户选择1时,调用数组的第0个元素,即调用
"\t\t|4会员消费结算\n"
"\t\t|5会员退卡\n"
"\t\t|6统计功能\n"
"\t\t|7退出系统\n"
"\t\t|\n";
voidmenu()
{//菜单函数
intselected=0;//初始化变量
system("cls");//清屏
printf("会员卡计费系统");
printf(menu_main);//输出菜单主函数
{//退出函数
clear(head);
exit(0);
}
/*菜单信息*/
voidmenu_tile(char*title)
{//菜单表头
printf("\t\t=======================================\n");
printf("\t\t|%s\n",title);
display_statistics(p,summ(p),sumc(p));//调用函数
getch();
menu();
break;
case2:p=sort_c(p);//调用按消费总额排序
display_statistics(p,summ(p),sumc(p));//调用函数
getch();
menu();break;
default:break;
}
printf("是否继续修改Y/N");f元!",cost*;f元!\n",money);
printf("删除成功,按任意键继续!");//显示退回的余额
getch();
menu();//调用菜单函数
}/*统计函数*/
mem*sort_m()
{//按缴费总额排序
mem*q,*tail,*p=(mem*)malloc(sizeof(mem));
return0;//返回值
}
p->next=head;
head=p;
tail=NULL;//定义tail
while(tail!=head->next)
{
p=head;
q=p->next;
while(q->next!=tail)
{
if(p->next->cost>q->next->cost)
{//比较大ห้องสมุดไป่ตู้,排序
p->next=q->next;
newMember()函数,以此类推。*/
{
newMember,
modify_m,
add,
consume,
delete_m,
statistics,
quit,
};
charmenu_main[]=//菜单主函数
"\t\t\n"
"\t\t|1新会员登记\n"
"\t\t|2会员信息修改\n"
"\t\t|3会员续费\n"
q->next=q->next->next;
p->next->next=q;
}
p=p->next;
q=p->next;
}
tail=q;
}
head=head->next;
free(p);
returnhead;//返回值
}
floatsumm(mem*p)
{//计算缴费总额
floatsumm=0;
p=head;