c/c++开发分享C语言实现自行车存放管理系统实例为大家分享了c语言实现自行车存放管理系统的具体代码,供大家参考,具体内容如下
系统包括以下内容
1.数据录入:录入系统基本数据,用数组或链表组织;
2.数据存储:用文件的形式将录入的数据存储;
3.数据读写:对文件中的数据可以进行读写操作;
4.数据修改:可以对已存在的旧数据进行修改操作;
5.数据插入:可以将新数据插入到任意指定的位置;
6.数据删除:可以对已存在的旧数据进行删除操作;
7.数据查询:按要求对数据进行查询,至少含两项
简单查询以及一项组合查询;
8.数据统计:按要求对数据进行统计
含简单统计及综合统计;
9.数据排序:按要求对数据进行排序
含升序排序及降序排序;
10.数据报表:按要求对数据打印报表,
依规定的报表格式对数据打印报表;
11.界面:设计总体菜单界面。
附加项目:
登录、注册部分;
(密码设置密码的隐式输出、简单的加密解密)
附代码:
#include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> struct bicycle{ char tele_num[12];//用户的电话号码 char name[13];//用户的姓名 char sex[7];//用户的性别 char bic_num[12];//自行车的编号 struct bicycle *next; }; int icount=0; struct bicycle *phead=null; void key(); void menu(); void create(); void print(); void insert(); void search(); void dele(); void modify(); void excheng(struct bicycle *pstra,struct bicycle *midd); void sort(); int main(){ menu(); printf("123"); return 0; } //密码管理页面 void key(){ char key[20],m[20]; file *k; k=fopen("key.txt","r"); if(k==null) { k=fopen("key.txt","wt"); printf("请创建管理密码:n"); scanf("%s",key); fprintf(k,"%s",key); fclose(k); printf("恭喜您创建成功!n"); getchar(); printf("按任意键继续..."); getchar(); return ; } else { fscanf(k,"%s",m); fclose(k); printf("请输入管理密码:"); scanf("%s",key); if(strcmp(m,key)==0) { printf("密码正确!n"); getchar(); printf("按任意键继续..."); getchar(); return ; } else { printf("密码错误!n"); getchar(); printf("按任意键继续..."); getchar(); return ; } } } //显示景点的信息 void menu(){ key(); int select=-1; while(select!=0){ system("cls"); printf("nnttttttt==============欢迎使用自行车管理系统==============n"); printf("tttttttt=======请选择功能列表=======n"); printf("tttttttt1.录入自行车的信息lv5n"); printf("tttttttt2.修改自行车的信息lv5n"); printf("tttttttt3.删除自行车的信息lv5n"); printf("tttttttt4.查询自行车的信息lv5n"); printf("tttttttt5.打印自行车的信息lv5n"); printf("tttttttt6.自行车信息的排序lv5n"); printf("tttttttt7.插入自行车的信息lv5n"); printf("tttttttt0.退 出 菜 单lv5n"); printf("n请选择:"); scanf("%d",&select); switch(select){ case 1: create(); break; case 2: modify(); break; case 3: dele(); break; case 4: search(); break; case 5: print(); break; case 6: sort(); break; case 7: insert(); break; case 0:break; default: exit(1); break; } } } //创建链表函数 void create(){ //页面优化 system("cls"); struct bicycle *pend,*pnew; struct bicycle *p; pend=pnew=(struct bicycle *)malloc(sizeof(struct bicycle)); printf("请输入存放自行车的信息(退出请按0):n"); //录入自行车编号,编号不可以重复 int flag1=1,flag2,n; struct bicycle *ptemp; printf("n自行车的编号(退出请按0):"); scanf("%s",pnew->bic_num); while(flag1){ if(strcmp(pnew->bic_num,"0")==0) { flag1=1; break; } else{ ptemp=phead; n=icount; flag2=1; while(n&&flag2){ if(strcmp(ptemp->bic_num,pnew->bic_num)==0) flag2=0; ptemp=ptemp->next; n=n-1; } if(flag2==0){ printf("请重新输入,自行车编号%s存在!(退出请按0):n",pnew->bic_num); printf("自行车的编号:"); scanf("%s",pnew->bic_num); flag1=1; } if(flag2==1) flag1=0; } } //录入其他信息,如果flag1=0,则表明要退出,那么其他信息不用再录 if(flag1!=1){ printf("姓名:"); scanf("%s",pnew->name); //性别只能输入female或male,否则是不规范的 while(1){ printf("性别(female或male):"); scanf("%s",pnew->sex); if(strcmp(pnew->sex,"female")==0||strcmp(pnew->sex,"male")==0) break; else printf("性别输入不规范,请核对后重输!n"); } //电话必须11位数,否则是不规范的 while(1){ printf("电话(11位数):"); scanf("%s",pnew->tele_num); if(strlen(pnew->tele_num)==11) break; else printf("电话输入不规范,必须11位数!n"); } } while(strcmp(pnew->bic_num,"0")!=0) { icount++; if(phead==null){ pnew->next=null; pend=pnew; phead=pnew; } else{ p=phead; while(p&&p->next!=null) p=p->next; { p->next=pnew; pnew->next=null; } } pnew=(struct bicycle *)malloc(sizeof(struct bicycle)); printf("n自行车的编号(退出请按0):"); scanf("%s",pnew->bic_num); flag1=1;//每次循环结束flag1=1退出;flag1=0则继续,所以要值0 while(flag1){ if(strcmp(pnew->bic_num,"0")==0){ flag1=1; break; } else{ ptemp=phead; n=icount; flag2=1; while(n&&flag2){ if(strcmp(ptemp->bic_num,pnew->bic_num)==0) flag2=0; ptemp=ptemp->next; n=n-1; } if(flag2==0) { printf("请重新输入,自行车的编号%s存在!(退出请按0):n",pnew->bic_num); printf("自行车的编号:"); scanf("%s",pnew->bic_num); flag1=1; } if(flag2==1) flag1=0; } } //录入其他信息,如果flag1=0,则表明要退出,那么其他信息不用再录 if(flag1!=1){ printf("姓名:"); scanf("%s",pnew->name); //性别只能输入female或male,否则是不规范的 while(1){ printf("性别(female或male):"); scanf("%s",pnew->sex); if(strcmp(pnew->sex,"female")==0||strcmp(pnew->sex,"male")==0) break; else printf("性别输入不规范,请核对后重输!n"); } //电话必须11位数,否则是不规范的 while(1){ printf("电话(11位数):"); scanf("%s",pnew->tele_num); if(strlen(pnew->tele_num)==11) break; else printf("电话输入不规范,必须11位数!n"); } } //22 } free(pnew); } //输出链表自行车的信息 void print(){ //页面优化 system("cls"); printf("nntttt===================5.打印自行车的信息===================n"); struct bicycle *ptemp; int iindex=1; printf("**********本名单中共有%d个自行车信息,所有的信息如下:**********n",icount); printf("序号 姓名 性别 电话 自行车编号 n"); ptemp=phead; while(ptemp!=null){ printf("%d %s %s %s %sn",iindex,ptemp->name,ptemp->sex,ptemp->tele_num,ptemp->bic_num); ptemp=ptemp->next; iindex++; } printf("按任意键返回上一级"); getch(); } //插入自行车的信息 void insert(){ //页面优化 system("cls"); printf("nntttt===================7.插入自行车的信息===================n"); printf("#n说明:插入任意位置都可以n#"); create(); printf("插入信息成功,"); printf("按任意键返回上一级"); getch(); } //信息查询函数 void search(){ //页面优化 printf("nntttt===================4.查询自行车的信息==================="); int select=-1; while(select!=0){ system("cls"); printf("ntt=======请选择功能列表=======n"); printf("ttt1.按自行车的编号查询(lv4)n"); printf("ttt2.按 姓 名 查 询 (lv1)n"); printf("ttt0.退出此页面(lv4)n"); printf("请选择:"); scanf("%d",&select); int flag=1,flag1=1; char number[12]; char name[12]; struct bicycle *ptemp=phead; //按自行车的编号查询 if(select==1){ printf("请输入你要查找的自行车编号:"); scanf("%s",number); while(ptemp!=null&&flag) { if(strcmp(ptemp->bic_num,number)==0) { printf("%s找到了,具体信息如下:nn",number); printf("t姓名 性别 电话 自行车编号 n"); printf("t%s %s %s %sn",ptemp->name,ptemp->sex,ptemp->tele_num,ptemp->bic_num); printf("n"); flag=0; } ptemp=ptemp->next; } if(flag==1) printf("编号%s不存在!n",number); } //按姓名查询 if(select==2){ printf("请输入你要查找的姓名:"); scanf("%s",name); while(ptemp!=null&&flag) { if(strcmp(ptemp->name,name)==0) { printf("%s找到了,具体信息如下n",name); printf("t姓名 性别 电话 自行车编号 n"); printf("t%s %s %s %sn",ptemp->name,ptemp->sex,ptemp->tele_num,ptemp->bic_num); printf("n"); flag=0; } ptemp=ptemp->next; } if(flag==1) printf("姓名%s不存在!",name); } printf("按任意键返回上一级"); getch(); } } //删除信息函数 void dele(){ //页面优化 system("cls"); printf("nntttt===================3.删除自行车的信息(按编号)==================="); int select=-1; while(select!=0){ printf("ntt=======请选择功能列表=======n"); printf("ttt1.按自行车的编号删除(lv4)n"); printf("ttt2.按 姓 名 删 除 (lv1)n"); printf("ttt0.退出此页面(lv4)n"); printf("请选择:"); scanf("%d",&select); if(select==0) return; else if(select==1||select==2) break; else printf("输入有误请重新输入n"); } if(select==1){ if(icount==0) printf("nn暂无数据无法进行此操作,按任意键退出!n"); else { //33 char number[12]; int i,flag=1; char option; struct bicycle *ptemp; struct bicycle *ppre; ptemp=phead; int iindex=0; printf("n请输入要删除自行车的编号:"); scanf("%s",number); while(ptemp!=null&&flag){ if(strcmp(ptemp->bic_num,number)==0){ printf("n%s找到了,将要删除的信息如下nn",number); //显示将要删除人的信息 printf("t姓名 性别 电话 自行车编号 n"); printf("t%s %s %s %sn",ptemp->name,ptemp->sex,ptemp->tele_num,ptemp->bic_num); printf("n"); flag=0; printf("确认删除请输1,否则按任意数字键退出n"); scanf("%d",&option); } ptemp=ptemp->next; iindex++; } if(flag==1) {printf("编号%s不存在!",number); return;} if(option==1){ ptemp=phead; ppre=ptemp;//可能多余 //printf("----------删除第%d个学生----------n",iindex); if(iindex!=1) { for(i=1;i<iindex;i++) { ppre=ptemp; ptemp=ptemp->next; } ppre->next=ptemp->next; } if(iindex==1) phead=ptemp->next; free(ptemp); icount--; printf("删除成功按任意键退出!"); } else printf("删除失败按任意键退出!"); } //33 getch(); } else{ if(icount==0) printf("nn暂无数据无法进行此操作,按任意键退出!n"); else { //33 char name[12]; int i,flag=1; char option; struct bicycle *ptemp; struct bicycle *ppre; ptemp=phead; int iindex=0; printf("n请输入要删除自行车对应户主的姓名:"); scanf("%s",name); while(ptemp!=null&&flag){ if(strcmp(ptemp->name,name)==0){ printf("n%s找到了,将要删除的信息如下nn",name); //显示将要删除人的信息 printf("t姓名 性别 电话 自行车编号 n"); printf("t%s %s %s %sn",ptemp->name,ptemp->sex,ptemp->tele_num,ptemp->bic_num); printf("n"); flag=0; printf("确认删除请输1,否则按任意数字键退出n"); scanf("%d",&option); } ptemp=ptemp->next; iindex++; } if(flag==1) {printf("姓名%s不存在!",name); return;} if(option==1){ ptemp=phead; ppre=ptemp;//可能多余 //printf("----------删除第%d个学生----------n",iindex); if(iindex!=1) { for(i=1;i<iindex;i++) { ppre=ptemp; ptemp=ptemp->next; } ppre->next=ptemp->next; } if(iindex==1) phead=ptemp->next; free(ptemp); icount--; printf("删除成功按任意键退出!"); } else printf("删除失败按任意键退出!"); } //33 getch(); } } //2.修改自行车的信息 void modify(){ //页面优化 system("cls"); printf("nntttt===================2.修改自行车的信息==================="); int post; int flag=1,flag1; char number[12]; struct bicycle *ptemp=phead,*ppre=ptemp; printf("n请输入你要修改自行车信息对应自行车的编号:"); scanf("%s",number); while(ptemp!=null&&flag) { if(strcmp(ptemp->bic_num,number)==0) { printf("将要修改的学号%s具体信息如下n",number); printf("t姓名 性别 电话 自行车编号 n"); printf("t%s %s %s %sn",ptemp->name,ptemp->sex,ptemp->tele_num,ptemp->bic_num); printf("n"); flag=0; } ppre=ptemp;//保存ptemp ptemp=ptemp->next; } if(flag==1) printf("你要修改的学号%s不存在!",number); else { printf("确认修改请按1,放弃请按任意数字键!n请选择:"); scanf("%d",&post); while(post==1) { printf("请选择你要修改的项目(1.姓名 2.性别 3.电话号码 4.自行车的编号 5.修改全部)n"); scanf("%d",&flag1); if(flag1==1) { printf("新姓名:"); scanf("%s",ppre->name); printf("修改完成,按任意键退出!"); } else if(flag1==2) { printf("新性别:"); scanf("%s",ppre->sex); printf("修改完成,按任意键退出!"); } else if(flag1==3) { while(1){ printf("电话(11位数):"); scanf("%s",ppre->tele_num); if(strlen(ppre->tele_num)==11) break; else printf("电话输入不规范,必须11位数!n"); } printf("修改完成,按任意键退出!"); } else if(flag1==4) { printf("新编号:"); scanf("%d",&ppre->bic_num); printf("修改完成,按任意键退出!"); } else{ printf("新姓名:"); scanf("%s",ppre->name); printf("新性别:"); scanf("%s",ppre->sex); while(1){ printf("电话(11位数):"); scanf("%s",ppre->tele_num); if(strlen(ppre->tele_num)==11) break; else printf("电话输入不规范,必须11位数!n"); } printf("新编号:"); scanf("%s",ppre->bic_num); } break; } } printf("修改完成,按任意键退出"); getch(); } //交换函数 void excheng(struct bicycle *pstra,struct bicycle *pmidd){ int t; struct bicycle *ptemp; ptemp=(struct bicycle *)malloc(sizeof(struct bicycle)); strcpy(ptemp->tele_num,pstra->tele_num); strcpy(pstra->tele_num,pmidd->tele_num); strcpy(pmidd->tele_num,ptemp->tele_num); strcpy(ptemp->bic_num,pstra->bic_num); strcpy(pstra->bic_num,pmidd->bic_num); strcpy(pmidd->bic_num,ptemp->bic_num); strcpy(ptemp->name,pstra->name); strcpy(pstra->name,pmidd->name); strcpy(pmidd->name,ptemp->name); strcpy(ptemp->sex,pstra->sex); strcpy(pstra->sex,pmidd->sex); strcpy(pmidd->sex,ptemp->sex); free(ptemp); } //6.自行车信息的排序 void sort(){ //页面优化 printf("nntt===================4.排序系统==================="); int i,j; struct bicycle *pstra,*pmidd; int result; int select=-1; while(select!=0) { system("cls"); printf("nttt=======请选择功能列表=======n"); printf("ttt1.按自行车编号升序排序(lv4)n"); printf("ttt2.按自行车编号降序排序(lv1)n"); printf("ttt3.按姓名升序排序(lv4)n"); printf("ttt4.按姓名降序排序(lv1)n"); printf("ttt0.退出此页面(lv4)n"); printf("请选择:"); scanf("%d",&select); result=select; if(select!=1&&select!=2&&select!=3&&select!=4) return; pstra=phead; pmidd=pstra->next; for(i=0;i<icount;i++) { pstra=phead; pmidd=pstra->next; for(j=0;j<icount-i-1&&pmidd!=null;j++) { if(result==1) {if(strcmp(pstra->bic_num,pmidd->bic_num)>0) excheng(pstra,pmidd);} else if(result==2) {if(strcmp(pstra->bic_num,pmidd->bic_num)<0) excheng(pstra,pmidd);} else if(result==3) {if(strcmp(pstra->name,pmidd->name)>0) excheng(pstra,pmidd);} else if(result==4) {if(strcmp(pstra->name,pmidd->name)<0) excheng(pstra,pmidd);} pstra=pmidd; pmidd=pmidd->next; } } printf("ttt5.显示排完序后的结果为:nn"); printf("------------------------------------------------------"); struct bicycle *ptemp; int iindex=1; printf("**********本名单中共有%d个自行车信息,所有的信息如下:**********n",icount); printf("序号 姓名 性别 电话 自行车编号 n"); ptemp=phead; while(ptemp!=null){ printf("%d %s %s %s %sn",iindex,ptemp->name,ptemp->sex,ptemp->tele_num,ptemp->bic_num); ptemp=ptemp->next; iindex++; } printf("------------------------------------------------------"); printf("nn排序成功,按任意键返回!"); getch(); } }
以上就是c/c++开发分享C语言实现自行车存放管理系统的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。
需要了解更多c/c++开发分享C语言实现自行车存放管理系统,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/1236850.html