C++编写 学生成绩管理系统.docx
- 文档编号:8996197
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:23
- 大小:20.46KB
C++编写 学生成绩管理系统.docx
《C++编写 学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《C++编写 学生成绩管理系统.docx(23页珍藏版)》请在冰豆网上搜索。
C++编写学生成绩管理系统
1.# 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. Studentmassage Grade; 309. cout<<"按任意键开始……"; 310. getch(); 311. while(! quit) 312. { 313. system("cls"); 314. Grade.ShowMenu(); 315. cin>>x; 316. switch(x) 317. { 318. case 0: quit=true;break; 319. case 1: Grade.AddItem();break; 320. case 2: Grade.Display();break; 321. case 3: Grade.Sort();break; 322. case 4: Grade.Find();break; 323. case 5: Grade.RemoveItem();break; 324. case 6: Grade.ModifyItem();break; 325. } 326. } 327. return 0; 328.} #include #include #include #include usingnamespacestd; //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ classStudent { public: charname[20]; charId[20]; intCnum;//C++课程得分 intMnum;//汇编课程得分 intEnum;//嵌入式操作系统课程得分 intsum;//总分 Student*Next; voidInput() { cout<<"\t\t请输入学生的姓名: ";cin>>name; cout<<"\t\t请输入学生的学号: ";cin>>Id; cout<<"\t\t请输入C++课程的成绩: ";cin>>Cnum; cout<<"\t\t请输入汇编课程的成绩: ";cin>>Mnum; cout<<"\t\t请输入嵌入式操作系统课程的成绩: ";cin>>Enum; sum=Cnum+Mnum+Enum; } voidReadFile(istream&in) { in>>name>>Id>>Cnum>>Mnum>>Enum>>sum; } voidShow() { cout<<"姓名: "< "< "< <<"汇编: "< "< "< } }; //﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ classStudentmassage { public: Studentmassage(); ~Studentmassage(); voidShowMenu(); voidFind(); voidSave(); voidModifyItem(); voidRemoveItem(); voidSwap(Student*,Student*); voidSort(); //voidUnpass(); intListCount(); //voidAverage(); voidDisplay() { for(Student*p=Head->Next;p! =End;p=p->Next) p->Show(); cout<<"输入任意字符! 继续……";
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+编写 学生成绩管理系统 C+ 编写 学生 成绩管理系统
![提示](https://static.bdocx.com/images/bang_tan.gif)