学生信息管理系统设计实验报告.doc

上传人:wj 文档编号:1296528 上传时间:2023-04-30 格式:DOC 页数:20 大小:188.50KB
下载 相关 举报
学生信息管理系统设计实验报告.doc_第1页
第1页 / 共20页
学生信息管理系统设计实验报告.doc_第2页
第2页 / 共20页
学生信息管理系统设计实验报告.doc_第3页
第3页 / 共20页
学生信息管理系统设计实验报告.doc_第4页
第4页 / 共20页
学生信息管理系统设计实验报告.doc_第5页
第5页 / 共20页
学生信息管理系统设计实验报告.doc_第6页
第6页 / 共20页
学生信息管理系统设计实验报告.doc_第7页
第7页 / 共20页
学生信息管理系统设计实验报告.doc_第8页
第8页 / 共20页
学生信息管理系统设计实验报告.doc_第9页
第9页 / 共20页
学生信息管理系统设计实验报告.doc_第10页
第10页 / 共20页
学生信息管理系统设计实验报告.doc_第11页
第11页 / 共20页
学生信息管理系统设计实验报告.doc_第12页
第12页 / 共20页
学生信息管理系统设计实验报告.doc_第13页
第13页 / 共20页
学生信息管理系统设计实验报告.doc_第14页
第14页 / 共20页
学生信息管理系统设计实验报告.doc_第15页
第15页 / 共20页
学生信息管理系统设计实验报告.doc_第16页
第16页 / 共20页
学生信息管理系统设计实验报告.doc_第17页
第17页 / 共20页
学生信息管理系统设计实验报告.doc_第18页
第18页 / 共20页
学生信息管理系统设计实验报告.doc_第19页
第19页 / 共20页
学生信息管理系统设计实验报告.doc_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学生信息管理系统设计实验报告.doc

《学生信息管理系统设计实验报告.doc》由会员分享,可在线阅读,更多相关《学生信息管理系统设计实验报告.doc(20页珍藏版)》请在冰点文库上搜索。

学生信息管理系统设计实验报告.doc

C程序设计实训报告

姓名

专业

班级

指导教师

2011年7月13日

18

目录

1、设计题目 1

2、总体设计 1

2.1系统功能结构图 1

2.2数据类型定义 1

2.3全部函数原型定义 2

3、详细设计 2

3.1模块功能 2

3.2函数流程图 3

1.Srarch()流程图 3

2.del()流程图 4

3.modify()流程图 4

4、程序测试 5

5、心得体会 8

6、参考文献 8

1、设计题目

学生信息管理系统设计

设计要求:

学生信息包括:

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

试设计一学生信息管理系统,使之能提供以下功能:

系统以菜单方式工作

学生信息录入功能(学生信息用文件保存)---输入

学生信息浏览功能---输出

查询、排序功能---算法

按学号查询

按姓名查询

学生信息的删除与修改(可选项)

2、总体设计

Main()

2.1系统功能结构图

Del()

Modify()

Read()

Srarch()

Write()

(Name)srarch

(NO.)srarch

图2-1系统功能结构图

2.2数据类型定义

structstudent

{

charno[15];

charname[30];

intage;

charsex[2];

charbir[30];

charadd[30];

chartel[13];

chare_mail[30];

}stu[N];

2.3全部函数原型定义

(1)voidmain()

主函数用语完成各个函数返回的指令

(2)intwrite(structstudentstu[N])

输入(或添加)学生的信息

(3)intsearch(structstudentstu[])

查询学生信息

(4)intread(structstudentstu[N])

浏览学生信息

(5)intmodify(structstudentstu[N])

修改学生信息

(6)intdel(structstudentstu[N])

删除学生信息

3、详细设计

3.1模块功能

主要有以下几个模块函数构成:

write()//录入或者添加学生的信息

search()//用于查询系统中存储的学生信息

read()//用于浏览系统中存储的学生信息

