最新C++大作业:学生信息管理系统(附代码)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学生信息管理系统(附代码)

题目要求:

设计一个类CStudent,类中包含一个学生的基本数据如下:

编号,姓名,性别,年龄,数学成绩,计算机成绩,外语成绩。并假设编号为整数,且从1号往后连续编码;姓名为字符串,性别为字符。

如:1 LiPing m 18 89 98 94

请采用binary文件形式,并使用随机读写处理方式,对自定义CStudent类的对象数据进行存储与读写处理(即是说,总按具有连续编码的编号num为“序”来对文件中的各对象数据进行随机读写处理)。并设计该类的成员函数,而且对输出运算符“<<”进行重载,使该运算符能够完成将一个学生的信息输出到屏幕上。

要求成员函数完成以下功能:

(1)从键盘输入一个学生的有关信息,并将它们存入到数据文件中(按编号来确定写出位置)。

(2)按编号对学生信息进行检索并将检索结果显示在屏幕上。

(3)按姓名对学生信息进行检索并将检索结果显示在屏幕上。

(4)计算某编号学生的总成绩与平均成绩。

(5)列出所有总成绩超过n分的性别为s同学的有关信息(n,s由用户从键盘输入)。Code:

1. /****************************************

2. *名称: student.cpp *

3. *描述: 学生管理程序*

4. *功能: 添加,修改,按条件查询学生信息*

5. *环境: Fedora Linux 11 & GCC & x86 *

6. *备注: davelv第一次Class于2010-01-10 *

7. *更新: 新建了可复用的搜索模板searchframe *

8. ****************************************/

9.

10. #include

11. #include

12. #include

13. #include

14. #include

15.

16. using namespace std;

17. #define CIN_LEN 1024//缓冲区长度

18. #define FILENAME "data"//数据文件名

19. /////////////////////////////////////

20. // 结构和类//

21. ///////////////////////////////////

22. struct data//学生个人信息

23. {

24. int id;//学号

25. char name[20];//名字

26. char major[20];//专业

27. char sex;//性别

28. double ch,en,ma;//成绩

29. int grade;//年级

30. };

31.

32. class CStudent

33. {

34. protected:

35. bool altered;//是否修改

36. data info;//学生信息

37. public:

38. static int nowid ;//新学生自增id

39. static void displayhead();//显示表头

40. static void displayshorthead();//显示短表头

41. CStudent();//构造

42. void displayinfo();//显示全部学生信息

43. void displayshortinfo();//显示学生短信息

44. double getsum();//取总成绩

45. double getave();//取得平均分

46. double getch();//取语文成绩

47. double geten();//取外语成绩

48. double getma();//取数学成绩

49. int set(bool isnew);//设置学生信息

50. int getgrade();//取年级

51. int getid();//取学号

52. bool isaltered();//取是否修改

53. char getsex();//取性别

54. char* getname();//取姓名

55. char* getmajor();//取专业

56. data* getinfo();//取学生全部信息

57. //定义友元函数以便重载运算符

58. friend ostream& operator<<(ostream&,const CStudent&);

59. friend istream& operator>>(istream&,CStudent&);

60.

61. };

62.

63. int CStudent::nowid = 1;//初始化类静态成员

64.

65. CStudent::CStudent()//基类构造

66. {

67. info.id=CStudent::nowid++;//子增id

68. strcpy(,"None");//名字

69. info.ch=0;//语文成绩

70. info.en=0;//外语成绩

71. info.ma=0;//数学成绩

72. info.grade=1;//年级

73. altered=false;//未被修改

74. }

75.

76. int CStudent::getgrade()

77. {

78. return info.grade;

79. }

80.

81. double CStudent::getsum()

82. {

83. return info.ch+info.en+info.ma;

84. }

85. double CStudent::getave()

86. {

87. return (info.ch+info.en+info.ma)/3;

88. }

89. double CStudent::getch()

90. {

91. return info.ch;

92. }

93.

94. double CStudent::geten()

95. {

96. return info.en;

97. }

98.

99. double CStudent::getma()

100. {

相关文档
最新文档