C语言学生信息管理系统4.doc

上传人:b****3 文档编号:2362134 上传时间:2022-10-29 格式:DOC 页数:22 大小:481KB
下载 相关 举报
C语言学生信息管理系统4.doc_第1页
第1页 / 共22页
C语言学生信息管理系统4.doc_第2页
第2页 / 共22页
C语言学生信息管理系统4.doc_第3页
第3页 / 共22页
C语言学生信息管理系统4.doc_第4页
第4页 / 共22页
C语言学生信息管理系统4.doc_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C语言学生信息管理系统4.doc

《C语言学生信息管理系统4.doc》由会员分享,可在线阅读,更多相关《C语言学生信息管理系统4.doc(22页珍藏版)》请在冰豆网上搜索。

C语言学生信息管理系统4.doc

学生信息管理系统

本题目设计目的是训练用户的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。

本程序中涉及结构体、单链表、文件及各种语句的运用如for();switch();if….else等方面的知识。

通过本程序的训练,使用户能对C语言的文件操作有一个更深刻的了解,初步掌握链表的一些结构及构成。

掌握利用单链表存储结构实现对用户成绩管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。

1、问题定义

创建一个学生信息管理系统。

假设系统中学生信息记录包括1录入学生信息:

学号,姓名,年龄,性别,出生年月,地址,电话和E-mail。

2:

浏览学生信息。

3查询学生信息:

按学号查询,按姓名查询。

4:

删除学生信息。

5:

修改学生信息。

6:

退出系统。

程序的运行效果如下图所示,选择任意菜单后,实现相应功能。

在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系统实现的任务。

2、系统设计

2.1总体设计

采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。

需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。

可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。

录入学生信息

学生通讯录管理系统

浏览学生信息

查询学生信息

推出管理系统

修改学生信息

删除学生信息

按姓名查询

按姓名查找

本号码管理系统要求采用单链表实现,它由如下六大功能模块组成:

l录入学生信息模块。

l浏览学生信息模块。

l查询学生信息模块。

l删除学生信息模块。

l修改学生信息模块。

l退出系统模块。

2.2详细设计

#include

#include

#include

#include

#defineNULL0

#defineLENsizeof(structstudent)

#defineFILE_DATA_PATH"c:

\student.txt"

structstudent

{longintnum;

charname[20];

intage;

charsex[4];

charbirthday[10];

charaddress[30];

longinttele_num;

charE_mail[20];

structstudent*next;};

intTOTAL_NUM=0;

structstudent*head=NULL;

voidwelcome();

voidmainmenu();

voidrecord();

voidinsert(structstudent*stu);

voiddisplay(structstudent*stu);

voiddisplayAll();

voidquery();

voidquery_by_num();

voidquery_by_name();

voidreadData();

voidwriteData();

voidfreeAll();

voiddel();

voidchange();

voiddevise(structstudent*p);

intmain()

{welcome();

mainmenu();

}

/*显示欢迎信息*/

voidwelcome()

{

printf("\t\t\t+---------------------------+\n");

printf("\t\t\t||\n");

printf("\t\t\t|欢迎使用学生信息管理系统|\n");

printf("\t\t\t||\n");

printf("\t\t\t+---------------------------+\n");

}

/*系统主菜单*/

voidmainmenu()

{

intchoice;

choice=-1;

readData();

do

{

printf("\n\n\n");

printf("\t\t\t+------------------------------+\n");

printf("\t\t\t|学生信息管理系统|\n");

printf("\t\t\t+------------------------------+\n");

printf("\t\t\t|[1]----录入学生信息|\n");

printf("\t\t\t|[2]----浏览学生信息|\n");

printf("\t\t\t|[3]----查询学生信息|\n");

printf("\t\t\t|[4]----删除学生信息|\n");

printf("\t\t\t|[5]----修改学生信息|\n");

printf("\t\t\t|[0]----退出系统|\n");

printf("\t\t\t+------------------------------+\n");

printf("请输入您的选择:

");

scanf("%d",&choice);

switch(choice)

{

case0:

writeData();

freeAll();

exit(0);

case1:

record();

break;

case2:

displayAll();

break;

case3:

query();

break;

case4:

del();

break;

case5:

change();

break;

default:

printf("\n无效选项!

");

break;

}

}

while(choice!

=0);

}

/*录入学生信息*/

voidrecord()

{

structstudent*p0;

p0=(structstudent*)malloc(LEN);

printf("请输入学生的学号:

");

scanf("%ld",&p0->num);

printf("请输入学生的姓名:

");

scanf("%s",p0->name);

printf("请输入学生的年龄:

");

scanf("%d",&p0->age);

printf("请输入学生的性别:

");

scanf("%s",p0->sex);

printf("请输入学生的出生年月:

");

scanf("%s",p0->birthday);

printf("请输入学生的地址:

");

scanf("%s",p0->address);

printf("请输入学生的电话:

");

scanf("%ld",&p0->tele_num);

printf("请输入学生的E-mail:

");

scanf("%s",p0->E_mail);

insert(p0);

printf("该学生的信息为:

\n");

printf("-------------------------------------------------------------------------------");

printf("学号\t姓名\t年龄\t性别\t出生年月\t\t地址\t电话\tE-mail\n");

display(p0);

}

voidinsert(structstudent*stu)

{

structstudent*p0,*p1,*p2;

p1=head;

p0=stu;

if(head==NULL)

{

head=p0;

p0->next=NULL;

}else

{

while((p0->num>p1->num)&&(p1->next!

=NULL))

{

p2=p1;

p1=p1->next;

}

if(p0->num<=p1->num)

{

if(head==p1)

head=p0;

else

p2->next=p0;

p0->next=p1;

}

else

{

p1->next=p0;

p0->next=NULL;

}

}

TOTAL_NUM++;

}

voiddisplay(structstudent*p)

{

printf("%ld\t%s\t%d\t%s\t%s\t%s\t%ld\t%s\n",p->num,p->name,p->age,p->sex,p->birthday,p->address,p->tele_num,p->E_mail);

}

/*浏览学生信息*/

voiddisplayAll()

{

structstudent*p;

printf("学生总数:

%d\n",TOTAL_NUM);

p=head

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1