C语言程序设计学生信息管理系统Word文件下载.docx

上传人:b****7 文档编号:21863308 上传时间:2023-02-01 格式:DOCX 页数:17 大小:270.33KB
下载 相关 举报
C语言程序设计学生信息管理系统Word文件下载.docx_第1页
第1页 / 共17页
C语言程序设计学生信息管理系统Word文件下载.docx_第2页
第2页 / 共17页
C语言程序设计学生信息管理系统Word文件下载.docx_第3页
第3页 / 共17页
C语言程序设计学生信息管理系统Word文件下载.docx_第4页
第4页 / 共17页
C语言程序设计学生信息管理系统Word文件下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C语言程序设计学生信息管理系统Word文件下载.docx

《C语言程序设计学生信息管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计学生信息管理系统Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。

C语言程序设计学生信息管理系统Word文件下载.docx

参考文献………………………………………………………………………(19)

源代码…………………………………………………………………………(19)

实习内容简介

题目:

学生通讯录管理系统

要求:

1.可实现信息的添加、删除,可按学号、姓名查询;

2.学生信息必须包含学号、姓名、学院、专业、籍贯。

地址、电话号码;

3.必须有注释。

日期:

2011年6月20日至27日,共8个半天。

地点:

信息楼301

指导老师:

曹雪莲

完成情况:

1.程序可完成信息的添加,可按学号、姓名分别查询;

2.程序可按姓名、学号分别删除,并在删除前显示删除学生的全部信息;

按姓名删除,若出现同名情况,会依次出现系统提示是否删除,可选择删除或跳过;

3.在程序文件夹中有一“学生信息库”的txt文件,可查看学生系统里全部学生信息;

4.设置有一个恢复区系统,可输出、查询删除的信息,并在可同文件夹中“删除信息库”的txt文件中查看删除信息;

总体结构如下:

程序代号说明

代号说明

结构体student

结构体stu

全局变量

num

学号

inf

学生信息,包含左结构体student全部信息

n

链表节点数量

name

姓名

next

本类型结构体指针

rhead

恢复区链表头指针

academy

学院

 

searchnum

目标个数

major

专业

province

省份

address

地址

phone

电话号码

函数

add

增加

delet

删除(按姓名或学号)

search

查找

search_num

搜索学号

search_name

搜索姓名

print

输出链表上信息

print1

输出链表上单个节点的信息

save

以二进制格式储存数据

txtsave

以文本格式储存数据

crete

从二进制文件中读取信息,建立链表

deletinput

将删除信息导入恢复区链表

system

管理系统主要程序

recover

恢复区系统主要程序

此外,局部变量的含义比较固定:

head

链表头指针,若与rhead一同出现则代表管理系统链表头指针

select、input

为选择的值

filename

文件名

程序流程图:

本次实习我的思路就是,先从二进制文件中读取信息,形成链表,对链表进行基本操作,如输出、添加、删除、查找。

程序结束时将链表保存在二进制文件和文本文件中。

管理系统流程图:

运行管理系统部分时,先从文件“”中读取数据(若无该文件则创建文件),构建链表;

后续操作都是对于链表进行操作,如添加、查找、删除、输出等;

离开该部分时则保存链表里的信息到已存在的“”,并以ASCII形式存储至“学生信息库.txt”,方便检查。

恢复区系统流程图:

恢复区系统思路与管理系统思路类似,连函数调用都是一样的,二进制文件名为“”,文本文件名为“删除信息库.txt”。

具体函数模块功能将在第三章中具体介绍。

程序分为管理系统和恢复区系统两部分和读取文件、存储文件四部分,以下分别介绍。

读取文件、存储文件

读取文件

该函数模块(程序名为creat)于管理系统或恢复区系统运行前运行,目的是读取二进制文件信息,构建链表;

若无目标文件,则创建文件。

返回值为头指针。

函数主体为:

structstu*p1,*p2;

structstu*head;

while(fread(&

(p1->

inf),LEN,1,fp))um);

ame);

fprintf(fp,"

%10s"

(p->

inf).academy);

inf).majoy);

inf).province);

inf).address);

%20s\n"

inf).phone);

p=p->

next;

}

}

管理系统模块

管理系统(名为system)主要有四个函数功能部分,分别为添加、删除、查找、输出,以下依次介绍:

添加

该模块函数名为add,无返回值,参数为链表头指针,功能为向已建立的链表中从键盘上输入信息。

um));

printf("

\n姓名:

"

);

scanf("

%s"

(p1->

inf).name);

\n学院:

\n专业:

\n省份:

\n地址:

\n电话号码:

while((p2->

next)!

=NULL)学号查找的函数主体为:

