收藏 分销(赏)

C语言实验报告学生信息资源管理系统.doc

上传人:二*** 文档编号:4510509 上传时间:2024-09-26 格式:DOC 页数:16 大小:47KB
下载 相关 举报
C语言实验报告学生信息资源管理系统.doc_第1页
第1页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、. .C语言实验报告院系:数学与计算科学学院 班级:信息与计算科学2班 XX:学号:2021年12月21日一、问题描述编写一个信息管理系统,包括XX、性别、年龄、班级、学号、地址、各科成绩等,要求能进展查找、排序和计算,按加权平均排序、按某一课程排序和按学号排序。二、分析问题,解决问题的步骤 1、输入初始的学生信息:输入信息包括学生的XX、性别、年龄、班级、学号、地址、各科成绩等相关信息;可用函数void input(STUDENT *data, int *len)来实现此操作。 2、成绩输出模块:输出学生的信息以及成绩void output(STUDENT *data, int len):通

2、过学生的XX来查看学生的相关成绩,同时也可以分别通过caverage() 、maverage() 、eaverage() 和average() 来输出成绩的平均分数、最高和最低分数。3、排序模块:用函数void sort(STUDENT *data, int len)来实现。4、成绩查询模块:可用void find(STUDENT *data, int len) 来实现。找到就输出此学生全部信息。5、统计功能能:用函数void stat(STUDENT *data, int len) 来实现。6、退出系统:可用一个函数exit来实现,首先将信息保存到文件中,释放动态创立的存空间,再退出此程序。

3、三、程序编写#include #include #include #define MAXN 35#define Maxsize325typedef struct student /学生信息int no;char nameMaxsize; char sexMaxsize; char ageMaxsize; char adressMaxsize; char glassnumMaxsize;double Chinese;double math;double English;double mark_ave;double mark_tot; STUDENT;/*-输入信息子程序-*/void input

4、(STUDENT *data, int *len)int no;putchar(n);printf(%sn, 请输入新的记录,如果需要退出当前菜单请输入-1.);printf(%sn, 格式:n学号n);printf(%sn, XX 性别 年龄 地址 班级 学号 语文 数学 英语);putchar(n);printf(如:n);printf(1n);printf(三 93 95 89n);scanf(%d, &no);while(no != -1) data*len.no = no;scanf(%s %s %s %s %s %lf %lf %lf, data*len.name,&data*le

5、n.sex,&data*len.age,&data*len.adress,&data*len.glassnum,&data*len.Chinese, &data*len.math,&data*len.English);data*len.mark_ave=(data*len.Chinese+data*len.math+data*len.English)/3.0;data*len.mark_tot=data*len.Chinese+data*len.math+data*len.English;(*len)+;scanf(%d, &no);/*-输出信息子程序-*/void output(STUDE

6、NT *data, int len) int i;system(cls); printf(%8s, XX); printf(%8s, 性别); printf(%8s, 年龄); printf(%8s, 地址);printf(%8s, 班级); printf(%8s, 语文); printf(%8s, 数学); printf(%10s, 英语); printf(%12s, 平均分); printf(%10s, 总分); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n); for (i = 0; i len; i+) printf(%8

7、d, datai.no);printf(%8s, datai.name);printf(%8s, datai.sex);printf(%8s, datai.age);printf(%8s, datai.adress);printf(%8s, datai.glassnum); printf(%8.1lf, datai.Chinese); printf(%8.1lf, datai.math); printf(%10.1lf, datai.English); printf(%12.1lf, datai.mark_ave); printf(%10.1lf, datai.mark_tot); putch

