班级档案管理系统Word格式文档下载.docx
《班级档案管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《班级档案管理系统Word格式文档下载.docx(21页珍藏版)》请在冰点文库上搜索。
录入函数:
voidGetInfo()
显示函数voidDisplay()
保存函数voidSave()
输出函数:
voidprint()
1.GetInfo()是录入函数,主要是录入学生的基本信息。
2.Display()是显示函数,就是把学生的基本信息显示在电脑上。
3.Save()是保存函数,就是在把学生基本信息的保存下来。
4.Delete()是删除函数,把不要的信息删除。
5.Modfiy()是修改函数,修改错误的学生基本信息。
6.print()是输出函数。
2.2班级档案管理系统
structstudent//设定一个内容为学生信息的结构体
{charname[10];
//名字的长度允许最大为十
charno[10];
//学号的长度允许最大为十
charsex;
intage;
//定义年龄为整型
charbnote[100];
//备注的长度为允许最大100};
2.3各个程序的功能介绍
-14-
利用无限次循环例如for(;
;
)while()和switch()语句实现各函数的调用,系统根据输入的数字选项来调用相应的函数。
用来录入学生的基本信息。
显示函数:
把录入的学生基本信息直观的显示在桌面上。
保存函数:
可以保存学生信息。
退出函数:
可以用来退出系统以保证学生信息的安全。
2.4系统结构图
图3.4
-15-
三模块设计分析
3.1总体程序线路流程图解
图4.1
-16-
3.2学生基本信息录入
程序编写:
voidgetinfo(strutstudent*arr,intn)//函数调用{
for(inti=0;
i<
n;
i++)
{
printf(“输入学生的基本信息:
nameagebnote\n”);
scanf(“%s%s%c%d%s”,arr[i].name,arr[i].no,&
arr[i].sex,
arr[i].age,&
arr[i].bnote);
3.3学生基本信息的显示
voiddisplay(structstudent*arr,intn)//函数调用{
printf(“学生信息:
namenosexagenote\n”);
printf(“%20s%20s%20c%20d%20s\n”,arr[i].name,arr[i].no,&
}
}
3.4学生基本信息的保存
voidsave(structstudent*arr,intn)//函数调用
-17-
{file*fp;
fp=fopen(“c:
\\student.txt”,”w+”);
If(fp=null)
{printf(“文件不存在~\n”);
exit(0);
fwrite(arr,sizeof(structstudent)*n,n,fp);
fclose(fp);
图4.4
-18-
四测试与结果分析
4.1测试的方案
1.系统验证技术。
2.系统确认技术。
3.系统测试技术。
i.将编好的源代码放到C语言的运行环境中去运行,通过运行找出其中的错误或者是输入的不规范的地方,加以改正,还有就是试一下程序到底能不能运行,是不是满足课程设计的题目的要求。
ii.把已经整理好的源代码放到C语言的运行环境去调试一下,就是确认这个源程序代是否正确。
iii.用运行系统测试源程序代码。
4.2存在的问题
在我们编好程序的时候其实还有很多问题的当然这是一个过程,可以说错误基本上是不可避免的,比如说“一些输入的格式问题和由于习惯性的错误而导致的错误等等。
我个人认为系统调试需要比较扎实的基本功以及充分的细心,c语言中有一些错误并不是直接明了的。
在这个时候就需要我们有耐心慢慢的去找自己的错误,有些错误是由于一些不良操作习惯造成的,而且往往很难发现,因为这类错误都是平时自己不怎么注意的,所以就是产生了也很难查出来,这就要求我们平时养成良好的习惯。
比如花括号的使用,我
-19-
最开始编写的一个程序有一个错误,但是我就是怎么也查不出来,而且因为操作习惯不好,整个程序毫无层次感,花括号也是成一列排放,没有一一分层对应。
后来实在找不出原因就请教了老师。
指导老师看了之后将我的程序重新排布了一遍,发现有一个花括号前后没有对应。
其实在简单的程序中,花括号缺损可以很快发现,因为会有直白的提醒,但是在较复杂的程序中,一个花括号的缺损也许会造成其他很多错误的产生,如果有良好操作习惯,可以很快发现这个小问题。
所以我觉得,我们的基础应该牢实~要不然就会犯下很多那种没必要的错误。
可以说是低级失误~通过系统调试我学会了很多东西。
我们要注重基础,因为我们有时就是因一个基础知识点没学会,从而产生很多的错误。
-20-
五总结
通过这次课程设计我学到了许多感觉自己的知识的不够这次数据库课程设计的“班级档案管理系统”,通过在机房的不断调试和修改其中错误加上验证和测试使得对该系统的运用已经能够已经得到了充分的应用了。
所学的数据库的知识,并去图书馆查阅了一些书集和上网搜索一部分资粗略设计出该系统。
总体上来说,这次课程设计还是比较成功的。
当然,由于学艺不精,在课程设计的过程中也碰到的一些问题。
其中,总体规划,材料太多,不易整理;
相关数据库技术方面没有多注意,这次课程设计的重点只在对整个系统的总体思路设计。
其实这些通过最近的课程设计觉得最重要一点就是:
我们一定要自己动手,这样才能真正的学到东西。
书本知识固然重要,但我们更要学会将书本知识应用到实际中才会发现错误,也才能改进,才能达到学习的最终目的。
但我出总结出了一点点的经验如下:
1、要对系统的功能和要求做出详细的分析,并合理分解任务。
2、把分解出来的子任务,做给一个相对独立的模块。
3、在设计一个模块之前,要简单构想一下总界面的显视情况。
4、针对构想出来的界面进行程序的编写。
虽然我的课程设计师存在许多的问题,究其原因还是因为自己平时没有认真听老师讲课,但是我还是希望老师能够白忙中抽空看看我的课程设计的报告,我将非常感谢~
-21-
六附录
程序运行效果图
输入密码123,进入档案管理系统界面:
图6.1输入1,信息录入界面:
-22-
图6.2
输入2,进入学生基本信息显示:
图6.3
输入6,进入学生基本信息查询界面,同时选择学号02的同学:
图6.4
-23-
参考文献
[1]谭浩强著《c程序设计(第四版)》清华大学出版社[2]谭浩强著《c程序设计与学习辅导》清华大学出版社[3]《MicrosoftVisualC++6.0指南》
-24-
源代码
include<
stdio.h>
#
#include<
stdlib.h>
#include<
string.h>
conio.h>
#defineN3
structstudent{charname[10];
Charsex;
intage;
};
voidprint(boolmenu){
if(!
menu)
printf("
学生基本信息录入,press1\n"
);
else
学生基本信息显示,press2\n"
-25-
学生基本信息保存,press3\n"
学生基本信息删除,press4\n"
学生基本信息修改,press5\n"
学生基本信息查询,press6\n"
退出学生信息系统,press7\n"
boolCheck(charpas[6]){
FILE*fp;
charch;
chara[7]={"
"
};
inti=0;
if((fp=fopen("
c:
\\1.txt"
"
r"
))==NULL)
打开文件失败!
\n"
exit(0);
ch=fgetc(fp);
while(ch!
=EOF&
&
6)
{a[i]=ch;
i++;
-26-
a[6]='
\0'
strcmp(pas,a))
returntrue;
密码错误\n"
returnfalse;
voidGetInfo(structstudent*arr,intn){for(inti=0;
输入学生的基本信息:
namenosexagebnote\n"
scanf("
%s%s%c%d%s"
arr[i].name,arr[i].no,&
arr[i].sex,&
arr[i].age,arr[i
].bnote);
voidDisplay(structstudent*arr,intn){
学生信息:
NameNOSexageNote\n"
for(inti=0;
-27-
%15s%15s%15c%15d%15s\n"
arr[i].name,arr[i].no,arr[i].sex,arr[i].ag
e,arr[i].bnote);
voidSave(structstudent*arr,intn){
FILE*fp;
fp=fopen("
\\student.txt"
w+"
if(fp==NULL)
{printf("
文件不存在!
voidModfiy(structstudent*arr,intn){charnumber[10];
boolflag=false;
charpass[6];
请输入密码:
scanf("
%s"
pass);
if(Check(pass))
修改学生信息:
请输入学号:
-28-
number);
for(inti=0;
strcmp(number,arr[i].no))
infor:
namenosexagenote\n"
%12s%12s%12c%12d%12s\n"
arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
pleaseinputinformation:
%s%s%c%d%s"
arr[i].age,arr[i].bno
te);
Save(arr,n);
flag=true;
if(flag==false)
该学生不存在!
:
voidDelete(structstudent*arr,intn){
charnumber[10];
-29-
Deleteinformation:
pleaseinputtheno:
strcpy(arr[i].name,"
strcpy(arr[i].no,"
strcpy(arr[i].bnote,"
arr[i].sex='
'
arr[i].age=0;
if(flag==true)
{printf("
voidSearch(structstudent*arr,intn)
inttemp,i;
-30-
---------------通过学号查询,press1-------------\n"
---------------通过姓名查询,press2-----------\n"
---------------通过性别查询,press3------------\n"
---------------通过年龄查询,press4------------\n"
---------------退出,press5------------\n"
%d"
&
temp);
switch(temp)
case1:
charnum[10];
num);
for(i=0;
strcmp(num,arr[i].no))
flag)
该学生不存在.\n"
-31-
break;
case2:
pleaseinputname:
strcmp(num,arr[i].name))
%12s%12s%12c%12d%12s"
case3:
-32-
请输入性别:
if(ch==arr[i].sex)
t该学生不存在.\n"
case4:
charnum_age;
请输入年龄:
num_age);
if(num_age==arr[i].age)
-33-
default:
voidmain()
structstudentarr[N];
charps[6];
boolflag=false;
-34-
ps);
flag=Check(ps);
if(flag)
intselect;
print(false);
select);
while(0<
select&
select<
7)
switch(select)
GetInfo(arr,N);
print(true);
Display(arr,N);
Save(arr,N);
-35-
Delete(arr,N);
case5:
Modfiy(arr,N);
case6:
Search(arr,N);
请选择:
}}}
-36-