printf("

请输入拟删除学生学号:

\n"

longsnum=0;

scanf("

%ld"

&

snum);

structstu*p1,*p2;

p1=head;

while(snum!

=p1->

&

p1->

next!

=NULL)姓名查找(包含同名情况):

intselect=0,count=0;

um);

printf("

\n姓名%s"

\n学院%s"

\n专业%s"

\n省份%s"

\n地址%s"

\n电话号码%s\n"

p=p->

恢复区系统模块

恢复区系统(其名为recover)是为了显示被删除信息而建立的,在函数运行之初便建立了恢复区链表,头指针设为rhead,与管理系统头指针head相区别。

并且,rhead被设为全局变量,方便被函数调用。

恢复区系统主要有查找、输出功能,其功能模块基本调用管理系统的函数,所以不再赘述。

而恢复区的输入函数,即管理区删除信息时将信息输入恢复区链表的函数,上文已提及,即deletinput,此为连接恢复区与管理系统的桥梁,只不过是单行的。

函数为:

voiddeletinput(structstu*p)

序视图就是C语言的黑框,没有美观可言。

C++的视图好一些,我也想过用C++编译一个窗口,然后在程序中调用。

但是C++还没学会,而且在调试程序的过程中遇到一些困难让我遗忘了这个想法,曾看程序看到凌晨两点,所以想法没有实践。

9.在软件技术普及的今天,做个数据库已是小菜一碟,很到软件可以使用,如MicrosoftOfficeAccess,并且功能极其强大,比我花了几天时间做出来的高级不知多少倍。

与那些专业程序相比,我的这程序不值一提,也就是练习练习C语言而已。

实习感受

此次实习在一个凉爽的夏日开始,这在武汉极反常。

因为我们考试基本考完了,只剩下一门英语了,所以实习时间比较充裕。

实习的题目也不算太难,思路很清晰,总共三步走:

1.读取文件;

2.处理链表;

3.保存文件。

操作的主体是链表,原以为会很轻松,但还是遇到很多问题,以前上课时从未想到过。

经历过基本一天都在看程序的时间,我发现我懂的太少,要学的太多。

对文件的操作我一直都没注意,现在才发现其乐无穷;

以前觉得链表很难,现在轻松写出程序。

学习与实践果然是不可分割的。

实习中,大家八仙过海各显神通,用链表是比较传统的,而且节省内存,有的用数组,这也可以理解,方便使用,排序便利;

有的直接用文件C语句查询、删除,让我大开眼界,文件还能这么用!

在写报告时看到一篇用指针数组做的程序,相当有意思。

发现水平还是不够,同学可以用C语言编出一个比较漂亮的界面,还可以随意调用文件操作,实在让人赞叹不已。

此次实习加强了我对链表的理解,很多以前迷糊的概念得到了明确,亦让我感到C语言强大之处,直接操作内存,实在很暴力。

一句诗概括此次实习,“山重水复疑无路,柳暗花明又一村”;

如今C语言实习已然结束,但是对于计算机语言的学习决不能放松,“雄关漫道真如铁,而今迈步从头越”。

现在的世界是信息化的,我们现在对于Matlab的要求也很大,C语言也是其基础。

路漫漫其修远兮,吾将上下而求索。

感谢曹老师抽出时间将C语言实习提前和这八天来的指导,同时亦感谢大家这些天来的支持与帮助,此外额外感谢武汉夏天罕见的凉爽天气,感谢生活。

附录

参考书目

1.谭浩强著《C语言程序设计》2005年7月第3版298-299、300、302-303、338页

2.吴煌坚学长的实习报告

源代码

#include<

>

#defineNULL0

#defineLENsizeof(structstudent)

#defineLENSsizeof(structstu)

structstudentum);

voidprint1(structstu*p)um);

structstu*search_name(structstu*p,charsname[20])um));

(head->

n++;

p2->

next=NULL;

continue;

=NULL)um);

voidsystem()

{

structstu*head;

xt"

;

加学生信息\n2.查找学生信息\n3.删除学生信息\n4.输出全体学生信息\n5.退出\n\n\n"

找学生信息\n2.输出全体删除信息\n3.退出\n\n\n"

//菜单

%d"

select);

switch(select)//菜单选择进入相关子程序

{

case1:

search(rhead);

break;

//搜寻

case2:

print(rhead);

//输出

case3:

//跳出菜单

default:

ERROR"

//输入错误

}while(select!

=3);

欢迎闪人\n"

save(rhead->

next,filename2);

//存储文件

voidmain()

intselect=1;

while((select==1)||(select==2))

*********************************************\n"

进入管理系统,请按1\n"

进入恢复区,请按2\n"

其它键离开\n"

制作人:

061092徐宗博\n"

请选择:

if(select==1)system();

//进入管理系统

elseif(select==2)recover();

//进图恢复区

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

当前位置:首页 > 自然科学 > 物理

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

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