8、ar(n); for (i =0; i 80; i+) putchar(=); putchar(n); printf(按回车键继续.); getchar(); getchar();/*-排序子程序-*/void sort(STUDENT *data, int len) int i,j,k; STUDENT temp; for (i=0; ilen-1; i+) for (k=i, j=i+1; j dataj.mark_ave) k=j;if (k != i) temp = datai;datai = datak;datak = temp; /*-查询子程序-*/void find(STUDE

9、NT *data, int len) int find_no, result ; int i;lab: result=0; printf(%sn, 请输入需要查找的学生的学号,退出当前菜单请输入 -1.); scanf(%d, &find_no); if (find_no = -1) return; /*exit the fine sub program*/ while( dataresult.no != find_no & result = len ) printf(%sn, 未查询到相关信息); goto lab; else system(cls); printf(%sn, 查询信息如下:

10、); for (i =0; i 80; i+) putchar(=); putchar(n); printf(%8s, 学号); printf(%8s, XX);printf(%8s, 性别);printf(%8s, 年龄);printf(%8s, 地址);printf(%8s, 班级);printf(%8s, 语文); printf(%8s, 数学); printf(%10s, 英语); printf(%12s, 平均分); printf(%10s, 总分); putchar(n); printf(%8d, dataresult.no); printf(%8s, dataresult.nam

11、e);printf(%8s, dataresult.sex);printf(%8s, dataresult.age);printf(%8s, dataresult.adress);printf(%8s, dataresult.glassnum); printf(%8.1lf, dataresult.Chinese); printf(%8.1lf, dataresult.math); printf(%10.1lf, dataresult.English); printf(%12.1lf, dataresult.mark_ave); printf(%10.1lf, dataresult.mark_

12、tot); putchar(n);for (i =0; i 80; i+) putchar(=); putchar(n); goto lab; /*-统计子程序-*/void stat(STUDENT *data, int len) int no_59=0, no_69=0, no_79=0, no_89=0, no_100=0; int i; for (i = 0;i len; i+) if (datai.mark_ave =59) no_59+; else if (datai.mark_ave =69) no_69+;else if (datai.mark_ave =79) no_79+;

13、else if (datai.mark_ave = 89) no_89+;else no_100+; system(cls); for (i =0; i 80; i+) putchar(=);putchar(n); printf(%10s, 分数); printf(%10s, 0-59); printf(%10s, 60-69); printf(%10s, 70-79); printf(%10s, 80-89); printf(%10s, 90-100);putchar(n); putchar(n); printf(%10s, 学生); printf(%10d, no_59); printf(

14、%10d, no_69); printf(%10d, no_79); printf(%10d, no_89); printf(%10d, no_100); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n); printf(按回车键返回); getchar(); getchar();/*-显示信息子程序-*/void paint() int i;system(cls); printf(%55sn, “信计二班学生成绩管理系统n); printf( 制作者: XX n); for (i = 0; i 80; i+) putchar(=)

15、; putchar(n); printf( 1 输入信息 2 输出信息n); printf( 3 按平均分排序 4 按学号查找n); printf( 5 按平均分输出统计信息 6 保存到文件n); printf( 0 退出n);for (i = 0; i= 79; i+) putchar(=); putchar(n); printf(%sn, 请输入各操作对应的序号:);void save(STUDENT *data, int len)/将数据保存到文件int i;FILE *fp;fp=fopen(成绩统计表.txt,w);fprintf(fp,%8s, 学号); fprintf(fp,%8

16、s, XX);fprintf(fp,%8s, 性别);fprintf(fp,%8s, 年龄);fprintf(fp,%8s, 地址);fprintf(fp,%8s, 班级); fprintf(fp,%8s, 语文); fprintf(fp,%8s, 数学); fprintf(fp,%10s, 英语); fprintf(fp,%12s, 平均分); fprintf(fp,%10sn, 总分); fprintf(fp,=n); putchar(n); for (i = 0; i len; i+) fprintf(fp,%8d, datai.no);fprintf(fp,%8s, datai.nam

17、e);fprintf(fp,%8s, datai.sex);fprintf(fp,%8s, datai.age);fprintf(fp,%8s, datai.adress);fprintf(fp,%8s, datai.glassnum); fprintf(fp,%8.1lf, datai.Chinese); fprintf(fp,%8.1lf, datai.math); fprintf(fp,%10.1lf, datai.English); fprintf(fp,%12.1lf, datai.mark_ave); fprintf(fp,%10.1lfn, datai.mark_tot); fp

18、rintf(fp,=n);fclose(fp);printf(文件已保存到成绩统计表.txt);getchar();getchar();/*-主程序-*/void main() STUDENT dataMAXN; int len = 0; char ctrl_ch; paint(); scanf(%c, &ctrl_ch); while (ctrl_ch != 0) ; case 1:input(data, &len);break;case 2:output(data, len);break;case 3:sort(data, len);break;case 4:find(data, len)

19、;break;case 5:insert(data, &len);break;case 6:delete_item(data, &len);break;case 7:stat(data, len);break;case 8:save(data, len);break;default:if (ctrl_ch != n) printf(%sn, 输入错误!);break; if (ctrl_ch != n) paint(); scanf(%c, &ctrl_ch); 四、误差分析此程序没有按加权平均排序功能是本程序的一大弊端,还有就是所列科目少了点,由于本课题中的许多知识点都没有学过,需要查找课外资料,所以如有错误,希望教师多多指正,谢谢!. .word.zl.

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服