学生信息管理系统高级语言程序设计报告文档格式.docx
《学生信息管理系统高级语言程序设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统高级语言程序设计报告文档格式.docx(43页珍藏版)》请在冰豆网上搜索。
1)将烦琐复杂的排序等工作用计算机完成。
2)将各类信息分开方便查询和修改。
3)记录外来人员的信息。
4)将管理人员和非管理人员分开,就是非管理人员只能查询和查看排序表。
5)管理人员进入页面需要登陆,账号密码通过注册获得,注册时需要管理人员确认码(1234)。
3.本系统的运行环境是Visualc++。
四、概要设计
1.系统结构图(功能模块图)
2、程序可以满足以下功能:
(1).各模块间通过菜单切换和调用
(2).主函数通过调用菜单函数实现对各功能模块的调用,各功能模块间根据需要可相互调用。
(3).程序能够保证各模块功能的独立和数据共享。
3.各功能介绍:
(1):
输入功能:
进入主菜单后,选择一个界面(管理人员界面或非管理人员界面),输入有关信息。
(2):
输出功能:
屏幕上输出录入的的相关信息。
(3):
排行功能:
将输入的新秀按学号由小到大进行排序。
(4):
查询功能:
查询录入的相关信息。
(5):
修改功能:
将学生的密码进行修改。
(6):
添加功能:
可以任意添加相关信息。
五、详细设计及运行结果
1、公寓管理系统模块图:
2、运行结果:
初始界面:
管理员系统:
输入学生的信息:
输出按学号排行情况:
输出按姓名排序的情况:
学生的新信息:
公寓物品信息录入
更改密码
流程图,函数之间相互调用的图示,程序设计及编码,运行结果
六、调试情况,总结及体会
1.调试情况:
几经周折写完程序进行调试,一开始直接提示102个Errors还有几个Warnings,感觉自己程序做的也太失败了,看看周围其他同学也都在进行调试,每个人都会出现各种各样的错误,大家都在认真找错,自己也就静下心来一个错误一个错误改正。
在那些错误当中发现好多都是犯同一个错,有的是自己粗心输入错误,例如:
把revise输成revese之类的拼写小错误,很明显的错误自己只要认真找找都能改掉,而有的虽然光标已经明显指出哪错的,但是自己还是不会改,找同学帮着也改了不少错误,许多函数都没定义,别人指出一点,自己就能改掉所有这一类型的好多错,以后遇见这些问题自己就再也不会犯了,之后还遇见多输入了一个花括号,导致程序出现好几个错误。
认真改完所有错误之后,当提示0Errors,0Warnings的时候,调试成功了!
2.主要问题:
刚开始时在结构体中加了循环导致错误,还在老师提醒,指出错误,再将所有的程序修改;
在字符串比较大小时没将两字符串的占用内存设置一样,导致无法比较;
设置密码系统时开始无法使密码正确输入,经过参考同学的程序找到了问题所在。
3.我的体会:
在VC++环境下运行与在TC下运行有很多不同,像getch()等一些函数都需要先定义,不过在VC++下可以用中文,而且可以设置页面的颜色。
编写程序时很枯燥,但经过程序的不断完善,心情越来越好,而且经过和同学的一些交流可以曾加自己的知识面,通过分工,在网上找到一些好的方法一起研究,也拓宽了自己的知识面,运用指针文件在一知半解的情况下,仿照课本上的例子也成功运用了。
觉得这两个星期的实习,不但把以前的只是复习了,而且将原本零散的知识串到了一起。
有的自己一个人改不了的错误找同学帮着也改了不少,许多函数都没定义,别人指出一点,自己就能改掉所有这一类型的好多错,而这些错误自己找了好长时间也还是没找出来,所以在实习期间也发现一定要不懂就问,虚心接受别人的意见,取别人之长补自己之短。
有些错误大家都改不了的就找老师帮忙,老师看看程序,几下就解决了,所以从老师身上自己也学会了很多东西。
总之,这次实习自己受益匪浅!
七.源代码:
#include<
string.h>
#include<
stdio.h>
conio.h>
stdlib.h>
#defineN20
#defineMAX20
#defineM20
#definemessage1printf("
\n----------------------公寓号:
%d--------------------\n"
student[i].num)
#definemessage2printf("
\n姓名:
%6s性别:
%4s******\n"
student[i].name,student[i].sex)
#definemessage3printf("
\n年龄:
%6d学号:
%4d*照片*\n"
student[i].age,student[i].xuehao)
#definemessage4printf("
\n系别:
%8s******\n"
student[i].grade)
#definemessage5printf("
goods[j].num1)
#definemessage6printf("
\n桌子:
%4d坏:
%4d\n"
goods[j].desk1,goods[j].desk2)
#definemessage7printf("
\n椅子:
goods[j].chair1,goods[j].chair2)
#definemessage8printf("
\n衣柜:
goods[j].yigui1,goods[j].yigui2)
#definemessage9printf("
\n床:
goods[j].bed1,goods[j].bed2)
#definemessage10printf("
\n其它需维修的物品:
%s\n"
goods[j].other)
#definemessage11printf("
\n外来人员姓名:
%s,性别:
%s,年龄:
%d,证件号:
%d.\n"
people[k].name,people[k].sex,people[k].age,people[k].card)
intsum1,sum2,sum3,sum4;
structstudent_type/*学生成员信息*/
{intnum;
charname[10];
charsex[10];
intxuehao;
intage;
chargrade[30];
}student[MAX];
voidsave_message1(intsum1)/*保存学生信息*/
{FILE*fp1;
inti;
if((fp1=fopen("
student.txt"
"
wt"
))==NULL)
{printf("
读文件错误!
\n"
);
return;
}
for(i=0;
i<
sum1;
i++)
if(fwrite(&
student[i],sizeof(structstudent_type),1,fp1)!
=1)
printf("
写文件错误!
fclose(fp1);
structgoods_type/*公寓物品信息*/
{intnum1;
intdesk1;
intdesk2;
intbed1;
intbed2;
intchair1;
intchair2;
intyigui1;
intyigui2;
charother[40];
}goods[N];
voidsave_message2(intsum2)/*保存物品信息*/
{FILE*fp2;
intj;
if((fp2=fopen("
goods.txt"
wb"
for(j=0;
j<
sum2;
j++)
goods[j],sizeof(structgoods_type),1,fp2)!
fclose(fp2);
structzhu_type/*密码信息*/
charmima[20];
}zhu[N];
voidsave_message4(intsum4)/*保存密码信息*/
{FILE*fp4;
intk;
if((fp4=fopen("
mima.txt"
{
return;
}
for(k=0;
k<
sum4;
k++)
zhu[k],sizeof(structzhu_type),1,fp4)!
fclose(fp4);
structpeople_type/*外来人员信息*/
{charname[10];
intcard;
}people[M];
voidsave_message3(intsum3)/*保存外来人员信息*/
{FILE*fp3;
if((fp3=fopen("
people.txt"
sum3;
people[k],sizeof(structpeople_type),1,fp3)!
fclose(fp3);
voidinput_message1()/*输入学生或物品信息*/
{inti,j,a,s,b;
\n\n输入学生或物品信息\n\n"
\n选择:
1:
先输入学生信息;
\n"
\n2:
直接输入物品信息。
scanf("
%d"
&
a);
switch(a)
{case1:
MAX;
{system("
cls"
\n请输入姓名:
%s"
student[i].name);
\n请输入公寓号:
student[i].num);
\n请输入性别:
student[i].sex);
\n请输入年龄及学号:
%d%d"
student[i].age,&
student[i].xuehao);
\n请输入所在系别:
student[i].grade);
\n是否继续输入(是1,否2)?
b);
if(b==2)break;
\n是否输入公寓物品信息(是1,否2)?
s);
if(s==2){i++;
sum1=i;
break;
if(s==1){i++;
case2:
N;
goods[j].num1);
\n请输入桌子、椅子、床及衣柜的数量:
%d%d%d%d"
goods[j].desk1,&
goods[j].chair1,&
goods[j].bed1,&
goods[j].yigui1);
\n请输入已损坏的桌子、椅子、床及衣柜的数量:
goods[j].desk2,&
goods[j].chair2,&
goods[j].bed2,&
goods[j].yigui2);
\n请输入其它需要修理的物品信息:
goods[j].other);
if(b==2){j++;
sum2=j;
break;
default:
\n错误\n"
\n公寓信息输入完毕\n"
getch();
voidinput_message2()/*外来人员输入信息*/
{intk,choice;
for(k=sum3;
M;
\n请输入姓名\n"
people[k].name);
\n请输入性别\n"
people[k].sex);
\n请输入年龄\n"
people[k].age);
\n请输入你的证件号(后四位):
people[k].card);
\n是否继续输入新信息?
(是1,否2)\n"
choice);
if(choice==2){k++;
sum3=k;
\n人员已经登记\n"
\n谢谢\n"
intread_message1()/*读取信息1*/
inti=0;
rb"
\n\n没有信息\n\n"
returni;
while(feof(fp1)!
fread(&
student[i],sizeof(structstudent_type),1,fp1);
if(student[i].num==0)break;
elsei++;
return(i);
intread_message2()/*读取信息2*/
intj=0;
if((fp2=fopen("
returnj;
while(feof(fp2)!
{fread(&
goods[j],sizeof(structgoods_type),1,fp2);
if(goods[j].num1==0)break;
elsej++;
return(j);
intread_message3()/*读取信息3*/
intk=0;
if((fp3=fopen("
returnk;
while(feof(fp3)!
people[k],sizeof(structpeople_type),1,fp3);
if(people[k].card==0)break;
elsek++;
return(k);
intread_message4()/*读取信息4*/
{
FILE*fp4;
if((fp4=fopen("
while(feof(fp4)!
zhu[k],sizeof(structzhu_type),1,fp4);
if(zhu[k].num==0)break;
voidinsert_message()/*添加信息*/
{intchoice,j,i,a,b;
system("
\n\n---------------------添加公寓信息---------------------\n\n"
\n1:
添加公寓物品信息\n"
\n2:
添加学生信息\n"
\n请选择1或2。
switch(choice)
case1:
for(j=sum2;
\n请输入新增的公寓号\n"
是否继续?
是1,否2"
if(a==2){j++;
for(i=sum1;
\n请输入新增人员姓名:
\n请输入公寓号:
\n请输入性别:
if(b==2){i++;
sum1=i;
\n添加信息完毕\n"
voiddel_message()/*删除信息*/
{intchoice,del_xuehao,i,n,j,k,del_num1,a,x;
longintdel_card;
\n请选择要删除的信息类别:
学生信息;
公寓物品信息;
\n3:
外来人员登记信息;
{do
\n请输入要删除的学生学号:
del_xuehao);
x=0;
if(del_xuehao==student[i].xuehao)
if(i==0&
&
sum1==1)
{student[i].num=0;
memset(student[i].name,0,sizeof(student[i].name));
student[i].age=0;
student[i