1. /*
  1. C++程序设计实践教学环节任务书
  2. 一、题目:高校学籍管理系统
  3. 二、目的与要求
  4. 1. 目的:
  5. 1.掌握C++语言基本知识及其编程方法 
  6. 2.掌握类和对象的基本概念与用法
  7. 3.掌握面向对象中的继承与多态等面象对象特性
  8. 4.掌握文件流的基本操作
  9. 2. 要求 
  10. 基本要求:
  11. 1)要求利用面向对象的方法以及C++的编程思想来完毕系统的设计; 
  12. 2)要求在设计的过程中,建立清晰的类层次。 
  13. 3)在系统中至少要定义8个类,每一个类中要有各自的属性和方法。 
  14. 4)在系统的设计中,要求使用面向对象的继承与多态
  1. */
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <string>
  4. #include <winsock2.h>
  5. #include <mysql.h>
  6. #pragma comment(lib,"ws2_32")
  7. #pragma comment(lib,"libmysql")
  8. using namespace std;
  9.  
  10. class Student
  11. {
  12. int id;
  13. char name[200];
  14. char sex[100];
  15. char min_zu[220];
  16. char ji_guan[330];
  17. char sheng_fen_zheng_hao[20];
  18. char QQ[20];
  19. char phone[20];
  20. int score;
  21. public:
  22. void show_table();
  23. int main_menu();
  24. void input();
  25. int xiu_gai();
  26. int xiu_gai_menu();
  27. int cha_xun();
  28. int cha_xun_menu();
  29. int del();
  30. int shan_menu();
  31. int score_tong_ji();
  32. int score_tong_ji_menu();
  33. };
  34.  
  35. class Xu_gai:public Student//改动类
  36. {
  37. public:
  38. void xiu_gai_xue_hao();
  39. void xiu_gai_xing_ming();
  40. void xiu_gai_xing_bie();
  41. void xiu_gai_min_zu();
  42. void xiu_gai_ji_guan();
  43. void xiu_gai_shen_fen_zheng_hao();
  44. void xiu_gai_QQ_hao();
  45. void xiu_gai_dian_hua();
  46. void xiu_gai_cheng_ji();
  47. };
  48.  
  49. class Cha_xun:public Student//查询类
  50. {
  51. public:
  52. void xue_hao_cha_xun();
  53. void xing_ming_cha_xun();
  54. };
  55.  
  56. class Shan_chu:public Student//删除类
  57. {
  58. public:
  59. void xue_hao_shan_chu();
  60. void xing_ming_shan_chu();
  61. };
  62.  
  63. class Score:public Student//成绩统计类
  64. {
  65. public:
  66. void cheng_ji_pai_xu();
  67. void zui_gao_zui_di_fen_xin_xi();
  68. void ping_jun_fen();
  69. void ji_ge_lv();
  70. };
  71.  
  72. void Score::ji_ge_lv()//全体学生的及格率
  73. {
  74. Student zhao;
  75. system("pause");
  76. system("cls");
  77. zhao.show_table();
  78. MYSQL mysql;
  79. mysql_init(&mysql);
  80. MYSQL_RES *resultset;
  81. MYSQL_ROW row;
  82. mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "latin1");
  83. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  84. {
  85. printf("\n数据库连接错误发生!");
  86. }
  87. else
  88. {
  89. float a,b;
  90. mysql_query(&mysql,"select count(*) from xueji where score >= 450");
  91. cout<<"及格人数:";
  92. resultset=mysql_store_result(&mysql);
  93. if(mysql_num_rows(resultset)!=NULL)
  94. {
  95. int numFields = mysql_num_fields(resultset);
  96. while(row=mysql_fetch_row(resultset))
  97. {
  98.  
  99. cout<<row[0];
  100. a = atoi(row[0]);
  101. cout<<endl;
  102. }
  103. }
  104. mysql_query(&mysql,"select count(*) from xueji");
  105. cout<<"总人数:";
  106. resultset=mysql_store_result(&mysql);
  107. if(mysql_num_rows(resultset)!=NULL)
  108. {
  109. int numFields = mysql_num_fields(resultset);
  110. while(row=mysql_fetch_row(resultset))
  111. {
  112. cout<<row[0];
  113. b = atoi(row[0]);
  114. cout<<endl;
  115. }
  116. }
  117. cout<<"及格率:";
  118. cout << ((a/b)*100)<<"%" << endl<<endl;
  119. mysql_free_result(resultset);
  120. }
  121. }
  122.  
  123. void Score::ping_jun_fen()//全体学生的平均分
  124. {
  125. Student zhao;
  126. system("pause");
  127. system("cls");
  128. zhao.show_table();
  129. MYSQL mysql;
  130. mysql_init(&mysql);
  131. MYSQL_RES *resultset;
  132. MYSQL_ROW row;
  133. mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "latin1");
  134. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  135. {
  136. printf("\n数据库连接错误发生!");
  137. }
  138. else
  139. {
  140. float a,b;
  141. mysql_query(&mysql,"select avg(score) from xueji");
  142. cout<<"平均分:";
  143. resultset=mysql_store_result(&mysql);
  144. if(mysql_num_rows(resultset)!=NULL)
  145. {
  146. int numFields = mysql_num_fields(resultset);
  147. while(row=mysql_fetch_row(resultset))
  148. {
  149. cout<<row[0];
  150. a = atoi(row[0]);
  151. cout<<endl;
  152. }
  153. }
  154. mysql_free_result(resultset);
  155. }
  156. }
  157.  
  158. void Score::zui_gao_zui_di_fen_xin_xi()//最高最低分学生的信息
  159. {
  160. Student zhao;
  161. system("pause");
  162. system("cls");
  163. zhao.show_table();
  164. MYSQL mysql;
  165. mysql_init(&mysql);
  166. MYSQL_RES *resultset;
  167. MYSQL_ROW row;
  168. mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "latin1");
  169. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  170. {
  171. printf("\n数据库连接错误发生!");
  172. }
  173. else
  174. {
  175. float a,b;
  176. mysql_query(&mysql,"select max(score) from xueji");
  177. cout<<"最高分:";
  178. resultset=mysql_store_result(&mysql);
  179. if(mysql_num_rows(resultset)!=NULL)
  180. {
  181. int numFields = mysql_num_fields(resultset);
  182. while(row=mysql_fetch_row(resultset))
  183. {
  184. cout<<row[0];
  185. a = atoi(row[0]);
  186. cout<<endl;
  187. }
  188. }
  189. mysql_query(&mysql,"select min(score) from xueji");
  190. cout<<"最低分:";
  191. resultset=mysql_store_result(&mysql);
  192. if(mysql_num_rows(resultset)!=NULL)
  193. {
  194. int numFields = mysql_num_fields(resultset);
  195. while(row=mysql_fetch_row(resultset))
  196. {
  197. cout<<row[0];
  198. b = atoi(row[0]);
  199. cout<<endl;
  200. }
  201. }
  202. mysql_free_result(resultset);
  203. }
  204. }
  205.  
  206. void Score::cheng_ji_pai_xu()//成绩排序
  207. {
  208. Student zhao;
  209. system("pause");
  210. system("cls");
  211. zhao.show_table();
  212. MYSQL mysql;
  213. mysql_init(&mysql);
  214. MYSQL_RES *resultset;
  215. MYSQL_ROW row;
  216. mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "latin1");
  217. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  218. {
  219. printf("\n数据库连接错误发生!");
  220. }
  221. else
  222. {
  223. cout<<"**************************************開始成绩排名**************************************"<<endl;
  224. cout<<" 学号 "<<" 姓名 "<<"性别 "<<"民族 "<<"籍贯 "<<" 身份证 "<<" QQ "<<" 电话 "<<" 成绩 "<<endl;
  225. cout<<"--------------------------------------------------------------------------------------"<<endl;
  226. mysql_query(&mysql,"select * from xueji order by score desc");
  227. resultset=mysql_store_result(&mysql);
  228. if(mysql_num_rows(resultset)!=NULL)
  229. {
  230. //int numRows = mysql_num_rows(resultset);
  231. int numFields = mysql_num_fields(resultset);
  232. while(row=mysql_fetch_row(resultset))
  233. {
  234. int i;
  235. for(i=0;i<numFields;i++)
  236. {
  237. cout<<" "<<row[i]<<" ";
  238. }
  239. cout<<endl;
  240. cout<<"--------------------------------------------------------------------------------------"<<endl;
  241. }
  242. }
  243. else
  244. {
  245. cout<<"\n无查询结果!";
  246. }
  247. mysql_free_result(resultset);
  248. }
  249. }
  250.  
  251. void Shan_chu::xing_ming_shan_chu()//按姓名删除
  252. {
  253. Student zhao;
  254. system("pause");
  255. system("cls");
  256. zhao.show_table();
  257. MYSQL mysql;
  258. mysql_init(&mysql);
  259. mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "latin1");
  260. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  261. {
  262. printf("\n数据库连接错误发生!");
  263. }
  264. else
  265. {
  266. char std[220];
  267. char na[200];
  268. cout<<"请输入要删除学籍信息的学生姓名: "<<endl;
  269. cin>>na;
  270. sprintf(std,"delete from xueji where name='%s';",na);
  271. if(mysql_query(&mysql, std))
  272. {
  273. cout<<"数据查询错误发生"<<endl;
  274. }
  275. else
  276. {
  277. cout<<"删除成功!"<<endl;
  278. }
  279. }
  280. }
  281.  
  282. void Shan_chu::xue_hao_shan_chu()//按学号删除
  283. {
  284. Student zhao;
  285. system("pause");
  286. system("cls");
  287. zhao.show_table();
  288. MYSQL mysql;
  289. mysql_init(&mysql);
  290. mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "latin1");
  291. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  292. {
  293. printf("\n数据库连接错误发生!");
  294. }
  295. else
  296. {
  297. char std[220];
  298. int na;
  299. cout<<"请输入要删除学籍信息的学生学号: "<<endl;
  300. cin>>na;
  301. sprintf(std,"delete from xueji where id=%d;",na);
  302. if(mysql_query(&mysql, std))
  303. {
  304. cout<<"数据查询错误发生"<<endl;
  305. }
  306. else
  307. {
  308. cout<<"删除成功!
  309.  
  310. "<<endl;
  311. }
  312. }
  313. }
  314.  
  315. void Cha_xun::xing_ming_cha_xun()//姓名查询
  316. {
  317. system("cls");
  318. system("pause");
  319. MYSQL mysql;
  320. mysql_init(&mysql);
  321. MYSQL_RES *resultset;
  322. MYSQL_ROW row;
  323. mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
  324. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  325. {
  326. cout<<"数据库连接错误!"<<endl;
  327. }
  328. else
  329. {
  330. char std[200];
  331. char n[200];
  332. cout<<"请输入要查的姓名:"<<endl;
  333. cin>>n;
  334. sprintf(std,"select * from xueji where name='%s';",n);
  335. if(mysql_query(&mysql, std))
  336. {
  337. printf("\n数据查询错误发生\n");
  338. }
  339. else
  340. {
  341. resultset=mysql_store_result(&mysql);
  342. if(mysql_num_rows(resultset)!=NULL)
  343. {
  344. int numFields=mysql_num_fields(resultset);//**获得表中的字段
  345. while(row=mysql_fetch_row(resultset))
  346. {
  347. int i=0;
  348. for(i=0;i<numFields;i++)
  349. {
  350. mysql_query(&mysql,"SET NAMES LATIN1");
  351. cout<<" "<<row[i]<<" ";
  352. }
  353. cout<<endl;
  354. }
  355. }
  356. else
  357. {
  358. cout<<"显示无果。";
  359. }
  360. }
  361. mysql_free_result(resultset);
  362. }
  363. }
  364.  
  365. void Cha_xun::xue_hao_cha_xun()//学号查询
  366. {
  367. system("cls");
  368. system("pause");
  369. MYSQL mysql;
  370. mysql_init(&mysql);
  371. MYSQL_RES *resultset;
  372. MYSQL_ROW row;
  373. mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
  374. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  375. {
  376. cout<<"数据库连接错误!"<<endl;
  377. }
  378. else
  379. {
  380. char std[200];
  381. int n;
  382. cout<<"请输入要查的学号:"<<endl;
  383. cin>>n;
  384. cout<<"--------------------------------------显示查询----------------------------------------"<<endl;
  385. cout<<" 学号 "<<" 姓名 "<<"性别 "<<"民族 "<<"籍贯 "<<" 身份证 "<<" QQ "<<" 电话 "<<" 成绩 "<<endl;
  386. cout<<"--------------------------------------------------------------------------------------"<<endl;
  387. sprintf(std,"select * from xueji where id=%d;",n);
  388. if(mysql_query(&mysql, std))
  389. {
  390. printf("\n数据查询错误发生\n");
  391. }
  392. else
  393. {
  394. resultset=mysql_store_result(&mysql);
  395. if(mysql_num_rows(resultset)!=NULL)
  396. {
  397. int numFields=mysql_num_fields(resultset);//**获得表中的字段
  398. while(row=mysql_fetch_row(resultset))
  399. {
  400. int i=0;
  401. for(i=0;i<numFields;i++)
  402. {
  403. mysql_query(&mysql,"SET NAMES LATIN1");
  404. cout<<" "<<row[i]<<" ";
  405. }
  406. cout<<endl;
  407. }
  408. cout<<"--------------------------------------------------------------------------------------"<<endl;
  409. }
  410. else
  411. {
  412. cout<<"显示无果。";
  413. }
  414. }
  415. mysql_free_result(resultset);
  416. }
  417. }
  418.  
  419. void Xu_gai::xiu_gai_cheng_ji()//改动成绩
  420. {
  421. system("cls");
  422. system("pause");
  423. cout<<"显示学生数据"<<endl;
  424. Xu_gai zhao;
  425. zhao.show_table();
  426. MYSQL mysql;
  427. mysql_init(&mysql);
  428. mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
  429. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  430. {
  431. cout<<"数据库连接错误!"<<endl;
  432. }
  433. else
  434. {
  435. char std[200];
  436. char m[200];
  437. int n;
  438. cout<<"对目标学号信息进行改动:"<<endl;
  439. cin>>n;
  440. cout<<"请输入要新的成绩:"<<endl;
  441. cin>>m;
  442. sprintf(std,"update xueji set score='%s' where id=%d;",m,n);
  443. if(mysql_query(&mysql, std))
  444. {
  445. printf("\n数据库更改错误发生\n");
  446. }
  447. else
  448. {
  449. printf("\n数据库更改数据成功\n");
  450. }
  451. }
  452. }
  453.  
  454. void Xu_gai::xiu_gai_dian_hua()//改动电话
  455. {
  456. system("cls");
  457. system("pause");
  458. cout<<"显示学生数据"<<endl;
  459. Xu_gai zhao;
  460. zhao.show_table();
  461. MYSQL mysql;
  462. mysql_init(&mysql);
  463. mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
  464. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  465. {
  466. cout<<"数据库连接错误!"<<endl;
  467. }
  468. else
  469. {
  470. char std[200];
  471. char m[200];
  472. int n;
  473. cout<<"对目标学号信息进行改动:"<<endl;
  474. cin>>n;
  475. cout<<"请输入要新的电话:"<<endl;
  476. cin>>m;
  477. sprintf(std,"update xueji set phone='%s' where id=%d;",m,n);
  478. if(mysql_query(&mysql, std))
  479. {
  480. printf("\n数据库更改错误发生\n");
  481. }
  482. else
  483. {
  484. printf("\n数据库更改数据成功\n");
  485. }
  486. }
  487. }
  488.  
  489. void Xu_gai::xiu_gai_QQ_hao()//改动QQ号
  490. {
  491. system("cls");
  492. system("pause");
  493. cout<<"显示学生数据"<<endl;
  494. Xu_gai zhao;
  495. zhao.show_table();
  496. MYSQL mysql;
  497. mysql_init(&mysql);
  498. mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
  499. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  500. {
  501. cout<<"数据库连接错误!
  502.  
  503. "<<endl;
  504. }
  505. else
  506. {
  507. char std[200];
  508. char m[200];
  509. int n;
  510. cout<<"对目标学号信息进行改动:"<<endl;
  511. cin>>n;
  512. cout<<"请输入要新的QQ号:"<<endl;
  513. cin>>m;
  514. sprintf(std,"update xueji set QQ='%s' where id=%d;",m,n);
  515. if(mysql_query(&mysql, std))
  516. {
  517. printf("\n数据库更改错误发生\n");
  518. }
  519. else
  520. {
  521. printf("\n数据库更改数据成功\n");
  522. }
  523. }
  524. }
  525.  
  526. void Xu_gai::xiu_gai_shen_fen_zheng_hao()//改动身份证号************************************************************
  527. {
  528. system("cls");
  529. system("pause");
  530. cout<<"显示学生数据"<<endl;
  531. Xu_gai zhao;
  532. zhao.show_table();
  533. MYSQL mysql;
  534. mysql_init(&mysql);
  535. mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
  536. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  537. {
  538. cout<<"数据库连接错误。"<<endl;
  539. }
  540. else
  541. {
  542. char std[200];
  543. char m[200];
  544. int n;
  545. cout<<"对目标学号信息进行改动:"<<endl;
  546. cin>>n;
  547. cout<<"请输入要新的身份证号:"<<endl;
  548. cin>>m;
  549. sprintf(std,"update xueji set sheng_fen_zheng_hao='%s' where id=%d;",m,n);
  550. if(mysql_query(&mysql, std))
  551. {
  552. printf("\n数据库更改错误发生\n");
  553. }
  554. else
  555. {
  556. printf("\n数据库更改数据成功\n");
  557. }
  558. }
  559. }
  560.  
  561. void Xu_gai::xiu_gai_ji_guan()//改动籍贯
  562. {
  563. system("cls");
  564. system("pause");
  565. cout<<"显示学生数据"<<endl;
  566. Xu_gai zhao;
  567. zhao.show_table();
  568. MYSQL mysql;
  569. mysql_init(&mysql);
  570. mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
  571. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  572. {
  573. cout<<"数据库连接错误!"<<endl;
  574. }
  575. else
  576. {
  577. char std[200];
  578. char m[200];
  579. int n;
  580. cout<<"对目标学号信息进行改动:"<<endl;
  581. cin>>n;
  582. cout<<"请输入要新的籍贯:"<<endl;
  583. cin>>m;
  584. sprintf(std,"update xueji set ji_guan='%s' where id=%d;",m,n);
  585. if(mysql_query(&mysql, std))
  586. {
  587. printf("\n数据库更改错误发生\n");
  588. }
  589. else
  590. {
  591. printf("\n数据库更改数据成功\n");
  592. }
  593. }
  594. }
  595.  
  596. void Xu_gai::xiu_gai_min_zu()//改动民族
  597. {
  598. system("cls");
  599. system("pause");
  600. cout<<"显示学生数据"<<endl;
  601. Xu_gai zhao;
  602. zhao.show_table();
  603. MYSQL mysql;
  604. mysql_init(&mysql);
  605. mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
  606. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  607. {
  608. cout<<"数据库连接错误!"<<endl;
  609. }
  610. else
  611. {
  612. char std[200];
  613. char m[200];
  614. int n;
  615. cout<<"对目标学号信息进行改动:"<<endl;
  616. cin>>n;
  617. cout<<"请输入要新的民族:"<<endl;
  618. cin>>m;
  619. sprintf(std,"update xueji set min_zu='%s' where id=%d;",m,n);
  620. if(mysql_query(&mysql, std))
  621. {
  622. printf("\n数据库更改错误发生\n");
  623. }
  624. else
  625. {
  626. printf("\n数据库更改数据成功\n");
  627. }
  628. }
  629. }
  630.  
  631. void Xu_gai::xiu_gai_xing_bie()//改动性别
  632. {
  633. system("cls");
  634. system("pause");
  635. cout<<"显示学生数据"<<endl;
  636. Xu_gai zhao;
  637. zhao.show_table();
  638. MYSQL mysql;
  639. mysql_init(&mysql);
  640. mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
  641. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  642. {
  643. cout<<"数据库连接错误!"<<endl;
  644. }
  645. else
  646. {
  647. char std[200];
  648. char m[200];
  649. int n;
  650. cout<<"对目标学号信息进行改动:"<<endl;
  651. cin>>n;
  652. cout<<"请输入要新的性别:"<<endl;
  653. cin>>m;
  654. sprintf(std,"update xueji set sex='%s' where id=%d;",m,n);
  655. if(mysql_query(&mysql, std))
  656. {
  657. printf("\n数据库更改错误发生\n");
  658. }
  659. else
  660. {
  661. printf("\n数据库更改数据成功\n");
  662. }
  663. }
  664. }
  665.  
  666. void Xu_gai::xiu_gai_xing_ming()//改动姓名
  667. {
  668. system("cls");
  669. system("pause");
  670. cout<<"显示学生数据"<<endl;
  671. Xu_gai zhao;
  672. zhao.show_table();
  673. MYSQL mysql;
  674. mysql_init(&mysql);
  675. mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
  676. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  677. {
  678. cout<<"数据库连接错误!"<<endl;
  679. }
  680. else
  681. {
  682. char std[200];
  683. char m[200];
  684. int n;
  685. cout<<"对目标学号信息进行改动:"<<endl;
  686. cin>>n;
  687. cout<<"请输入要新的姓名:"<<endl;
  688. cin>>m;
  689. sprintf(std,"update xueji set name='%s' where id=%d;",m,n);
  690. if(mysql_query(&mysql, std))
  691. {
  692. printf("\n数据库更改错误发生\n");
  693. }
  694. else
  695. {
  696. printf("\n数据库更改数据成功\n");
  697. }
  698. }
  699. }
  700.  
  701. void Xu_gai::xiu_gai_xue_hao()//改动学号
  702. {
  703. system("cls");
  704. system("pause");
  705. cout<<"显示学生数据"<<endl;
  706. Xu_gai zhao;
  707. zhao.show_table();
  708. MYSQL mysql;
  709. mysql_init(&mysql);
  710. mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
  711. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  712. {
  713. cout<<"数据库连接错误!"<<endl;
  714. }
  715. else
  716. {
  717. char std[200];
  718. int n,m;
  719. cout<<"请输入要改动的学号:"<<endl;
  720. cin>>n;
  721. cout<<"请输入要新的学号:"<<endl;
  722. cin>>m;
  723. sprintf(std,"update xueji set id=%d where id=%d;",m,n);
  724. if(mysql_query(&mysql, std))
  725. {
  726. printf("\n数据库更改错误发生\n");
  727. }
  728. else
  729. {
  730. printf("\n数据库更改数据成功\n");
  731. }
  732. }
  733. }
  734.  
  735. int Student::xiu_gai()//定义改动函数
  736. {
  737. cout<<"进入改动系统..."<<endl;
  738. int h;
  739. Xu_gai geng_zheng;
  740. system("pause");
  741. system("cls");
  742. MYSQL mysql;
  743. mysql_init(&mysql);
  744. mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
  745. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  746. {
  747. cout<<"数据库连接错误!
  748.  
  749. "<<endl;
  750. }
  751. else
  752. {
  753. while(1)
  754. {
  755. h=geng_zheng.xiu_gai_menu();
  756. switch(h)
  757. {
  758. case 1:
  759. geng_zheng.xiu_gai_xue_hao();
  760. break;
  761. case 2:
  762. geng_zheng.xiu_gai_xing_ming();
  763. break;
  764. case 3:
  765. geng_zheng.xiu_gai_xing_bie();
  766. break;
  767. case 4:
  768. geng_zheng.xiu_gai_min_zu();
  769. break;
  770. case 5:
  771. geng_zheng.xiu_gai_ji_guan();
  772. break;
  773. case 6:
  774. geng_zheng.xiu_gai_shen_fen_zheng_hao();
  775. break;
  776. case 7:
  777. geng_zheng.xiu_gai_QQ_hao();
  778. break;
  779. case 8:
  780. geng_zheng.xiu_gai_dian_hua();
  781. break;
  782. case 9:
  783. geng_zheng.xiu_gai_cheng_ji();
  784. break;
  785. case 0:
  786. return 0;
  787. break;
  788. default:
  789. cout<<"请选择正确的菜单项进行操作。多谢合作!"<<endl;
  790. }
  791. }
  792. }
  793. return 0;
  794. }
  795.  
  796. int Student::cha_xun()//查询
  797. {
  798. system("pause");
  799. system("cls");
  800. Cha_xun cha;
  801. MYSQL mysql;
  802. int h;
  803. mysql_init(&mysql);
  804. mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
  805. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  806. {
  807. cout<<"数据库连接错误!
  808.  
  809. "<<endl;
  810. }
  811. else
  812. {
  813. while(1)
  814. {
  815. h=cha.cha_xun_menu();
  816. switch(h)
  817. {
  818. case 1:
  819. cha.xue_hao_cha_xun();
  820. break;
  821. case 2:
  822. cha.xing_ming_cha_xun();
  823. break;
  824. case 0:
  825. return 0;
  826. break;
  827. default:
  828. cout<<"请选择正确的菜单项进行操作。多谢合作!"<<endl;
  829. }
  830. }
  831. }
  832. return 0;
  833. }
  834.  
  835. int Student::del()//删除
  836. {
  837. system("pause");
  838. system("cls");
  839. Shan_chu shan;
  840. MYSQL mysql;
  841. int h;
  842. mysql_init(&mysql);
  843. mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
  844. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  845. {
  846. cout<<"数据库连接错误!
  847.  
  848. "<<endl;
  849. }
  850. else
  851. {
  852. while(1)
  853. {
  854. h=shan.shan_menu();
  855. switch(h)
  856. {
  857. case 1:
  858. shan.xue_hao_shan_chu();
  859. break;
  860. case 2:
  861. shan.xing_ming_shan_chu();
  862. break;
  863. case 0:
  864. return 0;
  865. break;
  866. default:
  867. cout<<"请选择正确的菜单项进行操作。多谢合作!"<<endl;
  868. }
  869. }
  870. }
  871. return 0;
  872. }
  873.  
  874. int Student::score_tong_ji()//成绩统计分析
  875. {
  876. system("pause");
  877. system("cls");
  878. Score tong_ji;
  879. MYSQL mysql;
  880. int h;
  881. mysql_init(&mysql);
  882. mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
  883. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  884. {
  885. cout<<"数据库连接错误!"<<endl;
  886. }
  887. else
  888. {
  889. while(1)
  890. {
  891. h=tong_ji.score_tong_ji_menu();
  892. switch(h)
  893. {
  894. case 1:
  895. tong_ji.cheng_ji_pai_xu();
  896. break;
  897. case 2:
  898. tong_ji.zui_gao_zui_di_fen_xin_xi();
  899. break;
  900. case 3:
  901. tong_ji.ping_jun_fen();
  902. break;
  903. case 4:
  904. tong_ji.ji_ge_lv();
  905. break;
  906. case 0:
  907. return 0;
  908. break;
  909. default:
  910. cout<<"请选择正确的菜单项进行操作。
  911.  
  912. 多谢合作!"<<endl;
  913. }
  914. }
  915. }
  916. return 0;
  917. }
  918.  
  919. void Student::input()//录入学生信息
  920. {
  921. system("pause");
  922. system("cls");
  923. Student lu_ru;
  924. char std[200];
  925. MYSQL mysql;
  926. mysql_init(&mysql);
  927. mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
  928. if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "student", 3306, NULL, 0))
  929. {
  930. cout<<"数据库连接错误!
  931.  
  932. "<<endl;
  933. }
  934. else
  935. {
  936. cout<<"请录入学生信息数据"<<endl<<endl<<"录入格式说明:输入一项按Enter键进行下一项的输入"<<endl<<endl;
  937. mysql_query(&mysql, "SET NAMES LATIN1");
  938. cout<<"学号 "<<"姓名 "<<"性别 "<<"民族 "<<"籍贯 "<<"身份证 "<<"QQ "<<"电话 "<<"成绩 "<<endl;
  939. cin>>lu_ru.id>>lu_ru.name>>lu_ru.sex>>lu_ru.min_zu>>lu_ru.ji_guan>>lu_ru.sheng_fen_zheng_hao>>lu_ru.QQ>>lu_ru.phone>>lu_ru.score;
  940. sprintf(std,"insert into xueji VALUES(%d,'%s','%s','%s','%s','%s','%s','%s',%d);"
  941. ,lu_ru.id,lu_ru.name,lu_ru.sex,lu_ru.min_zu,lu_ru.ji_guan,lu_ru.sheng_fen_zheng_hao,lu_ru.QQ,lu_ru.phone,lu_ru.score);
  942. mysql_query(&mysql,std);
  943. cout<<"加入成功"<<endl;
  944. }
  945. }
  946.  
  947. void Student::show_table()//信息表数据的显示
  948. {
  949. system("cls");
  950. MYSQL mysql;
  951. MYSQL_RES *resultset;
  952. MYSQL_ROW row;
  953. mysql_init(&mysql);
  954. mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"latin1");
  955. if(!mysql_real_connect(&mysql,"localhost","root","123456","student",3306,NULL,0))
  956. {
  957. cout<<"\n数据库连接错误发生。";
  958. }
  959. else
  960. {
  961. if(mysql_query(&mysql,"select * from xueji"))
  962. {
  963. cout<<"表格数据显示失败!";
  964. }
  965. else
  966. {
  967. cout<<"--------------------------------------显示信息----------------------------------------"<<endl;
  968. cout<<" 学号 "<<" 姓名 "<<"性别 "<<"民族 "<<"籍贯 "<<" 身份证 "<<" QQ "<<" 电话 "<<" 成绩 "<<endl;
  969. cout<<"--------------------------------------------------------------------------------------"<<endl;
  970. resultset=mysql_store_result(&mysql);
  971. if(mysql_num_rows(resultset)!=NULL)
  972. {
  973. int numFields=mysql_num_fields(resultset);//**获得表中的字段
  974. while(row=mysql_fetch_row(resultset))
  975. {
  976. int i=0;
  977. for(i=0;i<numFields;i++)
  978. {
  979. mysql_query(&mysql,"SET NAMES LATIN1");
  980. cout<<" "<<row[i]<<" ";
  981. }
  982. cout<<endl;
  983. cout<<"--------------------------------------------------------------------------------------"<<endl;
  984. }
  985. }
  986. else
  987. {
  988. cout<<"显示无果!";
  989. }
  990. }
  991. mysql_free_result(resultset);
  992. }
  993.  
  994. }
  995.  
  996. int Student::main_menu()//主菜单
  997. {
  998. system("pause");
  999. system("cls");
  1000. int s;
  1001. cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl
  1002. <<" 1: 录入学生信息 "<<endl
  1003. <<" 2: 显示学生信息 "<<endl
  1004. <<" 3: 查找学生信息 "<<endl
  1005. <<" 4: 删除学生信息 "<<endl
  1006. <<" 5: 改动学生信息 "<<endl
  1007. <<" 6: 统计学生成绩 "<<endl
  1008. <<" 0: 退出系统 "<<endl
  1009. <<" 请选择:";
  1010. cin>>s;
  1011. return s;
  1012. }
  1013.  
  1014. int Student::xiu_gai_menu()//改动菜单
  1015. {
  1016. system("pause");
  1017. system("cls");
  1018. int a;
  1019. cout<<endl<<endl<<endl<<endl<<endl
  1020. <<" 1: 改动学号 "<<endl
  1021. <<" 2: 改动姓名 "<<endl
  1022. <<" 3: 改动性别 "<<endl
  1023. <<" 4: 改动民族 "<<endl
  1024. <<" 5: 改动籍贯 "<<endl
  1025. <<" 6: 改动身份证 "<<endl
  1026. <<" 7: 改动QQ号 "<<endl
  1027. <<" 8: 改动手机号 "<<endl
  1028. <<" 9: 改动成绩 "<<endl
  1029. <<" 0: 返回上一层 "<<endl
  1030. <<" 请选择:";
  1031. cin>>a;
  1032. return a;
  1033. }
  1034.  
  1035. int Student::cha_xun_menu()//查询菜单
  1036. {
  1037. system("pause");
  1038. system("cls");
  1039. int k;
  1040. cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl
  1041. <<" 1: 按学号查找 "<<endl
  1042. <<" 2: 按姓名查找 "<<endl
  1043. <<" 0: 返回上一层 "<<endl
  1044. <<" 请选择:";
  1045. cin>>k;
  1046. return k;
  1047. }
  1048.  
  1049. int Student::shan_menu()//删除菜单
  1050. {
  1051. system("pause");
  1052. system("cls");
  1053. int g;
  1054. cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl
  1055. <<" 1: 按学号删除 "<<endl
  1056. <<" 2: 按姓名删除 "<<endl
  1057. <<" 0: 返回上一层 "<<endl
  1058. <<" 请选择:";
  1059. cin>>g;
  1060. return g;
  1061. }
  1062.  
  1063. int Student::score_tong_ji_menu()//成绩统计菜单
  1064. {
  1065. system("pause");
  1066. system("cls");
  1067. int d;
  1068. cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl
  1069. <<" 1: 对成绩进行排序 "<<endl
  1070. <<" 2: 最高和最低成绩的学生信息 "<<endl
  1071. <<" 3: 全体学生的平均分 "<<endl
  1072. <<" 4: 及格率 "<<endl
  1073. <<" 0: 返回上一层 "<<endl
  1074. <<" 请选择:";
  1075. cin>>d;
  1076. return d;
  1077. }
  1078.  
  1079. int main()
  1080. {
  1081. int n;
  1082. Student zhao;
  1083. MYSQL mysql;
  1084. mysql_init(&mysql);
  1085. if(!mysql_real_connect(&mysql,"localhost","root","123456","student",3306,NULL,0))
  1086. {
  1087. cout<<"\n数据库连接错误发生!";
  1088. }
  1089. else
  1090. {
  1091. cout<<"\n\n\n\n\n\n\n\n\n 数据库连接成功!
  1092.  
  1093. \n\n\n\n\n\n\n\n";
  1094. system("PAUSE");
  1095. system("cls");
  1096. while(1)
  1097. {
  1098. n=zhao.main_menu();
  1099. switch(n)
  1100. {
  1101. case 1:
  1102. zhao.input();
  1103. break;
  1104. case 2:
  1105. zhao.show_table();
  1106. break;
  1107. case 3:
  1108. zhao.cha_xun();
  1109. break;
  1110. case 4:
  1111. zhao.del();
  1112. break;
  1113. case 5:
  1114. zhao.xiu_gai();
  1115. break;
  1116. case 6:
  1117. zhao.score_tong_ji();
  1118. break;
  1119. case 0:
  1120. system("cls");
  1121. cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;
  1122. cout<<" ··········"<<endl;
  1123. cout<<" ***···谢谢使用···***"<<endl;
  1124. cout<<" ··········"<<endl<<endl<<endl<<endl<<endl<<endl;
  1125. exit(1);
  1126. break;
  1127. default:
  1128. cout<<"请选择正确的菜单项进行操作。多谢合作!"<<endl;
  1129. }
  1130. }
  1131. }
  1132. return 0;
  1133. }