modify()//用于修改指定系统中存储的学生信息

del()//用于删除指定系统中存储的学生信息

3.2函数流程图

在程序编写过程中使用函数的调用,独立完成各个模块的功能。

1.Srarch()流程图

开始

查询函数的流程图(如3——1)。

打开存储文件

读入已存学生信息

ture

学号查询

break

输入1

false

ture

姓名查询

break

输入2

false

Default:

语句

输出查询结果

关闭文件并保存

结束

图3—1查询函数的流程图

2.del()流程图

开始

删除函数流程图如图3—2

打开存储文件

读入已存的学生信息

选择输入删除学生的学号

查找该学生信息?

删除操作

退出修改选项

关闭文件并保存文件

结束

图3—2删除函数流程图

3.modify()流程图

修改学生信息函数流程图(如图3—3)。

开始

打开学生信息存储文件

读入已存的学生信息

选择要修改的学号

查找该学生信?

选择需要修改项修改修改

退出修改选项并保存

关闭文件并保存所有内容

结束

图3—3修改函数流程图

4、程序测试

测试运行如下:

程序运行后进入系统界面(图4—1)。

总体显示该系统的功能菜单列表。

4--1系统功能菜单

选择1进入录入系统,需要输入的信息包括学号姓名等学生信息,系统运行界面如(图4—2)。

4—2系统录入菜单

选择2进入学生查询系统(如图4—3),在查询系统中有两种查询方式(选择1按照学号查询;选择2按照姓名查询)。

4—3查询选项

按照查询方式运行后显示结果并返回系统功能菜单以供后面操作选项(如图4—4)。

4—4查询结果

选择3进入修改学生信息系统界面如图(4—5),并可以按照提示选择需要修改的选项并可进行操作。

4—6修改选项菜单

选择4进入学生信息浏览界面(如图4—6),并显示出所有学生的信息。

4—6浏览信息

选择5进入删除学生信息菜单系统(如图4—7),并提示按照学号进行删除,输入要删除学生的学号。

4—7删除菜单

5、心得体会

在这两周的C语言实训,虽然时间略显仓促,但却让我学到了很多实际运用的技能!

真知总是出于实践的,自己动手编写程序经过运行调试最终完成实训,从中获得了很多实用知识。

软件的开发技能必须是从小程序慢慢的练习,自己动手写与运行调试中获得的。

在实训中的第一步是编写功能较为单一的小程序,虽然是小程序,但所用的知识却都是我们所学习的重点知识。

在做题的过程中让我们把这些知识复习了一遍,强化了知识!

平时我们学C语言视乎都是为了考试或者做一些比较常规的题目,而这次实训却给我们的将所学知识运用于解决实际问题的机会,让人更有激情,这就是编写软件的在雏形,也让我们感受到了编写软件程序的乐趣。

但是不仅仅是如此,更为重要的是在运用所学知识的过程中,记住这些知识,并能够广泛的运用!

在这次的实训中让我更充实的学到程序编写的技能,更激发学习程序编写与软件开发的乐趣。

6、参考文献

[1]韦良芬,C语言程序设计经典案例教程[M]北京:

北京大学出版社,2010.6

[2]潭浩强,C语言程序设计[M],北京,清华大学出版社,1998

[3]王立柱,C\C++与数据结构,北京:

清华大学出版社,2002

[4]李大友,C语言程序设计.清华大学出版社,1999

附录一

程序源代码:

#include/*头文件*/

#include/*头文件*/

#include/*头文件*/

#include/*头文件*/

#include//头文件

#definePFprintf

#defineN500

structstudent

{

charno[15];/*学号*/

charname[30];/*姓名*/

intage;/*年龄*/

charsex[2];/*性别*/

charbir[30];/*出生年月*/

charadd[30];/*地址*/

chartel[13];/*电话*/

chare_mail[30];/*电子邮件*/

}stu[N];

intn;

