软件工程课程设计报告实验报告学生信息管理系统文档格式.docx
- 文档编号:4590152
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:42
- 大小:752.91KB
软件工程课程设计报告实验报告学生信息管理系统文档格式.docx
《软件工程课程设计报告实验报告学生信息管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计报告实验报告学生信息管理系统文档格式.docx(42页珍藏版)》请在冰点文库上搜索。
键盘
鼠标
打印机
主模块
V
管理模块
查询模块
3.2.3内部接口
说明本系统之内的各个系统元素之间的接口的安排。
数据库接口设计采用
ADO连接方式
模块名称
管理员验证模块
用户查询界面
管理界面
4.详细设计
4.1控制流程图
4.1.1主模块软件结构
4.1.2管理员登陆软件结构
4.1.3用户查询软件结构
4.2源程序流程图
运行主程序
新建保存文件
调用menuchoice
N
调用menu()
ksaveflag==1
输入
F
■
保存
*
■:
吒'
.操作选择select
*1:
Del()
2:
Add()
—3:
Qur()
4:
Modify()
+5:
lnsert()
6:
Tongji()
+7:
Sort()
8:
Save()
9:
System()
wrong()
调用menustudent()
menustudent()
输入select
5、项目测试
功能截图:
5.1登陆界面
5.2学生用户功能界面
5.3学生查询功能
5.4管理员管理界面
5.5管理员输入功能
5.6管理员删除功能
CJ^1iAj1\ZrtktoMAW-L.ejte
=====》〔Sf!
r)nhhyr»
imh^r=====〉?
Searchbyn^eplecisechoicell121:
2
inputtheexistingstudentnane:
honq
uress曰nykeytoreturn
5.7
管理员查询功能
CLJserE'
AD!
V:
N[-1'
Des<
tap\STUMAN-1
o山抚「
ModifystiKlontrrcordor:
STUDENT
nunbor!
n帀啊o
1-1-il
iConp!
Math;
Eng1
1A1.1
sum
jnicjI
p1
08196197jhong
!
—i---i
11
971
f——1
i“i
981r—i
1
991——1
2%
i
98.00
111
ii
Inputtheexisting^indentnunber:
H819619/
Wumter:
081%丄97.
Ndmt:
;
hung,inputnewridme:
xin
C1占牌score:
99jCIdti射u刚亡Scuire[0-1001!
98
Mathscore^8,MathSecret!
1«
U1:
99
Englishscore:
97EnglishScor&
[01001:
96
>
HodifysuLce^!
:
ruinbcr
flrine
Comp!
sun
1J二
imci
1
Qei%137
1_fH
ll
H一I
99;
一1
1一1
293
97.QB
01
1i
pre^s^nvkevtoreturn
文件保存名为:
STUDENT路径为:
C:
\
修改、查询、排列等功能。
本系统可进行维护,
标志:
提交可行性分析报告
提交项目开发计划
完成需求分析报告
完成软件分析与设计文档标志:
代码编写全部完成
完成软件测试,可投入使用
6、项目管理
6、1人员管理
团队负责人:
陶修赟
小组成员:
万富,洪鑫,汪贤惠,项鑫
6、2产品管理
本产品工作于Win-TC工作环境,用于对学生成绩的管理。
学生用户,可进行查询课
程成绩;
管理员可对学生及其成绩进行录入、修改。
6、3进程管理
可行性分析:
5月23日-5月24日项目开发计划:
5月25日-5月26日需求分析:
5月27日-5月27日
软件设计:
5月30日-6月1日
编程实现:
6月2日-6月10日软件测试:
6月13日-6月14日
6、4项目计划甘特图
0l:
r5=!
2=洌:
卑駆弓
纭1]程月田;
3lL^]2£
h-|2iimitih
0^332f.-
zne
:
011=5^130
ai常阳日
Elite
测駁吐日j
me
2ILl£
5j;
zrE
auMziQ2
3I1EE
HL康胭冃
v-ri甲远l盼E3
aftHSlBi
$
斛#ii
ilit13
2I1BE
LJL144fl]3H
JUL'
WrlJUqi
3U1科月诟5
w:
5厨曲甕
an筲朋冃(
7、编码
#include<
stdio.h>
#inelude<
stdlib.h>
#include"
string.h"
#inelude"
conio.h"
|sum|ave|mici|\n"
#defineHEADER3"
|11——|——1——|11——|"
#defineFORMAT"
|%-10s|%-15s|%4d|%4d|%4d|%4d|%.2f
|%4d|\n"
#defineDATA
p->
data.num,p->
data.name,p->
data.egrade,p->
data.mgrade,p->
data.cgrade,p->
data.total,p->
data.ave,p->
data.mingci
#defineEND"
\n"
intsaveflag=0;
/*是否需要存盘的标志变量*/
typedefstructstudent/*标记为student*/
{
charnum[10];
/*学号*/
charname[15];
/*姓名*/
intcgrade;
/*C语言成绩*/
intmgrade;
/*数学成绩*/
integrade;
/*英语成绩*/
inttotal;
/*总分*/
floatave;
/*平均分*/
intmingci;
/*名次*/
/*定义每条记录或结点的数据结构,标记为node*/
};
typedefstructnode
structstudentdata;
structnode*next;
}Node,*Link;
voidmenuchoice。
system("
cls"
);
/*清屏与clrscr()功能相同*/
textcolor(IO);
/*在文本模式中选择新的字符颜色*/
gotoxy(7,5);
cprintf(”TheStudents'
GradeManagementSystem\n"
gotoxy(7,8);
printf("
\nPleaseEnteryourchoice;
0enterstudents'
system\n\t\t\t"
printf(”"
1enterteachers'
system\n"
voidmenu()/*菜单函数*/{
/*清屏与clrscr()功能相同*/textcolor(10);
/*在文本窗口中设置光标,下同*/
cprintf(”
*1
input
record
delete
*\n"
gotoxy(7,10);
cprintf(”
*3
search
4
modify
gotoxy(7,11);
*5
insert
6
count
gotoxy(7,12);
*7
sort
reord
8
save
gotoxy(7,佝;
*9
display
quit
*************************
******************************
gotoxy(7,9);
*\n"
system
/*cprintf()送格式化输出至文本窗口屏幕中*/
}voidmenustudent()
TheStudents'
GradeManagementSystem\n”);
system*\n"
*************************************************************\n"
)・
}
voidprintheader()/*格式化输出表头*/
printf(HEADER1);
printf(HEADER2);
printf(HEADER3);
voidprintdata(Node*pp)/*格式化输出表中数据*/
Node*p;
p=pp;
printf(FORMAT,DATA);
voidWrong()/*输出按键错误信息*/
\n\n\n\n\n***********Error:
inputhaswrong!
pressanykeyto
continue**********\n"
getchar();
voidNofind()/*输出未查找此学生的信息*/
\n=====>
Notfindthisstudent!
\n"
voidDisp(Linkl)/*显示单链表I中存储的学生记录,内容为student结构中定义的数据项
*/
Node*p;
p=l->
next;
/*l存储的是单链表中头结点的指针,该头结点没有存储学生信息,指针域
指向的后继结点才有学生信息*/
if(!
p)
Notstudentrecord!
'
n"
return;
\n\n"
printheader();
/*输出表格头部*/
while(p)/*逐条输出链表中存储的学生信息*/
printdata(p);
p=p->
/*移动至下一个结点*/
Node*Locate(Linkl,charfindmess[],charnameornum[])/*用于定位链表中符合
要求的节点,并返回指向该节点的指针,findmess[]保存要查找的具体内容;
nameornum[]保存按什么查找;
在单链表I中查找;
Node*r;
if(strcmp(nameornum,"
num"
)==0)/*按学号查询*/
r=l->
next;
while(r)
if(strcmp(r->
data.num,findmess)==0)/*若找至Ufindmess值的学号*/
returnr;
r=r->
elseif(strcmp(nameornum,"
name"
)==0)/*按姓名查询*/
data.name,findmess)==0)/*若找至Ufindmess值的学生
姓名*/
r=r->
return0;
voidstringinput(char*t,intlens,char*notice)/*输入字符串,并进行长度验证(长度
<
lens)*/
charn[255];
do{
printf(notice);
/*显示提示信息*/
scanf("
%s"
n);
/*输入字符串*/
if(strlen(n)>
lens)printf("
\nExceedtherequiredlength!
\n"
/*进行长度校
验,超过lens值重新输入*/
}while(strlen(n)>
lens);
strcpy(t,n);
/*将输入的字符串拷贝到字符串t中*/
intnumberinput(char*notice)/*输入分数,0<
=分数<
=100)*/
intt=0;
%d"
,&
t);
/*输入分数*/
if(t>
100||t<
0)printf("
\nScoremustin[0,100]!
/*进行分数校验*/
}while(t>
0);
returnt;
voidAdd(Linkl)/*增加学生记录*/
Node*p,*r,*s;
/*实现添加操作的临时的结构体指针变量*/
charch,flag=0,num[10];
r=l;
s=l->
Disp(l);
/*先打印出已有的学生信息*/
while(r->
next!
=NULL)
next;
/*将指针移至于链表最末尾,准备添加记录*/
while
(1)/*一次可输入多条记录,直至输入学号为0的记录结点添加操作*/
while
(1)/*输入学号,保证该学号没有被使用,若输入学号为0,则退出添加记录
操作*/
格式化输入
stringinput(num,10,"
lnputnumber(press'
O'
returnmenu):
"
/*
学号并检验*/
flag=0;
if(strcmp(num,"
0"
)==0)/*输入为0,则退出添加操作,返回主界面*/
{return;
while(s)/*查询该学号是否已经存在,若存在则要求重新输入一个未被占用的
学号*/
if(strcmp(s->
data.num,num)==0)
flag=1;
break;
s=s->
if(flag==1)/*提示用户是否重新输入*/
=====>
Thenumber%sisnotexisting,tryagain?
(y/n):
num);
scanf("
%c"
&
ch);
if(ch=='
y'
||ch=='
Y'
)
continue;
else
{break;
}p=(Node*)malloc(sizeof(Node));
\nAllocatememoryfailure"
/*如没有申请到,打印提示信息*/
return;
strcpy(p->
data.num,num);
/*将字符串num拷贝至Up->
data.num中*/
stringinput(p->
data.name,15,"
Name:
data.cgrade=numberinput("
ClanguageScore[0-100]:
/*输入并检验
分数,分数必须在0—100之间*/
data.mgrade=numberinput("
MathScore[0-100]:
data.egrade=numberinput("
EnglishScore[0-100]:
data.total=p->
data.egrade+p->
data.cgrade+p->
data.mgrade;
计算总分*/
data.ave=(float)(p->
data.total/3);
/*计算平均分*/
data.mingci=0;
next=NULL;
/*表明这是链表的尾部结点*/
r->
next=p;
/*将新建的结点加入链表尾部中*/
r=p;
saveflag=1;
/*在main()有对该全局变量的判断,若为1,则进行存盘操作*/
voidQur(Linkl)/*按学号或姓名,查询学生记录*/
intselect;
/*1:
按学号查,2:
按姓名查,其他:
返回主界面(菜单)*/
charsearchinput[20];
/*保存用户输入的查询内容*/
l->
next)/*若链表为空*/
Nostudentrecord!
\n=====>
1Searchbynumber=====>
2Searchbyname\n"
pleasechoice[1,2]:
scanf("
&
select);
if(select==1)/*按学号查询*/
stringinput(searchinput,1O,"
lnputtheexistingstudentnumber:
p=Locate(l,searchinput,"
num"
/*在I中查找学号为searchinput值的节点,并
返回节点的指针*/
if(p)/*若p!
=NULL*/
printheader();
printf(END);
pressanykeytoreturn"
No
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 课程设计 报告 实验 学生 信息管理 系统