学生成绩管理系统C++代码讲课教案.docx
- 文档编号:24222196
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:16
- 大小:60.04KB
学生成绩管理系统C++代码讲课教案.docx
《学生成绩管理系统C++代码讲课教案.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统C++代码讲课教案.docx(16页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统C++代码讲课教案
学生成绩管理系统C++
用C++编写一个学生成绩管理系统
1、可以实现以下功能:
cout<<"〓〓〓〓〓〓〓〓〓★☆1.增加学生成绩☆★〓〓〓〓〓〓〓〓〓"< cout<<"〓〓〓〓〓〓〓〓〓★☆2.显示学生成绩☆★〓〓〓〓〓〓〓〓〓"< cout<<"〓〓〓〓〓〓〓〓〓★☆3.排序统计成绩☆★〓〓〓〓〓〓〓〓〓"< cout<<"〓〓〓〓〓〓〓〓〓★☆4.查找学生成绩☆★〓〓〓〓〓〓〓〓〓"< cout<<"〓〓〓〓〓〓〓〓〓★☆5.删除学生成绩☆★〓〓〓〓〓〓〓〓〓"< cout<<"〓〓〓〓〓〓〓〓〓★☆6.修改学生信息☆★〓〓〓〓〓〓〓〓〓"< cout<<"〓〓〓〓〓〓〓〓〓★☆0.安全退出系统☆★〓〓〓〓〓〓〓〓〓"< 2、用链表存储信息 *程序头部的注释结束 */ [cpp]viewplaincopyprint? 1. 16px"># include 2.# include 3.# include 4.#include 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<<"姓名: "< "< "< 34. <<"汇编: "< "< "< 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<<"添加成功! "< 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读取学生信息成功! "< 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<<"〓〓〓〓〓〓〓★★★★★ ★★★★★★★ ★★★★★〓〓〓〓〓〓〓"< 130. cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 1.增加学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"< 131. cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 2.显示学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"< 132. cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 3.排序统计成绩 ☆ ★〓〓〓〓〓〓〓〓〓"< 133. cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 4.查找学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"< 134. cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 5.删除学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"< 135. cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 6.修改学生信息 ☆ ★〓〓〓〓〓〓〓〓〓"< 136. cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 0.安全退出系统 ☆ ★〓〓〓〓〓〓〓〓〓"< 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'< 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'< 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已找到学生的信息,请输入新的信息! "< 196. p->Next->Input(); 197. cout<<"修改成功! "< 198. cout<<"输入任意字符! 继续……"; 199. getch(); 200. } 201. else 202. { 203. cout<<"\t\t没有找到! "< 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请输入要删除的学生的姓名: "< 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没有找到! "< 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..."< 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< 298. < 299. out.close(); 300.} 301. 302.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ 303.int main() 304.{ 305. int x,i=0; 306. bool quit=false; 307. cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§"< 308. for(i=0;i<3;i++) 309. cout<<"\t\t◎\t\t\t\t\t\t ◎"< 310. cout<<"\t\t◎★★★★【 欢迎进入学生成绩管理系统 】★★★★◎"< 311. for(i=0;i<3;i++) 312. 313.Beadwrks公司还组织各国的“芝自制饰品店”定期进行作品交流,体现东方女性聪慧的作品曾在其他国家大受欢迎;同样,自各国作品也曾无数次启发过中国姑娘们的灵感,这里更是创作的源泉。 cout<<"\t\t◎\t\t\t\t\t\t ◎"< 314. cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n"< 315. 316.1、DIY手工艺市场状况分析 Studentmassage Grade; 317. cout<<"按任意键开始……"; 318. getch(); 319. 320.(4)牌子响 while(! quit) 321. { 322. system("cls"); 323. Grade.ShowMenu(); 324. 325.图1-4大学生购买手工艺制品目的 cin>>x; 326. 327.据介绍,经常光顾“碧芝”的都是些希望得到世界上“独一无二”饰品的年轻人,他们在琳琅满目的货架上挑选,然后亲手串连,他们就是偏爱这种DIY的方式,完全自助。 switch(x) 328. { 329. 330.8、你是如何得志DIY手工艺制品的? case 0: quit=true;break; 331. case 1: Grade.AddItem();break; 332. case 2: Grade.Display();break; 333. case 3: Grade.Sort();break; 334. 335. (一)上海的经济环境对饰品消费的影响 case 4: Gr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 C+ 代码 讲课 教案