1、团购网站信息管理系统#include#include#include#define PF printf#define SF scanf#define N 100struct user / 定义结构体 int number; char a4; int time;typedef struct user user;user usN; / 定义全局可用的结构体数组void menu() PF(tt*团购信息管理系统欢迎您*n); PF(tt*tt|1.管理员登录 *n); PF(tt*tt|0.退出 *n); PF(tt*团购信息管理系统欢迎您*nn); void administrator() PF
2、(tt*团购信息管理系统*n); PF(tt*tt|1.团购信息录入 *n); PF(tt*tt|2.团购信息浏览 *n); PF(tt*tt|3.团购信息查询 *n); PF(tt*tt|4.团购信息的添加 *n); PF(tt*tt|5.团购信息的删除 *n); PF(tt*tt|0.退出系统 *n); PF(tt*团购信息管理系统*nnn); PF(tt请输入以上序号进行选择:);void display() PF(ntt*团购信息查询*n); PF(tt*tt|1.团购信息表 *n); PF(tt*tt|2.团购利润排序统计 *n); PF(tt*tt|3.团购支出排序统计 *n);
3、PF(tt*tt|0.返回主菜单 *n); PF(tt*团购信息查询*nnn); PF(tt请输入以上序号进行选择:);void checkID() / 检验用户名 char c6; PF(tt请输入用户名:); while(1) SF(%s,c);getchar(); if(c0=a&c1=d&c2=m&c3=i&c4=n&c5=0) break; PF(tt用户名错误,请重新输入:); void password(int p) / 检验密码 int n=0; while(p!=123456) n+; if(n=1) PF(tt密码错误,您还有两次输入机会:); if(n=2) PF(tt密
4、码错误,您还有一次输入机会:); if(n=3) exit(0); scanf(%d,&p); PF(n);int tongji(int i,int c,int d,int m) / 输入起始和结束时间筛选出各项在该时间段内的个数 int k=0,n; for(n=0;n=c&usn.time=d) if(usn.ai=y) k+; return k;void xinxi(n) / 这个输出最全的团购信息,但是不排序,不保存 int b4,c,d,i,k=0; PF(ntt请输入起始时间:); SF(%d,&c); PF(tt请输入结束时间:); SF(%d,&d); for(i=0;i=3;
5、i+) / 执行统计子函数,将各项在时间段内的个数存到b0、b1、b2、b3中 bk=tongji(i,c,d,n); k+; PF(n 类型 商户名称 地点 电话 最低人数 ); PF( 实际人数t收入t支出t利润n); PF( 电影 A 北京 13211111111 2 ); PF( %dt %dt %dt %dn,b0,b0*100,b0*85,b0*15); / 制表符后加空格才有用 PF(健身房 B 上海 13622222222 3 ); PF( %dt %dt %dt %dn,b1,b1*150,b1*130,b1*20); PF( 餐厅 C 南京 13733333333 2 );
6、 PF( %dt %dt %dt %dn,b2,b2*200,b2*175,b2*25); PF( 宾馆 D 杭州 13844444444 3 ); PF( %dt %dt %dt %dn,b3,b3*250,b3*220,b3*30); PF(nttt总计:t 收入t 支出t利润tn); PF(ttt t %dt %dt %dtn,b0*100+b1*150+b2*200+b3*250,b0*85+b1*130+b2*175+b3*220,b0*15+b1*20+b2*25+b3*30); PF(n);void lirun(int n)/ 将各项利润按由大到小排序 FILE *fp=fope
7、n(D:lirun.txt,w); / 定义一个文件指针,新建并将指针指向文件 int b4,c,d,i,k=0,s,temp,l,index,t=0; char *t1=tttt类型 t利润n,*t2=tttt电影 ,*t3=tttt健身房,*t4=tttt总计 ,*t5=tttt餐厅 ,*t6=tttt宾馆 ,*t7=tttt起始时间:,*t8=tttt结束时间:; char len1,len2,len3,len4,len5,len6; struct f / 定义结构体数组,用来存放利润和标记项目的数字 int y,z; f4; PF(ntt请输入起始时间:); SF(%d,&c); PF
8、(tt请输入结束时间:); SF(%d,&d); for(i=0;i=3;i+) / 执行统计子函数,将各项在时间段内的个数存到b0、b1、b2、b3中 bk=tongji(i,c,d,n); k+; f0.z=b0*15;f0.y=0; f1.z=b1*20;f1.y=1; f2.z=b2*25;f2.y=2; f3.z=b3*30;f3.y=3; s=f0.z+f1.z+f2.z+f3.z; PF(ntttt类型 t利润n); for(l=0;l3;l+) / 将存于fl.z中的数按有大到小的顺序排序并保存,并将标记相应项目的数字交换 index=l; for(t=l+1;tfindex.
9、z) index=t; if(index!=l) temp=findex.z; findex.z=fl.z; fl.z=temp; temp=findex.y; findex.y=fl.y; fl.y=temp; len1=strlen(t1); / 将想要输出的文段所占空间长度测出,以便之后的文本输出 len2=strlen(t2); len3=strlen(t3); len4=strlen(t4); len5=strlen(t7); len6=strlen(t8); fwrite(t7,len5,1,fp); / 将文段输入到fp所指的文档中 fprintf(fp,%dn,c); fwri
10、te(t8,len6,1,fp); fprintf(fp,%dnn,d); fwrite(t1,len1,1,fp); for(l=0;l4;l+) / 将统计信息输出到屏幕并保存为文件 if(fl.y=0) PF(tttt电影 );PF(t %dn,fl.z); fwrite(t2,len2,1,fp);fprintf(fp,t%dn,fl.z); if(fl.y=1) PF(tttt健身房);PF(t %dn,fl.z); fwrite(t3,len3,1,fp);fprintf(fp,t%dn,fl.z); if(fl.y=2) PF(tttt餐厅 );PF(t %dn,fl.z); f
11、write(t5,len2,1,fp);fprintf(fp,t%dn,fl.z); if(fl.y=3) PF(tttt宾馆 );PF(t %dn,fl.z); fwrite(t6,len2,1,fp);fprintf(fp,t%dn,fl.z); PF(tttt总计 );PF(t %dnn,s); fwrite(t4,len4,1,fp);fprintf(fp,t%dn,s); fclose(fp);void zhichu(int n)/ 将支出由大到小排序 FILE *fp=fopen(D:zhichu.txt,w); / 定义一个文件指针,新建并将指针指向文件 int b4,c,d,i
12、,k=0,s,temp,l,index,t=0; char *t1=tttt类型 t支出n,*t2=tttt电影 ,*t3=tttt健身房,*t4=tttt总计 ,*t5=tttt餐厅 ,*t6=tttt宾馆 ,*t7=tttt起始时间:,*t8=tttt结束时间:; char len1,len2,len3,len4,len5,len6; struct f / 定义结构体数组,用来存放利润和标记项目的数字 int y,z; f4; PF(ntt请输入起始时间:); SF(%d,&c); PF(tt请输入结束时间:); SF(%d,&d); for(i=0;i=3;i+) / 执行统计子函数,将
13、各项在时间段内的个数存到b0、b1、b2、b3中 bk=tongji(i,c,d,n); k+; f0.z=b0*85;f0.y=0; f1.z=b1*130;f1.y=1; f2.z=b2*175;f2.y=2; f3.z=b3*220;f3.y=3; s=f0.z+f1.z+f2.z+f3.z; PF(ntttt类型 t支出n); for(l=0;l3;l+) / 将存于fl.z中的数按有大到小的顺序排序并保存,并将标记相应项目的数字交换 index=l; for(t=l+1;tfindex.z) index=t; if(index!=l) temp=findex.z; findex.z=
14、fl.z; fl.z=temp; temp=findex.y; findex.y=fl.y; fl.y=temp; len1=strlen(t1); / 将想要输出的文段所占空间长度测出,以便之后的文本输出 len2=strlen(t2); len3=strlen(t3); len4=strlen(t4); len5=strlen(t7); len6=strlen(t8); fwrite(t7,len5,1,fp); / 将文段输入到fp所指的文档中 fprintf(fp,%dn,c); fwrite(t8,len6,1,fp); fprintf(fp,%dnn,d); fwrite(t1,l
15、en1,1,fp); for(l=0;l4;l+) / 将统计信息输出到屏幕并保存为文件 if(fl.y=0) PF(tttt电影 );PF(t %dn,fl.z); fwrite(t2,len2,1,fp);fprintf(fp,t%dn,fl.z); if(fl.y=1) PF(tttt健身房);PF(t %dn,fl.z); fwrite(t3,len3,1,fp);fprintf(fp,t%dn,fl.z); if(fl.y=2) PF(tttt餐厅 );PF(t %dn,fl.z); fwrite(t5,len2,1,fp);fprintf(fp,t%dn,fl.z); if(fl.
16、y=3) PF(tttt宾馆 );PF(t %dn,fl.z); fwrite(t6,len2,1,fp);fprintf(fp,t%dn,fl.z); PF(tttt总计 );PF(t %dnn,s); fwrite(t4,len4,1,fp);fprintf(fp,t%dn,s); fclose(fp);void chaxun(int n) / 这是核心功能,团购信息查询 int choice; do display(); scanf(%d,&choice); switch(choice) case 1:xinxi(n); break; case 2:lirun(n); break; ca
17、se 3:zhichu(n); break; case 0: break; default : PF(tttt 请重新输入!nn); break; while(choice); PF(n);int luru() / 录入函数 int n=0; while(1) char ch; PF(ntt开始输入信息n); PF(tt请输入客户编号:);getchar(); SF(%d,&usn.number);PF(n); PF(tt请输入电影,健身房,餐厅,宾馆的订购情况(y/n):);getchar(); / 此步千万不能少,少了整个程序完全崩溃 SF(%c,%c,%c,%c,&(usn.a0),&(
18、usn.a1),&(usn.a2),&(usn.a3);PF(n);getchar(); PF(tt请输入购物时间:); SF(%d,&usn.time);PF(n);getchar(); / 两次输入之间回车作为保护,否则下次输入跳过 n+; PF(tt是否继续输入,请选择(y/n):); SF(%c,&ch); if(ch=n) break; PF(n); return n; void liulan(n) / 此部分验证正确 int k; PF(ntt客户编号 电影 健身房 餐厅 宾馆 消费时间n); for(k=0;kn;k+) PF(tt ); PF(%d,usk.number); P
19、F(t );PF(%c,usk.a0); PF(t );PF(%c,usk.a1); PF(t );PF(%c,usk.a2); PF(t );PF(%c,usk.a3); PF(t);PF(%d,usk.time); PF(n); PF(n);int tianjia(n) while(1) char ch; PF(ntt请输入客户编号:); SF(%d,&(usn.number);getchar(); / 跳过回车 PF(tt此客户订购电影吗? ); SF(%c,&(usn.a0);getchar(); PF(tt此客户订购健身房吗? ); SF(%c,&(usn.a1);getchar()
20、; PF(tt此客户订购餐厅吗? ); SF(%c,&(usn.a2);getchar(); PF(tt此客户订购宾馆吗? ); SF(%c,&(usn.a3);getchar(); PF(tt请输入此客户的订购时间:); SF(%d,&(usn.time);getchar(); n+; PF(tt还要再次输入吗?(y/n) ); SF(%c,&ch); if(ch=n) break; PF(n); return n;int shanchu(n) int i,t,f=0,k,l=0; while(1) char ch; int c=0; if(f=0) PF(ntt请输入需要删除的客户编号:)
21、; SF(%d,&t);getchar(); / 输入客户编号不能出现字符,否则输出时出错! for(i=0;in-l;i+) k=i; if(usi.number=t) c=1; f=1; break; if(c=0) PF(tt输入有误,请重新输入客户编号!nn); continue; l+; for(i=k;in-l;i+) usi.number=usi+1.number; usi.a0=usi+1.a0; usi.a1=usi+1.a1; usi.a2=usi+1.a2; usi.a3=usi+1.a3; usi.time=usi+1.time; PF(tt还要再删除吗?(y/n) )
22、; SF(%c,&ch); if(ch=n) break; f=0; PF(n); return n-l;void runmain() / 这是次主体结构 int choice,n=0; do choice=6;getchar(); administrator(); scanf(%d,&choice); switch(choice) case 1:n=luru(); break; case 2:liulan(n); break; case 3:chaxun(n); break; case 4:n=tianjia(n); break; case 5:n=shanchu(n); break; ca
23、se 0: exit(0); default : PF(tttt 请重新输入!nn); break; while(choice);int main() / 这是主体结构 int choice,p; system(color F9); do menu(); PF(ttttt); scanf(%d,&choice); if(choice=1) checkID(); printf(tt请输入登录密码:); scanf(%d,&p); password(p); runmain(choice); if(choice!=0&choice!=1) printf(tttt 请重新输入!nn); while(choice); return 0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1