经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C 语言 » 查看文章
C语言实现自行车存放管理系统
来源:jb51  时间:2022/8/31 17:26:49  对本文有异议

本文实例为大家分享了C语言实现自行车存放管理系统的具体代码,供大家参考,具体内容如下

系统包括以下内容

1.数据录入:录入系统基本数据,用数组或链表组织;

2.数据存储:用文件的形式将录入的数据存储; 

3.数据读写:对文件中的数据可以进行读写操作;

4.数据修改:可以对已存在的旧数据进行修改操作;

5.数据插入:可以将新数据插入到任意指定的位置;

6.数据删除:可以对已存在的旧数据进行删除操作;

7.数据查询:按要求对数据进行查询,至少含两项
                   简单查询以及一项组合查询;

8.数据统计:按要求对数据进行统计
                    含简单统计及综合统计;

9.数据排序:按要求对数据进行排序
                    含升序排序及降序排序;

10.数据报表:按要求对数据打印报表,
                     依规定的报表格式对数据打印报表;

11.界面:设计总体菜单界面。

附加项目:

登录、注册部分;
(密码设置密码的隐式输出、简单的加密解密)

附代码:

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<conio.h>
  4. #include<string.h>
  5. ?
  6. struct bicycle{
  7. ?? ?char tele_num[12];//用户的电话号码?
  8. ?? ?char name[13];//用户的姓名
  9. ?? ?char sex[7];//用户的性别?
  10. ?? ?char bic_num[12];//自行车的编号?
  11. ?? ?struct bicycle *next;
  12. };
  13. ?
  14. ?
  15. int iCount=0;
  16. struct bicycle *pHead=NULL;
  17. ?
  18. void key();?
  19. void menu();
  20. void create();
  21. void print();?
  22. void insert();
  23. void search();
  24. void dele();
  25. void modify();
  26. void excheng(struct bicycle *pStra,struct bicycle *Midd);?
  27. void sort();?
  28. ?
  29. int main(){
  30. ?? ?
  31. ?? ?
  32. ? ? menu();
  33. ?? ?printf("123");
  34. ?? ?
  35. ?? ?return 0;
  36. }
  37. ?
  38. //密码管理页面?
  39. void key(){ ??
  40. ?? ?char key[20],m[20];
  41. ?? ?FILE *k;
  42. ? ? k=fopen("key.txt","r");
  43. ?? ?if(k==NULL)
  44. ?? ?{ ? k=fopen("key.txt","wt");
  45. ?? ??? ?printf("请创建管理密码:\n");
  46. ?? ??? ?scanf("%s",key);
  47. ?? ??? ?fprintf(k,"%s",key);
  48. ?? ??? ?fclose(k);
  49. ?? ??? ?printf("恭喜您创建成功!\n");
  50. ? ? ? ? getchar();
  51. ?? ? ? ?printf("按任意键继续...");
  52. ?? ? ? ?getchar();
  53. ?? ??? ?return ;
  54. ?? ?}
  55. ? ? ?else
  56. ?? ? { ?fscanf(k,"%s",m);
  57. ?? ? fclose(k);
  58. ?? ??? ?printf("请输入管理密码:");
  59. ?? ??? ?scanf("%s",key);
  60. ?? ??? ?if(strcmp(m,key)==0)
  61. ?? ??? ?{
  62. ?? ??? ? printf("密码正确!\n");
  63. ? ? ? ? getchar();
  64. ?? ? ? ?printf("按任意键继续...");
  65. ?? ? ? ?getchar();
  66. ?? ??? ?return ;
  67. ?? ??? ?}
  68. ?? ??? ?else
  69. ?? ??? ?{
  70. ? ? ? ? ? ? printf("密码错误!\n");
  71. ? ? ? ? getchar();
  72. ?? ? ? ?printf("按任意键继续...");
  73. ?? ? ? ?getchar();
  74. ?? ??? ?return ;
  75. ?? ??? ?}
  76. ?? ? }
  77. }
  78. ?
  79. //显示景点的信息?
  80. void menu(){
  81. ?? ?key();?
  82. ?? ?int select=-1;
  83. ?
  84. ?? ?while(select!=0){
  85. ? ?? ?system("cls");?
  86. ? ? printf("\n\n\t\t\t\t\t\t\t==============欢迎使用自行车管理系统==============\n");
  87. ?? ?printf("\t\t\t\t\t\t\t\t=======请选择功能列表=======\n");
  88. ? ? printf("\t\t\t\t\t\t\t\t1.录入自行车的信息LV5\n");
  89. ? ? printf("\t\t\t\t\t\t\t\t2.修改自行车的信息LV5\n");
  90. ? ? printf("\t\t\t\t\t\t\t\t3.删除自行车的信息LV5\n");
  91. ?? ?printf("\t\t\t\t\t\t\t\t4.查询自行车的信息LV5\n");?
  92. ?? ?printf("\t\t\t\t\t\t\t\t5.打印自行车的信息LV5\n");
  93. ?? ?printf("\t\t\t\t\t\t\t\t6.自行车信息的排序LV5\n");
  94. ?? ?printf("\t\t\t\t\t\t\t\t7.插入自行车的信息LV5\n"); ?
  95. ?? ?printf("\t\t\t\t\t\t\t\t0.退 ? 出 ? 菜 ?单LV5\n");
  96. ? ? printf("\n请选择:");
  97. ? ? scanf("%d",&select);
  98. ? ? switch(select){
  99. ? ? ? case 1:
  100. ? ? ? ?? ?create();?
  101. ?? ??? ? ?break;?
  102. ? ? ? case 2:
  103. ? ? ? ?? ?modify();?
  104. ? ? ? ? ?break;
  105. ? ? ? case 3:
  106. ? ? ? dele();?
  107. ? ? ? ? break;
  108. ? ? ? case 4:
  109. ? ?? ??? ?search();?
  110. ? ? ? ? break; ? ?
  111. ? ? ? case 5:
  112. ? ?? ??? ?print();?
  113. ? ? ? ? break; ?
  114. ? ? ? case 6:
  115. ? ?? ??? ?sort();?
  116. ? ? ? ? break; ?
  117. ? ? ? case 7:
  118. ? ?? ??? ?insert();?
  119. ? ? ? ? break; ?
  120. ? ? ? case 0:break;
  121. ? ? ? default:
  122. ? ? ? ? exit(1);
  123. ? ? ? ? break;
  124. ? ? }
  125. ? }?? ?
  126. ?? ?
  127. ?? ?
  128. }?
  129. ?
  130. //创建链表函数
  131. void create(){
  132. ?? ?//页面优化
  133. ?? ?system("cls");
  134. ?? ?
  135. ?? ?struct bicycle *pEnd,*pNew;
  136. ?? ?struct bicycle *p;
  137. ? ? pEnd=pNew=(struct bicycle *)malloc(sizeof(struct bicycle));
  138. ?
  139. ?? ?printf("请输入存放自行车的信息(退出请按0):\n");
  140. ?
  141. ?? ?//录入自行车编号,编号不可以重复
  142. ? ? int flag1=1,flag2,n;?
  143. ?? ?struct bicycle *pTemp;
  144. ?? ?printf("\n自行车的编号(退出请按0):");
  145. ? ? scanf("%s",pNew->bic_num);
  146. ? ??
  147. ? ? while(flag1){
  148. ?? ??? ?if(strcmp(pNew->bic_num,"0")==0) ?{
  149. ?? ??? ??? ?flag1=1;
  150. ?? ??? ??? ?break;
  151. ?? ??? ?}
  152. ?
  153. ?? ??? ?else{
  154. ?? ??? ??? ?pTemp=pHead;
  155. ?? ??? ??? ?n=iCount;
  156. ?? ??? ??? ?flag2=1;
  157. ?
  158. ?? ??? ??? ?while(n&&flag2){
  159. ?? ??? ??? ? ? if(strcmp(pTemp->bic_num,pNew->bic_num)==0) ?flag2=0;
  160. ?? ? ? ? ? ? ? pTemp=pTemp->next;
  161. ?? ??? ? ? ? ? n=n-1;
  162. ?? ??? ??? ?}?? ?
  163. ?? ??? ??? ?
  164. ?? ??? ??? ?if(flag2==0){?
  165. ?? ??? ??? ??? ?printf("请重新输入,自行车编号%s存在!(退出请按0):\n",pNew->bic_num);
  166. ?? ??? ??? ??? ?printf("自行车的编号:");?
  167. ?? ??? ??? ??? ?scanf("%s",pNew->bic_num);?
  168. ?? ??? ??? ??? ?flag1=1;
  169. ?? ??? ??? ?}
  170. ?
  171. ?? ??? ??? ?if(flag2==1) flag1=0;
  172. ?? ??? ?}
  173. ?? ?}
  174. ?? ?
  175. ?? ?//录入其他信息,如果flag1=0,则表明要退出,那么其他信息不用再录
  176. ? ? if(flag1!=1){?? ?
  177. ?? ??? ?printf("姓名:");
  178. ?? ? ? ?scanf("%s",pNew->name);
  179. ?? ? ? ?
  180. ?? ? ? ?//性别只能输入female或male,否则是不规范的
  181. ?? ??? ?while(1){
  182. ?? ??? ? ?printf("性别(female或male):");
  183. ?? ? ? ? ?scanf("%s",pNew->sex);
  184. ?? ??? ? ?if(strcmp(pNew->sex,"female")==0||strcmp(pNew->sex,"male")==0) break;
  185. ?? ??? ? ?else printf("性别输入不规范,请核对后重输!\n");
  186. ?? ??? ?}
  187. ?? ? ? ?
  188. ?? ? ? ?//电话必须11位数,否则是不规范的
  189. ?? ??? ?while(1){
  190. ?? ??? ? ?printf("电话(11位数):");
  191. ?? ? ? ? ?scanf("%s",pNew->tele_num);
  192. ?? ??? ? ?if(strlen(pNew->tele_num)==11) break;
  193. ?? ??? ? ?else printf("电话输入不规范,必须11位数!\n");
  194. ?? ??? ?}
  195. ?? ? ? ?
  196. ?? ?} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
  197. ?
  198. ?
  199. ?
  200. ?
  201. ?? ?while(strcmp(pNew->bic_num,"0")!=0)
  202. ?? ?{
  203. ?? ??? ?iCount++;
  204. ?? ??? ?
  205. ?? ? ? ?if(pHead==NULL){
  206. ?? ??? ??? ? pNew->next=NULL;
  207. ?? ??? ??? ? pEnd=pNew;
  208. ?? ??? ??? ? pHead=pNew;
  209. ?? ??? ??? ?}
  210. ?
  211. ?? ?
  212. ?? ??? ?else{
  213. ?? ??? ??? ?
  214. ?? ??? ? p=pHead;?
  215. ?? ?
  216. ?? ??? ?while(p&&p->next!=NULL) p=p->next;
  217. ?? ??? ?{
  218. ?? ? ? ? ?p->next=pNew;
  219. ?? ??? ? ?pNew->next=NULL;
  220. ?? ??? ?}
  221. ?? ??? ?}
  222. ? ? ? pNew=(struct bicycle *)malloc(sizeof(struct bicycle));
  223. ?
  224. ?
  225. ?? ? ?printf("\n自行车的编号(退出请按0):"); ? ? ? ? ? ? ? ?
  226. ? ? ? scanf("%s",pNew->bic_num);
  227. ? ? ? flag1=1;//每次循环结束flag1=1退出;flag1=0则继续,所以要值0
  228. ? ? ? while(flag1){
  229. ? ? ? ?? ?
  230. ?? ??? ?if(strcmp(pNew->bic_num,"0")==0){
  231. ?? ??? ??? ?flag1=1;
  232. ?? ??? ??? ?break;
  233. ?? ??? ?}
  234. ?
  235. ?? ??? ?else{
  236. ?? ??? ??? ?pTemp=pHead;
  237. ?? ??? ??? ?n=iCount;
  238. ?? ??? ??? ?flag2=1;
  239. ?
  240. ?? ??? ??? ?while(n&&flag2){
  241. ?? ??? ??? ? ? if(strcmp(pTemp->bic_num,pNew->bic_num)==0) ?flag2=0;
  242. ?? ? ? ? ? ? ? pTemp=pTemp->next;
  243. ?? ??? ? ? ? ? n=n-1;
  244. ?? ??? ??? ?}?? ?
  245. ?? ??? ??? ?
  246. ?? ??? ??? ?if(flag2==0) {?
  247. ?? ??? ??? ??? ?printf("请重新输入,自行车的编号%s存在!(退出请按0):\n",pNew->bic_num);
  248. ?? ??? ??? ??? ?printf("自行车的编号:");?
  249. ?? ??? ??? ??? ?scanf("%s",pNew->bic_num);?
  250. ?? ??? ??? ??? ?flag1=1;
  251. ?? ??? ??? ?}
  252. ?
  253. ?? ??? ??? ?if(flag2==1) flag1=0;
  254. ?? ??? ?}
  255. ?? ?}
  256. ?? ?
  257. ?? ?//录入其他信息,如果flag1=0,则表明要退出,那么其他信息不用再录
  258. ? ? if(flag1!=1){?? ?
  259. ?? ??? ?printf("姓名:");
  260. ?? ? ? ?scanf("%s",pNew->name);
  261. ?? ? ? ?
  262. ?? ? ? ?//性别只能输入female或male,否则是不规范的
  263. ?? ??? ?while(1){
  264. ?? ??? ? ?printf("性别(female或male):");
  265. ?? ? ? ? ?scanf("%s",pNew->sex);
  266. ?? ??? ? ?if(strcmp(pNew->sex,"female")==0||strcmp(pNew->sex,"male")==0) break;
  267. ?? ??? ? ?else printf("性别输入不规范,请核对后重输!\n");
  268. ?? ??? ?}
  269. ?? ? ? ?
  270. ?? ? ? ?//电话必须11位数,否则是不规范的
  271. ?? ??? ?while(1){
  272. ?? ??? ? ?printf("电话(11位数):");
  273. ?? ? ? ? ?scanf("%s",pNew->tele_num);
  274. ?? ??? ? ?if(strlen(pNew->tele_num)==11) break;
  275. ?? ??? ? ?else printf("电话输入不规范,必须11位数!\n");
  276. ?? ??? ?}
  277. ?? ? ? ?
  278. ?? ?} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//22
  279. ?? ??? ?
  280. ?? ?}
  281. ?
  282. ?? ?free(pNew);
  283. }
  284. ?
  285. //输出链表自行车的信息
  286. void print(){
  287. ?? ?
  288. ?? ?//页面优化
  289. ?? ?system("cls");
  290. ?? ?printf("\n\n\t\t\t\t===================5.打印自行车的信息===================\n");?
  291. ?
  292. ?? ?struct bicycle *pTemp;
  293. ?? ?int iIndex=1;
  294. ?? ?
  295. ?? ?printf("**********本名单中共有%d个自行车信息,所有的信息如下:**********\n",iCount);
  296. ?? ?printf("序号 姓名 ?性别 ?电话 自行车编号 \n");
  297. ?? ?pTemp=pHead;
  298. ?
  299. ?? ?while(pTemp!=NULL){
  300. ?? ??? ?printf("%d ?%s ?%s ?%s ?%s\n",iIndex,pTemp->name,pTemp->sex,pTemp->tele_num,pTemp->bic_num);
  301. ?? ??? ?pTemp=pTemp->next;
  302. ?? ??? ?iIndex++;
  303. ?? ?}
  304. ?? ?printf("按任意键返回上一级");?
  305. ? ?getch();
  306. }
  307. ?
  308. //插入自行车的信息
  309. void insert(){
  310. ?? ?//页面优化
  311. ?? ?system("cls");
  312. ?? ?printf("\n\n\t\t\t\t===================7.插入自行车的信息===================\n");?
  313. ?? ?printf("#\n说明:插入任意位置都可以\n#");
  314. ?? ?create();
  315. ? ?printf("插入信息成功,");?
  316. ? ?printf("按任意键返回上一级");?
  317. ? ?getch();
  318. }?
  319. ?
  320. //信息查询函数
  321. void search(){?
  322. ?? ?//页面优化
  323. ?? ?
  324. ?? ?printf("\n\n\t\t\t\t===================4.查询自行车的信息===================");?
  325. ?
  326. ?? ?int select=-1;
  327. ?? ?while(select!=0){
  328. ?? ? ? system("cls");
  329. ? ? ? ?printf("\n\t\t=======请选择功能列表=======\n");
  330. ? ? ? ?printf("\t\t\t1.按自行车的编号查询(lv4)\n");
  331. ? ? ? ?printf("\t\t\t2.按 ? 姓 ?名 ?查 询 (lv1)\n");
  332. ? ? ? ?printf("\t\t\t0.退出此页面(lv4)\n");
  333. ??
  334. ? ? ? ?printf("请选择:");
  335. ? ? ? ?scanf("%d",&select);
  336. ? ??
  337. ? ? ? ?
  338. ?? ? ? int flag=1,flag1=1;
  339. ?? ? ? char number[12];
  340. ?? ? ? char name[12];
  341. ?? ? ? struct bicycle *pTemp=pHead;
  342. ?
  343. ?? ? ? //按自行车的编号查询
  344. ?? ? ? if(select==1){
  345. ?? ? ? ?? ?
  346. ?? ? ? printf("请输入你要查找的自行车编号:");
  347. ?? ? ? scanf("%s",number);
  348. ?? ? ? ? ? while(pTemp!=NULL&&flag)
  349. ?? ??? ? ? {
  350. ?? ??? ? ? ? if(strcmp(pTemp->bic_num,number)==0)
  351. ?? ??? ??? ? {?
  352. ?? ??? ??? ??? ?printf("%s找到了,具体信息如下:\n\n",number);
  353. ?? ??? ??? ??? ?
  354. ?? ??? ??? ??? ?printf("\t姓名 ?性别 ?电话 自行车编号 \n");
  355. ?? ??? ??? ??? ?printf("\t%s ?%s ?%s ?%s\n",pTemp->name,pTemp->sex,pTemp->tele_num,pTemp->bic_num);
  356. ?? ??? ??? ??? ? printf("\n");
  357. ?? ??? ??? ??? ? flag=0;?
  358. ?? ??? ??? ? }
  359. ?? ? ? ? ? ? pTemp=pTemp->next;
  360. ?? ??? ? ? }
  361. ?? ? ? if(flag==1) ?printf("编号%s不存在!\n",number);
  362. ?? ? ? }
  363. ?
  364. ?? ? ? //按姓名查询
  365. ?? ? ? if(select==2){
  366. ?? ? ? printf("请输入你要查找的姓名:");
  367. ?? ? ? scanf("%s",name);
  368. ?? ? ? ? ? while(pTemp!=NULL&&flag)
  369. ?? ??? ? ? {
  370. ?? ??? ? ? ? if(strcmp(pTemp->name,name)==0)?
  371. ?? ??? ??? ? {?
  372. ?? ??? ??? ??? ? printf("%s找到了,具体信息如下\n",name); ??
  373. ?? ??? ??? ??? ? ?printf("\t姓名 ?性别 ?电话 自行车编号 \n");
  374. ?? ??? ??? ??? ?printf("\t%s ?%s ?%s ?%s\n",pTemp->name,pTemp->sex,pTemp->tele_num,pTemp->bic_num);
  375. ?? ??? ??? ??? ? printf("\n");
  376. ?? ??? ??? ??? ? flag=0; ?
  377. ?? ??? ??? ? }
  378. ?? ? ? ? ? ? pTemp=pTemp->next;
  379. ?? ??? ? ? }
  380. ?? ? ? if(flag==1) ?printf("姓名%s不存在!",name);
  381. ?? ? ? }
  382. ?? ?printf("按任意键返回上一级");
  383. ?? ?getch();
  384. ?? ?}
  385. }
  386. ?
  387. //删除信息函数
  388. void dele(){
  389. ?? ?//页面优化
  390. ?? ?system("cls");
  391. ?? ?printf("\n\n\t\t\t\t===================3.删除自行车的信息(按编号)===================");?
  392. ?
  393. ? ? int select=-1;?
  394. ?? ?while(select!=0){
  395. ?? ? ??
  396. ? ? ? ?printf("\n\t\t=======请选择功能列表=======\n");
  397. ? ? ? ?printf("\t\t\t1.按自行车的编号删除(lv4)\n");
  398. ? ? ? ?printf("\t\t\t2.按 ? 姓 ?名 ?删 除 (lv1)\n");
  399. ? ? ? ?printf("\t\t\t0.退出此页面(lv4)\n");
  400. ??
  401. ? ? ? ?printf("请选择:");
  402. ? ? ? ?scanf("%d",&select);
  403. ? ??
  404. ? ? if(select==0) return;
  405. ?? ?else if(select==1||select==2) break;
  406. ?? ?else printf("输入有误请重新输入\n");
  407. }
  408. ?
  409. if(select==1){
  410. ?? ??? ?
  411. ?? ? ? ?if(iCount==0) ?printf("\n\n暂无数据无法进行此操作,按任意键退出!\n");
  412. ?? ??? ?else
  413. ?? ? ? ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//33
  414. ?? ?
  415. ?? ??? ?char number[12];
  416. ?? ??? ?int ?i,flag=1;
  417. ?? ??? ?char option;
  418. ?? ??? ?struct bicycle *pTemp;
  419. ?? ??? ?struct bicycle *pPre;
  420. ?? ??? ?pTemp=pHead;
  421. ?? ?
  422. ?? ??? ?int iIndex=0;
  423. ?? ??? ?printf("\n请输入要删除自行车的编号:");
  424. ?? ? ? ?scanf("%s",number);
  425. ?? ?
  426. ?? ??? ?while(pTemp!=NULL&&flag){
  427. ?? ??? ??? ?if(strcmp(pTemp->bic_num,number)==0){
  428. ?? ??? ??? ??? ?printf("\n%s找到了,将要删除的信息如下\n\n",number);
  429. ?? ??? ??? ??? ?//显示将要删除人的信息
  430. ?? ??? ??? ??? ? printf("\t姓名 ?性别 ?电话 自行车编号 \n");
  431. ?? ??? ??? ??? ?printf("\t%s ?%s ?%s ?%s\n",pTemp->name,pTemp->sex,pTemp->tele_num,pTemp->bic_num);
  432. ?? ??? ??? ??? ? printf("\n");
  433. ?? ??? ??? ??? ??? ? flag=0;?
  434. ?? ??? ??? ??? ??? ??
  435. ?? ??? ??? ??? ?printf("确认删除请输1,否则按任意数字键退出\n");
  436. ?? ??? ??? ??? ?scanf("%d",&option);
  437. ?? ??? ??? ?}
  438. ?? ?
  439. ?? ?
  440. ?? ??? ? ? ?pTemp=pTemp->next;
  441. ?? ??? ??? ?iIndex++;
  442. ?? ??? ?}
  443. ?? ??? ?if(flag==1) ?{printf("编号%s不存在!",number); ?return;}
  444. ?? ?
  445. ?? ?
  446. ?? ?
  447. ?? ? ? ? ? if(option==1){
  448. ?? ??? ? ? ?pTemp=pHead;
  449. ?? ? ? ??? ?pPre=pTemp;//可能多余
  450. ?? ??? ? ? ?//printf("----------删除第%d个学生----------\n",iIndex);
  451. ?? ?
  452. ?? ??? ? ? if(iIndex!=1)
  453. ?? ??? ? ? {
  454. ?? ??? ? ? ? ? for(i=1;i<iIndex;i++)
  455. ?? ??? ??? ? ? {
  456. ?? ??? ??? ? ? pPre=pTemp;
  457. ?? ??? ??? ? ? pTemp=pTemp->next;
  458. ?? ??? ??? ? ? }
  459. ?? ?
  460. ?? ? ? ? ? ??? ?pPre->next=pTemp->next;
  461. ?? ?
  462. ?? ??? ? ? }
  463. ?? ?
  464. ?? ?
  465. ?? ??? ? ?if(iIndex==1)?? ?pHead=pTemp->next;
  466. ?? ??? ? ?free(pTemp);
  467. ?? ? ? ? ?iCount--;
  468. ?? ??? ? ?printf("删除成功按任意键退出!");
  469. ?? ??? ?}
  470. ?? ? ? else ?printf("删除失败按任意键退出!");
  471. ?? ??? ?} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //33
  472. ?? ? ? ?
  473. ?? ??? ?getch();
  474. ?? ??? ?
  475. }
  476. else{
  477. ?? ?
  478. ?? ?
  479. ? ? if(iCount==0) ?printf("\n\n暂无数据无法进行此操作,按任意键退出!\n");
  480. ?? ?else
  481. ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//33
  482. ?
  483. ?? ?char name[12];
  484. ?? ?int ?i,flag=1;
  485. ?? ?char option;
  486. ?? ?struct bicycle *pTemp;
  487. ?? ?struct bicycle *pPre;
  488. ?? ?pTemp=pHead;
  489. ?
  490. ?? ?int iIndex=0;
  491. ?? ?printf("\n请输入要删除自行车对应户主的姓名:");
  492. ? ? scanf("%s",name);
  493. ?
  494. ?? ?while(pTemp!=NULL&&flag){
  495. ?? ??? ?if(strcmp(pTemp->name,name)==0){
  496. ?? ??? ??? ?printf("\n%s找到了,将要删除的信息如下\n\n",name);
  497. ?? ??? ??? ?//显示将要删除人的信息
  498. ?? ??? ??? ? printf("\t姓名 ?性别 ?电话 自行车编号 \n");
  499. ?? ??? ??? ?printf("\t%s ?%s ?%s ?%s\n",pTemp->name,pTemp->sex,pTemp->tele_num,pTemp->bic_num);
  500. ?? ??? ??? ? printf("\n");
  501. ?? ??? ??? ??? ? flag=0;?
  502. ?? ??? ??? ??? ??
  503. ?? ??? ??? ?printf("确认删除请输1,否则按任意数字键退出\n");
  504. ?? ??? ??? ?scanf("%d",&option);
  505. ?? ??? ?}
  506. ?
  507. ?
  508. ?? ? ? ?pTemp=pTemp->next;
  509. ?? ??? ?iIndex++;
  510. ?? ?}
  511. ?? ?if(flag==1) ?{printf("姓名%s不存在!",name); ?return;}
  512. ?
  513. ?
  514. ?
  515. ? ? ? ?if(option==1){
  516. ?? ? ? ?pTemp=pHead;
  517. ? ? ?? ?pPre=pTemp;//可能多余
  518. ?? ? ? ?//printf("----------删除第%d个学生----------\n",iIndex);
  519. ?
  520. ?? ? ? if(iIndex!=1)
  521. ?? ? ? {
  522. ?? ? ? ? ? for(i=1;i<iIndex;i++)
  523. ?? ??? ? ? {
  524. ?? ??? ? ? pPre=pTemp;
  525. ?? ??? ? ? pTemp=pTemp->next;
  526. ?? ??? ? ? }
  527. ?
  528. ? ? ? ? ?? ?pPre->next=pTemp->next;
  529. ?
  530. ?? ? ? }
  531. ?
  532. ?
  533. ?? ? ?if(iIndex==1)?? ?pHead=pTemp->next;
  534. ?? ? ?free(pTemp);
  535. ? ? ? iCount--;
  536. ?? ? ?printf("删除成功按任意键退出!");
  537. ?? ?}
  538. ? ?else ?printf("删除失败按任意键退出!");
  539. ?? ?} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //33
  540. ? ??
  541. ?? ?getch();
  542. }
  543. ?
  544. }
  545. ?
  546. //2.修改自行车的信息
  547. void modify(){
  548. ?? ?
  549. ?? ?//页面优化
  550. ?? ?system("cls");
  551. ?? ?printf("\n\n\t\t\t\t===================2.修改自行车的信息===================");?
  552. ?
  553. ?? ?int post;
  554. ?? ?int flag=1,flag1;
  555. ?? ?char number[12];
  556. ?? ?struct bicycle *pTemp=pHead,*pPre=pTemp;
  557. ?? ?
  558. ?? ?printf("\n请输入你要修改自行车信息对应自行车的编号:");
  559. ?? ?scanf("%s",number);
  560. ?? ?
  561. ?? ?while(pTemp!=NULL&&flag)
  562. ?? ?{
  563. ?
  564. ?? ??? ?if(strcmp(pTemp->bic_num,number)==0)?
  565. ?? ??? ?{
  566. ?? ??? ??? ?printf("将要修改的学号%s具体信息如下\n",number);
  567. ?? ??? ??? ? ?printf("\t姓名 ?性别 ?电话 自行车编号 \n");
  568. ?? ??? ??? ?printf("\t%s ?%s ?%s ?%s\n",pTemp->name,pTemp->sex,pTemp->tele_num,pTemp->bic_num);
  569. ?? ??? ??? ? printf("\n");
  570. ?? ??? ??? ? flag=0;?
  571. ?? ??? ?}
  572. ? ? ? ? pPre=pTemp;//保存pTemp
  573. ?? ? ? ?pTemp=pTemp->next;
  574. ?? ?}
  575. ?? ?
  576. ?? ?if(flag==1) ?printf("你要修改的学号%s不存在!",number);
  577. ?? ?else?
  578. ?? ?{
  579. ?? ??? ?printf("确认修改请按1,放弃请按任意数字键!\n请选择:");
  580. ?? ??? ?scanf("%d",&post);
  581. ?? ??? ?
  582. ?? ??? ?while(post==1)
  583. ?? ??? ?{
  584. ?? ??? ??? ?printf("请选择你要修改的项目(1.姓名 2.性别 3.电话号码 4.自行车的编号 5.修改全部)\n");
  585. ?? ??? ??? ?scanf("%d",&flag1);
  586. ?
  587. ? ? ? ? ? ?if(flag1==1)
  588. ?? ??? ? ? {
  589. ?? ??? ??? ? ? printf("新姓名:");
  590. ?? ??? ??? ? ? scanf("%s",pPre->name);
  591. ?? ??? ??? ? ? printf("修改完成,按任意键退出!");
  592. ?? ??? ? ? }
  593. ?
  594. ?? ??? ? ? else if(flag1==2)
  595. ?? ??? ? ? {
  596. ?? ??? ??? ? ? printf("新性别:");
  597. ?? ??? ??? ? ? scanf("%s",pPre->sex);
  598. ?? ??? ??? ? ? printf("修改完成,按任意键退出!");
  599. ?? ??? ? ? }
  600. ?
  601. ?? ??? ? ? else if(flag1==3)
  602. ?? ??? ? ? {
  603. ?? ??? ? ? ?? ?
  604. ?? ??? ??? ? ?while(1){
  605. ?? ??? ??? ? ?printf("电话(11位数):");
  606. ?? ??? ? ? ? ?scanf("%s",pPre->tele_num);
  607. ?? ??? ??? ? ?if(strlen(pPre->tele_num)==11) break;
  608. ?? ??? ??? ? ?else printf("电话输入不规范,必须11位数!\n");
  609. ?? ??? ??? ??? ?}?? ?
  610. ?? ??? ??? ??? ?
  611. ?? ??? ??? ? ? printf("修改完成,按任意键退出!");
  612. ?? ??? ? ? }
  613. ?
  614. ?? ??? ? ? else if(flag1==4)
  615. ?? ??? ? ? {
  616. ?? ??? ??? ? ? printf("新编号:");
  617. ?? ??? ??? ? ? scanf("%d",&pPre->bic_num);
  618. ?? ??? ??? ? ? printf("修改完成,按任意键退出!");
  619. ?? ??? ? ? }
  620. ?
  621. ?? ??? ??? ?else{
  622. ?? ??? ??? ??? ?
  623. ?? ??? ??? ? ? printf("新姓名:");
  624. ?? ??? ??? ? ? scanf("%s",pPre->name);
  625. ?? ??? ??? ? ?
  626. ?? ??? ??? ? ? printf("新性别:");
  627. ?? ??? ??? ? ? scanf("%s",pPre->sex);
  628. ?? ??? ? ? ?? ?
  629. ?? ??? ??? ? ?while(1){
  630. ?? ??? ??? ? ?printf("电话(11位数):");
  631. ?? ??? ? ? ? ?scanf("%s",pPre->tele_num);
  632. ?? ??? ??? ? ?if(strlen(pPre->tele_num)==11) break;
  633. ?? ??? ??? ? ?else printf("电话输入不规范,必须11位数!\n");
  634. ?? ??? ??? ?}?? ?
  635. ?? ??? ??? ??? ?
  636. ?? ??? ??? ? ? printf("新编号:");
  637. ?? ??? ??? ? ? scanf("%s",pPre->bic_num);
  638. ?? ??? ??? ?
  639. ?? ??? ??? ?}
  640. ?? ??? ??? ?break;?? ?
  641. ?? ??? ?}
  642. ?? ?
  643. ?? ?
  644. ?? ?}
  645. ?
  646. ?? ?printf("修改完成,按任意键退出");?
  647. ?? ?getch();
  648. ?
  649. }
  650. ?
  651. //交换函数
  652. void excheng(struct bicycle *pStra,struct bicycle *pMidd){
  653. ?? ?int t;
  654. ?? ?struct bicycle *pTemp;
  655. ?? ?pTemp=(struct bicycle *)malloc(sizeof(struct bicycle));
  656. ?
  657. ?? ?strcpy(pTemp->tele_num,pStra->tele_num);
  658. ?? ?strcpy(pStra->tele_num,pMidd->tele_num);
  659. ? ? strcpy(pMidd->tele_num,pTemp->tele_num);
  660. ?
  661. ?? ?strcpy(pTemp->bic_num,pStra->bic_num);
  662. ?? ?strcpy(pStra->bic_num,pMidd->bic_num);
  663. ? ? strcpy(pMidd->bic_num,pTemp->bic_num);
  664. ? ??
  665. ?? ?strcpy(pTemp->name,pStra->name);
  666. ? ? strcpy(pStra->name,pMidd->name);
  667. ?? ?strcpy(pMidd->name,pTemp->name);
  668. ?
  669. ?? ?strcpy(pTemp->sex,pStra->sex);
  670. ? ? strcpy(pStra->sex,pMidd->sex);
  671. ?? ?strcpy(pMidd->sex,pTemp->sex);
  672. ?
  673. ?? ?free(pTemp);
  674. ?
  675. }
  676. ?
  677. //6.自行车信息的排序
  678. void sort(){
  679. ?? ?
  680. ?? ?//页面优化
  681. ?? ?printf("\n\n\t\t===================4.排序系统===================");?
  682. ?
  683. ? ? int i,j;
  684. ?? ?struct bicycle *pStra,*pMidd;
  685. ?
  686. ?? ?int result;
  687. ?? ?int select=-1;
  688. ?? ?while(select!=0)
  689. ?? ?{
  690. ?? ? ? system("cls");
  691. ? ? ? ?printf("\n\t\t\t=======请选择功能列表=======\n");
  692. ? ? ? ?printf("\t\t\t1.按自行车编号升序排序(lv4)\n");
  693. ? ? ? ?printf("\t\t\t2.按自行车编号降序排序(lv1)\n");
  694. ?? ? ? printf("\t\t\t3.按姓名升序排序(lv4)\n");
  695. ? ? ? ?printf("\t\t\t4.按姓名降序排序(lv1)\n");
  696. ? ? ? ?printf("\t\t\t0.退出此页面(lv4)\n");
  697. ??
  698. ? ? ? ?printf("请选择:");
  699. ? ? ? ?scanf("%d",&select);
  700. ?
  701. ?? ??? ?result=select;
  702. ?? ??? ?if(select!=1&&select!=2&&select!=3&&select!=4) return;
  703. ?? ??? ?
  704. ?
  705. ?? ?pStra=pHead;
  706. ?? ?pMidd=pStra->next;
  707. ?? ?
  708. ?? ?
  709. ? ? ?for(i=0;i<iCount;i++)
  710. ?? ? {
  711. ?? ??? ?pStra=pHead;
  712. ?? ? ? ?pMidd=pStra->next;
  713. ?
  714. ?? ??? ? ?for(j=0;j<iCount-i-1&&pMidd!=NULL;j++)
  715. ?? ??? ? ?{
  716. ?? ??? ??? ? ?if(result==1) ?{if(strcmp(pStra->bic_num,pMidd->bic_num)>0) ? ? ? ? ? excheng(pStra,pMidd);}
  717. ?? ??? ??? ? ?else if(result==2) ?{if(strcmp(pStra->bic_num,pMidd->bic_num)<0) ? ? ?excheng(pStra,pMidd);}
  718. ?? ??? ??? ? ?else if(result==3) ?{if(strcmp(pStra->name,pMidd->name)>0) ? ?excheng(pStra,pMidd);}
  719. ?? ??? ??? ? ?else if(result==4) ?{if(strcmp(pStra->name,pMidd->name)<0) ? ?excheng(pStra,pMidd);}
  720. ?? ??? ??? ?pStra=pMidd;
  721. ?? ??? ??? ?pMidd=pMidd->next;
  722. ?? ??? ? ?} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
  723. ?? ? }
  724. ?
  725. ?
  726. ?printf("\t\t\t5.显示排完序后的结果为:\n\n");
  727. ?printf("------------------------------------------------------");
  728. ??? ?struct bicycle *pTemp;
  729. ?? ?int iIndex=1;
  730. ?? ?
  731. ?? ?printf("**********本名单中共有%d个自行车信息,所有的信息如下:**********\n",iCount);
  732. ?? ?printf("序号 姓名 ?性别 ?电话 自行车编号 \n");
  733. ?? ?pTemp=pHead;
  734. ?
  735. ?? ?while(pTemp!=NULL){
  736. ?? ??? ?printf("%d ?%s ?%s ?%s ?%s\n",iIndex,pTemp->name,pTemp->sex,pTemp->tele_num,pTemp->bic_num);
  737. ?? ??? ?pTemp=pTemp->next;
  738. ?? ??? ?iIndex++;
  739. ?? ?}
  740. ?
  741. ?printf("------------------------------------------------------");
  742. ?
  743. ?
  744. ?printf("\n\n排序成功,按任意键返回!");
  745. ?
  746. ?? ?getch();
  747. }
  748. ?
  749. }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号