学生管理系统课程设计5文档格式.docx

上传人:b****4 文档编号:17614999 上传时间:2022-12-07 格式:DOCX 页数:21 大小:176.08KB
下载 相关 举报
学生管理系统课程设计5文档格式.docx_第1页
第1页 / 共21页
学生管理系统课程设计5文档格式.docx_第2页
第2页 / 共21页
学生管理系统课程设计5文档格式.docx_第3页
第3页 / 共21页
学生管理系统课程设计5文档格式.docx_第4页
第4页 / 共21页
学生管理系统课程设计5文档格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

学生管理系统课程设计5文档格式.docx

《学生管理系统课程设计5文档格式.docx》由会员分享,可在线阅读,更多相关《学生管理系统课程设计5文档格式.docx(21页珍藏版)》请在冰豆网上搜索。

学生管理系统课程设计5文档格式.docx

三、需求分析

1、录入信息:

通过输入学号、姓名、高数成绩、英语成绩、C语言成绩、平均成绩、总成绩

实现信息的录入功能,并计算出总分。

2、输出功能:

显示输入的内容。

3、更新功能:

增加、修改、删除、查询一条或多条信息。

4、条件查询功能:

用户可选择不同的查询方式,如按学号、按姓名进行相应信息的查询。

  5、统计功能:

统计各科及格人数。

6、排序功能:

按学生平均成绩进行排序。

四、概要设计

1.系统结构图(功能模块图)和数据变量说明

对系统进行分析,给出系统总体结构。

五、详细设计及运行结果

流程图,函数之间相互调用的图示,程序设计及编码,运行结果

六、调试情况,设计技巧及体会

1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。

本程序基本符合本次实验的基本要求,实现了数据的录入、存储、读写、修改、删除、查询、统计、排序及输出等功能。

本程序的主程序中设有主菜单,主菜单中包括输入信息模块、输出信息模块、修改信息模块、添加信息模块、删除信息模块、信息查询模块及总成绩排行模块,其中查询选项之中可选择按学号查询和按姓名查询两种方式,输出模块能准确快速的将学生信息打印出来本程序运行时简洁明了,恰当的提示语句给程序应运带来了许多便利。

我学会了简单的设置一个密码。

..

不足之处:

使用结构体数组进行编程,不能实现按学号大小进行插入学生成绩信息,这一点会在今后的编写程序过程中加以注意,这一点可以使用链表方法进行插入,不能很好的使用指针和文件,在以后的编程中要逐渐学会使用文件和指针变量,链表。

2、在设计过程中的感受

通过此次实验,我基本掌握了如何对一个大的实际程序进行整体的安排

布局,以及如何将各个函数模块之间联系起来从而实现函数的调用,在此同时也熟悉了C语言的运行环境及程序编辑,编译,链接和运行过程,掌握了C语言的程序书写格式和C语言程序结构语句的使用,特别是if,switch,do-while和for语句,掌握了C语言数据类型,运算符,表达式等的使用方法,掌握了数组,结构体,指针,等的简单应用,培养了独立完成某个大程序的能力以及独立思考解决问题的能力,收获颇丰,还有在刚开始的总体构思完成后,对各个功能实现的过程中可以用小模块进行操作,比如,输入数据,输出数据,保存数据等..在一个个小模块中调试,最后各个小模块都完成后,在将所有的模块都放到一起进行调试,这样可以避免一些错误和弯路,且能快速的完成系统对各功能的要求。

七、参考文献

《C语言程序设计》作者:

王曙燕

八、附录:

源代码

/*学生管理系统*/

#include<

stdio.h>

/*编译预处理-文件包含(标准输入/输出函数)*/

stdlib.h>

/*编译预处理-文件包含(常用函数)*/

string.h>

/*编译预处理-文件包含(字符串处理函数)*/

typedefstructStudent

{charID[10];

/*学生学号*/

charname[20];

/*学生姓名*/

floatscore1;

/*高数成绩*/

floatscore2;

/*英语成绩*/

floatscore3;

/*C语言成绩*/

floataverage;

/*平均成绩*/

floatsum;

/*总成绩*/

inttongji;

}stu;

stustudents[100];

intnum=0;

floatAvg(stustu)/*求平均成绩*/

{

return(stu.score1+stu.score2+stu.score3)/3;

}

floatSum(stustu)/*求总成绩*/

return(stu.score1+stu.score2+stu.score3);

intSearchByIndex(charid[10])/*按学号查询*/