高校学生学籍系统C++&amp;mysql的更多相关文章

  1. [C语言练习]学生学籍管理系统

    /** * @copyright 2012 Chunhui Wang * * wangchunhui@wangchunhui.cn * * 学生学籍管理系统(12.06) */ #include &l ...

  2. 高校学生征信系统Postmortem结果

    Postmortem结果 设想和目标 1 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件需要解决的问题是当前高校学生征信系统建设薄弱的问题,我们试图建立 ...

  3. 高校手机签到系统——第一部分Authority权限系统(上)

    序:今天开始写一个算是我第一个系列的文章——高校手机签到系统.本系统结合我们学校自身的一些特点编写.这是我的毕业设计项目,写在这里算是给最后论文的时候一些点滴的记录.另外也想通过这个系列的文章找到一份 ...

  4. 基于SSH框架开发的《高校大学生选课系统》的质量属性的实现

    基于SSH框架开发的<高校大学生选课系统>的质量属性的实现 对于可用性采取的是错误预防战术,即阻止错误演变为故障:在本系统主要体现在以下两个方面:(1)对于学生登录模块,由于初次登陆,学生 ...

  5. 基于SSH的高校网上选课系统的质量属性的实现

    我对于基于SSH的高校网上选课系统的质量属性的实现是从可用性.性能.安全性.可维护性.易用性五个方面进行的实现. 可用性方面: 实现方式:(1)当系统试图超出限制范围来进行课程查询或选课时必须进行错误 ...

  6. 【C语言期末实训】学生学籍管理系统

    目录: 一,设计要求 ,总体要求: ,具体功能: 二,设计框架 三,程序代码 ,声明函数和头文件 ,声明结构体 ,声明全局变量 ,主体启动函数 ,主菜单函数 ,创建学生档案函数 ,编辑学生档案函数 , ...

  7. 学生选课系统v1.0

    最近两天写了下老师课上留的作业:学生选课系统.感觉自己写的特别麻烦,思路特别不清晰,平常自己总会偷懒,一些太麻烦细节的功能就不去实现了,用简单的功能来替代,直到自己这回写完这个系统(但自己写的比较lo ...

  8. “石家庄铁道大学软件工程系学生学籍管理系统2019版”java小程序制作分享

    首先附上完整代码: import java.util.Scanner; public class SocreInformation { public SocreInformation(){}; pub ...

  9. Java 石家庄铁道大学软件工程系 学生学籍管理系统 2019 版

    本系统的作用是简单实现一些学生成绩管理操作:录入,修改,绩点计算,以及系统退出等. 首先建一个主函数实现界面的实现,然后建一个数据类用来定义存放数据.之后建立一个工具类,用来实现所有要进行的操作.首先 ...

随机推荐

  1. .net web api跨域问题

    No 'Access-Control-Allow-Origin' Ajax跨域访问解决方案   No 'Access-Control-Allow-Origin' header is present o ...

  2. 文件操作:Directory,File,FielStream、StreamRead和StreamWriter的使用

    Directory文件类,File,FielStream.StreamRead和StreamWriter的使用 (转载) 创建一个新文件 Directory.CreateDirectory(@&quo ...

  3. LUA 创建文件和文件夹

    创建文件: os.execute('mkdir e:\\aa') 创建文件夹: os.execute("cd.>e:\\wang.ini")

  4. 3D旋转立方体案例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. python3爬虫:下载网易云音乐排行榜

    #!/usr/bin/python3# -*- encoding:utf-8 -*- # 网易云音乐批量下载 import requestsimport urllib # 榜单歌曲批量下载# r = ...

  6. C# 递归产生树

    //递归产生树 private void CreateTwo(TreeNode node, int id) { #region --根据指定ID查找数据到 dt string strSql = &qu ...

  7. win系统如何在桌面显示我的电脑

    如果是在Windows Server 2012本地控制台下,直接按Win(键盘上的微软徽标键)+R,输入: rundll32.exe shell32.dll,Control_RunDLL desk.c ...

  8. 企业级任务调度框架Quartz(4) 多个job实例注册到任务调度器上

    前序:     在第一个例子我看到了自定义的作业类在任务调度器上注册后,则通过任务调度器来实现启动:下面,我们将同一个作业类执行两个任务,并都将他们注册到任务调度器上!     首先一个job类指向两 ...

  9. day27-2 pandas模块

    目录 pandas Series(了解) DataFrame 内置方法 处理缺失值 合并数据 取值 把表格传入excel文件中 把表格从excel中取出来 高级(了解) pandas 处理表格等文件/ ...

  10. 死磕itchat源码--目录结构

    阅读itchat源码时,先弄清itchat的目录结构 itchat │ config.py │ content.py │ core.py │ log.py │ returnvalues.py │ ut ...