




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上 学生成绩管理系统 C+用C+编写一个学生成绩管理系统1、可以实现以下功能:cout<<" 1.增加学生成绩 "<<endl;cout<<" 2.显示学生成绩 "<<endl;cout<<" 3.排序统计成绩 "<<endl;cout<<" 4.查找学生成绩 "<<endl;cout<<" 5.删除学生成绩 "<<endl;cout<<&q
2、uot; 6.修改学生信息 "<<endl;cout<<" 0.安全退出系统 "<<endl;2、用链表存储信息* 程序头部的注释结束*/cpp 1. <SPAN style="FONT-SIZE: 16px"># include <iostream> 2. # include <fstream> 3. # include <string.h&
3、gt; 4. #include <conio.h>/用getch(); 5. using namespace std; 6. 7. /Student类 8. class Student 9. 10. public: 11. char name20; 12. char Id20;
4、60;13. int Cnum; /C+课程得分 14. int Mnum; /汇编课程得分 15. int Enum; /嵌入式操作系统课程得分 16. int sum;
5、; /总分 17. Student * Next; 18. void Input() 19. 20. cout<<"tt请输入学生的姓名:" cin>>name; 21. co
6、ut<<"tt请输入学生的学号:" cin>>Id; 22. cout<<"tt请输入C+课程的成绩:" cin>>Cnum; 23. cout<<"tt请输入汇编课程的成绩:" cin>>Mnum; 24. cout<<"tt请输入嵌入式操
7、作系统课程的成绩:" cin>>Enum; 25. sum=Cnum+Mnum+Enum; 26. 27. void ReadFile(istream & in) 28. 29. in>>name>>Id>>Cnum>>Mnum>>Enum>>su
8、m; 30. 31. void Show() 32. 33. cout<<"姓名:"<<name<<endl<<"学号:"<<Id<<endl<<"C+:"<<Cnum<<endl 34. <<&qu
9、ot;汇编:"<<Mnum<<endl<<"嵌入式操作系统:"<<Enum<<endl<<"总成绩:"<<sum<<endl<<endl<<endl; 35. 36. ; 37. 38. /Studentmassage类 39. class Studentmassage
10、;40. 41. public: 42. Studentmassage(); 43. Studentmassage(); 44. void ShowMenu(); 45. void Find(); 46. void Save(); 47. void ModifyItem(); 48. void
11、160;RemoveItem(); 49. void Swap(Student *,Student *); 50. void Sort(); 51. /void Unpass(); 52. int ListCount(); 53. /void Average(); 54. void Display()
12、; 55. 56. for(Student * p=Head->Next;p!=End;p=p->Next) 57. p->Show(); 58. cout<<"输入任意字符!继续" 59. getch(); 60. 61. void
13、60;AddItem() 62. 63. End->Input(); 64. End->Next=new Student; 65. End=End->Next; 66. cout<<"添加成功!"<<endl; 67. cout<<"输入任
14、意字符!继续" 68. getch(); 69. 70. private: 71. Student * Head,* End; 72. ifstream in; 73. ofstream out; 74. Student *FindItem(char * name)
15、160; 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. 8
16、0. 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. retu
17、rn NULL; 85. 86. ; 87. 88. /构造函数 89. Studentmassage:Studentmassage() 90. 91. Head=new Student; 92. Head->Next=new Student; 93. End=Head->Next;
18、0;94. in.open("sort.txt"); 95. if(!in) 96. cout<<"这是一个新系统,无学生信息。请先输入。"<<endl; 97. else 98. 99. while(!in.eof() 100. 101.
19、160; End->ReadFile(in); 102. if(End->name0='0')break; 103. End->Next=new Student; 104. End=End->Next; 105. 106. in.close(); 1
20、07. cout<<"tt读取学生信息成功!"<<endl; 108. 109. 110. 111. /析构函数 112. Studentmassage:Studentmassage() 113. 114. Save(); 115. for(Student * temp;Head->
21、Next!=End;) 116. 117. temp=Head->Next; 118. Head->Next=Head->Next->Next; 119. delete temp; 120. 121. delete Head,End; 122. 123.
22、; 124. /菜单 125. void Studentmassage:ShowMenu() 126. 127. cout<<"*"<<endl; 128. cout<<
23、;" 学 生 成 绩 管 理 系 统 "<<endl; 129. cout<<"
24、60; "<<endl; 130. cout<<" 1.增加学生成绩 "<<endl; 131. cout<<" &
25、#160; 2.显示学生成绩 "<<endl; 132. cout<<" 3.排序统计成绩
26、60; "<<endl; 133. cout<<" 4.查找学生成绩 "<<endl; 134. cout<<"&
27、#160; 5.删除学生成绩 "<<endl; 135. cout<<" 6.修改学生信息
28、60; "<<endl; 136. cout<<" 0.安全退出系统 "<<endl; 137. &
29、#160;138. cout<<"nttntt请选择:" 139. 140. 141. /查找函数 142. void Studentmassage:Find() 143. 144. char name20 ,Id10; 145. int x; 146. Student *
30、p=NULL; 147. cout<<"ntt*n" 148. cout<<"tt 1.按学生的姓名查找ntt 2.按学生学号查找" 149. cout<<"ntt*n请选择:" 150. cin>>x; 151. switch(x) 152.
31、;153. case 1:cout<<"tt请输入要查找的学生的姓名:"cin>>name; 154. if(p=FindItem(name) 155. 156. p->Next->Show(); 157. cout<<"输入任意字符!继续" 158.
32、160; getch(); 159. 160. else 161. 162. cout<<"tt没有找到该姓名的学生!"<<'n'<<endl; 163. cout<<"输入任意字符!继续" 1
33、64. getch(); 165. 166. break; 167. case 2: 168. 169. cout<<"tt请输入要查找的学生的学号:"cin>>Id; 170. i
34、f(p=FindID(Id) 171. 172. p->Next->Show(); 173. cout<<"输入任意字符!继续" 174. getch(); 175. 176. &
35、#160;else 177. 178. cout<<"tt没有找到该学好的学生!"<<'n'<<endl; 179. cout<<"输入任意字符!继续" 180. getch(); 181.
36、 182. break; 183. 184. 185. 186. 187. /修改信息 188. void Studentmassage:ModifyItem() /修改信息 189. 190. char name20;
37、60; 191. Student * p=NULL; 192. cout<<"tt请输入要修改的人的姓名:"cin>>name; 193. if(p=FindItem(name) 194. 195. cout<<"tt已找到学生的信息,请输入新的信息!"<<endl; 196.
38、60;p->Next->Input(); 197. cout<<"修改成功!"<<endl; 198. cout<<"输入任意字符!继续" 199. getch(); 200. 201. else 202. 203. co
39、ut<<"tt没有找到!"<<endl; 204. cout<<"输入任意字符!继续" 205. getch(); 206. 207. 208. 209. /删除信息 210. void Studentmassage:RemoveItem() &
40、#160; / 删除信息 211. 212. char name20; 213. Student * p=NULL,*temp=NULL; 214. cout<<"tt请输入要删除的学生的姓名:"<<endl;cin>>name; 215. if(p=FindItem(name)
41、160;216. 217. temp=p->Next; 218. p->Next=p->Next->Next; 219. delete temp; 220. cout<<"tt删除成功!"<<endl; 221. cout<<"输入任意字符!继
42、续" 222. getch(); 223. 224. else 225. 226. cout<<"tt没有找到!"<<endl; 227. cout<<"输入任意字符!继续" 228. g
43、etch(); 229. 230. 231. 232. / 233. void Studentmassage:Swap(Student *p1, Student *p2)/交换两个combox变量的数据域 234. 235. Student *temp=new Student; 236. strcpy(
44、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.
45、60; 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;
46、;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->s
47、um=temp->sum; 256. 257. 258. / 259. int Studentmassage:ListCount()/统计当前链表的记录总数,返回一个整数 260. 261. if(! Head) 262. return 0; 263. int n=0; 264. fo
48、r(Student * p=Head->Next;p!=End;p=p->Next) 265. 266. n+; 267. 268. return n; 269. 270. 271. / 272. void Studentmassage:Sort()/对当前链表进行排序 273
49、. 274. cout <<"Sorting."<<endl; 275. Student *p=NULL,*p1=NULL,*k=NULL; 276. int n=Studentmassage:ListCount(); 277. if(n<2) 278. return; 279.
50、0;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);&
51、#160; 285. 286. 287. cout <<"排序完成!"<<endl; 288. getch(); 289. return; 290. 291. 292. /保存函数 293. void Studentmassage:Save()
52、 294. 295. out.open("sort.txt"); 296. for(Student *p=Head->Next;p!=End;p=p->Next) 297. out<<p->name<<"t"<<p->Id<<"t"<<p->Cnum<<"t"
53、; 298. <<p->Mnum<<"t"<<p->Enum<<"t"<<p->sum<<'n' 299. out.close(); 300. 301. 302. /主函数 303. int main() 304. 305. int x,i=0; 306. bool quit=fal
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏专用2025版高考地理二轮复习选择题专项练专项练十含解析
- 一年级科学下册我们周围的物体7认识一袋空气教案教科版
- 养殖建设合同范例
- 2025届高考历史专题六古代希腊罗马的政治制度精准培优专练
- 全国版2024中考英语复习方案专题07形容词和副词语法综合演练
- 关于员工安全合同范例
- 养殖入股合作合同范例
- 仓库占用合同范例
- 花岗岩干挂施工方案
- 农机机体维修合同范例
- 2022年东北大学现代控制理论试题及答案
- X射线的物理学基础-
- 财务英语英汉对照表
- 教学楼毕业设计资料
- 国网直流电源系统技术监督规定
- 脑电图学专业水平考试大纲初级
- 香港雇佣合同协议书
- 建筑工程材料见证取样及送检培训讲义(PPT)
- 单元式幕墙轨道方案
- 电解水制氢项目建议书范文
- 北师大版小学数学二年级下册课程纲要
评论
0/150
提交评论