《C语言程序设计成绩管理系统.doc》由会员分享,可在线阅读,更多相关《C语言程序设计成绩管理系统.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 1、成员分工 本小组成员有等四人。成员分工如下: 2、系统功能模块根据作业要求,应设计的程序应该包含的功能模块有:1、 菜单功能void menu()2、 数据输入void input()3、 排序功能void sort()4、 查找功能void find()5、输出功能void print()6、错误操作void error()7、退出功能exit(0)3、 数据结构设计描述程序要求能输入M个学生N门科目的成绩,需要用到数据结构。#define NUM 100struct student int number; /学号 char name12; /姓名 int score20; /成绩 i
2、nt total; /总分 double average; /平均分 ;struct student stuNUM;定义最大输入100个学生(#define NUM 100)。定义数组 struct student ,用于学生数据。数组包含int number; 学号 char name12; 姓名 int score20; 成绩 int total; 总分 double average; 平均分其中学号、分数和总分都用整形,平均用实形。需要输入M个学生的信息,所以需定义一个数组 struct student stuNUM;4、 函数功能及参数说明、相互调用关系1、 主函数void main(
3、) 主函数里面只有menu(),用于调用菜单函数里面的功能;1、 菜单功能void menu() 输出显示菜单功能,用switch语句用于选择,进入所选择的选项;2、 数据输入void input() 用于输入学生学号、姓名、成绩等信息,并计算出学生的总分和平均分。3、排序功能void sort()4、查找功能void find()5、输出功能void print()6、错误操作void error()7、退出功能exit(0) 5、程序源代码#include #include #define NUM 100struct student int number; /学号 char name12;
4、 /姓名 int score20; /成绩 int total; /总分 double average; /平均分 ;struct student stuNUM;int c=0; /c是结构体数组的下标 在此为全局变量int d=0; /d是结构体数组的下标 在此为全局变量void menu(); /定义menu菜单void input(); /插入数据函数void sort(); /排序void find(); /查找(按学号或姓名查找void error(); /错误提示void print(); /输出具体信息void main() menu();void menu()/主菜单 int
5、select; /选择(1-7间) system(cls); printf( * * * * n); printf( * * n); printf( * * n); printf( * * .* * n); printf( 自 * *.田田* * 格 n); printf( 强 * *.田田* * 物 n); printf( 不 * *.田田* * 志 n); printf( 息 * *.田田* * 知 n); printf( * *.田田* * n); printf( * *.田田* * n); printf( * *.田田* * n); printf( * *.* * n); printf
6、( * *.* * n); printf( *_* *_* nn); printf( 学生成绩管理系统n); printf( *n); printf( * *n); printf( *1 输入数据 *n); printf( *2 查找数据 *n); printf( *3 打印输出 *n); printf( *4 数据排序 *n); printf( *5 退出 *n); printf( * *n); printf( *n); printf(请输入你的选项(1-5):); scanf(%d,&select);/输入要选择的项目 switch(select) /判断选择 case 1:input()
7、;break; case 2:find();break; case 3:print();break; case 4:sort();break; case 5:exit(0);break; default:error();break; void input() /输入入数据 int m,n; /m,n为循环变量printf(请输入要统计的人数 M= ); /输入学生人数scanf(%d,&c); printf(请输入要统计的科目数量N= ); /输入统计科目的数量scanf(%d,&d);printf(n);for(m=0;mc;m+) /输入学生资料printf(请输入第%d个学生的学号 tt
8、,m+1); /学号输入scanf(%d,&stum.number);stu100.number=00; /定义一个数组,后面用于排序 printf(请输入第%d个学生的姓名 tt,m+1); /姓名输入scanf(%s,&stum.name);strcpy(stu100.name,hl); for (n=0;nd;n+) /各门成绩输入 printf(请输入第个%d学生的第%d门科目的成绩t,m+1,n+1); scanf(%d,&stum.scoren);stu100.scoren=1;stu100.total+=stu100.scoren; /总分统计 stum.total+=stum.
9、scoren; /平均分 printf(总分:%dt,stum.total); stum.average=stum.total/(d+0.0); stu100.average=stu100.total/(d+0.0); printf(平均分%4.2fn,stum.average); printf(n按回车键返回主菜单n); getchar(); getchar(); menu(); void sort()/排序 int i,j; /循环变量 for(i=0;ic;i+) for(j=i+1;j=c;j+) /进入分数比较 if(stui.totalstuj.total) /比较总分大小 stu
10、100=stui; stui=stuj; stuj=stu100; printf(分数已按从高到低排序,按回车键返回主菜单n); getchar(); getchar(); menu();void find() /查找 int stuNO; /学号 char name12; /姓名 int flag; /选择标志 int i,j; /循环变量 system(cls); /清屏 printf(按学号查找1:n); printf(按姓名查找2:n); printf(请选择:); scanf(%d,&flag); if(flag=1) /按学号查找 printf(请输入你要查找的学号:); scan
11、f(%d,&stuNO); for(i=0;ic;i+) if(stui.number=stuNO) /查找学号 printf(n=*=*=* %s的成绩 *=*=*=*=*n,stui.name); /输出查找结果 printf(学号:%dt n,stui.number); for (j=0;jd;j+) printf(成绩%d:%dn,j+1,stui.scorej); printf(总分:%dt平均分:%4.2fn,stui.total,stui.average); else if(flag=2) /按姓名查找 printf(请输入你要查找的姓名:); scanf(%s,name); f
12、or(i=0;ic;i+) if(strcmp(stui.name,name)=0) /查找姓名 printf(n=*=*=* %s的成绩 *=*=*=*=*n,stui.name); printf(学号:%dt ,stui.number); for (j=0;jd;j+) printf(成绩%d:%dn,j+1,stui.scorej); printf(总分:%dt平均分:%4.2fn,stui.total,stui.average); else /错误提示 printf(选择的范围(1或2),请重新输入); find(); printf(n按回车键返回主菜单n); getchar(); g
13、etchar(); menu(); void error() /错误提示 system(cls); /清屏 printf(输入有误,选择的范围是1-7:n); printf(n按回车键继续n); getchar(); getchar(); system(cls); /清屏 menu();void print() /打印学生成绩信息 int i,j; /循环变量 printf(学号t姓名t); for(j=0;jd;j+) printf(成绩%dt,j+1); printf( 总分t平均分); printf(n); for(i=0;ic;i+) printf(%dt%st,stui.number,stui.name); /打印姓名、学号 for(j=0;jd;j+) /打印成绩 printf(%dt ,stui.scorej); printf(%d t%4.2fn,stui.total,stui.average); /打印总分、平均分 getchar(); getchar(); menu(); / Over! Oh,Yeah!