学生基本信息管理系统Word文档格式.doc
《学生基本信息管理系统Word文档格式.doc》由会员分享,可在线阅读,更多相关《学生基本信息管理系统Word文档格式.doc(29页珍藏版)》请在冰点文库上搜索。
信息修改
信息添加
退出系统
输入学生的相关信息
显示学生的相关信息
按姓名查询
按学号查询
更新保存的学生信息
对新加的学生进行信息录入
菜单选择
安全模块
系统模块图
其中:
信息输入模块完成学生信息的输入功能,输入信息包括学生号、姓名、性别、出生年月、成绩、专业.住址、电话等;
信息浏览模块完成已录入学生信息的显示;
信息查询模块完成学生信息的查询,查询时对应有按姓名查询和按学号查询两种方式;
信息修改模块完成学生信息的修改功能;
信息删除模块完成学生信息的删除功能;
安全模块是进入系统需要用户名字和密码;
菜单选择模块完成用户命令的接收,此模块也是职工信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能;
2数据结构
本系统中主要的数据结构就是学生的信息,包含学生号、姓名、性别、出生年月、成绩、专业、住址、电话等,在处理过程中各项可以作为一个学生的不同属性来进行处理
3程序流程
系统的执行应从功能菜单的选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。
系统的流程图如下:
开始
用户登录
信息输入
浏览
查询
按学号
按姓名
删除
修改
添加
保存文件
结束
程序流程图
详细设计
编写目的:
根据项目概要设计说明书,在项目概要设计的基础之上,对系统进行详细设计,以便下一步进行程序编码工作。
详细设计:
对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:
1安全模块
printf("
请输入用户名,\n"
);
scanf("
%s"
x);
if(strcmp(x,y)==0)
{
printf("
请输入密码,\n"
scanf("
%d"
&
ma);
while(ma==123456)
通过比较语句来判定输入人名和密码的正确如果正确进入菜单模块;
2菜单模块
通过while语句
给出信息提示;
清屏;
绘制菜单(包含输入,浏览,查询,修改,删除,排序,保存,退出);
提示菜单选择并读入到变量;
根据读入变量的值调用不同的模块函数;
3信息录入模块
打开文件
While()
{清屏;
按照提示输入各种信息;
While
显示各种信息;
通过选择1.确认并继续2.重新填写3.放弃并返回4.确认并返回
选择四种功能;
}
4信息浏览模块
While()
{清屏;
用for语句依次按照顺序输出学生信息
通过选择可以翻页1.上一页2.下一页0.退出
5信息查询
{通过菜单式的选择是学号查询还是姓名
printf("
******学生信息管理系统******"
\n----------检索----------"
\n您想要:
"
\n1.按学号检索"
\n2.按姓名检索"
\n3.返回主菜单"
\n****************************\n"
如果选择学号进入学号模块
通过输入学号
If(学号存在继续)
{输出学生信息
Else输出无此学生
如果选择姓名进入姓名模块
If(根据比较姓名判断学生是否存在)
6删除模块
while(继续删除)
{
提示并读入待删除的学生的学生号;
显示要删除的信息
删除成功
7信息修改模块
输入要修改学生信息的学号:
If(判断是否有此学生)
{菜单形式显示要修改的项目
\n1.姓名2.年龄3.性别4.出生年月5.地址6.电话7.E-mail\n"
printf("
\n8.数学9.英语\n"
Swich()
{选择要修改的项目进行修改
8打开文件模块
voidfileopen()
FILE*fp;
intn;
if((fp=fopen("
data"
"
r+"
))==NULL)
fp=fopen("
w+"
for(n=0;
n<
100;
n++)
fread(&
stu[n],sizeof(structstudent),1,fp);
stunum,4,1,fp);
fclose(fp);
9保存文件模块
voidfilesave()
fwrite(&
保存成功!
pressEntertocontinue.."
getch();
10退出模块
case'
8'
:
ma=0;
break;
用的是跳出while语句
回到安全模块
11排序模块
通过冒泡排序法
for(m=0;
m<
y-1;
m++)
for(x=m+1;
x<
y;
x++)
if(stu[m].sum<
stu[x].sum)
{
stu[99]=stu[m];
stu[m]=stu[x];
stu[x]=stu[99];
stu[99].id=stu[x].id;
stu[x].id=stu[m].id;
stu[m].id=stu[99].id;
}
排序后的顺序为:
\n"
然后显示排序好后的学生信息;
学生基本信息结构体是
structstudent
intid;
charname[30];
intage;
charsex[6];
charbirthday[12];
charadd[80];
chartel[15];
charemail[25];
intmath;
intenglish;
intsum;
}stu[100]
系统的性能测试
1安全模块
通过输入正确的用户名才能进入此系统。
2菜单显示
进入系统后便来到菜单界面通过选择进入不同的模块
3录入函数;
通过选择菜单1进入录入模块下面是录入信息的界面
上面截图是通过选择可以继续可以重写放弃和保存
4浏览模块
如果选择2可以进入浏览模块包括学生的课中基本信息
5学号查找模块
6姓名查找
7修改模块
修改模块可以通过选择分别修改姓名年龄性别等信息依次修改
修改后的信息
8保存模块
9排序模块
通过总分的大小从大到小排序
排序前的截图
排序后的截图
10删除模块
11退出模块
程序清单
#include<
stdio.h>
conio.h>
string.h>
stdlib.h>
intstunum=0;
structstudent//结构体
}stu[100];
voidcheck()//查询函数
voidjsid();
voidjsname();
inta;
charch;
while(a)
system("
cls"
ch=getchar();
switch(ch)
case'
1'
jsid();
2'
jsname();
3'
a=0;
}
voidfileopen()//打开文件
voidfilesave()//保存文件
voideditname(intn)//按照名字修改
\n新姓名:
stu[n].name);
voideditage(intn)//修改年龄函数
\n新年龄:
stu[n].age);
voideditsex(intn)//修改性别函数
\n新性别:
stu[n].sex);
voideditbir(intn)//修改生日
\n新出生年月"
stu[n].birthday);
voideditadd(intn)
\n新地址:
//修改地址
stu[n].add);
voidedittel(intn)//修改电话
\n新电话:
stu[n].tel);
voideditemail(intn)
\n新E-mail:
//修改邮箱
stu[n].email);
voideditmath(intn)//修改数学成绩
\n新数学:
stu[n].math);
stu[n].sum=stu[n].math+stu[n].english;
voideditenglish(intn)//修改经与成绩
\n新英语:
stu[n].english);
stu[n].sum=stu[n].math+stu[n].english;
voidlast(intn)
if(n==stunum)
\n已检索到末尾。
\nPressanykeytocontinue.."
voidedit()//修改函数
charch;
inta=1,b;
intn;
while(a)
{ system("
printf("
\n请输入你想修改的人的学号:
scanf("
n);
if(n<
=stunum)
n=n--;
printf("
学号姓名年龄性别出生年月\n"
printf("
%4d"
stu[n].id);
%12s"
stu[n].age);
%4s"
%8s\n"
\n\n\n学号电话E-mail地址\n"
%15s"
%s\n"
stu[n].add);
\n\n\n数学英语总分\n"
printf("
%4d"
stu[n].math);
printf("
%15d"
stu[n].english);
printf("
%15d\n"
stu[n].sum);
printf("
\n请输入你想修改的内容:
printf("
getchar();
ch=getchar();
switch(ch)
{
case'
editname(n);
editage(n);
case'
editsex(n);
4'
editbir(n);
5'
editadd(n);
6'
edittel(n);
7'
editemail(n);
case'
editmath(n);
9'
editenglish(n);
}
b=1;
while(b)
{
printf("
\n确认吗?
(y/n)"
ch=getchar();
switch(ch)
case'
Y'
b=0;
y'
N'
n'
}
}
voiddelect()//删除函数
{intn,a;
system("
\n请输入想要删除人的学号:
n=n--;
for(a=n;
a<
=stunum;
a++)
strcpy(stu[a].name,stu[a+1].name);
stu[a].age=stu[a+1].age;
strcpy(stu[a].sex,stu[a+1].sex);
strcpy(stu[a].birthday,stu[a+1].birthday);
strcpy(stu[a].add,stu[a+1].add);
strcpy(stu[a].tel,stu[a+1].tel);
strcpy(stu[a].email,stu[a+1].email);
stu[a].math=stu[a+1].math;
stu[a].english=stu[a+1].english;
stu[a].sum=stu[a+1].sum;
stunum--;
删除成功!
voidjsid()//按照学号查询
intn,i=0;
\n请输入想要检索的学号:
if(n<
n=n--;
printf(