教务信息管理系统课程设计报告Word格式.docx

上传人:b****2 文档编号:3770528 上传时间:2023-05-02 格式:DOCX 页数:30 大小:231.64KB
下载 相关 举报
教务信息管理系统课程设计报告Word格式.docx_第1页
第1页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第2页
第2页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第3页
第3页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第4页
第4页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第5页
第5页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第6页
第6页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第7页
第7页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第8页
第8页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第9页
第9页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第10页
第10页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第11页
第11页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第12页
第12页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第13页
第13页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第14页
第14页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第15页
第15页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第16页
第16页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第17页
第17页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第18页
第18页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第19页
第19页 / 共30页
教务信息管理系统课程设计报告Word格式.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

教务信息管理系统课程设计报告Word格式.docx

《教务信息管理系统课程设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《教务信息管理系统课程设计报告Word格式.docx(30页珍藏版)》请在冰点文库上搜索。

教务信息管理系统课程设计报告Word格式.docx

按班统计学生选课情况及考试成绩

新增学生信息及其课程成绩

加载学生信息及其课程成绩

2.2系统各个功能模块设计

(1)

加载成功显示相关信息,并提示加载学生总数

系统自动从根文件夹读取文件”stu.txt”,依照程序步骤将学生信息输入到程序

(2)

学生学号输入“0”返回到主界面

在已有加载数据基础上新增学生,依照提示信息依次将学生信息输入到程序

(3)

输出完毕后自动返回到主界面继续工作

基于当前数据,按班级R1~R10分类统计并输出学生所有信息到屏幕和文件”case3.txt”

(4)

输入课程编号,查找出已修该课程所有学生并输出其成绩及重修与否到屏幕和文件”case4.txt”

课程编号输入“0”返回到主界面

(5)

基于当前数据,将每位学生已修课程的学分总和及不及格课程输出到屏幕和文件”case5.txt”

(6)

保存成功显示相关信息,并提示保存学生总数,最后退出程序

将当前数据以与加载相同的格式输出到文件”stu.txt”,并覆盖原本存在的该文件

2.3数据结构的设计

2.3.1学生信息数据结构

typedefstructstudent

{

intage,sub,cla;

//年龄,选课数量,班级

doublepoi;

//已修学分

charstun[15],name[30],sex[5],dorn[10],phon[20];

//学号,姓名,性别,宿舍号码,短号电话号码

courseles[10];

//课程信息

structstudent*next;

}student;

2.3.2课程信息数据结构

typedefstructcourse

charlessonn[15],lessonname[50],re[5];

//课程编号,课程名称,是否重修

doubletextmark,formalmark,mark,point;

//考试成绩,平时成绩,综合成绩,学分

restudyres[5];

//重修情况

intrestime;

//重修次数

}course;

2.3.3重修情况数据结构

typedefstructrestudy

intterm;

//重修学期

doubleresmark;

//重修分数

}restudy;

2.4界面设计

程序界面应遵循简洁美观、方便使用的原则。

2.4.1主界面

充分考虑界面易于操作的系统需求,用printf语句构造简单的文字界面,具体主界面设计效果如图所示。

2.4.2新增信息界面

根据相关的文字提示,用户输入对应信息。

3.系统实现

基于系统需求分析与系统总体设计的结果,本系统采用Code:

:

Blocks12.11软件平台基于C语言实现各模块的功能,下面按照模块的功能划分来分别阐述系统的详细设计和实现过程。

3.1头文件:

#include<

stdio.h>

stdlib.h>

string.h>

3.2主界面模块

功能:

功能选择界面

输入:

用户选择的功能选项编号

处理:

根据用户选项跳转到相关功能函数

输出:

相关功能函数的处理或显示界面

程序清单:

student*insstu();

//加载学生信息及其课程成绩

student*inspoint(student*head,student*stud);

//插入链表结点

voidclalesmark(student*head);

//按班统计学生选课情况及考试成绩

voidlesstumark(student*head);

//按课程统计学生名单及考试成绩

voidpointfail(student*head);

//统计并输出每个同学已修学分及不及格课程

student*adds(student*hd);

//新增学生信息及其课程成绩

student*savestu(student*head);

//保存学生信息及其课程成绩

intmain(void)

student*head,*p;

intnum,n;

intsize=sizeof(structstudent);

head=NULL;

printf("

\t\t*****************************欢迎使用教务信息管理系统*****************************"

);

do

{

\n\t\t*------------------------------------请选择------------------------------------*\n"

\t\t*1、加载学生信息及其课程成绩\t\t\t2、新增学生信息及其课程成绩*\n"

\t\t*3、按班统计学生选课情况及考试成绩\t\t4、按课程统计学生名单及考试成绩*\n"

\t\t*5、统计并输出每个同学已修学分及不及格课程\t6、保存学生信息及其课程成绩并退出*\n"

\t\t*-----------------------------------0、退出------------------------------------*\n\n"

fflush(stdin);

//清除缓冲区

scanf("

%d"

&

n);

switch(n)

case1:

head=insstu();

break;

case3:

clalesmark(head);

case4:

lesstumark(head);

case5:

pointfail(head);

case2:

head=adds(head);

case6:

savestu(head);

default:

}

}while(n!

=0&

&

n!

=6);

\n\t\t*----------------------------------!

谢谢使用!