{inti;

for(i=0;

i<

num;

i++)/*从第一个学生信息起查找与输入要查询学号相同的学号*/

{

if(strcmp(students[i].ID,id)==0)/*字符串比较函数*/

{

returni;

}

return-1;

intSearchByname(charname[20])/*按姓名查询*/

{

inti;

i++)

if(strcmp(students[i].name,name)==0)/*字符串比较函数*/

{

returni;

}

voidDisplaySingle(intindex)/*显示单个学生*/

{printf("

%10s%10s%8s%8s%8s%10s%10s\n"

"

学号"

姓名"

数学"

语文"

C语言"

平均成绩"

总分"

);

printf("

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

%10s%10s%8.2f%8.2f%8.2f%10.2f%10.2f\n"

students[index].ID,students[index].name,students[index].score1,students[index].score2,students[index].score3,students[index].average,students[index].sum);

voidInsert()/*插入信息*/

while

(1)

{printf("

请输入学号:

"

scanf("

%s"

&

students[num].ID);

请输入姓名:

students[num].name);

请输入成绩:

%f"

students[num].score1);

students[num].score2);

students[num].score3);

getchar();

students[num].average=Avg(students[num]);

students[num].sum=Sum(students[num]);

num++;

是否继续?

(y/n)"

if(getchar()=='

n'

break;

voidCorrect()/*修改学生信息*/

{charid[20];

intindex;

请输入要修改的学生的学号:

id);

index=SearchByIndex(id);

if(index==-1)

printf("

学生不存在!

\n"

else

你要修改的学生信息为:

DisplaySingle(index);

--请输入新值--\n"

students[index].ID);

students[index].name);

students[index].score1);

students[index].score2);

students[index].score3);

students[index].average=Avg(students[index]);

students[index].sum=Sum(students[index]);

{break;

voidDelete()/*删除学生信息*/

{inti;

while

(1)

请输入要删除的学生的学号:

你要删除的学生信息为:

是否真的要删除?

y'

for(i=index;

num-1;

{

students[i]=students[i+1];

num--;

voidSelectByName()/*按姓名查询*/

{charname[20];

请输入要查询的学生的姓名:

name);

index=SearchByname(name);

你要查询的学生信息为:

DisplaySingle(index);

SelectByIndex()/*按学号查询*/

请输入要查询的学生的学号:

id);

if(index==-1)

\n按任意键进入主菜单!

return0;

voidshuru()/*输入信息*/

voidSort()/*按平均成绩排序(冒泡法)*/

{inti,j;

stut;

for(i=1;

for(j=1;

j<

=num-i;

j++)

if(students[i].average>

students[j].average)

{t=students[i];

students[i]=students[j];

students[j]=t;

voidDisplay()

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

students[i].ID,students[i].name,students[i].score1,students[i].score2,students[i].score3,students[i].average,students[i].sum);

voidRead()/*读取信息*/

FILE*fp;

/*定义文件指针*/

inti=0;

if((fp=fopen("

e:

\\xueshengguanli.txt"

rb"

))==NULL)

不能打开文件!

return;

while((fread(&

students[i],sizeof(stu),1,fp))==1)

i++;

}

fclose(fp);

voidWrite()/*写入信息*/

wb"

if(fwrite(&

students[i],sizeof(stu),1,fp)!

=1)

写入文件错误!

return;

voidtongji()

inti,k=0,q=0,j=0;

for(i=0;

i++)

{if(students[i].score1>

60)

k++;

高数及格人数为%d"

k);

{if(students[i].score2>

j++;

英语及格人数为%d"

j);

{if(students[i].score3>

q++;

c语言及格人数为%d"

q);

}

voidmain()

{intchoice,i,m,n;

m=1216;

for(i=1;

3;

\n请输入密码:

%d"

n);

if(m==n)

请进入系统"

{printf("

不能进入系统"

}

Read();

do

\n------学生成绩管理系统------\n"

1.显示全部记录\n"

2.增加学生记录\n"

3.修改学生记录\n"

4.删除学生记录\n"

5.按姓名查询学生记录\n"

6.按学号查询学生记录\n"

7.按平均成绩排序\n"

8.输入成绩\n"

9.统计\n"

10.退出\n"

请选择(1-10):

choice);

//getchar();

switch(choice)

{case1:

Display();

break;

case2:

Insert();

case3:

Correct();

case4:

Delete();

case5:

SelectByName();

case6:

SelectByIndex();

case7:

Sort();

case8:

shuru();

case9:

tongji();

case10:

break;

}while(choice!

=10);

Write();

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

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1