学生信息管理系统课程设计报告.docx
- 文档编号:1975726
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:14
- 大小:49.74KB
学生信息管理系统课程设计报告.docx
《学生信息管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统课程设计报告.docx(14页珍藏版)》请在冰豆网上搜索。
学生信息管理系统课程设计报告
学生信息管理系统
学生:
学号:
班级:
指导老师:
日期:
2、课程设计正文格式:
1题目及要求
学生信息管理系统
此题目要求,使用结构体静态数组存储数据,并要求使用户输入的数据或者修改后的数据能够永久保存。
1.1问题提出
详细叙述本人所要实现的题目中的问题
我编写一个学生信息管理系统,主要用来管理学生基本信息。
1.2本系统涉及的知识点
如:
结构体、数组、循环、函数、分支、文件、字符串、指针;
1.3功能分析
叙述本人所要实现的题目功能
1、添加学生信息,每个学生的信息包括:
学号、、、生日、地址、班级;
2、根据学号删除该学生信息或删除全部学生信息;
3、根据学号、查询学生信息;
4、可以以表格形式输出所有学生信息;
5、输入欲修改的那人的名字后,再次进行信息修改;
6、保存此学生信息系统;
2功能设计
画出模块层次结构图
学生信息管理系统
2.1菜单设计
2.2各功能模块的算法设计
增加学生信息模块:
1.1打开文件。
1.2用scanf输入数据,保存再结构数组中。
1.3用fwrite函数将结构体数组读入学生信息文件中,关闭文件。
显示学生信息模块:
1.1只读打开文件
1.2将文件的信息读入结构体数组中;
1.3将结构体的容显示在窗口上。
1.4关闭文件。
查询学生信息模块:
1.1打开文件,读出信息;
1.2输入要查询的学号或;
1.3如有该学号或,打印该学生的信息;
1.4关闭文件。
修改学生信息模块:
1.1打开文件,读出信息;
1.2输入要修改的学生信息的学号。
1.3若有此学号,则重新输入此学生信息。
1.4覆盖原先的信息,读入文件;关闭文件。
删除学生信息模块:
1.1打开文件,读出信息,关闭文件。
1.2选择要单个删除—1.3,选择全部删除—1.5;
1.3打开文件,输入要删除的学号;
1.4若有此学号,覆盖此条信息,已少一次数,读入文件,关闭文件;若无,返回1.3;
1.5打开文件。
将空字符读入文件中,覆盖原先的信息,关闭文件。
3程序代码设计
(-)增加模块
1)函数原形:
voidadd(void)
2)功能:
利用for循环语句和scanf、getchar函数完成对结构数组的输入,再用再用fwrite函数将结构数组读入学生信息表中。
存放n个学生的信息(学号、、、生日、地址、班级)。
3)输入输出:
无。
(二)查询模块
1)函数原形:
voidsearch(void)
2)功能:
打开文件后,根据strcmp函数进行对比,可以进行学号与查询,用fread函数将文件息读到结构体数组中,相同就打印到窗口上。
3)输入输出:
无。
(三)修改模块
1)函数原形:
voidmodi(void)
2)功能:
输入要修改的,用fread函数将文件息读到结构体数组中,根据strcmp函数进行对比,然后根据fwrite函数进行修改覆盖,得到新文件。
3)输入输出:
无。
(四)删除模块
1)函数原形:
voiddel(void)
2)功能:
用fread函数将文件息读到结构体数组中,依次将输入的学号根据strcmp函数进行对比,然后再进行选择性删除。
3)输入输出:
无。
(五)显示模块
1)函数原形:
voidprint(void)
2)功能:
用freed函数打开存储的文件使其显示在屏幕上。
3)输入输出:
无。
(六)源程序代码
*include
*include
*include
voidprint(void);//显示函数
voidadd(void);//增加函数
voidsearch(void);//查找函数
voidmodi(void);//修改函数
voiddel(void);//删除函数
//定义结构体
typedefstructstudent
{
charname[20];
charnum[20];
charban[20];
charbirthday[20];
charphone[20];
charaddress[200];
}STU;
STUstu[2000];
FILE*fp;
//主函数
intmain(void)
{
inti;
do
{
printf("|---------------------------------|\n");
printf("|学生信息管理系统|\n");
printf("|---------------------------------|\n");
printf("|1--增加学生信息|\n");
printf("|2--删除学生信息|\n");
printf("|3--查询学生信息|\n");
printf("|4--显示学生信息|\n");
printf("|5--修改学生信息|\n");
printf("|6--退出|\n");
printf("|---------------------------------|\n");
printf("请选择你的操作:
(1~6)\n");
scanf("%d",&i);
if(i==1)add();
if(i==2)del();
if(i==3)search();
if(i==4)print();
if(i==5)modi();
if(i==6){
printf("您的使用!
\n");
break;
}
}while(i>0&&i<7);
if(i>6||i<1)
printf("你的输入错误\n");
return0;
}
/*增加函数*/
voidadd(void)
{
intm,i;
if((fp=fopen("学生信息表.txt","a+"))==NULL)//为读写打开学生信息表文本文件
{
printf("Cannotopenfilestrikeanykeyexit!
");
getchar();
exit
(1);
}
printf("请输入要添加学生的人数:
");
scanf("%d",&m);
for(i=1;i<=m;i++)
{
printf("请输入:
\n");
scanf("%s",stu[i].name);
printf("请输入学号:
\n");
scanf("%s",stu[i].num);
printf("请输入班级:
\n");
scanf("%s",stu[i].ban);
printf("请输入生日:
\n");
scanf("%s",stu[i].birthday);
printf("请输入:
\n");
scanf("%s",stu[i].phone);
printf("请输入地址:
\n");
scanf("%s",stu[i].address);
fwrite(&stu[i],sizeof(STU),1,fp);//把结构体的数据写入学生信息表中
printf("\n");
}
fclose(fp);//关闭学生信息表文本文件
}
/*显示函数*/
voidprint(void)
{
inti,n;
if((fp=fopen("学生信息表.txt","r"))==NULL)//为输入打开学生信息表文本文件
{
printf("Cannotopenfilestrikeanykeyexit!
");
exit(0);
}
for(i=0;fread(&stu[i],sizeof(STU),1,fp)!
=0;i++);//读出学生信息
n=i;
printf("学号班级生日地址\n");printf("-------------------------------------------------------\n");
for(i=0;i { printf("%s\t%s\t%s\t%s\t%s\t%s\n",stu[i].name,stu[i].num,stu[i].ban,stu[i].phone,stu[i].birthday,stu[i].address); printf("--------------------------------------------------------\n"); } fclose(fp);//关闭学生信息表文本文件 } /*查询函数*/ voidsearch(void) { inti,n; charnumber[20],name[20]; if((fp=fopen("学生信息表.txt","r"))==NULL)//为输入打开学生信息表文本文件 { printf("Cannotopenfilestrikeanykeyexit! "); exit(0); } for(i=0;fread(&stu[i],sizeof(STU),1,fp)! =0;i++);//读取学生信息表文本文件 n=i; intxz; printf("------------------------------------------------\n"); printf("1.学号查询\n"); printf("2.查询\n"); printf("------------------------------------------------\n"); printf("请选择: \n"); scanf("%d",&xz); if(xz==1){ printf("\n请输入要查找学生的学号: "); scanf("%s",number); for(i=0;i { if(strcmp(number,stu[i].num)==0) { printf("\n该学生已找到\n"); printf("----------------------------------------\n"); printf(": %s\n",stu[i].name); printf("学号: %s\n",stu[i].num); printf("班级: %s\n",stu[i].ban); printf(": %s\n",stu[i].phone); printf("出生日期: %s\n",stu[i].birthday); printf("地址: %s\n",stu[i].address); break; } else printf("\n没有你要找的学生! ! ! \n\n"); } } else if(xz=2){ printf("请输入要查询者的: "); scanf("%s",name); for(i=0;i { if(strcmp(name,stu[i].name)==0) { printf("该学生已找到\n"); printf("----------------------------------------\n"); printf(": %s\n",stu[i].name)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统 课程设计 报告