学生档案管理系统源码

#include

#include

//#include //定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作

#include //调用malloc()函数

//#include //字符测试函数与字符映射函数

#define LEN sizeof(information)

struct information

{

char name[20]; //姓名

char num[10]; //档案号

char phonenum[12]; //电话

char place[20]; //籍贯

int age; //年龄

struct information * next;

};

typedef struct information;

void menu();

information *Creat(); //录入信息

void Insert(information *head); //添加学生信息

information *Dele(information *head); //删除学生信息

void check(information *head); //查询学生信息

void browse(information *head); //浏览信息

void main()

{

int p;

information *head=NULL;

char ch;

//进入系统首页

printf("\t 系统初始化成功 \n");

printf("\t\n\n\n\n\t ━〓━━━━━━━━━━━━━━━━━━━━━━━━━━〓━\n");

printf("\t \n");

printf("\t 〓 学生档案管理系统 〓 \n");

printf("\t \n");

printf("\t \n");

printf("\t 〓 制作人: XXX 〓 \n");

printf("\t \n");

printf("\t ━〓━━━━━━━━━━━━━━━━━━━━━━━━━━〓━\n\n\n\n");

printf("\t\t\t请选择,'y'录入信息,'n'退出系统:");

do

{

scanf("%c",&ch);

switch(ch)

{

case 'y':

head=Creat();

break;

case 'n':

printf("\t\t\t\t退出系统");

exit(0);

break;

default:

printf("输入有误,请重新输入。\n");

break;

}

}while(ch!='y' && ch!='n');

do

{

menu();

printf("请输入您要执行的操作");

scanf("%d",&p);

switch(p)

{

case 1:

Insert(head);

break;

case 2:

head=Dele(head);

break;

case 3:

check(head);

break;

case 4:

browse(head);

break;

case 0:

printf("\t\t\t\t退出系统");

exit(0);

break;

default:

printf("输入有误,请重新输入;\n");

break;

}

}while(p);

}

//菜单

void menu()

