课程设计Word格式文档下载.docx
- 文档编号:21974619
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:20
- 大小:2.09MB
课程设计Word格式文档下载.docx
《课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《课程设计Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。
管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。
而建立一个方便快捷的管理系统是每个管理者所希望的。
我设计的是一个关于学生信息管理的数据库系统,通过这个系统管理员可以简捷、方便的对学生信息进行增加、浏览、删除等功能,而用户也可以通过这个系统对学生信息进行查询等功能,从而使学校和个人更方便的查找,浏览学生的信息,并通过成绩排序对学生的情况作进一步的了解,对学生的管理更加便捷。
1.2系统功能
学生信息管理系统是一个小型学生信息管理程序,该软件能够实现学生信息表的建立,学生信息的添加,学生信息的显示,指定姓名或学号查询学生信息,学生信息的删除等简单管理功能。
程序要求提供简单友好易于操作的界面。
程序以C语言/MATLAB语言开发。
1.3设计要求
本课题要求设计实现“学生信息管理系统”程序。
该程序实现学生信息管理的基本功能,包括信息表的建立、显示等功能。
要求用动态链表实现该应用程序。
用函数分别实现动态链表的建立、动态链表输出等功能。
函数要求使用指针作形参。
2.程序功能模块组成及流程图
2.1系统功能模块
(1)学生节点数至少10个。
学生信息包括学号,姓名,性别,年龄,籍贯,电话号码及email地址。
(2)程序主界面包括程序名称及编程者学号、姓名、班级;
同时要求输入功能号码,选择进入功能模块程序。
主界面格式及选择项(供参考)如下图1“系统主菜单”:
(中文英文均可)
(3)各模块功能:
A.创建学生信息表。
动态创建学生信息表,同时输入学生信息。
学生信息表用链表实现。
链表节点个数不少于10个。
B.输出学生信息。
把链表所有结点信息以表格形式输出。
C.追加学生信息。
D.查询学生信息。
输入一个姓名,查找该学号所在结点,输出该节点信息。
E.删除学生信息。
输入学号,删除该节点。
F.保存学生信息到磁盘文件。
建立一个磁盘文件,把所建立的表格写入文件。
F.从磁盘文件中读出学生信息。
2.2各模块流程图
3程序主要数据结构及函数列表
3.1程序中使用的数据结构
使用的数据结构是线性列表
3.2函数列表
xueshengxinxi*creatlink(void)
voidsavelink(xueshengxinxi*h)
xueshengxinxi*readlink(void)
xueshengxinxi*insert(xueshengxinxi*head)
xueshengxinxi*delet(xueshengxinxi*p0)
voidfind(xueshengxinxi*h)
voidmain()
4.程序代码及运行结果
程序代码
#include"
stdio.h"
malloc.h"
stdlib.h"
string.h"
#include"
conio.h"
#defineNsizeof(structstud)/*N为结构体变量的大小*/
/****************************************************************/
typedefstructstud/**/
{
charnumber[40];
charname[40];
charsex[40];
charage[80];
charcall[40];
charjiguan[80];
/*把分数都声明称字符串*/
charemail[80];
structstud*next;
}xueshengxinxi;
/*为结构体命名*/
/*自此,结构体的名称就是xueshengxinxi,以后可直接用这个名称来声明结构体*/
/*创建链表信息,带回一个指向链表头的指针*/
xueshengxinxi*creatlink(void)
xueshengxinxi*p1,*p2,*head;
/*p1为前一个指针,p2为后一个指针,都是临时的*/
inti=1;
charchoice;
head=p2=(xueshengxinxi*)malloc(N);
/*"
(xueshengxinxi*)"
作用是使malloc返回的指针转换为指向结构体数据类型的指针"
*"
不可省,否则不是指针*/
head->
next=NULL;
/*新建的链表,只有一个头*/
choice='
y'
;
/*新链表,先满足初始条件*/
for(i=1;
choice=='
||choice=='
Y'
i++)/*循环的条件有输入者来定!
*/
{
p1=(xueshengxinxi*)malloc(N);
/*p1为指向结构体类型的指针*/
printf("
\n\n------------------------输入学生信息---------------------\n\n"
);
请输入第%d个学生的信息:
\n"
i);
学号:
"
scanf("
%s"
p1->
number);
\n姓名:
name);
\n性别:
sex);
\n年龄:
age);
/*输出的是字符串*/
\n电话:
call);
\n籍贯:
jiguan);
\n邮箱:
email);
p2->
next=p1;
p2=p1;
\n是否继续?
(Y/N):
choice=getche();
/*按任意键返回*/
}
/*这是链表的终结*/
return(head);
}
/***************************************************************-*/
/*保存链表信息的函数*/
voidsavelink(xueshengxinxi*h)
xueshengxinxi*p;
/*声明结构体*/
FILE*fp;
charfliename[20];
\n请输入你要保存的文件名:
fliename);
if((fp=fopen(fliename,"
wt"
))==NULL)/*为输出打开一个文本文件*/
写文件出错,按任意键退出!
getche();
exit
(1);
for(p=h->
next;
p!
=NULL;
p=p->
next)fprintf(fp,"
%s%s%s%s%s%s%s\n"
p->
number,p->
name,p->
sex,p->
age,p->
call,p->
jiguan,p->
//向文件中写入数据//
\n文件已成功保存,按任意键返回!
fclose(fp);
/*读出已保存文件的信息*/
xueshengxinxi*readlink(void)
xueshengxinxi*head,*p,*q;
charfilename[20];
\n请输入要打开的文件名:
filename);
if((fp=fopen(filename,"
rt"
))==NULL)
读文件出错,按任意键退出!
head=q=(xueshengxinxi*)malloc(N);
while(!
feof(fp))
p=(xueshengxinxi*)malloc(N);
/*建立新链表,并从文件中读出数据*/
fscanf(fp,"
q->
next=p;
q=p;
\n文件信息已正确读出,按任意键返回!
getch();
returnhead;
xueshengxinxi*insert(xueshengxinxi*head)/*插入信息*/
\n请输入要插入学生的信息:
\n学号:
if(head->
next!
=NULL)
p->
next=head->
/*插入数据操作代码*/
\n学生信息插入成功!
按任意键继续!
/*删除信息*/
xueshengxinxi*delet(xueshengxinxi*p0)
charnum[20];
if(p0->
next==NULL)
信息出错!
按任意键退出!
\n请输入要删除学生的学号:
num);
for(p=p0->
strcmp(p->
number,num)!
=0;
p0=p,p=p->
next);
/*用比较的方法来找到要删除的学生的信息*/
\n你要删除的信息如下,请确认是否删除:
\n学号:
%s姓名:
%s性别:
%s年龄:
%s电话:
%s籍贯:
%s邮箱:
%s\n\n"
\n是Y,否N:
/*显示要删除的学生的信息*/
if(choice=='
)
p0->
next=p->
/**/
free(p);
\n文件删除成功!
\n按任意键结束!
returnp0;
voidfind(xueshengxinxi*h)/*查询信息*/
\n请输入你要查找的学生的学号:
for(p=h;
你查找的学生信息如下:
%s\n\n"
按任意键继续!
voidprint(xueshengxinxi*p)/*显示全部信息*/
p=p->
while(p!
%s\n"
\n按任意键继续!
/*******************************************************************************/
/*主函数*/
{
//system("
color6"
/*设置颜色1(蓝色)是背景色代号F(亮白色)是前景色代号*/
intchoice=1,i,ok=1;
/*choice用于选择对数据执行操作已经是1,i循环,一直会循环到i=4即退出,ok主界面选择*/
xueshengxinxi*head,*h;
/*外部变量定义头指针*/
head=NULL;
/*外部变量*/
i=1;
do
i++;
system("
cls"
/*把以前的操作痕迹清除*/
\n================================================================\n"
\n学生信息管理系统\n"
20100504161姓名:
顾英德班级:
10电信1班\n"
\n1.建立新的学生信息.\n"
\n2.读取已经建立文件.\n"
\n3.退出;
\n请输入你的选择:
%d"
&
ok);
if(ok==1)
head=creatlink();
/*创建新链表并保存文件*/
savelink(head);
if(ok==2)
head=readlink();
/*进入文件,对已知数据进行操作*/
choice!
=5;
i++)
{
\n\n\n----------学生信息管理系统-----------\n\n\n"
1.添加学生信息;
\n\n"
2.删除学生信息;
3.查询学生信息;
4.显示学生信息;
5.退出;
请输入你要执行的操作序号:
choice);
switch(choice)
{
case1:
h=insert(head);
savelink(h);
break;
/*增---对新信息进行保存*/
case2:
h=delet(head);
/*删除后保存*/
case3:
find(head);
/*查找*/
case4:
print(head);
/*显示*/
case5:
程序已退出\n"
}
}
}
}while(ok!
=3);
\n系统运行由此结束!
\n\n"
5.总结与体会
通过一周的努力,终于完成了这次C语言程序设计。
在这个《学生信息管理系统》C语言课程设计中,完成了基本功能,即可以检索记录、新建新记录、删除记录、使用文件对记录进行保存和读取功能。
在开始进行课程设计时,先进行界面模块的总体把握,充分了解自己要设计的程序的总体的结构,从而,在其过程中能一个模块一个函数进行详细的构思,从而在调试程序时也显得比较轻松。
虽然出现了很多的错误,但是通过自己和同学的共同努力,终于找到错误并加以改正。
同时也要感谢老师的指导与帮助,使我能够在短时间内完成这份程序设计,十分的感谢老师。
总的来说,这次课程设计收获很多,为了完成这次设计,参考了一些书籍,细看了课本,了解了以前常忽视却很重要的东西,深化了对C语言的理解,进一步理解对C语言进行程序设计的方法和步骤,加深了结构化程序设计的思想,更重要的是,积累了很多调试程序的经验,为进一步学习C语言奠定了一定的基础,同时也为今后的学习和生活奠定了基础,有利于今后的发展。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计