教务信息管理系统课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《高级语言程序设计》课程设计
教务信息管理系统
题目:
班级:软件R7班
学生学号:201231001015
学生姓名:麦建波
指导老师:姚金涛
提交时间:2013年5月6日
华南农业大学软件学院
教务信息管理系统
1. 系统分析
1.1 问题描述
本程序为教务信息管理系统,通过输入学生的相关信息,对数据进行处理和统计,并按需要输入统计处理后的数据到文件中。
1.2 系统功能
(1)录入如下信息:
学生基本信息:如学号、姓名、性别、年龄、宿舍号码、电话号码等;
课程基本信息:课程编号、课程名称、考试成绩、平时成绩、综合成绩、
学分、重修否等。如果重修,需要考虑重修学期、重修成
绩,并且要考虑多次重修的情况。
(2)录入选课信息
(3)录入学生成绩
(4)按班统计学生选课情况及考试成绩
(5)按课程统计学生名单及考试成绩
(6)统计并输出每个同学已修学分及不及格课程
1.3 功能需求描述:
(1)加载学生信息及其课程成绩:从文件录入学生的基本资料和课程情况,并覆盖原有数据。
(2)新增学生信息及其课程成绩:按要求录入学生的基本资料和课程情况,通过提示信息逐步操作。
(3)按班统计学生选课情况及考试成绩:根据录入的数据,以班为单位逐个输出选课情况及对应的成绩。
(4)按课程统计学生名单及考试成绩:按提示输入课程编号,查询对应课程的学生名单及其成绩。
(5)统计并输出每个同学已修学分及不及格课程:根据录入的数据进行统计,输出全部学生的已修学分及不及格课程的名称。
(6)保存学生信息及其课程成绩并退出:将当前的学生基本资料和课程情况保存到文件,并覆盖原有文件。
1.4 开发平台及工具介绍
(1)硬件环境:
处理器:Intel Pentium 166或更高
内存:32MB以上
硬盘空间:2G以上
显卡:SVGA显示适配器
(2)软件环境:
操作系统:Windows98/Me/2000/XP/2007/Vista/7/8等
2. 系统设计
2.1 系统总体结构设计
2.2 系统各个功能模块设计(1)
(2)
(3)
(4)
(5)
(6)
2.3 数据结构的设计
2.3.1学生信息数据结构
typedef struct student
{
int age,sub,cla; //年龄,选课数量,班级
double poi; //已修学分
char stun[15],name[30],sex[5],dorn[10],phon[20]; //学号,姓名,性别,宿舍号码,短号电话号码
course les[10]; //课程信息
struct student*next;
}student;
2.3.2课程信息数据结构
typedef struct course
{
char lessonn[15],lessonname[50],re[5]; //课程编号,课程名称,是否重修
double textmark,formalmark,mark,point; //考试成绩,平时成绩,综合成绩,学分
restudy res[5]; //重修情况
int restime; //重修次数
}course;
2.3.3重修情况数据结构
typedef struct restudy
{
int term; //重修学期
double resmark; //重修分数
}restudy;
2.4 界面设计
程序界面应遵循简洁美观、方便使用的原则。
2.4.1主界面
充分考虑界面易于操作的系统需求,用printf语句构造简单的文字界面,具体主界面设计效果如图所示。
2.4.2新增信息界面
根据相关的文字提示,用户输入对应信息。
3. 系统实现
基于系统需求分析与系统总体设计的结果,本系统采用Code::Blocks12.11软件平台基于C语言实现各模块的功能,下面按照模块的功能划分来分别阐述系统的详细设计和实现过程。
3.1头文件:
#include
#include
#include
3.2主界面模块
功能:功能选择界面
输入:用户选择的功能选项编号
处理:根据用户选项跳转到相关功能函数
输出:相关功能函数的处理或显示界面
程序清单:
student *insstu(); //加载学生信息及其课程成绩
student *inspoint(student *head,student *stud); //插入链表结点
void clalesmark(student *head); //按班统计学生选课情况及考试成绩
void lesstumark(student *head); //按课程统计学生名单及考试成绩
void pointfail(student *head); //统计并输出每个同学已修学分及不及格课程
student *adds(student *hd); //新增学生信息及其课程成绩
student *savestu(student *head); //保存学生信息及其课程成绩
int main(void)
{
student *head,*p;
int num,n;
int size=sizeof(struct student);
head=NULL;
printf("\t\t*****************************欢迎使用教务信息管理系统*****************************");
do
{
printf("\n\t\t* ------------------------------------请选择------------------------------------ *\n");
printf("\t\t* 1、加载学生信息及其课程成绩\t\t\t2、新增学生信息及其课程成绩*\n");
printf("\t\t* 3、按班统计学生选课情况及考试成绩\t\t4、按课程统计学生名单及考试成绩*\n");
printf("\t\t* 5、统计并输出每个同学已修学分及不及格课程\t6、保存学生信息及其课程成绩并退出*\n");
printf("\t\t* -----------------------------------0、退出------------------------------------ *\n\n");
fflush(stdin); //清除缓冲区
scanf("%d",&n);
switch(n)
{
case 1:head=insstu();break;
case 3:clalesmark(head);break;
case 4:lesstumark(head);break;