c语言班级档案管理系统word文档良心出品.docx
《c语言班级档案管理系统word文档良心出品.docx》由会员分享,可在线阅读,更多相关《c语言班级档案管理系统word文档良心出品.docx(20页珍藏版)》请在冰豆网上搜索。
c语言班级档案管理系统word文档良心出品
设计目的
全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和
c语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结
构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机
动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后
在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。
2任务概述
对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、
保存等操作的管理。
1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:
班号、学号、姓名、
性别、年龄。
2、本系统显示这样的菜单:
请选择系统功能项:
a. 学生基本信息录入 b. 学生基本信息显示 c. 学
生基本信息保存 d. 学生基本信息删除 e. 学生基本信息修改 f. 学生基本信息查询 (按学号查询)g.添
加学生基本信息 g. 退出系统
3、执行一个具体的功能之后,程序将重新显示菜单。
4、将学生基本信息保存到文件中。
5、进入系统之前要先输入密码。
6、 数据结构:
结构体类型数组
7、 数据库结构:
下表构成该系统的基本数据库。
班号:
charclaNum
学号:
charstuNum
姓名:
charname
性别:
charsex
年龄:
intage
3模块划分
班级档案管理系统包括:
a. 学生基本信息录入、 b. 学生基本信息显示 、c. 学生基本信息保存、 d. 学生基本信息删除 、e. 学生基本信息修改、 f. 学生基本信息查询 (按学号查询)、 g.添加学生基本信息、g. 退出系统 8个功能,功能模块图如图3所示。
图3功能模块图
4主要函数说明及其N-S图
主函数:
voidmain();程序的入口函数;
录入函数:
voidinput();录入学生的基本信息;
显示函数:
voidshow();显示出学生的基本信息
删除函数:
voiddelete();删除不用的信息;
修改函数:
voidModfiy();修改错误的学生信息;
查询函数:
voidquery();查询学生基本信息;
添加函数:
voidadd();添加新同学的信息;
(1)输入密码进入主菜单,如图4-1所示。
图4-1进入主菜单
(2)录入学生基本信息,如图4-2所示。
输入录入人数:
intn;
i有0到n-1执行n次循环
结束
图4-2录入学生基本信息
(3)显示学生基本系信息,如图4-3所示。
图4-3显示学生基本系信息
(4)保存学生基本信息,如图4-4所示。
图4-4保存学生基本信息
(5)查询学生基本信息,如图4-5所示。
图4-5查询学生基本信息
(6)修改学生错误信息,如图4-6所示。
图4-6修改学生基本信息
(7)删除学生基本信息,如图4-7所示。
图4-7删除学生基本信息
5程序运行数据及其结果
用户使用说明书:
(1)输入密码进入主菜单,程序截图如图5-1所示。
图5-1主菜单
(2)录入学生基本信息界面,程序截图如图5-2所示。
图5-2录入界面
(3)显示学生基本信息,程序截图如图5-3所示。
图5-3显示界面
(4)删除学生基本信息,程序截图如图5-4所示。
图5-4删除界面
(5)修改学生基本信息,程序截图如图5-5所示。
图5-5修改界面
(6)查询学生基本信息,程序截图如图5-6所示。
图5-6查询界面
(7)添加学生基本信息,程序截图如图5-7所示。
图5-7添加界面
6课程设计心得
通过这次课程设计我学到了许多感觉自己的知识的不够 这次数据库课程设计的“班级档案管理系
统”,通过在机房的不断调试和修改其中 错误加上验证和测试使得对该系统的运用已经能够已经得到了
充分的应用了。
去图书馆查阅了一些书集和上网搜索一部分资粗略设计出该系统。
总体上来说,这次课程设计还是比较成功的,充分运用了所学的软工程设计, 出N-S图,从整体
规划出系统的运行环境和系统实现的功能。
当然,由于学艺不精,在课程设计的过程中也碰到的一些问
题。
其中,画N-S图时,各实体中的关系的确定,由于对系统还不够了解而找不到一个准确的词来形容;
总体规划,材料太多,不易整理;相关数据库技术方面没有多注意,这次课程设计的重点只在对整个系
统的总体思路设计。
其实这些通过最近的课程设计觉得最重要一点就是:
我们一定要自己动手,这样才能真正的学到东
西。
书本知识固然重要,但我们更要学会将书本知识应用到实际中才会发现错误,也才能改进,才能达
到学习的最终目的。
但我出总结出了一点点的经验如下:
1、要对系统的功能和要求做出详细的分析,并合理分解任务。
2、把分解出来的子任务,做给一个相对独立的模块。
3、在设计一个模块之前,要简单构想一下总界面的显视情况。
4、针对构想出来的界面进行程序的编写。
虽然我的课程设计师存在许多的问题,究其原因还是因为自己平时没有认真听老师讲课,但是我还
是希望老师能够白忙中抽空看看我的课程设计的报告,我将非常感谢!
附录:
#include
#include
#include
#defineN100
structStudent
{
charclsNum[20];
charstuNum[20];
charname[10];
charsex[5];
intage;
};
structStudentstudent[N];
intn;
voidinput();
voidshow();
voidquery();
voidadd();
voidDelete();
voidsave();
voidmuen();
voidModfiy();
voidcode_M();
voidinput()
{
printf("***********************学生基本信息录入***********************");
system("cls");
inti;
printf("\t\t\t\t*请输入需要添加的人数:
[""]\b\b");
scanf("%d",&n);
for(i=0;i{
system("cls");
printf("*********请输入第%d个同学的信息:
",i+1);
printf("\t\t\t\t\n班号:
");
scanf("%s",&student[i].clsNum);
printf("\t\t\t\t\n学号:
");
scanf("%s",&student[i].stuNum);
printf("\t\t\t\t\n姓名:
");
scanf("%s",&student[i].name);
printf("\t\t\t\t\n性别:
");
scanf("%s",&student[i].sex);
getchar();
printf("\t\t\t\t\n年龄:
");
scanf("%d",&student[i].age);
getchar();
}
save();
puts("按任意键返回主菜单......");
muen();
}
voidadd()
{
inti;
intn1;
printf("***********************请输入新同学的信息:
***********************\n");
printf("\t\t\t\t*请输入需要添加的人数:
[""]\b\b");
scanf("%d",&n1);
for(i=n;i{
printf("\t请输入第%d个新同学的信息:
\n",n+n1);
printf("\t\t\t\t\n班号:
");
scanf("%s",&student[i].clsNum);
printf("\t\t\t\t\n学号:
");
scanf("%s",&student[i].stuNum);
printf("\t\t\t\t\n姓名:
");
scanf("%s",&student[i].name);
printf("\t\t\t\t\n性别:
");
scanf("%s",&student[i].sex);
getchar();
printf("\t\t\t\t\n年龄:
");
scanf("%d",&student[i].age);
getchar();
}
n=n+n1;
printf("按任意键返回主菜单......");
muen();
}
voidshow()
{
printf("***********************学生基本信息如下:
***********************\n");
inti=0;
for(i=0;i{
printf("第%d个同学的信息\n");
printf("\t\t\t\t*班号:
%s\n",student[i].clsNum);
printf("\t\t\t\t*学号:
%s\n",student[i].stuNum);
printf("\t\t\t\t*姓名:
%s\n",student[i].name);
printf("\t\t\t\t*性别:
%s\n",student[i].sex);
printf("\t\t\t\t*年龄:
%d\n",student[i].age);
}
puts("按任意键返回主菜单......");
getchar();
getchar();
muen();
}
voidsave()
{
FILE*fp;
fp=fopen("d:
\\student.txt","wb");
if(fp==NULL)
{
printf("*****************文件不存在!
****************\n");
exit(0);
}
fwrite(student,sizeof(structStudent)*n,n,fp);
fclose(fp);
}
voidload()
{
FILE*fp;
fp=fopen("d:
\\student.txt","rb");
if(fp==NULL)
{
printf("****************文件不存在!
****************\n");
exit(0);
}
fread(student,sizeof(structStudent)*n,n,fp);
fclose(fp);
}
voidDelete(){
printf("************************学生基本信息删除***********************\n");
inti=0;
charnumber[10];
intflag=0;
printf("**************删除信息:
\n");
printf("**************请输入学号:
");
scanf("%s",number);
for(i=0;i<=n;i++)
{
if(strcmp(number,student[i].stuNum)==0)
{
strcpy(student[i].clsNum,"");
strcpy(student[i].stuNum,"");
strcpy(student[i].name,"");
strcpy(student[i].sex,"");
student[i].age=0;
save();
flag=1;
}
show();
}
if(flag==0)
{
printf("****************该学生不存在!
****************\n");
printf("按任意键返回主菜单......");
}
getchar();
muen();
}
voidout()
{
system("cls");
code_M();
}
voidmuen()
{
system("cls");
puts("\n\n\t\t\t★★★★★★★★欢迎来到班级档案管理系统★★★★★★★★\t\t\t\n\n");
puts("\t\t\t\t\t学生基本信息录入press1\t\t\t\t");
puts("\t\t\t\t\t学生基本信息显示press2\t\t\t\t");
puts("\t\t\t\t\t学生基本信息保存press3\t\t\t\t");
puts("\t\t\t\t\t学生基本信息删除press4\t\t\t\t");
puts("\t\t\t\t\t学生基本信息修改press5\t\t\t\t");
puts("\t\t\t\t\t学生基本信息查询press6\t\t\t\t");
puts("\t\t\t\t\t学生基本信息添加press7\t\t\t\t");
puts("\t\t\t\t\t退出系统press8\t\t\t\t");
puts("*********************************************************************************************************");
puts("请选择:
");
inta;
scanf("%d",&a);
switch(a)
{
case1:
input();break;
case2:
show();break;
case3:
save();break;
case4:
Delete();break;
case5:
Modfiy();break;
case6:
query();break;
case7:
add();break;
case8:
out();break;
}
}
voidquery()
{
inttemp;
inti;
printf("\t\t\t\t通过学号查询press1\t\t\t\t\n");
printf("\t\t\t\t退出press2\t\t\t\t\n");
printf("请选择:
\n");
scanf("%d",&temp);
switch(temp)
{
case1:
{
intflag=0;
charn[10];
printf("请输入学号:
\n");
scanf("%s",&n);
for(i=0;i{
if(strcmp(n,student[i].stuNum)==0)
{
printf("\t\t\t\t班号:
%s,\n",student[i].clsNum);
printf("\t\t\t\t学号:
%s,\n",student[i].stuNum);
printf("\t\t\t\t姓名:
%s,\n",student[i].name);
printf("\t\t\t\t性别:
%s,\n",student[i].sex);
printf("\t\t\t\t年龄:
%d,\n",student[i].age);
printf("请选择:
\n");
flag=1;
}
}
if(flag==0)
{
printf("\t\t\t\t该学生不存在!
\n");
}
}
break;
default:
break;
}
getchar();
getchar();
muen();
}
voidModfiy()
{
charn[10];
intflag=0;
printf("\t\t\t\t*修改学生信息:
\n");
printf("\t\t\t\t*请输入学生学号:
");
scanf("%s",&n);
inti;
for(i=0;i{
if(strcmp(n,student[i].stuNum)==0)
{
printf("学生基本信息如下:
\n");
printf("班号:
%s\n",student[i].clsNum);
printf("学号:
%s\n",student[i].stuNum);
printf("姓名:
%s\n",student[i].name);
printf("性别:
%s\n",student[i].sex);
printf("年龄:
%d\n",student[i].age);
printf("请输入学生信息:
\n");
printf("\n班号:
");
scanf("%s",&student[i].clsNum);
printf("\n学号:
");
scanf("%s",&student[i].stuNum);
printf("\n姓名:
");
scanf("%s",&student[i].name);
printf("\n性别:
");
scanf("%s",&student[i].sex);
getchar();
printf("\n年龄:
");
scanf("%d",&student[i].age);
getchar();
save();
flag=1;
}
}
if(flag==0)
{
printf("该学生不存在!
\n");
}
printf("按任意键返回主菜单......");
muen();
}
voidcode_M()
{
puts("请输入密码:
");
charstr1[6]="123";
charstr2[6];
scanf("%s",str2);
if(strcmp(str1,str2)!
=0)
{
puts("输入的密码错误!
");
}else{
muen();
}
}
voidmain()
{
code_M();
}