- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分析设计与说明
分别建立两个数据文件
文件1(bjcj.txt)用于存放学生成绩;
文件2(kcxf.txt)用于存放课程学分;
文件3 (xsxx、txt)用于存放学生信息。
程序设计思想
(1)学生成绩管理系统
1读入原始数据并显示(将其读入另外的“grcj.txt”中);
2编写函数用于计算平均分及名次(将其读入另外的”bjnpm.txt”中);
每个学生各科分数乘以相应的学分并相加除以学分总和;先令每个学生的名次都
是1,在把一个学生的加权平均分与其他的所有学生的进行比较,遇到一个比
该学生平均分高的,该学生的名次加1。循环依次得出全班人的名次;并将这种
结果输出到文本文件bjnpm.txt
3编写函数计算分数段人数(将其读入另外的”gkpjf.txt”中);
先令每一个分数段(=90;=80;=70;=60;60)的人数都是0,然后利用循环结
构,遇到一个在某个分数段的成绩,那个分数段的计数变量加1,最后可得每门
科目每个分数段人数;并将这种结果输出到文本文件gkpjf.txt
4利用循环结构,将所有人的同一科成绩相加,再除以总人数,课程平均.txt中;
编写函数统计不及格情况(将其读入另外的”bjgxs.txt”中) ;
5利用循环,将每个人的各科成绩和60相比较,若小于60,则输出名单 (学号、
姓名、不及格课程名称、课程学分及成绩)结果存放在文本文件:bujige.txt
6 编写函数输出优秀学生(将其读入另外的”优秀干部.txt”中);
1.平均分≥90,2.名次在本班前三名,3.平均分≥85,并且至少有一门课的成绩为100分,4平均分≥85,并且至少有二门课的成绩为≥90分。将上述条件作为逻辑或的判别式,找到符合条件的所有学生,输出并同时存放到优秀干部.txt中;
程序实现功能
1)学生成绩管理系统
1.班级成绩单查看见文件(bjcj.txt);
2.课程学分详情见(kcxf.txt);
3.班级成绩排名表单(bjnpm.txt);
4.成绩分数分布段见(gkpjf.txt)
5.课程平均分见(bjxx.txt)
6.不及格学生的名单(bjgxs.txt);
7.优秀生的名单(优秀干部.txt);
8.退出。
(3).程序框
主菜单功能模块图
一级菜单结构图
四.源程序清单
#includestdio.h
#includestdlib.h
#includemath.h
#includestring.h
#define M 30
struct student
{long num;
char name[20];
float score[5];
float aver;
int row;
int p1;
int p2;
}stu[M];
struct chengji
{int num;
char name[20];
float fen;
}course[5];
struct informa
{long num;
char name[20];
char sex[3];
int age;
char poisition[20];
}infor[M];
struct fenduan
{int p;
int q;
int r;
int s;
int l;
}count[5];
void main()
{ int section1();
int section2();
int section3();
/*主菜单*/
char ch1;
system(graftabl 936);
do{ clrscr(); /*清屏*/
printf(\n\n\n\n\n\n\n\n\n);
printf( ************** C语言程序设计上机实习 ****************\n);
printf( ---------------------------------------------------\n\n);
printf( 1 学生成绩管理\n\n);
printf(
文档评论(0)