鱼C论坛

 找回密码
 立即注册
查看: 1762|回复: 1

新手菜鸟的C语言问题,完全自打.修改错误已自崩....想找师傅教教...

[复制链接]
匿名鱼油
匿名鱼油  发表于 2015-1-8 20:46:05 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include <stdio.h>
  2. #include <string.h>
  3. void tianjia(); //添加函数
  4. void zhuce(); //注册函数
  5. void denglu(); //登陆函数
  6. void jieshu(char zh); //借书函数
  7. void huanshu(); //还书函数
  8. void xiugai(); //修改图书信息函数
  9. void shanchu(); //删除图书信息函数
  10. void bianhaochashu(); //按编号查书函数
  11. void shumingchashu(); //按书名查书函数
  12. void chashu(); //查书函数(主界面)
  13. void xianshi(int k); //定义显示书籍信息函数
  14. void guoke(); //匆匆过客的界面
  15. void tuichu(); //退出CC图书馆管理系统
  16. void menu(); //主菜单
  17. FILE *fp; //建立图书信息保存文件指针
  18. FILE *fpzc; //建立用户注册的信息文件指针
  19. struct Yonghu //建立用户结构体
  20. {
  21. char zhanghao[20];//帐号
  22. char Name[20];//姓名
  23. char sex[5];//性别
  24. char id[20];//学号
  25. char phone[20];//电话号码
  26. char mima[20];//密码
  27. char jie[10];//借书情况
  28. char huan[10];//还书情况
  29. };
  30. struct Yonghu yonghu[100];
  31. struct tushu//建立图书信息结构体
  32. {
  33. char name[30]; //书名
  34. char zuozhe[20]; //作者
  35. char ID[10]; //图书的编号
  36. char sl[10]; //图书的数量
  37. char dj[10]; //图书的单价
  38. };
  39. struct tushu shu[10000];

  40. void tianjia()//添加函数
  41. {
  42. int b,c,i=0;
  43. printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
  44. printf("请输入你要添加的书的数量");scanf("%d",&b);
  45. for(i=0;i<b;i++)
  46. {
  47. printf("请输入要添加的第%ld图书的书名:",i+1);
  48. scanf("%s",shu[i+1].name);

  49. printf("请输入要添加的第%ld图书的作者:",i+1);
  50. scanf("%s",shu[i+1].zuozhe);

  51. printf("请输入要添加的第%ld图书的编号:",i+1);
  52. scanf("%s",shu[i+1].ID);

  53. printf("请输入要添加的第%ld图书的数量:",i+1);
  54. scanf("%s",shu[i+1].sl);

  55. printf("请输入要添加的第%ld图书的单价:",i+1);
  56. scanf("%s",shu[i+1].dj);
  57. printf("\n");
  58. }
  59. if((fp=fopen("CC图书馆管理系统.txt","w+"))==NULL)
  60. {
  61. printf("打开文件失败!\n");
  62. exit(0);
  63. }
  64. for(i=0;i<b;i++)
  65. fprintf(fp,"%20s%20s%20s%20s",shu[i+1].name,shu[i+1].zuozhe,shu[i+1].ID,shu[i+1].sl,shu[i+1].dj);
  66. fclose(fp);
  67. printf("\n");
  68. printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
  69. }
  70. void zhuce()//注册函数
  71. {
  72. char mima2[20];
  73. char xuanze4;
  74. static int e;//定义静态变量e
  75. char cf3[]={'帐号','姓名','性别','学号','电话','密码'};//用于存放信息提示文字
  76. system("cls");
  77. printf("欢迎来到注册界面"); printf("\n\n");
  78. printf("请输入你的帐号:");scanf("%s",yonghu[e].zhanghao);printf("\n\n");
  79. printf("请输入你的姓名:");scanf("%s",yonghu[e].Name);printf("\n\n");
  80. printf("请输入你的性别:");scanf("%s",yonghu[e].sex);printf("\n\n");
  81. printf("请输入你的学号:");scanf("%s",yonghu[e].id);printf("\n\n");
  82. printf("请输入你的电话:"); scanf("%s",yonghu[e].phone);printf("\n\n");
  83. printf("请输入你的密码:");scanf("%s",yonghu[e].mima);printf("\n\n");
  84. printf("请再次输入你的密码");scanf("%s",mima2);printf("\n\n");
  85. if(strcmp(mima2,yonghu[e].mima)==0)
  86. {
  87. printf("恭喜你!你已经注册成功!");printf("\n\n");
  88. printf("按任意键回到主菜单");
  89. system("pause");
  90. menu();
  91. }
  92. else
  93. {
  94. printf("密码输入错误啦!!请重新注册!@@^=^@@");
  95. system("pause");
  96. zhuce();
  97. }
  98. if((fpzc=fopen("帐号注册资料保存.txt","w+"))==NULL)
  99. {
  100. printf("\n\n打开文件失败!\n");
  101. exit(0);
  102. }
  103. // fwrite(cf3,sizeof(cf3),1,fpzc);
  104. fwrite(&yonghu[e],sizeof(struct Yonghu),1,fpzc); //有两种读写方法
  105. fclose(fpzc);
  106. e++;
  107. printf("信息已保存!\n");
  108. printf("输入任意键返回主菜单");printf("\n\n");
  109. system("pause");
  110. menu();
  111. }
  112. void denglu() //登陆函数
  113. {
  114. FILE *fpzc;
  115. char mima3[20],zhanghao2[20];
  116. char mima4[20],zhanghao3[20];
  117. int t;
  118. system("cls");
  119. printf("欢迎来到登陆界面!\n\n\n");
  120. printf("请输入你的帐号:");scanf("%s",zhanghao2);printf("\n\n");
  121. printf("请输入你的密码:");scanf("%s",mima3);printf("\n\n");
  122. if((fpzc = fopen("帐号注册资料信息保存.txt","w+"))==NULL)
  123. {
  124. printf("\n\n打开失败!\n");
  125. exit(0);
  126. }
  127. for(t=0;t<=1000;t++)
  128. {
  129. fscanf(fpzc,"%s",zhanghao3);
  130. if((strcmp(zhanghao3,yonghu[t].zhanghao)==0)&&(strcmp(mima3,yonghu[t].mima)==0))
  131. menu();
  132. else printf("帐号密码输入错误!!\n");
  133. system("pause");
  134. denglu();
  135. }
  136. fclose(fpzc);
  137. }
  138. void jieshu(int zh)//借书函数
  139. {
  140. int i,xuanze5;
  141. char cha[20];
  142. printf("~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");
  143. printf("请输入要搜索的书名或者编号:");
  144. scanf("%s", cha);
  145. for(i=0;i<100;i++)
  146. {
  147. if((strcmp(cha,shu[i].name)==0)||(strcmp(cha,shu[i].ID)==0))
  148. {
  149. printf("该图书的信息为:\n");
  150. printf("书名:%s 作者:%s 编号:%s 数量:%s 单价:%s\n",shu[i].name,shu[i].zuozhe,shu[i].ID,shu[i].sl,shu[i].dj);
  151. break;
  152. }
  153. }
  154. printf("\n");
  155. printf("是否要借这本书? 1.是 2.否");
  156. scanf("%d",&xuanze5);
  157. if(xuanze5==1)
  158. {
  159. printf("恭喜你借书成功\n\n");
  160. }
  161. else
  162. printf("~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ \n");
  163. }


  164. void huanshu(int zh)//还书函数
  165. {
  166. int m,xuanze6;
  167. char cha2[20];
  168. printf("~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");
  169. printf("请输入要还的书名或者编号:");
  170. scanf("%s", cha2);
  171. for(m=0;m<100;m++)
  172. {
  173. if((strcmp(cha2,shu[m].name)==0)||(strcmp(cha2,shu[m].ID)==0))
  174. {
  175. printf("该图书的信息为:\n");
  176. printf("书名:%s 作者:%s 编号:%s 数量:%s 单价:%s\n",shu[m].name,shu[m].zuozhe,shu[m].ID,shu[m].sl,shu[m].dj);
  177. break;
  178. }
  179. }
  180. printf("\n");
  181. printf("是否要还这本书? 1.是 2.否");
  182. scanf("%d",&xuanze6);
  183. if(xuanze6==1)
  184. {
  185. printf("还书成功\n\n");
  186. }
  187. else
  188. printf("~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ \n");
  189. }
  190. void xiugai()//修改图书信息函数
  191. {
  192. system("cls");
  193. int q;
  194. char ID[30];
  195. char flag=0,t=0,mi=3,duan;
  196. struct tushu xg[100];
  197. struct tushu cunfang;
  198. printf("\n\n\n请输入想修改的图书的编号\n\n\n");
  199. scanf("%s",ID);
  200. printf("\n");
  201. if((fpFile=fopen("CC图书管理系统.txt","r"))==NULL)
  202. {
  203. printf("打开文件失败!\n");
  204. exit(0);
  205. }
  206. while(!feof(fpFile))
  207. {
  208. fread(&cunfang,sizeof(struct student),1,fp);
  209. if(!feof(fpFile))
  210. {
  211. xg[t]=cunfang; //把文件里的所有信息储存到数组xg里面
  212. t++;
  213. }
  214. }
  215. for(i=0;i<t;i++) //根据输入的编号,在数组xg里找到该图书i
  216. {
  217. if(strcmp(ID,xg[i].ID)==0)
  218. {
  219. system("cls");
  220. printf("\n\n\n图书的信息如下:\n\n");
  221. printf("\n\n\n书名:%s,作者:%s,编号:%s,数量:%s,单价:%s\n\n",xg[i].name,xg[i].zuozhe,xg[i].ID,xg[i].sl,xg[i].dj);
  222. printf("\n\n\n请选择你想修改的选项:\n\n");
  223. printf("\n\n\n1.书名修改\n\n");
  224. printf("\n\n\n2.作者修改\n\n");
  225. printf("\n\n\n3.编号修改\n\n");
  226. printf("\n\n\n4.数量修改\n\n");
  227. printf("\n\n\n5.单价修改\n\n");
  228. printf("\n\n\n");
  229. scanf("%d",&q);
  230. printf("\n");
  231. switch(q)
  232. {
  233. case 1: {
  234. printf("\n\n\n请输入新的书名\n");
  235. printf("\n\n\n");
  236. scanf("%s",xg[i].name);
  237. };break;
  238. case 2: {
  239. printf("\n\n\n请输入新的作者姓名\n");
  240. printf("\n\n\n");
  241. scanf("%s",xg[i].zuozhe);
  242. };break;
  243. case 3: {
  244. printf("\n\n\n请输入新的编号\n");
  245. printf("\n\n\n");
  246. scanf("%s",xg[i].ID);
  247. };break;
  248. case 4: {
  249. printf("\n\n\n请输入新的数量\n");
  250. printf("\n\n\n");
  251. scanf("%s",xg[i].sl);
  252. };break;
  253. case 5: {
  254. printf("\n\n\n请输入单价\n");
  255. printf("\n\n\n");
  256. scanf("%s",xg[i].dj);
  257. };break;
  258. default:printf("输入超范围啦!请输入1-5的数字!谢谢!");
  259. return xiugai();

  260. }
  261. printf("\n\n\n修改后的图书信息:\n\n");
  262. printf("\n\n\n书名:%s,作者:%s,编号:%s,数量:%s,单价:%s\n\n",xg[i].name,xg[i].zuozhe,xg[i].ID,xg[i].sl,xg[i].dj);
  263. }
  264. }

  265. fpFile=fopen("CC图书馆管理系统.txt","w");
  266. fwrite(xg,sizeof(struct student),t,fp);
  267. fclose(fp);
  268. }
  269. void shanchu() //删除图书信息函数
  270. {
  271. int w,judge,judge2;
  272. char id;
  273. system("cls");
  274. printf("\n\n请输入需要删除的图书的编号!\n");
  275. scanf("%s",id);
  276. for(w=0;w<10000;w++)
  277. if(strcmp(id,shu[w].ID)==0)
  278. {
  279. xianshi(id);

  280. }
  281. printf("\n\n确定要删除?\n\n\n 1.是 2.否\n");
  282. printf("\n\n");
  283. scanf("%d",&judge);
  284. if(judge==1)
  285. {
  286. for(i=id;i<1000;i++)
  287. {
  288. strcpy(shu[i].name,shu[i+1].name);
  289. strcpy(shu[i].zuozhe,shu[i+1].zuozhe);
  290. strcpy(shu[i].ID,shu[i+1].ID);
  291. strcpy(shu[i].sl,shu[i+1].sl);
  292. strcpy(shu[i].dj,shu[i+1].dj);
  293. }
  294. }
  295. printf("\n\n删除成功!\n");
  296. printf("\n\n是否继续删除?\n\n\n 1.是 2.否\n");
  297. printf("\n\n");
  298. scanf("%d",&judge2);
  299. if(judge2=1)
  300. shanchu();
  301. else menu();
  302. }
  303. void bianhaochashu()//按编号查书函数
  304. {
  305. char bianhao[10];
  306. int y,u;
  307. system("cls");
  308. printf("请输入图书的五位数字编号:(例如00001)");
  309. scanf("%f",&bianhao);
  310. for(y=0;y<=10000;y++)
  311. {
  312. if(strcmp(bianhao,shu[y].ID)==0)
  313. (printf("\n\n\n\%4s%4s%4s%4s%4s",shu[y].name,shu[y].zuozhe,shu[y].ID,shu[y].sl,shu[y].dj);
  314. else printf("没有这本书!\n")
  315. }
  316. printf("\n\n\n\是否继续查询?\n 1:是 2:否\n");
  317. scanf("%d",&u);
  318. if(u=1)
  319. bianhaochashu();
  320. else
  321. menu();
  322. }


  323. void shumingchashu()//按书名查书函数
  324. {
  325. char shuming[10];
  326. int o,p;
  327. system("cls");
  328. printf("请输入图书的名字:(例如 简爱)");
  329. scanf("%f",&shuming);
  330. for(o=0;o<=10000;o++)
  331. {
  332. if(strcmp(shuming,shu[o].name)==0)
  333. (printf("\n\n\n\%4s%4s%4s%4s%4s",shu[o].name,shu[o].zuozhe,shu[o].ID,shu[o].sl,shu[o].dj);
  334. else printf("没有这本书!\n")
  335. }
  336. printf("\n\n\n\是否继续查询?\n 1:是 2:否\n");
  337. scanf("%d",&p);
  338. if(p=1)
  339. shumingchashu();
  340. else
  341. menu();

  342. }
  343. void chashu()//查书函数(主界面)
  344. {
  345. int xuanze3;
  346. system("cls");
  347. printf("\n\n\n")
  348. printf(" ★★★★★★★★★★★★★★★★★★★★★★★\n");
  349. printf(" ★★ 欢迎使用CC图书管理系统 ★★\n");
  350. printf(" ★★ 图书查询 ★★\n");
  351. printf(" ★★ 1.按书名查询 ★★\n");
  352. printf(" ★★ 2.按编号查询 ★★\n");
  353. printf(" ★★ 3.返回上级菜单 ★★\n");
  354. printf(" ★★★★★★★★★★★★★★★★★★★★★★★\n");
  355. scanf("%d",xuanze3);
  356. switch(xuanze3)
  357. {
  358. case 1:shumingchashu;break;
  359. case 2:bianhaochashu;break;
  360. case 3:guoke();break;
  361. default:printf("expression error!\n")
  362. }
  363. chashu();
  364. }

  365. void xianshi(int k) //定义显示书籍信息函数
  366. {

  367. system("cls");
  368. FILE *fp;
  369. if((fp=fopen("CC图书馆管理系统.txt","r"))==NULL)
  370. {
  371. printf("打开文件失败!\n");
  372. exit(0);
  373. }
  374. if(strcmp(k,shu[k].ID)==0)
  375. {
  376. printf("\n\n书名:%s作者%s编号%s数量%s单价%s",shu[k].name,shu[k].zuozhe,shu[k].ID,shu[k].sl,shu[k].dj);
  377. printf("状态为:%d",k);
  378. }
  379. fclose(fp);
  380. }
  381. void tuichu()//退出CC图书馆管理系统
  382. {
  383. system("cls");
  384. printf("\n\n\n");
  385. printf("谢谢您的使用,再见!!!");

  386. }
  387. void guoke()//匆匆过客的界面
  388. {
  389. int xuanze2
  390. system("cls");
  391. printf("\n\n\n")
  392. printf(" ★★★★★★★★★★★★★★★★★★★★★★★\n");
  393. printf(" ★★ 欢迎使用CC图书管理系统 ★★\n");
  394. printf(" ★★ 匆匆过客 ★★\n");
  395. printf(" ★★ 1.书籍查询 ★★\n");
  396. printf(" ★★ 2.帐号注册 ★★\n");
  397. printf(" ★★ 3.返回上级菜单 ★★\n");
  398. printf(" ★★★★★★★★★★★★★★★★★★★★★★★\n");
  399. scanf("%d",&xuanze2);
  400. switch(xuanze2)
  401. {
  402. case 1:shujichaxun;break;
  403. case 2:zhuce;break;
  404. case 3:menu();break;
  405. default:printf("expression error!\n");
  406. }
  407. guoke();
  408. }


  409. void menu()//主菜单
  410. {int xuanze1;
  411. printf("\n\n\n")
  412. printf(" ★★★★★★★★★★★★★★★★★★★★★★★\n");
  413. printf(" ★★ 欢迎使用CC图书管理系统 ★★\n");
  414. printf(" ★★ 1:帐号注册 ★★\n");
  415. printf(" ★★ 2:用户登陆 ★★\n");
  416. printf(" ★★ 3:匆匆过客 ★★\n");
  417. printf(" ★★ 4:新书添加 ★★\n");
  418. printf(" ★★ 5:退出CC图书管理系统 ★★\n");
  419. printf(" ★★★★★★★★★★★★★★★★★★★★★★★\n");
  420. scanf("%d",&xuanze1);
  421. switch(xuanze)
  422. {
  423. case 1: zhuce() ;break;
  424. case 2: denglu() ;break;
  425. case 3: guoke() ;break;
  426. case 4: tianjia();break;
  427. case 5: tuichu() ;break;
  428. default:printf("expression error!\n");
  429. }
  430. menu();
  431. }
  432. void main()
  433. {
  434. menu();
  435. }
复制代码

回复

使用道具 举报

发表于 2015-1-10 21:50:20 | 显示全部楼层
如果愿意付费学习这种中规模程序如何实现的话,可以加QQ 190896757 咨询
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-14 04:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表