学生成绩管理系统C++代码呕心沥血整理版.docx
- 文档编号:5678119
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:13
- 大小:60.37KB
学生成绩管理系统C++代码呕心沥血整理版.docx
《学生成绩管理系统C++代码呕心沥血整理版.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统C++代码呕心沥血整理版.docx(13页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统C++代码呕心沥血整理版
学生成绩管理系统C++
用C++编写一个学生成绩管理系统
1、可以实现以下功能:
cout〈<"〓〓〓〓〓〓〓〓〓★☆1。
增加学生成绩☆★〓〓〓〓〓〓〓〓〓"<〈endl;
cout<〈”〓〓〓〓〓〓〓〓〓★☆2。
显示学生成绩☆★〓〓〓〓〓〓〓〓〓”<〈endl;
cout〈<"〓〓〓〓〓〓〓〓〓★☆3.排序统计成绩☆★〓〓〓〓〓〓〓〓〓"< cout〈<"〓〓〓〓〓〓〓〓〓★☆4.查找学生成绩☆★〓〓〓〓〓〓〓〓〓”〈〈endl; cout<<”〓〓〓〓〓〓〓〓〓★☆5.删除学生成绩☆★〓〓〓〓〓〓〓〓〓”<〈endl; cout<〈"〓〓〓〓〓〓〓〓〓★☆6.修改学生信息☆★〓〓〓〓〓〓〓〓〓”〈 cout<<”〓〓〓〓〓〓〓〓〓★☆0.安全退出系统☆★〓〓〓〓〓〓〓〓〓”〈〈endl; 2、用链表存储信息 *程序头部的注释结束 */ [cpp]viewplaincopyprint? 1.〈SPAN style=”FONT-SIZE: 16px”># include 〈iostream〉 2.# include 〈fstream〉 3.# include h〉 4.#include 〈conio.h〉//用getch(); 5.using namespace std; 6. 7.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 8.class Student 9.{ 10.public: 11. char name[20]; 12. char Id[20]; 13. int Cnum; //C++课程得分 14. int Mnum; //汇编课程得分 15. int Enum; //嵌入式操作系统课程得分 16. int sum; //总分 17. Student * Next; 18. void Input() 19. { 20. cout〈<”\t\t请输入学生的姓名: "; cin〉>name; 21. cout〈〈"\t\t请输入学生的学号: ”; cin〉>Id; 22. cout〈<”\t\t请输入C++课程的成绩: ”; cin>>Cnum; 23. cout〈〈"\t\t请输入汇编课程的成绩: ”; cin〉>Mnum; 24. cout〈<”\t\t请输入嵌入式操作系统课程的成绩: "; cin>〉Enum; 25. sum=Cnum+Mnum+Enum; 26. } 27. void ReadFile(istream & in) 28. { 29. in〉〉name〉〉Id〉〉Cnum>>Mnum〉>Enum>>sum; 30. } 31. void Show() 32. { 33. cout〈〈"姓名: ”〈 "〈〈Id< ”〈 34. 〈〈”汇编: "<〈Mnum〈〈endl<<"嵌入式操作系统: ”<〈Enum<〈endl〈〈”总成绩: ”〈〈sum〈 35. } 36.}; 37. 38.//﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 39.class Studentmassage 40.{ 41.public: 42. Studentmassage(); 43. ~Studentmassage(); 44. void ShowMenu(); 45. void Find(); 46. void Save(); 47. void ModifyItem(); 48. void RemoveItem(); 49. void Swap(Student *,Student *); 50. void Sort(); 51. //void Unpass(); 52. int ListCount(); 53. //void Average(); 54. void Display() 55. { 56. for(Student * p=Head—〉Next;p! =End;p=p—>Next) 57. p—>Show(); 58. cout〈〈"输入任意字符! 继续……"; 59. getch(); 60. } 61. void AddItem() 62. { 63. End—〉Input(); 64. End—>Next=new Student; 65. End=End—>Next; 66. cout〈<”添加成功! ”〈〈endl; 67. cout<〈”输入任意字符! 继续……”; 68. getch(); 69. } 70.private: 71. Student * Head,* End; 72. ifstream in; 73. ofstream out; 74. Student *FindItem(char * name) 75. { 76. for(Student * p=Head;p—〉Next! =End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空 77. if(! strcmp(p—>Next—>name,name))return p; 78. return NULL; 79. } 80. Student *FindID(char * Id) 81. { 82. for(Student * p=Head;p—>Next! =End;p=p-〉Next)//匹配成功则返回上一个指针,不成功就返回空 83. if(! strcmp(p—〉Next—>Id,Id))return p; 84. return NULL; 85. } 86.}; 87. 88.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 89.Studentmassage: : Studentmassage() 90.{ 91. Head=new Student; 92. Head—〉Next=new Student; 93. End=Head-〉Next; 94. in。 open("sort。 txt"); 95. if(! in) 96. cout〈〈”这是一个新系统,无学生信息。 请先输入。 ”〈 97. else 98. { 99. while(! in.eof()) 100. { 101. End—〉ReadFile(in); 102. if(End—>name[0]==’\0')break; 103. End-〉Next=new Student; 104. End=End-〉Next; 105. } 106. in.close(); 107. cout〈〈”\t\t读取学生信息成功! "〈〈endl; 108. } 109.} 110. 111.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 112.Studentmassage: : ~Studentmassage() 113.{ 114. Save(); 115. for(Student * temp;Head-〉Next! =End;) 116. { 117. temp=Head—〉Next; 118. Head-〉Next=Head->Next—>Next; 119. delete temp; 120. } 121. delete Head,End; 122.} 123. 124.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 125.void Studentmassage: : ShowMenu() 126.{ 127. cout〈〈"********************************************************************************”〈 128. cout〈〈"〓〓〓〓〓〓〓〓〓〓 ☆ 学 生 成 绩 管 理 系 统 ☆ 〓〓〓〓〓〓〓〓〓〓"〈 129. cout〈〈”〓〓〓〓〓〓〓★★★★★ ★★★★★★★ ★★★★★〓〓〓〓〓〓〓"<〈endl; 130. cout〈〈”〓〓〓〓〓〓〓〓〓★ ☆ 1。 增加学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓”<〈endl; 131. cout<〈”〓〓〓〓〓〓〓〓〓★ ☆ 2.显示学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"〈〈endl; 132. cout〈<”〓〓〓〓〓〓〓〓〓★ ☆ 3。 排序统计成绩 ☆ ★〓〓〓〓〓〓〓〓〓”〈〈endl; 133. cout〈〈”〓〓〓〓〓〓〓〓〓★ ☆ 4。 查找学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓”〈〈endl; 134. cout〈〈"〓〓〓〓〓〓〓〓〓★ ☆ 5。 删除学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓”< 135. cout〈〈”〓〓〓〓〓〓〓〓〓★ ☆ 6.修改学生信息 ☆ ★〓〓〓〓〓〓〓〓〓"〈〈endl; 136. cout〈〈"〓〓〓〓〓〓〓〓〓★ ☆ 0。 安全退出系统 ☆ ★〓〓〓〓〓〓〓〓〓”〈〈endl; 137. 138. cout<<”\n\t\t\n\t\t请选择: ”; 139.} 140. 141.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 142.void Studentmassage: : Find() 143.{ 144. char name[20] ,Id[10]; 145. int x; 146. Student * p=NULL; 147. cout〈<"\n\t\t*********************************\n"; 148. cout〈〈”\t\t※ 1。 按学生的姓名查找\n\t\t※ 2.按学生学号查找”; 149. cout〈<”\n\t\t*********************************\n请选择: ”; 150. cin〉>x; 151. switch(x) 152. { 153. case 1: {cout〈<”\t\t请输入要查找的学生的姓名: ”;cin〉〉name; 154. if(p=FindItem(name)) 155. { 156. p—>Next—〉Show(); 157. cout<<”输入任意字符! 继续……”; 158. getch(); 159. } 160. else 161. { 162. cout〈〈"\t\t没有找到该姓名的学生! "〈〈'\n’〈〈endl; 163. cout<〈"输入任意字符! 继续……"; 164. getch(); 165. } 166. }break; 167. case 2: 168. { 169. cout〈〈”\t\t请输入要查找的学生的学号: ”;cin〉〉Id; 170. if(p=FindID(Id)) 171. { 172. p->Next—〉Show(); 173. cout〈〈"输入任意字符! 继续……"; 174. getch(); 175. } 176. else 177. { 178. cout<〈"\t\t没有找到该学好的学生! "〈<’\n'〈〈endl; 179. cout<〈"输入任意字符! 继续……"; 180. getch(); 181. } 182. }break; 183. } 184. 185.} 186. 187.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 188.void Studentmassage: : ModifyItem() //修改信息 189.{ 190. char name[20]; 191. Student * p=NULL; 192. cout〈〈”\t\t请输入要修改的人的姓名: ";cin〉>name; 193. if(p=FindItem(name)) 194. { 195. cout〈〈"\t\t已找到学生的信息,请输入新的信息! "〈〈endl; 196. p—〉Next—〉Input(); 197. cout<〈"修改成功! "〈 198. cout〈〈”输入任意字符! 继续……"; 199. getch(); 200. } 201. else 202. { 203. cout〈〈”\t\t没有找到! "<〈endl; 204. cout<<”输入任意字符! 继续……”; 205. getch(); 206. } 207.} 208. 209.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 210.void Studentmassage: : RemoveItem() // 删除信息 211.{ 212. char name[20]; 213. Student * p=NULL,*temp=NULL; 214. cout<〈"\t\t请输入要删除的学生的姓名: "〈〈endl;cin〉〉name; 215. if(p=FindItem(name)) 216. { 217. temp=p—>Next; 218. p—〉Next=p-〉Next—>Next; 219. delete temp; 220. cout<<”\t\t删除成功! "< 221. cout〈〈”输入任意字符! 继续……"; 222. getch(); 223. } 224. else 225. { 226. cout〈〈"\t\t没有找到! ”<〈endl; 227. cout〈〈"输入任意字符! 继续……"; 228. getch(); 229. } 230.} 231. 232.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 233.void Studentmassage: : Swap(Student *p1, Student *p2)//交换两个combox变量的数据域 234.{ 235. Student *temp=new Student; 236. strcpy(temp—〉name,p1—>name); 237. strcpy(temp->Id,p1—〉Id); 238. temp-〉Cnum=p1—〉Cnum; 239. temp—〉Mnum=p1—〉Mnum; 240. temp—〉Enum=p1—〉Enum; 241. temp->sum=p1—〉sum; 242. 243. strcpy(p1—>name,p2—〉name); 244. strcpy(p1->Id,p2—〉Id); 245. p1->Cnum=p2—〉Cnum; 246. p1—>Mnum=p2—〉Mnum; 247. p1-〉Enum=p2—>Enum; 248. p1—>sum=p2—>sum; 249. 250. strcpy(p2->name,temp->name); 251. strcpy(p2—〉Id,temp->Id); 252. p2—>Cnum=temp—>Cnum; 253. p2-〉Mnum=temp—>Mnum; 254. p2—〉Enum=temp-〉Enum; 255. p2->sum=temp->sum; 256.} 257. 258.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 259.int Studentmassage: : ListCount()//统计当前链表的记录总数,返回一个整数 260.{ 261. if(! Head) 262. return 0; 263. int n=0; 264. for(Student * p=Head—〉Next;p! =End;p=p—>Next) 265. { 266. n++; 267. } 268. return n; 269.} 270. 271.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 272.void Studentmassage: : Sort()//对当前链表进行排序 273.{ 274. cout <〈”Sorting.。 .”<〈endl; 275. Student *p=NULL,*p1=NULL,*k=NULL; 276. int n=Studentmassage: : ListCount(); 277. if(n<2) 278. return; 279. for(p=Head—〉Next;p! =End;p=p-〉Next) 280. for(k=p—>Next;k! =End;k=k—>Next) 281. { 282. if(p-〉sum〉k->sum) 283. { 284. Studentmassage: : Swap(p,k); 285. } 286. } 287. cout 〈〈”排序完成! "〈 288. getch(); 289. return; 290.} 291. 292.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 293.void Studentmassage: : Save() 294.{ 295. out.open("sort.txt"); 296. for(Student *p=Head—〉Next;p! =End;p=p-〉Next) 297. out< Id〈〈”\t"〈〈p-〉Cnum〈<”\t” 298. < sum<〈’\n'; 299. out。 close(); 300.} 301. 302.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 303.int main() 304.{ 305. int x,i=0; 306. bool quit=false; 307. cout〈〈”\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§”〈〈endl; 308. for(i=0;i<3;i++) 309. cout〈〈"\t\t◎\t\t\t\t\t\t ◎”〈〈endl; 310. cout<〈”\t\t◎★★★★【 欢迎进入学生成绩管理系统 】★★★★◎"〈〈endl; 311. for(i=0;i<3;i++) 312. cout<〈"\t\t◎\t\t\t\t\t\t ◎"〈〈endl; 313. cout<<”\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n"〈〈endl;; 314. Studentmassage Grade; 315. cout〈〈”按任意键开始……"; 316. getch(); 317. while(! quit) 318. { 319. system(”cls”); 320. Grade.ShowMenu(); 321. cin〉>x; 322. switch(x) 323. { 324. case 0: quit=true;break; 325. case 1: Grade。 AddItem();break; 326. case 2: Grade.Display();break; 327. case 3: Grade。 Sort();break; 328. case 4: Grade.Find();break; 329. case 5: Grade。 RemoveItem();break; 330. case 6: Grade。 ModifyItem();break; 331. } 332. } 333. return 0; 334.}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 C+ 代码 呕心沥血 整理