{

printf("\n\n★按任意键进入主菜单\n★press any key to enter the main menu");

getchar();

getchar();

system("cls");

printf(" \n\n\n\n\n\n\t\t ■------------学生档案管理系统------------■\n");

printf("\t

\n");

printf("\t\t 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");

printf("\t\t ** 1. 添加学生信息 **\n");

printf("\t\t ** 2. 删除学生信息 **\n");

printf("\t\t ** 3. 学生信息查询 **\n");

printf("\t\t ** 4. 学生信息浏览 **\n");

printf("\t\t ** 0. 退出管理系统 **\n");

printf("\t\t 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\n\n");

}

//录入学生信息

information *Creat()

{

information *head=NULL,*end,*node;

int i,n;

system("cls");

printf("\n\n请输入人数:");

scanf("%d",&n);

system("cls");

while(n

{

printf("输入错误,请重新输入");

printf("\n\n请输入人数:");

scanf("%d",&n);

}

for(i=0;i

{

node=(information *)malloc(LEN); //Malloc 向系统申请分配指定size个字节的内存空间。

if(node==NULL)

{

printf("创建空间错误");

}

system("cls");

printf("\t\t\t\t录*入*学*生*基*本*信*息\n");

printf("\n姓名:");

scanf("%s",node->name);

printf("\n档案号:");

scanf("%s",node->num);

printf("\n电话号码:");

scanf("%s",node->phonenum);

printf("\n籍贯:");

scanf("%s",node->place);

printf("\n年龄:");

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

node->next=NULL;

if(i==0)

head=end=node;

else

{

end->next=node;

end=node;

}

}

return head;

}

//添加学生信息

void Insert(information *head)

{

information *node;

if(head==NULL)

{

printf("该表为空");

return;

}

else

{ system("cls");

node=(information*)malloc(LEN);

printf("\n姓名:");

scanf("%s",node->name);

printf("\n档案号:");

scanf("%s",node->num);

printf("\n电话号码:");

scanf("%s",node->phonenum);

printf("\n籍贯:");

scanf("%s",node->place);

printf("\n年龄:");

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

node->next=head->next;

head->next=node;

}

}

//删除学生信息

information *Dele(information *head)

{ system("cls");

information *temp,*front;

char n[20];

printf("\n删除的学生的档案号为:");

scanf("%s",n);

if(head==NULL)

{

printf("\n\n表格为空!\n");

return NULL;

}

else

{

if(strcmp(head->num,n)==0)

{

temp=head->next;

free (head);

return temp;

}

else

{

front=head;

temp=head->next;

while((temp!=NULL)&&strcmp(temp->num,n)!=0)

{

temp=temp->next; //把不需要删除的放在front中

front=front->next;

}

if(temp==NULL)

{

printf("\n\n无此学生!\n");

return head;

}

else

{

front->next=temp->next;

free( temp);

printf("已删除,请返回操作");

}

}

}

return head;

}

//查询学生信息

void check(information *head)

{ system("cls");

information *node=head;

int k;

char _name2[20];

char _num1[20];

char _place3[20];

int n=0;

printf("你可以按以下方式查询\n");

printf("********************************************************

**********************\n");

printf("1.按档案号\n");

printf("2.按姓名\n");

printf("3.按籍贯\n");

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

printf("输入你的选择1-3:");

scanf("%d",&k);

switch(k)

{

case 1:

printf("\n要查询的档案号为:");

scanf("%s",_num1);

while(node!=NULL)

{

while((node!=NULL) && (strcmp(node->num,_num1)!=0))

node=node->next;

if(node==NULL)

{

if(n!=0)

{

return;

}

else

{

printf("\n查无此人!\n");

return;

}

}

else

{

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

printf("| 姓名 | 档案号 | 电话号码 | 籍贯 | 年龄 |\n");

printf(" %-10s %-14s%-18s%-12s%-8d\n",node->name,node->num,node->phonenum,node->place,node->age);

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

node=node->next;

n++;

}continue;

}

break;

case 2:

n=0;

printf("\n要查询的学生姓名为:");

scanf("%s",_name2);

while(node!=NULL)

{

while((node!=NULL) && (strcmp(node->name,_name2)!=0))

node=node->next;

if(node==NULL)

{

if(n!=0)

{

return;

}

else

{

printf("\n查无此人\n");

return;

}

}

else

{

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

printf("| 姓名 | 档案号 | 电话号码 | 籍贯 | 年龄 |\n");

printf(" %-10s %-14s%-18s%-12s%-8d\n",node->name,node->num,node->phonenum,node->place,node->age);

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

node=node->next;

n++;

}continue;

}

break;

case 3:

n=0;

printf("\n要查询的学生籍贯为:");

scanf("%s",_place3);

while(node!=NULL)

{

while((node!=NULL) && (strcmp(node->place,_place3)!=0))

node=node->next;

if(node==NULL)

{

if(n!=0)

{

return;

}

else

{

printf("\n查无此人\n");

return;

}

}

else

{

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

printf("| 姓名 | 档案号 | 电话号码 | 籍贯 | 年龄 |\n");

printf(" %-10s %-14s%-18s%-12s%-8d\n",node->name,node->num,node->phonenum,node->place,node->age);

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

node=node->next;

n++;

}continue;

}

break;

}

}

//浏览学生信息

void browse(information *head)

{ system("cls");

information *node;

node=head;

while(node!=NULL)

{

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

printf("| 姓名 | 档案号 | 电话号码 | 籍贯 | 年龄 |\n");

printf(" %-10s %-14s%-18s%-12s%-8d\n",node->name,node->num,node->phonenum,node->place,node->age);

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

node=node->next;

}

}

#include

#include

//#include //定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作

#include //调用malloc()函数

//#include //字符测试函数与字符映射函数

#define LEN sizeof(information)

struct information

{

char name[20]; //姓名

char num[10]; //档案号

char phonenum[12]; //电话

char place[20]; //籍贯

int age; //年龄

struct information * next;

};

typedef struct information;

void menu();

information *Creat(); //录入信息

void Insert(information *head); //添加学生信息

information *Dele(information *head); //删除学生信息

void check(information *head); //查询学生信息

void browse(information *head); //浏览信息

void main()

{

int p;

information *head=NULL;

char ch;

//进入系统首页

printf("\t 系统初始化成功 \n");

printf("\t\n\n\n\n\t ━〓━━━━━━━━━━━━━━━━━━━━━━━━━━〓━\n");

printf("\t \n");

printf("\t 〓 学生档案管理系统 〓 \n");

printf("\t \n");

printf("\t \n");

printf("\t 〓 制作人: XXX 〓 \n");

printf("\t \n");

printf("\t ━〓━━━━━━━━━━━━━━━━━━━━━━━━━━〓━\n\n\n\n");

printf("\t\t\t请选择,'y'录入信息,'n'退出系统:");

do

{

scanf("%c",&ch);

switch(ch)

{

case 'y':

head=Creat();

break;

case 'n':

printf("\t\t\t\t退出系统");

exit(0);

break;

default:

printf("输入有误,请重新输入。\n");

break;

}

}while(ch!='y' && ch!='n');

do

{

menu();

printf("请输入您要执行的操作");

scanf("%d",&p);

switch(p)

{

case 1:

Insert(head);

break;

case 2:

head=Dele(head);

break;

case 3:

check(head);

break;

case 4:

browse(head);

break;

case 0:

printf("\t\t\t\t退出系统");

exit(0);

break;

default:

printf("输入有误,请重新输入;\n");

break;

}

}while(p);

}

//菜单

void menu()

{

printf("\n\n★按任意键进入主菜单\n★press any key to enter the main menu");

getchar();

getchar();

system("cls");

printf(" \n\n\n\n\n\n\t\t ■------------学生档案管理系统------------■\n");

printf("\t

\n");

printf("\t\t 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");

printf("\t\t ** 1. 添加学生信息 **\n");

printf("\t\t ** 2. 删除学生信息 **\n");

printf("\t\t ** 3. 学生信息查询 **\n");

printf("\t\t ** 4. 学生信息浏览 **\n");

printf("\t\t ** 0. 退出管理系统 **\n");

printf("\t\t 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\n\n");

}

//录入学生信息

information *Creat()

{

information *head=NULL,*end,*node;

int i,n;

system("cls");

printf("\n\n请输入人数:");

scanf("%d",&n);

system("cls");

while(n

{

printf("输入错误,请重新输入");

printf("\n\n请输入人数:");

scanf("%d",&n);

}

for(i=0;i

{

node=(information *)malloc(LEN); //Malloc 向系统申请分配指定size个字节的内存空间。

if(node==NULL)

{

printf("创建空间错误");

}

system("cls");

printf("\t\t\t\t录*入*学*生*基*本*信*息\n");

printf("\n姓名:");

scanf("%s",node->name);

printf("\n档案号:");

scanf("%s",node->num);

printf("\n电话号码:");

scanf("%s",node->phonenum);

printf("\n籍贯:");

scanf("%s",node->place);

printf("\n年龄:");

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

node->next=NULL;

if(i==0)

head=end=node;

else

{

end->next=node;

end=node;

}

}

return head;

}

//添加学生信息

void Insert(information *head)

{

information *node;

if(head==NULL)

{

printf("该表为空");

return;

}

else

{ system("cls");

node=(information*)malloc(LEN);

printf("\n姓名:");

scanf("%s",node->name);

printf("\n档案号:");

scanf("%s",node->num);

printf("\n电话号码:");

scanf("%s",node->phonenum);

printf("\n籍贯:");

scanf("%s",node->place);

printf("\n年龄:");

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

node->next=head->next;

head->next=node;

}

}

//删除学生信息

information *Dele(information *head)

{ system("cls");

information *temp,*front;

char n[20];

printf("\n删除的学生的档案号为:");

scanf("%s",n);

if(head==NULL)

{

printf("\n\n表格为空!\n");

return NULL;

}

else

{

if(strcmp(head->num,n)==0)

{

temp=head->next;

free (head);

return temp;

}

else

{

front=head;

temp=head->next;

while((temp!=NULL)&&strcmp(temp->num,n)!=0)

{

temp=temp->next; //把不需要删除的放在front中

front=front->next;

}

if(temp==NULL)

{

printf("\n\n无此学生!\n");

return head;

}

else

{

front->next=temp->next;

free( temp);

printf("已删除,请返回操作");

}

}

}

return head;

}

//查询学生信息

void check(information *head)

{ system("cls");

information *node=head;

int k;

char _name2[20];

char _num1[20];

char _place3[20];

int n=0;

printf("你可以按以下方式查询\n");

printf("********************************************************

**********************\n");

printf("1.按档案号\n");

printf("2.按姓名\n");

printf("3.按籍贯\n");

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

printf("输入你的选择1-3:");

scanf("%d",&k);

switch(k)

{

case 1:

printf("\n要查询的档案号为:");

scanf("%s",_num1);

while(node!=NULL)

{

while((node!=NULL) && (strcmp(node->num,_num1)!=0))

node=node->next;

if(node==NULL)

{

if(n!=0)

{

return;

}

else

{

printf("\n查无此人!\n");

return;

}

}

else

{

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

printf("| 姓名 | 档案号 | 电话号码 | 籍贯 | 年龄 |\n");

printf(" %-10s %-14s%-18s%-12s%-8d\n",node->name,node->num,node->phonenum,node->place,node->age);

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

node=node->next;

n++;

}continue;

}

break;

case 2:

n=0;

printf("\n要查询的学生姓名为:");

scanf("%s",_name2);

while(node!=NULL)

{

while((node!=NULL) && (strcmp(node->name,_name2)!=0))

node=node->next;

if(node==NULL)

{

if(n!=0)

{

return;

}

else

{

printf("\n查无此人\n");

return;

}

}

else

{

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

printf("| 姓名 | 档案号 | 电话号码 | 籍贯 | 年龄 |\n");

printf(" %-10s %-14s%-18s%-12s%-8d\n",node->name,node->num,node->phonenum,node->place,node->age);

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

node=node->next;

n++;

}continue;

}

break;

case 3:

n=0;

printf("\n要查询的学生籍贯为:");

scanf("%s",_place3);

while(node!=NULL)

{

while((node!=NULL) && (strcmp(node->place,_place3)!=0))

node=node->next;

if(node==NULL)

{

if(n!=0)

{

return;

}

else

{

printf("\n查无此人\n");

return;

}

}

else

{

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

printf("| 姓名 | 档案号 | 电话号码 | 籍贯 | 年龄 |\n");

printf(" %-10s %-14s%-18s%-12s%-8d\n",node->name,node->num,node->phonenum,node->place,node->age);

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

node=node->next;

n++;

}continue;

}

break;

}

}

//浏览学生信息

void browse(information *head)

{ system("cls");

information *node;

node=head;

while(node!=NULL)

{

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

printf("| 姓名 | 档案号 | 电话号码 | 籍贯 | 年龄 |\n");

printf(" %-10s %-14s%-18s%-12s%-8d\n",node->name,node->num,node->phonenum,node->place,node->age);

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

node=node->next;

}

}


相关内容

  • 教育培训类网站免费模板
  • 0110图书管理系统源码免费下载 在这里给大家分享一套完整的学生网报名系统程序源码: 功能简介: 1.简单的页面加密,页面密码(注意密码的大小写):25175 2.实现了图书分类.图书添加.图书管理.借书会员管理.借书管理.还书管理.书本废弃管理 3.教案主要目的:学习... 0109学生报名缴费管 ...

  • 高校教师管理系统
  • 课程设计说明书 课程名称:项目名称:学院:专业:班级:姓名:指导教师:完成时间:目录 摘要......................................................................................................... ...

  • 软件部管理制度
  • 软件管理制度(暂定) 为进一步加强软件部门管理,提高各工程师工作效率,发挥每一位的主观能动性,创造良好的工作氛围,更好的推进部门各项目进度,并为下一步更好地开展项目创造良好的条件和工作环境.制定该制度,该制度进一部明确了部门人员工作职责,制定源码管理制度.程序打包管理.版本管理和其他日常管理制度. ...

  • 计算机软件许可协议
  • "拥有"计算机股份有限公司(以下简称许可方)位于 ,总部设在 ,邮政编码为 . "需要"制造公司(以下简称被许可方),位于 ,总部设在 ,邮政编码为 . 上述双方协商同意,特签订本协议书,以此为证. 鉴于许可方开发并拥有一个取名为"万能"的 ...

  • 计算机软件许可证协议书
  • "拥有"计算机股份有限公司(以下简称许可方)位于纽约州,总部设在纽约州纽约市发展大道第0号,邮政编码为11111. "需要"制造公司(以下简称被许可方),位于特拉华州,总部设在宾西法尼亚州匹兹堡市用户街1号,邮政编码为22222. 上述双方协商同意,特签订本协 ...

  • 机器人创意精彩实例:电赛作品.毕业设计和开源资料
  • 本聚合贴收集了电路城27个优秀的电子大赛作品.毕业设计和开源资料,内容包含了魔方机器人.六爪机器人和健康监测机器人等设计与制作,项目作品提供了电路图.PCB图及源代码等设计资料,有了它们,全国大学生电子设计竞赛和毕业设计so easy! 推荐项目更多电路>> 解魔方机器人(安卓手机新版) ...

  • 用邮件发简历
  • [简历投递] 全文:手把手教你发邮件正文简历(附中文简历模板) 版主/管理员寄语 locust_j (2009年7月24日 16点16分54秒): 该帖已收录至简历版精华置顶贴:中英文简历制作技巧及经验.简历投递技巧精华合集贴(点击查看) 2009年3月3日新增修订内容: 鉴于很多网友提问,使用Ya ...

  • .Net纳税评估
  • 纳税评估V2006 操 作 手 册 驰骋软件 修订:2007-05-03 ------------------------------ 目 录 ------------------------------ 0前言 ........................................... ...

  • 安全工具集合
  • 最佳的安全工具 发些安全工具,希望对大家有用```(申请精华和高亮) -------------------------------------------------------------------------------- 工具:Nessus(最好的开放源代码风险评估工具) 网址:http: ...