----------------------------------*\n"

return0;

}

3.3加载信息模块

从根文件夹加载记录学生信息的文件

将所有学生信息形成链表

加载成功情况

student*insstu()

student*p,*hd,*pt;

inti,j,n=0;

FILE*fp;

fp=fopen("

stu.txt"

"

r"

);

//从根目录读取文件

intsize=sizeof(student);

hd=NULL;

while

(1)

p=(student*)malloc(size);

fscanf(fp,"

%s"

p->

stun);

//读取学号

if(strcmp(p->

stun,"

0"

)==0)break;

//学号为0返回

cla);

//读取班级

name);

//读取姓名

sex);

//读取性别

age);

//读取年龄

dorn);

//读取宿舍号码

phon);

//读取短号电话号码

p->

sub=0;

poi=0;

for(i=p->

sub;

i<

=10;

i++)

les[i].lessonn);

//读取课程编号

les[i].lessonn,"

//课程编号为0返回

les[i].lessonname);

//读取课程名称

%lf"

les[i].textmark);

//读取考试成绩

les[i].formalmark);

//读取平时成绩

les[i].mark);

//读取综合成绩

les[i].point);

//读取学分

poi+=p->

les[i].point;

//将该课程学分加入已修总学分

les[i].re);

//读取是否重修

les[i].re,"

是"

)==0)

les[i].restime);

//读取重修次数

for(j=0;

j<

les[i].restime;

j++)

les[i].res[j].term);

//读取重修学期

les[i].res[j].resmark);

//读取重修成绩

sub++;

n++;

if(n==1)

hd=p;

pt=p;

else

pt->

next=p;

next=NULL;

加载学生数据成功!

共加载%d位学生信息\n"

n);

returnhd;

3.4新增信息模块

增加学生,并完整录入相关个人信息及选课信息

学生信息

将所得学生信息插入链表

student*adds(student*hd)

student*p,*q,*r;

inti,j;

//hd=inspoint(hd,p);

//p->

请输入学号(12位数字,返回请输入0):

"

请输入班级号(软件R()班):

请输入姓名:

请输入性别:

请输入年龄:

请输入宿舍号码(5位数字):

请输入电话号码(短号):

请输入课程编号(6位数字,返回请输入0):

请输入课程名称:

请输入考试成绩:

请输入平时成绩:

请输入综合成绩:

请输入学分:

是否需要重修(输入“是,否”,):

请输入重修次数:

请输入重修学期:

请输入重修成绩:

hd=inspoint(hd,p);

//插入一个新结点以继续增加学生人数

system("

cls"

//清屏

3.5按班级统计模块

按班级有序地查看学生的情况

按班级R1~R10分类统计学生信息

输出学生所有信息到屏幕和文件”case3.txt”

voidclalesmark(student*head)//同时输出数据到屏幕和文件

inti,j,k;

student*s;

case3.txt"

w"

//输出文件到根目录

if(head==NULL)

{fprintf(fp,"

没有信息。

\n"

printf("

fprintf(fp,"

学号姓名性别年龄宿舍号电话号码课程编号课程名称平时成绩考试成绩综合成绩学分是否重修重修次数重修情况\n"

-----------------------------------------------------------------------------------------------------------------------------------------------------------------\n"

for(i=1;

软件R%d班:

i);

s=head;

while(s!

=NULL)

if(s->

cla==i)

%13s%8s%s%d%9s%10s\n"

s->

stun,s->

name,s->

sex,s->

age,s->

dorn,s->

s->

%s%12s%5.1lf%5.1lf%5.1lf%3.1lf%s"

les[j].lessonn,s->

les[j].lessonname,s->

les[j].formalmark,s->

les[j].textmark,s->

les[j].mark,s->

les[j].point,s->

les[j].re);

if(strcmp(s->

les[j].re,"

%d"

les[j].restime);

for(k=0;

k<

les[j].restime;

k++)

/第%d次:

第%d学期,%.1lf分/"

k+1,s->

les[j].res[k].term,s->

les[j].res[k].resmark);

s=s->

next;

3.6按课程统计模块

按课程查看已修该课的学生的成绩情况

课程编号

逐个学生查找是否已修该课程

输出学生成绩情况到屏幕和文件”case4.txt”

voidlesstumark(student*head)

inti;

charlessonn[15];

case4.txt"

while

(1){

请输入课程编号(返回请输入0):

lessonn);

if(strcmp(lessonn,"

\n\t\t课程名称学号姓名平时成绩考试成绩综合成绩学分是否重修\n"

\t\t--------------------------------------------------------------------------------\n"

for(i=0;

les[i].lessonn,lessonn)==0)//查找该学生是否已修该课

\t\t%12s%13s%8s%5.1lf%5.1lf%5.1lf%3.1lf%s\n"

les[i].lessonname,s->

les[i].formalmark,s->

les[i].textmark,s->

les[i].mark,s->

les[i].point,s->

break;

3.7输出已修学分及不及格课程模块

查看所有学生已修学分及不及格课程

从头到尾检索每个学生已修学分及不及格课程

输出所有学生已修学分及不及格课程到屏幕和文件”case5.txt”

voidpointfail(student*head)

case5.txt"

\t\t学号姓名班级已修学分不及格课程\n"

\t\t学号姓名班级已修学分不

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2