学生信息管理系统程序.docx

上传人:b****2 文档编号:1345314 上传时间:2022-10-21 格式:DOCX 页数:33 大小:352.82KB
下载 相关 举报
学生信息管理系统程序.docx_第1页
第1页 / 共33页
学生信息管理系统程序.docx_第2页
第2页 / 共33页
学生信息管理系统程序.docx_第3页
第3页 / 共33页
学生信息管理系统程序.docx_第4页
第4页 / 共33页
学生信息管理系统程序.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

学生信息管理系统程序.docx

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

学生信息管理系统程序.docx

学生信息管理系统程序

C语言上机实践报告

专 业:

冶金工程

班级:

冶金1102

姓名:

学号:

任课教师:

丽华

时  间:

2012年8月

一、

题目

学生信息管理系统设计

●学生信息包括:

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

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

a)系统以菜单方式工作

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

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

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

(1)按学号查询

(2)按姓名查询

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

一、系统功能模块结构图

二、数据结构设计及用法说明

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

/*定义结构体用作创建链表*/

typedefstructz1

{

charno[11];//学生学号

charname[15];//学生姓名

intage;//学生年龄

charsex;//学生性别

charbirthday[8];//学生出生年月

charaddress[20];//学生住址

chartel[12];//学生联系

chare_mail[20];//学生e-mail

structz1*next;//指向下一链表

}STUDENT;

/*声明用户自定义函数*/

STUDENT*init();

STUDENT*create();

STUDENT*del(STUDENT*h);

STUDENT*insert(STUDENT*h);

STUDENT*revise(STUDENT*h);

voidprint(STUDENT*h);

voidsearch1(STUDENT*h);

voidsearch2(STUDENT*h);

voidsave(STUDENT*h);

intmenu_select();

voidinputs(char*prompt,char*s,intcount);

/*主函数,用于选择功能*/

voidmain()

{

STUDENT*head;

head=init();//初始化链表表头

for(;;)

{

switch(menu_select())

{

case0:

head=init();break;//初始化

case1:

head=create();break;//创建列表

case2:

head=insert(head);break;//插入节点

case3:

save(head);break;//以文件形式保存

case4:

print(head);break;//显示

case5:

search1(head);break;//搜索学号

case6:

search2(head);break;//搜索姓名

case7:

head=del(head);break;//删除

case8:

head=revise(head);break;//修改

case9:

exit(0);//退出程序

}

}

}

/*目录选择函数,返回用户输入的数字*/

intmenu_select()

{

char*menu[]={"************菜单************",

"0.初始化链表",

"1.输入学生信息",

"2.插入学生信息",

"3.保存学生信息",

"4.显示学生信息",

"5.按学号查找学生信息",

"6.按姓名查找学生信息",

"7.删除指定学号的学生信息",

"8.修改指定学号的学生信息",

"9.退出系统"};

intc,i;

for(i=0;i<=11;i++)

printf("%s\n",menu[i]);

do

{

printf("\n请选择0~9中的某一个选项:

\n");

scanf("%d",&c);

}while(c<0||c>10);

returnc;

}

/*初始化函数,作用是返回空指针初始化链表*/

STUDENT*init()

{

returnNULL;

}

/*创建函数,输入学生信息*/

STUDENT*create()

{

STUDENT*h=NULL,*info;

for(;;)

{

info=(STUDENT*)malloc(sizeof(STUDENT));

if(!

info)

{

printf("\n存不足");

returnNULL;

}

inputs("输入学号:

",info->no,11);

if(info->no[0]=='@')break;

inputs("输入姓名:

",info->name,15);

printf("输入年龄:

");

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

printf("输入性别编号(0.男1.女):

");

scanf("%s",&info->sex);

printf("输入出生年月(XXXX/XX):

");

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

inputs("输入地址:

",info->address,20);

inputs("输入:

",info->tel,12);

inputs("输入E-mail:

",info->e_mail,20);

info->next=h;

h=info;

}

returnh;

}

/*输入函数,用于判断输入的字符是否超出程序定义避免数据溢出*/

voidinputs(char*prompt,char*s,intcount)

{

charp[255];

do

{

printf(prompt);

scanf("%s",p);

if(strlen(p)>count)

printf("\n太长了!

\n");

}while(strlen(p)>count);

strcpy(s,p);

}

/*插入函数,插入学生成绩*/

STUDENT*insert(STUDENT*h)

{

STUDENT*p,*q,*info;

chars[11];

printf("请输入插入点的学生学号\n");

scanf("%s",s);

printf("\n请输入新的学生信息\n");

info=(STUDENT*)malloc(sizeof(STUDENT));

inputs("输入学号:

",info->no,11);

inputs("输入姓名:

",info->name,15);

printf("输入年龄:

");

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

printf("输入性别编号(0.男1.女):

");

scanf("%s",&info->sex);

printf("输入出生年月(XXXX/XX):

");

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

inputs("输入地址:

",info->address,20);

inputs("输入:

",info->tel,12);

inputs("输入E-mail:

",info->e_mail,20);

info->next=NULL;

p=h;

q=h;

while(strcmp(p->no,s)&&p!

=NULL)

{

q=p;

p=p->next;

}

if(p==NULL)

if(p==h)

h=info;

else

q->next=info;

elseif(p==h)

{

info->next=p;

h=info;

}

else

{

info->next=p;

q->next=info;

}

printf("\n已经插入了%s这个学生\n",info->name);

return(h);

}

/*保存函数,以文件的形式保存学生信息*/

voidsave(STUDENT*h)

{

FILE*fp;

STUDENT*p;

charoutfile[50];

printf("请输入保存文件的文件名,例如c:

\\f1\\te.txt:

\n");

scanf("%s",outfile);

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

{

printf("不能打开文件\n");

exit

(1);

}

printf("\n正在保存......\n");

p=h;

while(p!

=NULL)

{

fwrite(p,sizeof(STUDENT),1,fp);

p=p->next;

}

fclose(fp);

printf("------保存成功------\n");

}

/*显示函数,显示学生信息*/

voidprint(STUDENT*h)

{

inti=0;

STUDENT*p;

p=h;

printf("\n\n\n********************************学生*************************************\n");

printf("|学号|姓名|年龄|性别|出生年月|地址||E-mail|\n");

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

while(p!

=NULL)

{

i++;

printf("|%-8s|%-8s|%4d|%4c|%8s|%14s|%11s|%13s|\n",p->no,p->name,p->age,p->sex,p->birthday,p->address,p->tel,p->e_mail);

p=p->next;

}

printf("***************************************end*************************************\n");

}

/*搜索函数,按学号搜索学生信息并显示*/

voidsearch1(STUDENT*h)

{

STUDENT*p;

chars[11];

printf("请输入你要查找的同学的学号\n");

scanf("%s",s);

p=h;

while(strcmp(p->no,s)&&p!

=NULL)

p=p->next;

if(p==NULL)

printf("'n没有学号为%s的学生\n",s);

else

{

printf("\n\n\n****************************找到了***************************************\n");

printf("|学号|姓名|年龄|性别|出生年月|地址||E-mail|\n");

printf("|--------|--------|----

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

当前位置:首页 > 高中教育 > 语文

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

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