学生证的管理程序
——C语言课程设计报告
题目要求
该程序应该具有下列功能:
1、录入某位学生的学生证信息。学生证应该包照自含的信息请参己的学生证;
2、给定学号,显示某位学生的学生信息;
3、给定某个班级的班号,显示该班所有学生的学生证信息
4、给定某位学生的学号,修改该学生的学生信息;
5、给定某位学生的学号,删除该学生的学生信息;
6、提供一些统计各类信息的功能。
[输入要求]
使用程序后,在屏幕上显示一个菜单。用户可以根据要求选定相应的操作项目。进入每个操作后,根据使用程序的提示信息,从键盘输入相应的信息。
[输出要求]
使用程序运行后,要在屏幕上显示一个菜单;
要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
[提示]
设计一个结构体类型和一维数组类型,用来保存学生证内容;
需求分析
根据题目要求,因为学生信息是一个有不同类型的变量组成,因此,应提供结构体操作,在程序中需要浏览学生信息,应提供显示、查找、修改、删除、统计等操作。另外还应该提供键盘式的选择菜单实现功能选择。
总体设计
学生证的管理程序主要包含学生信息的录入、修改、删除、查询、统计等模块。为了各模块的独立性,将显示模块分别镶嵌在录入、修改、删除、查询、统计等模块中。
学生证管理程序
学生证管理程序
录 入
模 块
查 询
模 块
修 改
模 块
删 除
模 块
统 计
模 块
详细分析
主函数
[分析]
主函数的设计简洁,只提供加录入、修改、删除、查询、统计和显示等函数的调用和加载功能。其中各功能模块用菜单方式选择。并将main(>函数体内的界面选择部分部分语句单独抽出来做一个独立的函数,目的在于系统执行完每部分功能模块后能更方便返回到系统界面。menu(>函数从主函数中独立出来后,表面的主函数只是起一个程序开始的作用,其主要功能被独立出来的被调用的menu(>函数所取代。menu
[流程图]
显示一系列功能选项
显示一系列功能选项
加载已有信息
输入n,判断n是否是1-6
根据的值调用各功能模块函数
N
Y
[程序]
//***************************menu*************************/
menu(>
{int n,w,i,j。
STU *st。
FILE *fp。
fp=fopen("student1.txt","wb+">。
if(!fp>
{printf("Document error! ">。
exit(0>。}
else
{fread(&i,2,1,fp>。
fclose(fp>。
j=i+1。
st=(STU*>malloc(j*sizeof(STU>>。
do
{printf("\n\t\t********************MENU********************\n\n">。
printf("\t\t\t1.Input information of student\n">。//输入学生信息
printf("\t\t\t2.Inquiries information of student\n">//显示学生信息。
printf("\t\t\t3.Changes information of student\n">。//修改学生信息
printf("\t\t\t4.Delete information of student\n">。//删除学生信息
printf("\t\t\t5.Statistic information of student\n">。//统计学生信息
printf("\t\t\t6.Exit">。//结束
printf("\n\n2\t\t********************************************\n">。
printf("Choice your number(1-6>[ ]\b\b\b\b\b\b\b">。
scanf("%d",&n>。
if(n<1&&n>6>
{w=1。getchar(>。}
else
{w=0。free(st>。}
} while(w==1>。
switch(n>
{case 1:input(i,st>。break。
case 2:inquiries(i,st>。bre