c语言学生信息处理系统linux下Word格式文档下载.docx

上传人:b****3 文档编号:6304309 上传时间:2023-05-06 格式:DOCX 页数:18 大小:70.86KB
下载 相关 举报
c语言学生信息处理系统linux下Word格式文档下载.docx_第1页
第1页 / 共18页
c语言学生信息处理系统linux下Word格式文档下载.docx_第2页
第2页 / 共18页
c语言学生信息处理系统linux下Word格式文档下载.docx_第3页
第3页 / 共18页
c语言学生信息处理系统linux下Word格式文档下载.docx_第4页
第4页 / 共18页
c语言学生信息处理系统linux下Word格式文档下载.docx_第5页
第5页 / 共18页
c语言学生信息处理系统linux下Word格式文档下载.docx_第6页
第6页 / 共18页
c语言学生信息处理系统linux下Word格式文档下载.docx_第7页
第7页 / 共18页
c语言学生信息处理系统linux下Word格式文档下载.docx_第8页
第8页 / 共18页
c语言学生信息处理系统linux下Word格式文档下载.docx_第9页
第9页 / 共18页
c语言学生信息处理系统linux下Word格式文档下载.docx_第10页
第10页 / 共18页
c语言学生信息处理系统linux下Word格式文档下载.docx_第11页
第11页 / 共18页
c语言学生信息处理系统linux下Word格式文档下载.docx_第12页
第12页 / 共18页
c语言学生信息处理系统linux下Word格式文档下载.docx_第13页
第13页 / 共18页
c语言学生信息处理系统linux下Word格式文档下载.docx_第14页
第14页 / 共18页
c语言学生信息处理系统linux下Word格式文档下载.docx_第15页
第15页 / 共18页
c语言学生信息处理系统linux下Word格式文档下载.docx_第16页
第16页 / 共18页
c语言学生信息处理系统linux下Word格式文档下载.docx_第17页
第17页 / 共18页
c语言学生信息处理系统linux下Word格式文档下载.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言学生信息处理系统linux下Word格式文档下载.docx

《c语言学生信息处理系统linux下Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c语言学生信息处理系统linux下Word格式文档下载.docx(18页珍藏版)》请在冰点文库上搜索。

c语言学生信息处理系统linux下Word格式文档下载.docx

18externstudent_info*student_list;

//全局变量声明

19

20

21//初始化函数声明

22//初始化学生信息链表

23voidinit_student_info_list();

24//判断学生信息链表是否为空

25intstudent_list_empty();

26

27//操作函数声明

28//向学校信息表中添加学生信息记录

29intadd_student_info();

30//根据学号删除学生信息

31intdelete_student_info(intnum);

32//根据学号修改学生信息

33intmodify_student_info(intnum);

34//根据学号查找学生信息

35student_info*search_student_info(intnum);

36//输出每个学生的平均成绩

37voiddisplay_average();

38//显示所有学生信息

39voiddisplay_student_info();

40//将学生信息保存到文件

41intsave_file();

42//从文件中读取学生信息

43intread_file();

44#endif

student.c文件中是对student.h文件中声明的函数进行定义,给出具体的实现代码。

1#include"

student.h"

2#include<

stdio.h>

3#include<

string.h>

4#include<

malloc.h>

5

6//初始化学生信息链表

7voidinit_student_info_list()

8{

9//学生信息链表头结点

10student_list=(student_info*)malloc(sizeof(student_info));

11student_list->

next=NULL;

12}

13//判断学生信息链表是否为空

14intstudent_list_empty()

15{

16returnstudent_list->

next==NULL;

17}

18//操作函数实现

19//向学校信息表中添加学生信息记录

20intadd_student_info()

