学生成绩管理系统C++代码.docx

上传人:b****8 文档编号:9323827 上传时间:2023-02-04 格式:DOCX 页数:14 大小:18.53KB
下载 相关 举报
学生成绩管理系统C++代码.docx_第1页
第1页 / 共14页
学生成绩管理系统C++代码.docx_第2页
第2页 / 共14页
学生成绩管理系统C++代码.docx_第3页
第3页 / 共14页
学生成绩管理系统C++代码.docx_第4页
第4页 / 共14页
学生成绩管理系统C++代码.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统C++代码.docx

《学生成绩管理系统C++代码.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统C++代码.docx(14页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统C++代码.docx

学生成绩管理系统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 //用getch();  

5.using namespace std;  

6.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  

7.class Student  

8.{  

9.public:

  

10. char name[20];  

11. char Id[20];  

12. int Cnum;       //C++课程得分  

13. int Mnum;       //汇编课程得分  

14. int Enum;       //嵌入式操作系统课程得分  

15. int sum;        //总分       

16. Student * Next;  

17. void Input()  

18. {  

19.  cout<<"\t\t请输入学生的姓名:

";  cin>>name;  

20.  cout<<"\t\t请输入学生的学号:

";  cin>>Id;  

21.  cout<<"\t\t请输入C++课程的成绩:

";  cin>>Cnum;  

22.  cout<<"\t\t请输入汇编课程的成绩:

";  cin>>Mnum;  

23.  cout<<"\t\t请输入嵌入式操作系统课程的成绩:

";  cin>>Enum;  

24.  sum=Cnum+Mnum+Enum;  

25. }  

26. void ReadFile(istream & in)  

27. {  

28.  in>>name>>Id>>Cnum>>Mnum>>Enum>>sum;  

29. }  

30. void Show()  

31. {  

32.  cout<<"姓名:

"<

"<

"<

33.   <<"汇编:

"<

"<

"<

34. }  

35.};  

36.//﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  

37.class Studentmassage  

38.{  

39.public:

  

40. Studentmassage();  

41. ~Studentmassage();  

42. void ShowMenu();  

43. void Find();  

44. void Save();  

45. void ModifyItem();  

46. void RemoveItem();  

47. void Swap(Student *,Student *);  

48. void Sort();  

49. //void Unpass();  

50. int ListCount();  

51. //void Average();  

52. void Display()  

53. {  

54.  for(Student * p=Head->Next;p!

=End;p=p->Next)  

55.   p->Show();  

56.  cout<<"输入任意字符!

继续……";  

57.  getch();  

58. }  

59. void AddItem()  

60. {  

61.  End->Input();  

62.  End->Next=new Student;  

63.  End=End->Next;  

64.  cout<<"添加成功!

"<

65.  cout<<"输入任意字符!

继续……";  

66.  getch();  

67. }  

68.private:

  

69. Student * Head,* End;  

70. ifstream in;  

71. ofstream out;  

72. Student *FindItem(char * name)  

73. {  

74.  for(Student * p=Head;p->Next!

=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空  

75.   if(!

strcmp(p->Next->name,name))return p;  

76.   return NULL;  

77. }  

78. Student *FindID(char * Id)  

79. {  

80.  for(Student * p=Head;p->Next!

=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空  

81.   if(!

strcmp(p->Next->Id,Id))return p;  

82.   return NULL;  

83. }  

84.};  

85.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  

86.Studentmassage:

:

Studentmassage()  

87.{  

88. Head=new Student;  

89. Head->Next=new Student;  

90. End=Head->Next;  

91. in.open("sort.txt");  

92. if(!

in)  

93.  cout<<"这是一个新系统,无学生信息。

请先输入。

"<

94. else  

95. {  

96.  while(!

in.eof())  

97.  {  

98.   End->ReadFile(in);  

99.   if(End->name[0]=='\0')break;  

100.   End->Next=new Student;  

101.   End=End->Next;  

102.  }  

103.  in.close();  

104.  cout<<"\t\t读取学生信息成功!

"<

105. }  

106.}  

107.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  

108.Studentmassage:

:

~Studentmassage()  

109.{  

110. Save();  

111. for(Student * temp;Head->Next!

=End;)  

112. {  

113.  temp=Head->Next;  

114.  Head->Next=Head->Next->Next;  

115.  delete temp;  

116. }  

117. delete Head,End;  

118.}  

119.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  

120.void Studentmassage:

:

ShowMenu()                    

121.{  

122.  cout<<"********************************************************************************"<

123.  cout<<"〓〓〓〓〓〓〓〓〓〓  ☆   学 生 成 绩 管 理 系  统     ☆  〓〓〓〓〓〓〓〓〓〓"<

124.  cout<<"〓〓〓〓〓〓〓★★★★★         ★★★★★★★         ★★★★★〓〓〓〓〓〓〓"<

125.  cout<<"〓〓〓〓〓〓〓〓〓★  ☆          1.增加学生成绩        ☆  ★〓〓〓〓〓〓〓〓〓"<

126.  cout<<"〓〓〓〓〓〓〓〓〓★  ☆          2.显示学生成绩        ☆  ★〓〓〓〓〓〓〓〓〓"<

127.  cout<<"〓〓〓〓〓〓〓〓〓★  ☆          3.排序统计成绩        ☆  ★〓〓〓〓〓〓〓〓〓"<

128.  cout<<"〓〓〓〓〓〓〓〓〓★  ☆          4.查找学生成绩        ☆  ★〓〓〓〓〓〓〓〓〓"<

129.  cout<<"〓〓〓〓〓〓〓〓〓★  ☆          5.删除学生成绩        ☆  ★〓〓〓〓〓〓〓〓〓"<

130.  cout<<"〓〓〓〓〓〓〓〓〓★  ☆          6.修改学生信息        ☆  ★〓〓〓〓〓〓〓〓〓"<

131.  cout<<"〓〓〓〓〓〓〓〓〓★  ☆          0.安全退出系统        ☆  ★〓〓〓〓〓〓〓〓〓"<

132. cout<<"\n\t\t\n\t\t请选择:

";  

133.}  

134.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  

135.void Studentmassage:

:

Find()  

136.{  

137. char name[20] ,Id[10];  

138. int x;  

139. Student * p=NULL;  

140. cout<<"\n\t\t*********************************\n";  

141. cout<<"\t\t※ 1.按学生的姓名查找\n\t\t※ 2.按学生学号查找";  

142. cout<<"\n\t\t*********************************\n请选择:

";  

143. cin>>x;  

144. switch(x)  

145. {  

146. case 1:

{cout<<"\t\t请输入要查找的学生的姓名:

";cin>>name;  

147.  if(p=FindItem(name))  

148.  {  

149.   p->Next->Show();  

150.   cout<<"输入任意字符!

继续……";  

151.   getch();  

152.  }  

153.  else  

154.  {  

155.   cout<<"\t\t没有找到该姓名的学生!

"<<'\n'<

156.   cout<<"输入任意字符!

继续……";  

157.   getch();  

158.  }  

159.     }break;  

160. case 2:

  

161.  {  

162.   cout<<"\t\t请输入要查找的学生的学号:

";cin>>Id;  

163.   if(p=FindID(Id))  

164.   {  

165.    p->Next->Show();  

166.    cout<<"输入任意字符!

继续……";  

167.    getch();  

168.   }  

169.   else  

170.   {  

171.    cout<<"\t\t没有找到该学好的学生!

"<<'\n'<

172.    cout<<"输入任意字符!

继续……";  

173.    getch();  

174.   }  

175.  }break;  

176. }  

177.}  

178.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  

179.void Studentmassage:

:

ModifyItem()     //修改信息  

180.{  

181. char name[20];  

182. Student * p=NULL;  

183. cout<<"\t\t请输入要修改的人的姓名:

";cin>>name;  

184. if(p=FindItem(name))  

185. {  

186.  cout<<"\t\t已找到学生的信息,请输入新的信息!

"<

187.  p->Next->Input();  

188.  cout<<"修改成功!

"<

189.  cout<<"输入任意字符!

继续……";  

190.  getch();  

191. }  

192. else  

193. {  

194.  cout<<"\t\t没有找到!

"<

195.  cout<<"输入任意字符!

继续……";  

196.  getch();  

197. }  

198.}  

199.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  

200.void Studentmassage:

:

RemoveItem()         // 删除信息  

201.{  

202. char name[20];  

203. Student * p=NULL,*temp=NULL;  

204. cout<<"\t\t请输入要删除的学生的姓名:

"<>name;  

205. if(p=FindItem(name))  

206. {  

207.  temp=p->Next;  

208.  p->Next=p->Next->Next;   

209.  delete temp;  

210.  cout<<"\t\t删除成功!

"<

211.  cout<<"输入任意字符!

继续……";  

212.  getch();  

213. }  

214. else  

215. {  

216.  cout<<"\t\t没有找到!

"<

217.     cout<<"输入任意字符!

继续……";  

218.  getch();  

219. }  

220.}  

221.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  

222.void Studentmassage:

:

Swap(Student *p1, Student *p2)//交换两个combox变量的数据域  

223.{  

224. Student *temp=new Student;   

225. strcpy(temp->name,p1->name);  

226. strcpy(temp->Id,p1->Id);  

227. temp->Cnum=p1->Cnum;  

228. temp->Mnum=p1->Mnum;  

229. temp->Enum=p1->Enum;  

230. temp->sum=p1->sum;  

231. strcpy(p1->name,p2->name);  

232. strcpy(p1->Id,p2->Id);  

233. p1->Cnum=p2->Cnum;  

234. p1->Mnum=p2->Mnum;  

235. p1->Enum=p2->Enum;  

236. p1->sum=p2->sum;  

237. strcpy(p2->name,temp->name);  

238. strcpy(p2->Id,temp->Id);  

239. p2->Cnum=temp->Cnum;  

240. p2->Mnum=temp->Mnum;  

241. p2->Enum=temp->Enum;  

242. p2->sum=temp->sum;  

243.}  

244.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  

245.int Studentmassage:

:

ListCount()//统计当前链表的记录总数,返回一个整数  

246.{  

247. if(!

 Head)  

248.  return 0;  

249. int n=0;  

250. for(Student * p=Head->Next;p!

=End;p=p->Next)  

251. {  

252.  n++;  

253. }  

254. return n;  

255.}  

256.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  

257.void Studentmassage:

:

Sort()//对当前链表进行排序  

258.{   

259. cout <<"Sorting..."<

260. Student *p=NULL,*p1=NULL,*k=NULL;  

261. int n=Studentmassage:

:

ListCount();  

262. if(n<2)   

263.  return;  

264. for(p=Head->Next;p!

=End;p=p->Next)  

265.  for(k=p->Next;k!

=End;k=k->Next)  

266.  {  

267.   if(p->sum>k->sum)  

268.   {  

269.    Studentmassage:

:

Swap(p,k);  

270.   }  

271.  }  

272. cout <<"排序完成!

"<

273. getch();  

274. return;  

275.}  

276.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  

277.void Studentmassage:

:

Save()  

278.{  

279. out.open("sort.txt");  

280. for(Student *p=Head->Next;p!

=End;p=p->Next)  

281.  out<name<<"\t"<Id<<"\t"<Cnum<<"\t"  

282.  <Mnum<<"\t"<Enum<<"\t"<sum<<'\n';  

283. out.close();  

284.}  

285.//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌  

286.int main()  

287.{  

288. int x,i=0;  

289. bool quit=false;  

290. cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§"<

291. for(i=0;i<3;i++)  

292.  cout<<"\t\t◎\t\t\t\t\t\t  ◎"<

293. cout<<"\t\t◎★★★★【  欢迎进入学生成绩管理系统  】★★★★◎"<

294. for(i=0;i<3;i++)  

295.  cout<<"\t\t◎\t\t\t\t\t\t  ◎"<

296. cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n"<

297. Studentmassage Grade;  

298. cout<<"按任意键开始……";  

299.  getch();  

300. while(!

quit)  

301. {  

302.  system("cls");  

303.  Grade.ShowMenu();  

304.  cin>>x;  

305.  switch(x)  

306.  {  

307.  case 0:

quit=true;break;  

308.  case 1:

Grade.AddItem();break;  

309.  case 2:

Grade.Display();break;  

310.  case 3:

Grade.Sort();break;  

311.  case 4:

Grade.Find();break;  

312.  case 5:

Grade.RemoveItem();break;  

313.  case 6:

Grade.ModifyItem();break;  

314.  }  

315. }  

316. return 0;  

317.}  

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1