班级成绩管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉轻工大学
数计学院
C语言课程设计报告
班级:计算机类1307班
学号: **********
姓名:**
指导教师:***
日期:2014年6月18日
一、实验目的
1.在编辑应用程序过程中,逐步加深对C语言编程的理解;
2.加强实践的能力,动手能力,同时进一步对所学的知识进行巩固;
3.培养初步编程的能力,为以后的学习奠定基础。
二、实验内容
运用所学的C语言知识编辑应用程序:班级成绩管理系统以及运动的时钟
三.系统软件环境:
本程序主要运行在: Visual C++ 6.0
Turbo C/C++ 3.0
四.课程设计题目:
1.必做题:班级成绩管理系统
对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存、查询等操作的管理。功能要求:
(1)本系统采用一个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称。
(2)本系统显示这样的菜单:请选择系统功能项:
a、成绩录入
b、成绩显示
c、成绩保存
d、成绩排序
e、成绩修改(要求先输入密码)
f、成绩统计
1)显示每门课程成绩最高的学生的基本信息。
2)显示每门课程的平均成绩,柱状图显示。
3)显示超过某门课程平均成绩的学生人数。
4)显示某门课程每个分数段区间的人数,用饼状图显示。
g、退出系统
(3)执行一个具体的功能之后,程序将重新显示菜单。(4)将学生成绩保存到文件中。
五.数据结构设计描述:
(一)班级成绩管理系统
↓
↓
六.源程序
(一)班级成绩管理系统
#include
#include
#include
#include
#include
#define _COURSES 3//定义科目数
#define _LEN sizeof(student)//定义结构体大小
//枚举返回值情况
enum status
{
OVERFLOW = -1, //内存(溢出)问题
DONE = 0, //成功
NOFOUND = 1, //不存在
OPENFAIL = 2, //打开(文件)失败
BACK = 3 //返回
};
//end
//定义学生信息结构体
typedefstructStudentInfo
{
//数据域
unsigned intnum;//学号
char name[11];//姓名
float scores[_COURSES];//各科成绩
//指针域
structStudentInfo *next;//存放下一节点的地址}student;
//end
student *head=NULL;//声明链表头结点
student *curr=NULL;//声明指向当前节点的指针int total = 0;//声明当前节点个数
intinit();//初始化链表
intadd_stu();//添加新节点
intshow_all();//显示所有学生信息
intfind_stu();//查找指定信息节点
intmodify_stu();//修改指定信息节点
intremove_stu();//删除指定信息节点
intsort_list();//对链表排序
intsave_to_file();//将所有信息保存至文件intread_from_file();//从文件中读取信息
int picture();//画分布图
int quit();//释放所有节点空间
int entering(student *input);//录入学生信息
void menu();
void show_stu(student *show, int serial);//显示指定学生信息
void start();//程序开始界面
void change(student *former, student *latter, student *temp);//交换两个节点的数据域void main(){
int h,flag1,flag2;
char name[20]="hyw",password[10]="hyw";
char person[20],password1[10];
printf ("\t\t ******** 欢迎进入学生成绩管理系统!********\n\n");
printf ("\t\t\t 用户登录\n\n");
for(h=0;h!=5;)
{
printf("\t\t\t\t 用户名:");
gets(person);
flag1=strcmp(person,name);
printf("\t\t\t\t 密码:");
gets(password1);
flag2=strcmp(password,password1);
if(flag1==0 && flag2==0)
{
printf("\t\t\t\t 登陆成功!\n\n");
menu();
break;
}
else
{
printf ("\t\t\t 用户名或密码错误!\n\n");
printf ("\t\t\t 请注意:您还剩%d次机会!\n\n",4-h);