21{

22student_info*pstu=(student_info*)malloc(sizeof(student_info));

23if(pstu==NULL)

24{

25printf("

内存分配失败.\n"

);

26return0;

27}

28printf("

请按要求一次输入学生的信息.\n"

29printf("

请输入学号:

"

30scanf("

%d"

&

pstu->

num);

31//判断该学号是否已经存在

32if(search_student_info(pstu->

num)!

=NULL)

33{

34printf("

该学号已经存在学生信息表中.\n"

35return0;

36}

37printf("

请输入姓名:

38getchar();

39gets(pstu->

name);

40printf("

请输入性别:

41scanf("

%s"

pstu->

sex);

42printf("

请输入年龄:

43scanf("

age);

44printf("

请输入英语成绩:

45scanf("

english);

46printf("

请输入数学成绩:

47scanf("

math);

48printf("

请输入计算机成绩:

49scanf("

computer);

50pstu->

average=(pstu->

english+pstu->

math+pstu->

computer)/3;

51//每次从学生信息链表的头部插入;

52pstu->

next=student_list->

next;

53student_list->

next=pstu;

54return1;

55}

56//根据学号删除学生信息

57intdelete_student_info(intnum)

58{

59student_info*pstu;

60student_info*qstu;

61if(search_student_info(num)==NULL)

62{

63printf("

不存在该学好为%d的学生信息.\n"

num);

64return0;

65}

66pstu=student_list->

67qstu=student_list;

68while(pstu->

num!

=num)

69{

70qstu=pstu;

71pstu=pstu->

72}

73qstu->

next=pstu->

74free(pstu);

75return1;

76}

77//根据学号修改学生信息

78intmodify_student_info(intnum)

79{

80intchoice;

81student_info*pstu=search_student_info(num);

82if(pstu==NULL)

83{

84printf("

85return0;

86}

87printf("

1.姓名2.性别3.年龄4.英语成绩5.数学成绩6.计算机成绩.\n"

88printf("

请选择修改的信息:

89scanf("

choice);

90switch(choice)

91{

92case1:

93printf("

请输入新的姓名:

94getchar();

95gets(pstu->

96break;

97case2:

98printf("

请输入新的性别:

99scanf("

100break;

101case3:

102printf("

请输入新的年龄:

103scanf("

104break;

105case4:

106printf("

请输入新的英语成绩:

107scanf("

108break;

109case5:

110printf("

请输入新的数学成绩:

111scanf("

112break;

113case6:

114printf("

请输入新的计算机成绩:

115scanf("

116break;

117default:

118printf("

请按提示要求操作.\n"

119}

120return1;

121}

122//根据学号查找学生信息

123student_info*search_student_info(intnum)

124{

125student_info*pstu;

126pstu=student_list->

127while(pstu&

&

pstu->

128{

129

130pstu=pstu->

131}

132returnpstu;

133}

134//输出每个学生的平均成绩

135voiddisplay_average()

136{

137student_info*pstu;

138pstu=student_list->

139while(pstu)

140{

141printf("

学号为%d,姓名为%s的学生平均成绩为:

%d\n"

num,pstu->

name,pstu->

average);

142pstu=pstu->

143}

144}

145//显示所有学生信息

146voiddisplay_student_info()

147{

148student_info*pstu;

149pstu=student_list->

150printf("

所有学生信息如下所示.\n"

151printf("

学号\t姓名\t性别\t年龄\t英语\t数学\t计算机\t平均成绩.\n"

152while(pstu)

153{

154printf("

%d\t"

155printf("

%s\t"

156printf("

157printf("

%d\t"

158printf("

159printf("

160printf("

161printf("

%d\n"

162pstu=pstu->

163}

164}

165//将学生信息保存到文件

166intsave_file()

167{

168FILE*pfile;

169student_info*pstu;

170pfile=fopen("

student.txt"

"

w"

171if(pfile==NULL)

172{

173printf("

打开文件失败.\n"

174return0;

175}

176pstu=student_list->

177while(pstu)

178{

179fprintf(pfile,"

%5d%15s%9s%3d%4d%4d%4d%4d"

sex,pstu->

age,

180pstu->

english,pstu->

math,pstu->

computer,pstu->

181pstu=pstu->

182}

183fclose(pfile);

184return1;

185}

186

187//从文件中读取学生信息

188intread_file()

189{

190FILE*pfile;

191student_info*pstu;

192pfile=fopen("

r"

193if(pfile==NULL)

194{

195printf("

196return0;

197}

198while(!

feof(pfile))

199{

200pstu=(student_info*)malloc(sizeof(student_info));

201fscanf(pfile,"

%5d%15s%9s%4d%4d%4d%4d%4d"

sex,&

202&

english,&

math,&

computer,&

203pstu->

204//每次从学生信息链表的头部插入;

205pstu->

206student_list->

207}

208fclose(pfile);

209return1;

210}

主函数main.c文件进行测试调用,如下所示:

stdlib.h>

4

5voidmenu();

6

7//学生信息链表

8student_info*student_list;

9

10//用户可以选择1-7可以分别进行学生信息的查看、添加、删除,修改,计算平均成绩,保存,退出系统操作。

11intmain()

12{

13intchoice;

14intnum;

15printf("

**************************\n"

16printf("

欢迎使用学生信息管理系统\n"

17printf("

18printf("

-----------------------------\n"

19init_student_info_list();

20if(read_file())

21printf("

从文件中读取学生信息成功.\n"

22else

23printf("

从文字中读取学生信息失败.\n"

24printf("

25menu();

26while

(1)

27{

请选择操作:

29scanf("

30switch(choice)

31{

32case1:

33if(student_list_empty())

学生信息表为空,请先添加学生信息.\n"

35else

36display_student_info();

37break;

38case2:

39if(add_student_info())

添加学生信息成功.\n"

41else

添加学生信息失败.\n"

43break;

44case3:

45if(student_list_empty())

47else

48{

49printf("

请输入要删除学生信息的学号:

50scanf("

51if(delete_student_info(num))

52printf("

成功删除该学号对应的学生信息.\n"

53else

54printf("

删除失败.\n"

56break;

57case4:

58if(student_list_empty())

59printf("

60else

61{

62printf("

请输入要修改学生信息的学号:

63scanf("

64if(modify_student_info(num))

65printf("

成功修改该学号对应的学生信息.\n"

66else

67printf("

修改失败.\n"

68}

69break;

70case5:

71if(student_list_empty())

72printf("

73else

74display_average();

75break;

76case6:

77if(student_list_empty())

78printf("

79else

80if(save_file())

81printf("

保存学生信息成功.\n"

82else

83printf("

保存学生信息失败.\n"

84break;

85case0:

86printf("

欢迎下次使用,再见.\n"

87system("

pause"

88exit(0);

89break;

90default:

91printf("

输入错误,请重新选择操作.\n"

92}

93}

94system("

95return0;

96}

97

98voidmenu()

99{

100printf("

1.查看学生信息.\n"

101printf("

2.添加学生信息.\n"

3.删除学生信息.\n"

103printf("

4.修改学生信息.\n"

104printf("

5.输出平均成绩.\n"

105printf("

6.保存学生信息.\n"

0.退出系统操作.\n"

107}

程序执行结果如下所示:

(1)第一次执行没有学生信息,读取文件失败。

(2)以后执行先从文件中读取学生信息,然后进行操作。

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2