C++编写 学生成绩管理系统.docx_第1页
C++编写 学生成绩管理系统.docx_第2页
C++编写 学生成绩管理系统.docx_第3页
C++编写 学生成绩管理系统.docx_第4页
C++编写 学生成绩管理系统.docx_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1. #include2. #include 3. #include 4. #include/用getch(); 5. usingnamespacestd;6. 7. /Student类 8. classStudent9. 10. public:11. charname20;12. charId20;13. intCnum;/C+课程得分 14. intMnum;/汇编课程得分 15. intEnum;/嵌入式操作系统课程得分 16. intsum;/总分 17. Student*Next;18. voidInput()19. 20. coutname;21. coutId;22. coutCnum;23. coutMnum;24. coutEnum;25. sum=Cnum+Mnum+Enum;26. 27. voidReadFile(istream&in)28. 29. innameIdCnumMnumEnumsum;30. 31. voidShow()32. 33. cout姓名:nameendl学号:IdendlC+:Cnumendl34. 汇编:Mnumendl嵌入式操作系统:Enumendl总成绩:sumendlendlNext;p!=End;p=p-Next)57. p-Show();58. coutInput();64. End-Next=newStudent;65. End=End-Next;66. cout添加成功!endl;67. coutNext!=End;p=p-Next)/匹配成功则返回上一个指针,不成功就返回空 77. if(!strcmp(p-Next-name,name)returnp;78. returnNULL;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)returnp;84. returnNULL;85. 86. ;87. 88. /构造函数 89. Studentmassage:Studentmassage()90. 91. Head=newStudent;92. Head-Next=newStudent;93. End=Head-Next;94. in.open(sort.txt);95. if(!in)96. cout这是一个新系统,无学生信息。请先输入。ReadFile(in);102. if(End-name0=0)break;103. End-Next=newStudent;104. End=End-Next;105. 106. in.close();107. couttt读取学生信息成功!Next!=End;)116. 117. temp=Head-Next;118. Head-Next=Head-Next-Next;119. deletetemp;120. 121. deleteHead,End;122. 123. 124. /菜单 125. voidStudentmassage:ShowMenu()126. 127. cout*endl;128. cout学生成绩管理系统endl;129. coutendl;130. cout1.增加学生成绩endl;131. cout2.显示学生成绩endl;132. cout3.排序统计成绩endl;133. cout4.查找学生成绩endl;134. cout5.删除学生成绩endl;135. cout6.修改学生信息endl;136. cout0.安全退出系统endl;137. 138. coutnttntt请选择:;139. 140. 141. /查找函数 142. voidStudentmassage:Find()143. 144. charname20,Id10;145. intx;146. Student*p=NULL;147. coutntt*n;148. couttt1.按学生的姓名查找ntt2.按学生学号查找;149. coutx;151. switch(x)152. 153. case1:coutname;154. if(p=FindItem(name)155. 156. p-Next-Show();157. cout输入任意字符!继续;158. getch();159. 160. else161. 162. couttt没有找到该姓名的学生!nendl;163. cout输入任意字符!继续;164. getch();165. 166. break;167. case2:168. 169. coutId;170. if(p=FindID(Id)171. 172. p-Next-Show();173. cout输入任意字符!继续;174. getch();175. 176. else177. 178. couttt没有找到该学好的学生!nendl;179. cout输入任意字符!继续;180. getch();181. 182. break;183. 184. 185. 186. 187. /修改信息 188. voidStudentmassage:ModifyItem()/修改信息 189. 190. charname20;191. Student*p=NULL;192. coutname;193. if(p=FindItem(name)194. 195. couttt已找到学生的信息,请输入新的信息!Next-Input();197. cout修改成功!endl;198. cout输入任意字符!继续;199. getch();200. 201. else202. 203. couttt没有找到!endl;204. cout输入任意字符!继续;205. getch();206. 207. 208. 209. /删除信息 210. voidStudentmassage:RemoveItem()/删除信息 211. 212. charname20;213. Student*p=NULL,*temp=NULL;214. couttt请输入要删除的学生的姓名:name;215. if(p=FindItem(name)216. 217. temp=p-Next;218. p-Next=p-Next-Next;219. deletetemp;220. couttt删除成功!endl;221. cout输入任意字符!继续;222. getch();223. 224. else225. 226. couttt没有找到!endl;227. coutname,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. intStudentmassage:ListCount()/统计当前链表的记录总数,返回一个整数 260. 261. if(!Head)262. return0;263. intn=0;264. for(Student*p=Head-Next;p!=End;p=p-Next)265. 266. n+;267. 268. returnn;269. 270. 271. / 272. voidStudentmassage:Sort()/对当前链表进行排序 273. 274. coutSorting.endl;275. Student*p=NULL,*p1=NULL,*k=NULL;276. intn=Studentmassage:ListCount();277. if(nNext;p!=End;p=p-Next)280. for(k=p-Next;k!=End;k=k-Next)281. 282. if(p-sumk-sum)283. 284. Studentmassage:Swap(p,k);285. 286. 287. cout排序完成!Next;p!=End;p=p-Next)297. outnametIdtCnumt298. MnumtEnumtsumn;299. out.close();300. 301. 302. /主函数 303. intmain()304. 305. intx,i=0;306. boolquit=false;307. couttt【欢迎进入学生成绩管理系统】endl;308. StudentmassageGrade;309. coutx;316. switch(x)317. 318. case0:quit=true;break;319. case1:Grade.AddItem();break;320. case2:Grade.Display();break;321. case3:Grade.Sort();break;322. case4:Grade.Find();break;323. case5:Grade.RemoveItem();break;324. case6:Grade.ModifyItem();break;325. 326. 327. return0;328. # include # include # include #include /用getch();using namespace std;/Student类class Studentpublic: char name20; char Id20; int Cnum; /C+课程得分 int Mnum; /汇编课程得分 int Enum; /嵌入式操作系统课程得分 int sum; /总分 Student * Next; void Input() coutname; coutId; coutCnum; coutMnum; coutEnum; sum=Cnum+Mnum+Enum; void ReadFile(istream & in) innameIdCnumMnumEnumsum; void Show() cout姓名:nameendl学号:IdendlC+:Cnumendl 汇编:Mnumendl嵌入式操作系统:Enumendl总成绩:sumendlendlNext;p!=End;p=p-Next) p-Show(); coutInput(); End-Next=new Student; End=End-Next; cout添加成功!endl; coutNext!=End;p=p-Next)/匹配成功则返回上一个指针,不成功就返回空 if(!strcmp(p-Next-name,name)return p; return NULL; Student *FindID(char * Id) for(Student * p=Head;p-Next!=End;p=p-Next)/匹配成功则返回上一个指针,不成功就返回空 if(!strcmp(p-Next-Id,Id)return p; return NULL; ;/构造函数Studentmassage:Studentmassage() Head=new Student; Head-Next=new Student; End=Head-Next; in.open(sort.txt); if(!in) cout这是一个新系统,无学生信息。请先输入。ReadFile(in); if(End-name0=0)break; End-Next=new Student; End=End-Next; in.close(); couttt读取学生信息成功!Next!=End;) temp=Head-Next; Head-Next=Head-Next-Next; delete temp; delete Head,End;/菜单void Studentmassage:ShowMenu() cout*endl; cout 学 生 成 绩 管 理 系 统 endl; cout endl; cout 1.增加学生成绩 endl; cout 2.显示学生成绩 endl; cout 3.排序统计成绩 endl; cout 4.查找学生成绩 endl; cout 5.删除学生成绩 endl; cout 6.修改学生信息 endl; cout 0.安全退出系统 endl; coutnttntt请选择:;/查找函数void Studentmassage:Find() char name20 ,Id10; int x; Student * p=NULL; coutntt*n; couttt 1.按学生的姓名查找ntt 2.按学生学号查找; coutx; switch(x) case 1:coutname; if(p=FindItem(name) p-Next-Show(); cout输入任意字符!继续; getch(); else couttt没有找到该姓名的学生!nendl; cout输入任意字符!继续; getch(); break; case 2: coutId; if(p=FindID(Id) p-Next-Show(); cout输入任意字符!继续; getch(); else couttt没有找到该学好的学生!nendl; cout输入任意字符!继续; getch(); break; /修改信息void Studentmassage:ModifyItem() /修改信息 char name20; Student * p=NULL; coutname; if(p=FindItem(name) couttt已找到学生的信息,请输入新的信息!Next-Input(); cout修改成功!endl; cout输入任意字符!继续; getch(); else couttt没有找到!endl; cout输入任意字符!继续; getch(); /删除信息void Studentmassage:RemoveItem() / 删除信息 char name20; Student * p=NULL,*temp=NULL; couttt请输入要删除的学生的姓名:name; if(p=FindItem(name) temp=p-Next; p-Next=p-Next-Next; delete temp; couttt删除成功!endl; cout输入任意字符!继续; getch(); else couttt没有找到!endl; coutname,p1-name); strcpy(temp-Id,p1-Id); temp-Cnum=p1-Cnum; temp-Mnum=p1-Mnum; temp-Enum=p1-Enum; temp-sum=p1-sum; strcpy(p1-name,p2-name); strcpy(p1-Id,p2-Id); p1-Cnum=p2-Cnum; p1-Mnum=p2-Mnum; p1-Enum=p2-Enum; p1-sum=p2-sum; strcpy(p2-name,temp-name); strcpy(p2-Id,temp-Id); p2-Cnum=temp-Cnum; p2-Mnum=temp-Mnum; p2-Enum=temp-Enum; p2-sum=temp-sum;/int Studentmassage:ListCount()/统计当前链表的记录总数,返回一个整数 if(! Head) return 0; int n=0; for(Stu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论