voidmain()

{

intnum,i;

intwrite(structstudentstu[N]);

intsearch(structstudentstu[N]);

intmodify(structstudentstu[N]);

intread(structstudentstu[N]);

intdel(structstudentstu[N]);

for(i=0;;i++)

{

PF("\n");

PF("**********************学生信息管理系统**************************\n");

PF("系统功能菜单\n");

PF("\n");

PF("================================================================\n");

PF("1.录入学生信息.\n");

PF("2.查询学生信息.\n");//里面包括按学

//查询,按姓名查询

PF("3.修改学生信息.\n");

PF("4.浏览学生信息.\n");

PF("5.删除学生信息.\n");

PF("6.退出学生信息系统.\n");

PF("================================================================\n");

PF("请输入1-6的数字.\n");

scanf("%d",&num);

switch(num)

{

case1:

write(stu);

system("cls");

break;

case2:

system("cls");search(stu);

break;

case3:

modify(stu);

system("cls");

break;

case4:

system("cls");read(stu);

break;

case5:

del(stu);

system("cls");

break;

case6:

system("cls");

return;

default:

PF("error\n");

}

}

}

/////////////////////////////////////////////

//

//录入学生信息

//

////////////////////////////////////////////

intwrite(structstudentstu[N])

{

FILE*fp1,*fp2;

inti,n;

if((fp2=fopen("stu_list","rb"))==NULL)/*只读方式打开,同时可以判断文件是否存在*/

{

if((fp1=fopen("stu_list","wb"))==NULL)//用只写方式打开,就可新建文

printf("建立文件出错\n");

}

else//如果文件存在,用ab+(为读写打开一个二进制文件)的方式打开

{

if((fp1=fopen("stu_list","ab+"))==NULL)

printf("打开文件出错\n");

}

PF("请输入你要输入的学生的人数\n");

scanf("%d",&n);

for(i=0;i

{

PF("请输第%d个学生的学号\n",i+1);

scanf("%s",stu[i].no);

PF("请输入第%d个学生的姓名.\n",i+1);

scanf("%s",&stu[i].name);

PF("请输入第%d个学生的年龄.\n",i+1);

scanf("%d",&stu[i].age);

PF("请输入第%d个学生的性别.\n",i+1);

scanf("%s",&stu[i].sex);

PF("请输入第%d个学生的出生年月.\n",i+1);

scanf("%s",&stu[i].bir);

PF("请输入第%d个学生的地址.\n",i+1);

scanf("%s",&stu[i].add);

PF("请输入第%d个学生的电话.\n",i+1);

scanf("%s",&stu[i].tel);

PF("请输入第%d个学生的电子邮件.\n",i+1);

scanf("%s",&stu[i].e_mail);

printf("录入信息完毕\n");

getchar();

fwrite(&stu[i],sizeof(structstudent),1,fp1);system("cls");//把内存中的结

//构体存到硬盘上去

}

fclose(fp1);

return1;

}

////////////////////////////////////////////

//

//查询学生信息

//

////////////////////////////////////////////

intsearch(structstudentstu[])

{

inta,i;

charno[15],name[30];

FILE*fp;

if((fp=fopen("stu_list","rb"))==NULL)

{

printf("文档未建立!

");

return0;

}

for(i=0;;i++)

{

if(fread(&stu[i],sizeof(structstudent),1,fp)!

=1)

break;

}

PF("按照学号查找,请输入1\n");

PF("按照姓名查找,请输入2\n");

scanf("%d",&a);

switch(a)

{

case1:

PF("请输入要查找的同学的学号.\n");/*按照姓名来查找学生信息*/

scanf("%s",no);

PF("学号\t姓名\t年龄\t性别\t生日地址电话\te_mail\n");

for(i=0;i

{

if(strcmp(no,stu[i].no)==0)

{

PF("%s\t%s\t%d\t%s\t%s\t%s\t%s\t%s\n",stu[i].no,stu[i].name,stu[i].age,

stu[i].sex,stu[i].bir,stu[i].add,stu[i].tel,stu[i].e_mail);

break;

}

}break;

case2:

PF("请输入要查找的同学的姓名.\n");/*按照学号来查找学生信息*/

scanf("%s",name);

PF("学号\t姓名\t年龄\t性别\t生日地址电话\te_mail\n");

for(i=0;i

{

if(strcmp(name,stu[i].name)==0)

{

PF("%s\t%s\t%d\t%s\t%s\t%s\t%s\t%s\n",stu[i].no,stu[i].name,stu[i].age,

stu[i].sex,stu[i].bir,stu[i].add,stu[i].tel,stu[i].e_mail);

break;

}

}break;

default:

PF("error\n");

}

return1;

}

/////////////////////////////////////////

//

//浏览学生信息

//

/////////////////////////////////////////

intread(structstudentstu[N])

{

inti;

FILE*fp;

if((fp=fopen("stu_list","rb"))==NULL)

{

printf("没有发现学生档案!

");

return0;

}

PF("学号\t姓名\t年龄\t性别\t生日\t地址\t电话\te_mail\n");

for(i=0;;i++)

{

if(fread(&stu[i],sizeof(structstudent),1,fp)!

=1)

break;

PF("%s\t%s\t%d\t%s\t%s\t%s\t%s\t%s\n",stu[i].no,stu[i].name,stu[i].age,

stu[i].sex,stu[i].bir,stu[i].add,stu[i].tel,stu[i].e_mail);

}

return1;

}

//////////////////////////////////////////////

//

//修改学生信息

//

//////////////////////////////////////////////

intmodify(structstudentstu[N])

{

FILE*fp;

inti,x,y=1,num,count=0;

charno[15];

if((fp=fopen("stu_list","rb"))==NULL)

{

printf("没有发现学生档案!

");

return0;

}

for(i=0;;i++)

{

if(fread(&stu[i],sizeof(structstudent),1,fp)!

=1)

break;

count++;

}

fclose(fp);

PF("请输入你要修改的学生的学号\n");

scanf("%s",no);

for(i=0;i

{

if(strcmp(no,stu[i].no)==0)

{

num=i;

}

}

PF("\t1.姓名\n");

PF("\t2.年龄\n");

PF("\t3.性别\n");

PF("\t4.出生年月\n");

PF("\t5.地址\n");

PF("\t6.电话\n");

PF("\t7.电子邮件\n");

PF("\t8.退出并保存修改\n");

for(i=0;y;i++)

{

PF("请输入你要修改的学生信息的选项\n");

scanf("%d",&x);

switch(x)

{

case1:

PF("请输入新的姓名:

\n");/*修改学生姓名*/

scanf("%s",stu[num].name);

break;

case2:

PF("请输入新的年龄:

\n");/*修改学生年龄*/

scanf("%d",&stu[num].age);break;

case3:

printf("请输入新的性别:

\n");/*修改学生性别*/

scanf("%s",stu[num].sex);

break;

case4:

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

\n");/*修改学生出生年月*/

scanf("%s",stu[num].bir);

break;

case5:

printf("请输入新的地址:

\n");/*修改学生地址*/

scanf("%s",stu[num].add);

break;

case6:

printf("请输入新的电话号码:

\n");/*修改学生的电话*/

scanf("%s",stu[num].tel);

break;

case7:

printf("请输入新的e_mail地址:

\n");/*修改学生的e_mail*/

scanf("%s",stu[num].e_mail);

break;

case8:

y=0;

break;

default:

printf("请在选择操作选项\n");

}

}

if((fp=fopen("stu_list","wb"))==NULL)

{

printf("新建文件错误!

");

return0;

}

for(i=0;i

{

if(fwrite(&stu[i],sizeof(structstudent),1,fp)!

=1)

break;

}

fcl

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2