东X哥 通过本文主要向大家介绍了c++学生成绩管理系统,c++信息管理系统,学生信息管理系统,学生管理系统源代码,c++职工信息管理系统等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
本文实例为大家分享了C++学生信息管理系统源码,供大家参考,具体内容如下
1. tea_list.c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include"teacher.h"
int sq_tea ;
PTEA head = NULL ;
FILE *fp ;
int tea_llopen(const char* path)//打开文件
{
fp=fopen(path,"r");
if(fp==NULL){
perror("open fail");
return -1;}
#ifdef DEBUG
printf ("debug--001") ;
#endif
PTEA p;
int ret;
while(p)
{
p=malloc(sizeof(TEA));
if(p==NULL){
perror("申请空间不够");
return -1;}
ret=fscanf(fp,"%d%d%d%s%s",
&p->id,&p->age,&p->wages,p->name,p->passwd);
if(ret<=0) break;
if(head==NULL){
p->next=NULL;
p->pre=NULL;
head=p;}
else{
p->next=head;
p->pre=NULL;
head->pre=p;
head=p;}
}
return 0;
}
#if 1
int tea_llshow( )//显示
{
if(head==NULL)
return -1;
PTEA p=head;
printf("工号\t年龄\t工资\t姓名\n");
while(p)
{
printf("%d\t%d\t%d\t%s\n",
p->id,p->age,p->wages,p->name);
p=p->next;
}
return 0;
}
PTEA tea_llcheck(PTEA a)//查找
{
printf("输入查找教师工号\n");
int id;
scanf("%d",&id);
while(getchar()!='\n');
PTEA p;
p=head;
while(p)
{
if(p->id==id){
printf ("工号\t年龄\t薪水\t姓名\n " );
printf ("%d\t%d\t%d\t%s\n",p->id,p->age,p->wages,p->name);
break ;
}
p=p->next;
}
if (p==NULL) {
printf ("未找到该教师\n");
printf ("是否继续查找y/n\n") ;
char ch ;
getchar();
ch=getchar();
if((ch=='y')||(ch=='Y'))
tea_llcheck (p ) ;
else
return NULL ;
}
return 0;
}
#endif
#if 1
int tea_lladd(PTEA b )//增加老师信息
{
#ifdef _DEBUG_
printf ("debug-001\n") ;
#endif
PTEA p ;
char ch ;
p=malloc(sizeof(TEA));
if(p==NULL){
perror("申请空间不够\n");
return -1;}
printf ("请输入添加老师的信息\n工号\t年龄\t薪水\t姓名\t密码\n") ;
scanf("%d%d%d%s",&p->id,&p->age,&p->wages,p->name,p->passwd) ;
while(getchar()!='\n');
if ( p == NULL )
return -1 ;
if ( head == NULL ) //说明链表为空,加入成第一个
{ p->next = NULL ;
p->pre = NULL ;
head->pre = p ;
head = p ;
}
else {
p->next=head ;
p->pre=NULL ;
head->pre = p ;
head=p ;
}
/* fprintf ( fp , "%d\t%d\t%d\t%s\n",p->id,p->age,p->wages,p->name ) ;
fclose ( fp ) ;
fopen ("teacher.txt" , "a+");
*/
return 0 ;
}
#endif
#if 1
int tea_lldelete( PTEA a ) //删除老师
{ int key ;
printf ("请输入要删除的老师的工号\n") ;
scanf ("%d",&key);
while(getchar()!='\n');
PTEA p ;
PTEA q ;
p = head ;
while (p)
{ if (p->id == key )
{
if( (p == head)&&(head->next!=NULL) )
{ head = head->next ;
head->pre = NULL ;
#ifdef _DEBUG_
printf ("case 1\n") ;
#endif
}
else if ((p==head) && ( head->next==NULL))
{ head = NULL ;
#ifdef _DEBUG_
printf ("case 2\n") ;
#endif
}
else if( (p!=head )&&(p->next!=NULL) )
{p->pre->next=p->next ;
p->next->pre = p->pre ;
#ifdef _DEBUG_
printf ("case 3\n ") ; I
#endif
}
else { p->pre->next = NULL ;
#ifdef _DEBUG_
printf ("case 4\n") ;
#endif
}
break ;
}
p = p->next ;
}
free (p) ;
if (p==NULL)
printf ("未找到该教师") ;
/* fp = fopen("teacher.txt","r+");
while(p){
fprintf (fp ," %d\t%d\t%d\t%s\n" , p->id , p->age ,p->wages , p->name );
p=p->next ;
}
fclose (fp) ;
tea_llopen ;
*/ }
#endif
#if 1
int tea_llchange()//修改老师信息
{
PTEA p;
printf("\n输入工号");
int key;
scanf("%d",&key);
while(getchar()!='\n');
p=head;
while(p)
{
if(p->id==key){
printf("工号\t年龄\t薪水\t姓名\n");
scanf("%d%d%d%s%s",
&p->id,&p->age,&p->wages,p->name,p->passwd);
while(getchar()!='\n');
break ;
}
p=p->next;}
p = head ;
printf ("修改之后为\n");
printf("学号\t年龄\t数学\t英语\t语文\t班级\t姓名\t密码\n");
while(p)
{
printf("%d\t%d\t%d\t%s\t%s\n",
p->id,p->age,p->wages,p->name,p->passwd);
p=p->next;
}
return 0;
}
#endif
#if 1
PTEA tea_check_id() //校验老师用户名
{
PTEA p;
p = head;
int id;
char ch;
printf("请输入您的工号:");
scanf("%d",&id);
while(getchar()!='\n');
while(p)
{
if(p->id==id){
return p;
}
p = p->next;
}
if(p==NULL){
printf("找不到该用户\n");
printf("是否重试?[y/n]\n");
// scanf("%c",&ch) ;
// getchar () ;
ch = getchar () ;
if ((ch=='y')||(ch=='Y'))
tea_check_id();
else
menu();
}
}
#endif
#if 1
PTEA tea_check_passwd() //校验老师密码
{
PTEA p;
p =tea_check_id();
char passwd[20];
char ch;
printf("请输入密码:");
scanf("%s",passwd);
while(getchar()!='\n');
if(strcmp (p->passwd , passwd)==0)
{
sq_tea = p->id ;
#ifdef _DEBUG_
printf("================%d\n",p->id) ;
printf("================%d\n",sq_tea) ;
getchar();
getchar();
#endif
return p;
}else{
printf("密码不正确\n");
printf("是否重新输入[y/n]\n");
// getchar() ;
ch = getchar () ;
while(getchar()!='\n');
if((ch=='y')||(ch=='Y'))
tea_check_passwd();
else
menu();
}
return NULL;
}
#endif
#if 1
int tea_change_passwd()
{
PTEA p;
p=tea_check_passwd();
char new_passwd[20];
char new[20];
char ch;
printf("请输入新密码:");
scanf("%s",new_passwd);
while(getchar() != '\n');
printf("请再次输入新密码:");
scanf("%s",new);
while(getchar() != '\n');
if(strcmp(new_passwd,new)==0)
{
strcpy(p->passwd,new_passwd) ;
printf("密码修改成功!\n");
// tea_write() ;
}
else
{
printf("密码输入错误\n");
printf("是否重试[y/n]\n");
// getchar();
ch=getchar() ;
while(getchar()!='\n');
if((ch=='y')||(ch=='Y'))
tea_change_passwd();
else
exit(1);
}
return 0;
}
#endif
#if 1
int tea_lookme()
{
PTEA p;
p = head ;
while (p) {
if( p->id == sq_tea ) {
printf("工号\t年龄\t薪水\t姓名\t密码\n");
printf("%d\t%d\t%d\t%s\n%s\n",
p->id,p->age,p->wages,p->name,p->passwd);
}
p = p->next ;
}
return 0 ;
}
#endif
#if 1
int tea_write()
{
PTEA p;
// PTEA head ;
FILE *fp;
p=head;
fp=fopen("teacher.txt","w+");
while(p)
{
fprintf( fp,
"%d\t%d\t%d\t%s\t%s\n",
p->id,p->age,p->wages,p->name,p->passwd);
p=p->next;
}
return 0;
}
#endif
#if 0
int main(int argc,char * argv[])
{
if(argc<2){
printf("execult error");
return -1;}
int ret;
PTEA p;
ret=tea_llopen(argv[1]);
if(ret<0){
printf("list is end\n");
return -1;}
// tea_llshow(head);
// int id;
/* p=tea_llcheck();
printf("%d\t%d\t%d\t%s\n",
p->id,p->age,p->wages,p->name);
*/ //tea_llshow();
// tea_lladd(head) ;
// tea_llshow(head) ;
// tea_lldelete( head ) ;
// tea_llshow(head) ;
tea_llcheck(head) ;
return 0;
}
#endif
</div>
2. stu_list.c
#include<stdio.h> #include<stdlib.h> #include<string.h

