c语言课程设计报告学生信息管理系统Word文档下载推荐.docx
《c语言课程设计报告学生信息管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告学生信息管理系统Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
(2)移动指针,找到插入结点;
(3)在要插入的结点输入信息;
(4)调用保存函数,打开文件,保存输入信息。
3、删除信息函数(voiddel())
(2)用指针检验链表中是否有记录,若没记录,返回主函数;
(3)根据要修改的编号查找要删除的结点;
(4)修改链表,删除对应结点。
4、修改信息函数(voidxiugai())
(2)读取保存的文件数据输入ASCLL字符:
(3)用指针检验链表中是否有记录,若没记录,返回主函数;
(4)根据要修改的编号查找对应结点;
(5)修改信息;
(6)打开文件,保存修改记录。
5、保存信息函数(baocun())
(2)用文件指针指向要读写的磁盘文件名,若没有则新建此文件名:
(3)用指针检验链表中是否有记录,若没记录,返回主函数:
(4)打开文件,保存记录:
6、屏幕操作函数(voidstubent187())
(1)以一定格式输出所想要的图形:
四、主要源程序代码
定义变量:
(对整个程序定义全局变量)
#include"
"
#defineSTUDENTID/*所有STUDENT都用ID来代替*/
typedefstructnode/*定义结构体*/
{charming[50];
/*名字*/
charxing[50];
/*性别*/
charnian[50];
/*年龄*/
intxuehao;
/*学号*/
charxibie[50];
/*专业*/
charsushe[50];
/*宿舍号*/
charjia[50];
/*家庭地址*/
structnode*next;
}ID;
/*学生信息(变量名)*/
ID*head=NULL;
/*定义一个头指针*/
FILE*zhi;
/*定义一个文件指针*/
主菜单界面:
(进入屏幕界面的形式)
voidstubent187()/*屏幕格式函数*/
{printf("
****************************************\n"
);
printf("
*学生信息管理系统*\n"
**\n"
*请选择:
1:
查看;
2:
添加;
3:
删除;
*\n"
*4:
修改;
0:
退出系统*\n"
*******************************************\n"
>
输入0~4数字<
<
\n"
return;
}
查看学生信息记录:
(对以保存在磁盘文件的学生信息进行查询)
voidchakan()
{/*查看*/
ID*t;
t=head;
t=(ID*)malloc(sizeof(ID));
/*为t开辟一个新单元*/
if((zhi=fopen("
"
rb"
))==NULL)printf("
没有此文件\n"
else
%10s%10s%10s%10s%10s%10s%10s\n"
ming"
xing"
nian"
xuehao"
eng"
sushe"
jia"
/*输出一个屏幕格式*/
while(!
feof(zhi))
{fscanf(zhi,"
%10s%10s%10s%10d%10s%10s%10s\n"
&
t->
ming,&
xing,&
nian,&
xuehao,&
xibie,&
sushe,&
jia);
/*读取保存的文件数据输入ASCLL字符:
*/
t->
ming,t->
xing,t->
nian,t->
xuehao,t->
xibie,t->
sushe,t->
/*以这形式输出各个学生信息*/
t->
next=(ID*)malloc(sizeof(ID));
t=t->
next;
};
添加学生信息记录:
()
voidadd()
{
chari;
/*添加*/
ID*t1,*t2;
t1=t2=NULL;
loop:
t1=(ID*)malloc(sizeof(ID));
/*为t1开辟一个新单元*/
printf("
请输入姓名:
scanf("
%s"
t1->
ming);
/*姓名*/
请输入性别:
xing);
/*性别*/
请输入年龄:
(t1->
nian));
/*年龄*/
请输入学号:
%d"
xuehao));
/*学号*/
请输入系别:
xibie));
/*系别*/
请输入宿舍号:
sushe));
请输入家庭地址:
jia));
t1->
next=NULL;
if(head==NULL)/*如果头结点为空*/
{head=t1;
/*t1指向头结点*/
t2=t1;
else{
t2=head;
while(t2->
next!
=NULL)t2=t2->
/*没有成立则指向下个结点*/
t2->
next=t1;
}getchar();
是否继续添加(Y/N):
scanf("
i);
/*输入Y/N*/
if(i=='
y'
||i=='
Y'
)
{clrscr();
gotoloop;
/*清屏在循环*/
else{printf("
是否保存此次添加(Y/N)\n"
)/*是否要保存*/
{baocun();
/*调用保存*/
clrscr();
/*清屏*/
stubent187();
/*调用屏幕函数*/
保存成功"
elseif(i=='
n'
N'
)
}/*调用屏幕函数*/
}
删除学生信息操作:
(对以存的学生信息进行删除)
voiddel()
{/*删除*/
ID*A,*B;
/*定义指针*/
chart,i;
intxuehao;
/*定义整型变量与字符型变量*/
A=B=NULL;
a+"
没有此信息文件\n"
{loop:
请输入要删除的学生学号:
xuehao);
{fscanf(zhi,"
A->
/*读取保存的文件数据输入ASCLL字符:
if(A!
=NULL&
&
A->
xuehao!
=xuehao)
A=A->
elsebreak;
if(A->
xuehao==xuehao)
{head=A->
free(*A);
成功!
是否继续删除(Y/N)"
是否保存此次删除(Y/N)\n"
baocun();
elseprintf("
无法找到此编号\n"
修改学生信息操作:
(对保存的学生信息进行修改)
voidxiugai()
{/*修改*/
inti;
charxuehao;
t1=head;
loop:
请输入要修改的学号:
/*输入编号*/
{fscanf(zhi,"
*读取保存的文件数据输入ASCLL字符:
if(t1!
t1=t1->
if(t1->
{fprintf(zhi,"
t1->
ming,t1->
xing,t1->
nian,t1->
xuehao,t1->
xibie,t1->
sushe,t1->
输入名字:
输入性别:
xing));
printf("
输入年龄:
输入学号:
输入系别:
/*系别*/printf("
输入专业:
/*宿舍号*/printf("
输入家庭地址:
/*家庭地址*/
是否继续修改(Y/N)"
if(i=='
{clrscr();
是否保存此次修改(Y/N)\n"
%c"
/*清屏*/
/*调用屏幕函数*/
没有此编号\n"
return;
保存添加,删除,修改学生的信息:
(操作过后是否保存)
baocun()/*保存*/
ID*t=head;
zhi=fopen("
/*(读写文本)*/
while(t!
=NULL){
fprintf(zhi,"
/*以zhi为文件指针保存*/
t=t->
fclose(zhi);
/*关闭此文件*/
成功!
主菜单操作:
(选择所需要的操作)
main()/*主函数*/
{
/*定义整形变量i*/
while
(1)
/*输入要执行的操作*/
switch(i)
{case1:
chakan();
break;
/*调用查看函数*/
case2:
add();
/*调用添加函数*/
case3:
del();
/*调用删除函数*/
case4:
xiugai();
/*调用修改函数*/
case0:
exit(0);
/*结束*/
default:
printf("
输入错误,请在此输入\n"
continue;
}/*输入不是0~4的,则返回*/
Ⅰ源函数代码:
/*为t1开辟一个新单元*/
/*没有成立则指向下个结点*/
voidxiugai()