久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4219|回復: 0
打印 上一主題 下一主題
收起左側

學生信息管理系統C語言程序設計

[復制鏈接]
跳轉到指定樓層
樓主
ID:317993 發表于 2018-4-27 18:40 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
學生信息管理系統論文
c語言源程序如下:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <string.h>
  5. struct student
  6. {
  7. int num;
  8. char name[20];
  9. float score1;
  10. float score2;
  11. float score3;
  12. float average;
  13. };
  14. struct student stu[50];
  15. struct student avg;
  16. int count=0,passwd=1;
  17. int k=0;
  18. void input();
  19. void display();
  20. void sort();
  21. void sort_name();
  22. void sort_score1();
  23. void sort_score2();
  24. void sort_score3();
  25. void sort_average();
  26. void query();
  27. void query_num();
  28. void query_name();
  29. void update();
  30. void update_num();
  31. void update_name();
  32. void re();
  33. void re_num();
  34. void re_name();
  35. void renew();
  36. void renew_num();
  37. void renew_name();
  38. void pa();
  39. void list();
  40. void main()
  41. {
  42. int p;
  43. system("cls");
  44. printf("\n\n\n\n\n\n\n\t\t\t請輸入1啟動: ");
  45. scanf("%d",&p);
  46. if (p==passwd)
  47. list();
  48. else
  49. {
  50. printf("\n\n\n\n輸入錯誤!任意鍵重新輸入!");
  51. getch();
  52. main();        

  53. }

  54. }
  55. void list()
  56. {
  57. int a;
  58. system("cls");
  59.          
  60. printf("----------------學生成績管理系統----------------\n\n\n");
  61. printf("1.錄入\n2.顯示\n3.排序\n4.查詢\n5.修改\n6.刪除\n7.恢復\n8.退出\n\n");
  62. printf("請選擇: ");
  63. scanf("%d",&a);
  64. switch(a)
  65.          {
  66.           case 1:
  67.           input();
  68.           break;
  69.           case 2:
  70.           display();
  71.           break;
  72.           case 3:
  73.           sort();
  74.           break;
  75.           case 4:
  76.           query();
  77.           break;
  78.           case 5:
  79.           update();
  80.           break;
  81.           case 6:
  82.           re();
  83.           break;
  84.           case 7:
  85.           renew();
  86.           break;
  87.           case 8:
  88.           break;
  89.           default:
  90.           printf("選擇錯誤!");
  91.           break;
  92.          }
  93. }
  94. void input()
  95. {
  96. char select;
  97. system("cls");
  98. printf("學生成績錄入\n\n");
  99. do
  100.          {
  101.           printf("\n請輸入第%d個學生信息\n\n",count+1);
  102. printf("學號: ");
  103. scanf("%d",&stu[count].num);
  104. printf("姓名: ");  
  105. scanf("%s",stu[count].name);
  106. printf("成績一:");
  107. scanf("%f",&stu[count].score1);
  108. printf("成績二:");
  109. scanf("%f",&stu[count].score2);
  110. printf("成績三:");
  111. scanf("%f",&stu[count].score3);
  112. stu[count].average=(stu[count].score1+stu[count].score2+stu[count].score3)/3;
  113. printf("是否繼續輸入(y/n): ");
  114. fflush(stdin);
  115. select=getchar();
  116. count++;
  117. }while(select=='y'||select=='Y');
  118. if (select=='n'||select=='N')
  119. {  
  120. list();
  121. }
  122. }
  123. void display()
  124. {
  125. int i;
  126. system("cls");
  127. printf("學生成績顯示:\n\n");
  128. printf("%-8s%-12s%-12s%-12s%-12s%s\n","學號","姓 名","成績一","成績二","成績三","平均成績");
  129. printf("%-8s%-12s%-12s%-12s%-12s%s\n","====","========","=======","=======","========","========");
  130. for (i=0;i<count;i++)
  131. {
  132. printf("%-8d%-12s%-12.2f%-12.2f%-12.2f%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].average);
  133. }
  134. printf("任意鍵返回主菜單......");
  135. getch();
  136. list();
  137. }
  138. void sort()
  139. {
  140. int select;
  141. system("cls");
  142. printf("學生成績排序:\n\n\n");
  143. printf("\n\t\t\t1.按姓名排序\n\t\t\t2.按成績一排序\n\t\t\t3.按成績二排序\n\t\t\t4.按成績三排序\n\t\t\t5.按平均分排序\n\t\t\t6.返回\n\n");
  144. printf("請選擇: ");
  145. scanf("%d",&select);
  146. switch(select)
  147. {
  148. case 1:
  149. sort_name();
  150. break;
  151. case 2:
  152. sort_score1();
  153. break;
  154. case 3:
  155. sort_score2();
  156. break;
  157. case 4:
  158. sort_score3();
  159. break;
  160. case 5:
  161. sort_average();
  162. break;
  163. case 6:
  164. list();
  165. break;
  166. default:
  167. printf("輸入錯誤!任意鍵返回主菜單!");
  168. getch();
  169. list();
  170. break;
  171. }
  172. }
  173. void sort_name()
  174. {
  175. int i;
  176. struct student temp;
  177. system("cls");
  178. printf("按姓名排序: \n\n");
  179. printf("%-8s%-12s%-12s%-12s%-12s%s\n","學號","姓 名","成績一","成績二","成績三","平均成績");
  180. printf("%-8s%-12s%-12s%-12s%-12s%s\n","====","========","=======","=======","========","========");
  181. for (i=0;i<count;i++)
  182. {
  183. if (strlen(stu[i].name)<strlen(stu[i+1].name))
  184. {
  185. temp=stu[i];
  186. stu[i]=stu[i+1];
  187. stu[i+1]=temp;
  188. }
  189. }
  190. for (i=0;i<count;i++)
  191. {
  192. printf("%-8d%-12s%-12.2f%-12.2f%-12.2f%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].average);
  193. }
  194. printf("任意鍵返回......");
  195. getch();
  196. sort();
  197. }
  198. void sort_score1()
  199. {
  200. int i;
  201. struct student temp;
  202. system("cls");
  203. printf("按成績一排序: \n\n");
  204. printf("%-8s%-12s%-12s%-12s%-12s%s\n","學號","姓 名","成績一","成績二","成績三","平均成績");
  205. printf("%-8s%-12s%-12s%-12s%-12s%s\n","====","========","=======","=======","========","========");
  206. for (i=0;i<count;i++)
  207. {
  208. if (stu[i].score1<stu[i+1].score1)
  209. {
  210. temp=stu[i];
  211. stu[i]=stu[i+1];
  212. stu[i+1]=temp;
  213. }
  214. }
  215. for (i=0;i<count;i++)
  216. {
  217. printf("%-8d%-12s%-12.2f%-12.2f%-12.2f%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].average);
  218. }
  219. printf("任意鍵返回......");
  220. getch();
  221. sort();
  222. }
  223. void sort_score2()
  224. {
  225. int i;
  226. struct student temp;
  227. system("cls");
  228. printf("按成績一排序: \n\n");
  229. printf("%-8s%-12s%-12s%-12s%-12s%s\n","學號","姓 名","成績一","成績二","成績三","平均成績");
  230. printf("%-8s%-12s%-12s%-12s%-12s%s\n","====","========","=======","=======","========","========");
  231. for (i=0;i<count;i++)
  232. {
  233. if (stu[i].score2<stu[i+1].score2)
  234. {
  235. temp=stu[i];
  236. stu[i]=stu[i+1];
  237. stu[i+1]=temp;
  238. }
  239. }
  240. for (i=0;i<count;i++)
  241. {
  242. printf("%-8d%-12s%-12.2f%-12.2f%-12.2f%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].average);
  243. }
  244. printf("任意鍵返回......");
  245. getch();
  246. sort();
  247. }
  248. void sort_score3()
  249. {
  250. int i;
  251. struct student temp;
  252. system("cls");
  253. printf("按成績一排序: \n\n");
  254. printf("%-8s%-12s%-12s%-12s%-12s%s\n","學號","姓 名","成績一","成績二","成績三","平均成績");
  255. printf("%-8s%-12s%-12s%-12s%-12s%s\n","====","========","=======","=======","========","========");
  256. for (i=0;i<count;i++)
  257. {
  258. if (stu[i].score2<stu[i+1].score3)
  259. {
  260. temp=stu[i];
  261. stu[i]=stu[i+1];
  262. stu[i+1]=temp;
  263. }
  264. }
  265. for (i=0;i<count;i++)
  266. {
  267. printf("%-8d%-12s%-12.2f%-12.2f%-12.2f%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].average);
  268. }
  269. printf("任意鍵返回......");
  270. getch();
  271. sort();
  272. }
  273. void sort_average()
  274. {
  275. int i;
  276. struct student temp;
  277. system("cls");
  278. printf("按平均分排序: \n\n");
  279. printf("%-8s%-12s%-12s%-12s%-12s%s\n","學號","姓 名","成績一","成績二","成績三","平均成績");
  280. printf("%-8s%-12s%-12s%-12s%-12s%s\n","====","========","=======","=======","========","========");
  281. for (i=0;i<count;i++)
  282. {
  283. if (stu[i].average<stu[i+1].average)
  284. {
  285. temp=stu[i];
  286. stu[i]=stu[i+1];
  287. stu[i+1]=temp;
  288. }
  289. }
  290. for (i=0;i<count;i++)
  291. {
  292. printf("%-8d%-12s%-12.2f%-12.2f%-12.2f%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].average);
  293. }
  294. printf("任意鍵返回......");
  295. getch();
  296. sort();
  297. }
  298. void query()
  299. {
  300. int select;
  301. system("cls");
  302. printf("學生成績查詢:");
  303. printf("\n\n\n\t\t\t1.按學號查詢\n\n\t\t\t2.按姓名查詢\n\n\t\t\t3.返回");
  304. printf("\n\n請選擇: ");
  305. scanf("%d",&select);
  306. switch(select)
  307. {
  308. case 1:
  309. query_num();
  310. break;
  311. case 2:
  312. query_name();
  313. break;
  314. case 3:
  315. list();
  316. break;
  317. default:
  318. printf("輸入錯誤!任意鍵返回主菜單!");
  319. getch();
  320. list();
  321. }
  322. }
  323. void query_num()
  324. {
  325. int q,i;
  326. system("cls");
  327. printf("按學生學號查詢:\n\n");
  328. printf("請輸入要查詢學生的學號:");
  329. scanf("%d",&q);
  330. for (i=0;i<count;i++)
  331. {
  332. if (stu[i].num==q)
  333. {
  334. printf("\n%-8s%-12s%-12s%-12s%-12s%s\n","學號","姓 名","成績一","成績二","成績三","平均成績");
  335. printf("%-8s%-12s%-12s%-12s%-12s%s\n","====","========","=======","========","========","========");
  336. printf("%-8d%-12s%-12.2f%-12.2f%-12.2f%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].average);
  337. printf("查詢完畢,任意鍵返回!");
  338. getch();
  339. query();
  340. break;
  341. }
  342. else  
  343. continue;
  344. }
  345. printf("對不起,您所查詢的學生不存在!任意鍵返回!");
  346. getch();
  347. query();
  348. }
  349. void query_name()
  350. {
  351. int i,j;
  352. char find[20];
  353. system("cls");
  354. printf("按學生姓名查詢\n\n\n");
  355. printf("輸入要查詢的學生的姓名: ");
  356. scanf("%s",find);
  357. for        (i=0;i<count;i++)
  358. {
  359. j=strcmp(find,stu[i].name);  
  360. if (j==0)
  361. {
  362. printf("\n%-8s%-12s%-12s%-12s%-12s%s\n","學號","姓 名","成績一","成績二","成績三","平均成績");
  363. printf("%-8s%-12s%-12s%-12s%-12s%s\n","====","========","=======","=======","========","========");
  364. printf("%-8d%-12s%-12.2f%-12.2f%-12.2f%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].average);
  365. printf("\n\n查詢完畢,任意鍵返回!");
  366. getch();
  367. query();
  368. break;
  369. }

  370. else  
  371. continue;
  372. }
  373. printf("對不起,您所查詢的學生不存在!任意鍵返回!");
  374. getch();
  375. query();
  376. }
  377. void update()
  378. {
  379. int select;
  380. system("cls");
  381. printf("修改學生信息:\n\n\n");
  382. printf("\t\t\t1.按學號修改\n\n\t\t\t2.按姓名修改\n\n\t\t\t3.返回");
  383. printf("\n\n請選擇:");
  384. scanf("%d",&select);
  385. switch(select)
  386. {
  387. case 1:
  388. update_num();
  389. break;
  390. case 2:
  391. update_name();
  392. break;
  393. case 3:
  394. list();
  395. break;
  396. default:
  397. printf("輸入錯誤!任意鍵返回!");
  398. getch();
  399. list();
  400. break;
  401. }
  402. }
  403. void update_num()
  404. {
  405. int i,find;
  406. system("cls");
  407. printf("按學生學號修改: \n\n");
  408. printf("請輸入要修改的學生的學號: ");
  409. scanf("%d",&find);
  410. for (i=0;i<count;i++)
  411. {
  412. if (stu[i].num==find)
  413. {
  414. printf("\n\n學號: ");
  415. scanf("%d",&stu[i].num);
  416. printf("姓名: ");
  417. scanf("%s",stu[i].name);
  418. printf("成績一: ");
  419. scanf("%f",&stu[i].score1);
  420. printf("成績二: ");
  421. scanf("%f",&stu[i].score2);
  422. printf("成績三: ");
  423. scanf("%f",&stu[i].score3);
  424. printf("修改成功!任意鍵返回主菜單!");
  425. getch();
  426. list();
  427. break;
  428. }
  429. else
  430. continue;
  431. }

  432. printf("您所要修改的學生不存在,任意鍵返回主菜單!");
  433. getch();
  434. list();
  435. }
  436. void update_name()
  437. {
  438. int i,j=0;
  439. char find[20];
  440. system("cls");
  441. printf("按學生姓名修改: \n\n");
  442. printf("請輸入要修改的學生的姓名: ");
  443. scanf("%s",find);
  444. for (i=0;i<count;i++)
  445. {
  446. j=strcmp(find,stu[i].name);  
  447. if (j==0)
  448. {
  449. printf("\n\n學號: ");
  450. scanf("%d",&stu[i].num);
  451. printf("姓名: ");
  452. scanf("%s",stu[i].name);
  453. printf("成績一: ");
  454. scanf("%f",&stu[i].score1);
  455. printf("成績二: ");
  456. scanf("%f",&stu[i].score2);
  457. printf("成績三: ");
  458. scanf("%f",&stu[i].score3);
  459. printf("修改成功!任意鍵返回主菜單!");
  460. getch();
  461. list();
  462. break;
  463. }

  464. else
  465. continue;
  466. }

  467. printf("您所要修改的學生不存在,任意鍵返回主菜單!");
  468. getch();
  469. list();
  470. }
  471. void re()
  472. {
  473. int select;
  474. system("cls");
  475. printf("刪除學生信息: \n\n\n");
  476. printf("\t\t\t1.按學號刪除\n\n\t\t\t2.按姓名刪除\n\n\t\t\t3.返回\n\n");
  477. printf("請選擇: ");
  478. scanf("%d",&select);
  479. switch(select)
  480. {
  481. case 1:
  482. re_num();
  483. break;
  484. case 2:
  485. re_name();
  486. break;
  487. case 3:
  488. list();
  489. break;
  490. default:
  491. printf("輸入錯誤!任意鍵返回!");
  492. getch();
  493. list();
  494. }
  495. }
  496. void re_num()
  497. {
  498. int i,find,j;
  499. system("cls");
  500. printf("按學號刪除學生信息: \n\n");
  501. printf("請輸入要刪除的學生的學號: ");
  502. scanf("%d",&find);
  503. for (i=0;i<count;i++)
  504. {
  505. if (stu[i].num==find)
  506. {
  507. j=1;
  508. k=i;
  509. avg=stu[i];
  510. break;
  511. }
  512. else  
  513. continue;

  514. }

  515. if (j!=1)
  516. {
  517. printf("您所刪除的學生不存在!任意鍵返回主菜單!");
  518. getch();
  519. list();
  520. }
  521. else
  522. for (i=k;i<count-1;i++)        
  523. {
  524. stu[i]=stu[i+1];

  525. }
  526. printf("刪除成功!任意鍵返回主菜單!");        
  527. count--;
  528. getch();
  529. list();
  530. }
  531. void re_name()
  532. {
  533. int i,j,m;
  534. char find[20];
  535. system("cls");
  536. printf("按姓名刪除學生信息: \n\n");
  537. printf("請輸入要刪除的學生的姓名: ");
  538. scanf("%s",find);
  539. for (i=0;i<count;i++)
  540. {
  541. m=strcmp(find,stu[i].name);         
  542. if (m==0)
  543. {
  544. j=1;
  545. k=i;
  546. avg=stu[i];
  547. break;
  548. }
  549. else  
  550. continue;

  551. }

  552. if (j!=1)
  553. {
  554. printf("您所刪除的學生不存在!任意鍵返回主菜單!");
  555. getch();
  556. list();
  557. }
  558. else
  559. for (i=k;i<count-1;i++)        
  560. {
  561. stu[i]=stu[i+1];

  562. }
  563. printf("刪除成功!任意鍵返回主菜單!");        
  564. count--;
  565. getch();
  566. s();
  567. }
  568. void renew()
  569. {
  570. int select;
  571. system("cls");
  572. printf("恢復學生信息: \n\n\n");
  573. printf("\t\t\t1.按學號恢復\n\n\t\t\t2.按姓名恢復\n\n\t\t\t3.返回\n\n");
  574. printf("請選擇: ");
  575. scanf("%d",&select);
  576. switch(select)
  577. {
  578. case 1:
  579. renew_num();
  580. break;
  581. case 2:
  582. renew_name();
  583. break;
  584. case 3:
  585. list();
  586. break;
  587. default:
  588. printf("輸入錯誤!任意鍵返回!");
  589. getch();
  590. list();
  591. }
  592. }
  593. void renew_num()
  594. {
  595. int i,del;
  596. system("cls");
  597. printf("請輸入要恢復的學生的學號: ");
  598. scanf("%d",&del);
  599. if (del==avg.num)
  600. {
  601. for (i=k;i<count;i++)
  602. {
  603. stu[i+1]=stu[i];
  604. stu[i]=avg;
  605. break;
  606. }
  607. }
  608. else  

  609. {
  610. printf("您要恢復的學生不存在,任意鍵返回主菜單!");
  611. getch();
  612. list();
  613. }
  614. count++;
  615. printf("恢復成功!");
  616. getch();
  617. list();
  618. }
  619. void renew_name()
  620. {
  621. int i,j;
  622. char del[20];
  623. system("cls");
  624. printf("請輸入要恢復的學生的姓名: ");
  625. scanf("%s",del);
  626. j=strcmp(del,avg.name);         
  627. if (j==0)
  628. {
  629. for (i=k;i<count;i++)
  630. {
  631. stu[i+1]=stu[i];
  632. stu[i]=avg;
  633. break;
  634. }
  635. }

  636. else  

  637. {
  638. printf("您要恢復的學生不存在,任意鍵返回主菜單!");
  639. getch();
  640. list();
  641. }
  642. count++;
  643. printf("恢復成功!");
  644. getch();
  645. list();
  646. }

復制代碼

源碼下載:
LRC程序設計論文.doc (71 KB, 下載次數: 12)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天久久 | 免费在线一区二区三区 | 中文字幕高清av | 97av在线| 午夜在线电影网 | 国产黄色在线观看 | 国产视频福利 | 91国产在线视频在线 | 成人在线观看欧美 | www.日韩系列 | 99久久久久国产精品免费 | 91视频a| 一本色道精品久久一区二区三区 | 国产精品视频网 | 亚洲国产精品视频 | 欧美日韩一 | 国产精品久久久亚洲 | 一区影院 | 亚洲成人国产精品 | 久久久久国产 | 亚州成人| 国产精品久久久久久久7电影 | 日本免费一区二区三区 | 国产精品久久久久久久久久久新郎 | 视频精品一区二区三区 | 国产激情网 | 国产精品69毛片高清亚洲 | 天天射影院 | 网址黄| 日日射影院 | 久久久久亚洲精品国产 | 美女爽到呻吟久久久久 | 国产亚洲精品一区二区三区 | 久久久久国产精品免费免费搜索 | 精品一区二区在线看 | 亚洲精品在线视频 | 久久久国产一区二区三区四区小说 | 国产在线观看一区二区三区 | 国产精品久久久久久久久久三级 | 中国一级特黄真人毛片免费观看 | 日本黄色激情视频 |