成都工业学院 学生成绩管理系统 专周报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成都工业学院
课程设计报告
课程名称 C语言课程设计
课题名称成绩管理系统
专业软件工程(2)班
班级 1506032班
学号 150603236 姓名陈光超
指导教师杨明广
2016年2月26日
一.题目要求
1.问题描述:
对在校学生几门课程的考试成绩进行统一管理.每个学生记录包括学号,姓名,年龄,数学,英语,物理成绩,默认以学号为序存放.
2.要求:
(1)一个文件按以班为单位存储学生记录.
(2)将允许的操作分为8种,
1, 录入学生成绩
2, 查看学生成绩
3, 修改学生成绩
4, 删除学生成绩
5, 学生成绩排序
6, 写入五个默认成绩
7, 查看本程序开发说明
0, 退出管理系统
3.计算学生的总成绩.
4.按学号,各科成绩,总分排序输出学生成绩表
.
二.设计目的
根据题目要求,由于学生信息是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.
三.总体设计
根据上面的需求分析,可以将这个系统分为以下模块:输入模块,修改模块,删除模块,查找模块,显示模块.
四.程序总结
满足专周程序设计要求,程序抗干扰性强。
程序版本1-20添加功能,以及相应模块。
程序版本21-29修复BUG,以及界面UI调节。
五.详细设计
1.主函数(以及其它界面UI函数):
主函数一般设计得比较简单,只提供输入,处理和输出部分的函数调用,其中各功能模块用菜单方式选择.其他界面UI函数和主函数类似。
流程图:
显示一系列功能模块
N
输入n,判断n是否是0-7
Y
根据n的值调用各功能模块函数
2.录入功能int entry();
单独输入各项信息,有益于提示用户操作情况。
将输入的信息存储在全局变量中,有益于对数据进行操作。
3.查询模块int check(int);
传入查询参数,根据参数返回学生序号
4.删除模块int del(int);
先调用查询模块返回学生序号,根据序号删除学生,并返回删除执行情况
5.修改模块(集成于void change_ui();)
先调用查询模块返回学生序号,再根据序号执行删除功能,最后执行录入功能
6.排序功能void sort(float *,int,int);
对某一科逐个排序,同时对学生信息排序,排序完成,重新写入文件。
7.输出功能int pscore(int);
传入学生序号,根据序号输出学生信息。
六.程序原代码
注释:源代码下载地址/mywork/
/********************************/
/***成绩管理系统,软件版本29 ***/
/******* 班上学号150603236 *****/
/*** 此版本修复各种BUG ***/
/********************************/
#include
#include
#include
int pscore(int);//成绩输出功能
void menu();//主界面菜单
void entry_ui();//录入界面
int entry();//录入功能
void check_ui();//查看界面
int check(int);//查看功能
void change_ui();//修改成绩界面
void del_ui();//删除界面
int del(int);//删除功能
void sort_ui();//排序界面
void sort(fl oat *,int,int);//排序功能(仅数据)
void defs();//写入程序自带成绩,五个成绩
void dscreen();//清屏函数,清空缓存区,再输出当前学生数
int dask();//是否执行操作判断
void about();//关于本程序
struct student
{
char name[20];
int id;
fl oat chinese;
fl oat math;
fl oat english;
fl oat sum;
fl oat average;
}P[101];
fl oat sa[101];//临时储存浮点型数据(排序使用)
void main()
{
whil e(1)
{
menu();
}
}
void menu()//菜单界面
{
dscreen();
printf("**************************\n");
printf("*** 学生成绩管理系统***\n");
printf("*** 1,录入学生成绩***\n");
printf("*** 2,查看学生成绩***\n");
printf("*** 3,修改学生成绩***\n");
printf("*** 4,删除学生成绩***\n");
printf("*** 5,学生成绩排序***\n");
printf("*** 6,写入五个默认成绩***\n");
printf("***7,查看本程序开发说明***\n");
printf("*** 0,退出管理系统***\n");
printf("**************************\n");
int n;
scanf("%d",&n);
fflush(stdin);
switch(n)
{
case 0:exit(0);break;
case 1:entry_ui();break;
case 2:check_ui();break;
case 3:change_ui();break;
case 4:del_ui();break;
case 5:sort_ui();break;
case 6:defs();break;
case 7:about();break;
default:
printf("提示(主界面):输入错误,按任意键继续。\n");
fflush(stdin);
getchar();
}
}
void entry_ui()//成绩录入界面
{
whil e(1)
{