C++编写 学生成绩管理系统.docx

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

C++编写 学生成绩管理系统.docx

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

C++编写 学生成绩管理系统.docx

C++编写学生成绩管理系统

1.# include   

2.# include   

3.# include   

4.#include //用getch();  

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请输入要删除的学生的姓名:

"<>name;  

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<name<<"\t"<Id<<"\t"<Cnum<<"\t"  

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

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//用getch();

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<<"输入任意字符!

继续……";

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

当前位置:首页 > 高等教育 > 农学

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

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