C语言实现学生学籍管理系统

本文实例为大家分享了C语言实现学生学籍管理系统的具体代码,供大家参考,具体内容如下

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h> 

//**********************************结构体*************************************
struct score
{
 char class_num[10];
 char person_num[10];
 char name[15];
 char sex;
 int num;
}stu; 

//******************************输出*******************************************
void print1()            //输出科目函数
{
printf("班级  学号  姓名    性别  分数\n");
} 

//*****************************菜单********************************************
int menu()             //菜单函数
{ 

 char i;
 printf("\n\n\n\n");
 puts("\t\t**********************主菜单******************\t\n");
 puts("\t\t\t\t1.学生信息输入        \n");
 puts("\t\t\t\t2.学生信息浏览        \n");
 puts("\t\t\t\t3.学生信息检索        \n");
 puts("\t\t\t\t4.学生信息修改        \n");
 puts("\t\t\t\t5.学生信息删除        \n");
 puts("\t\t\t\t6. 退 出 系 统        \n");
 puts("\t\t**********************************************\t\n");
 printf("\t\t\t 请选择(1-6):[ ]\b\b");
 i=getchar();
 system("cls");
 return i;
} 

//**********************输入函数*******************************************
void Enter()
{ 

 FILE *fp;
 char ch;
 if((fp=fopen("f:\\zimou.txt","a+"))==NULL)
 {
  printf("\nCannot open file!\n");
  getch();
  exit(1);
 }
 do
 {
  printf("请输入班级:");scanf("%s",stu.class_num);getchar();
  printf("\n");
  printf("请输入学号:");gets(stu.person_num);
  printf("\n");
  printf("请输入姓名:");gets(stu.name);
  printf("\n");
  printf("性  别(m/f):");scanf("%c",&stu.sex);getchar();
  printf("\n");
  printf("分  数:");scanf("%d",&stu.num);getchar();
  printf("\n");
  fwrite(&stu,sizeof(stu),1,fp);
  printf("继续(y/n)?[ ]\b\b");
  ch=getchar(); getchar();
 }while(ch=='y'||ch=='Y');
 fclose(fp);
 system("cls");
} 

//*****************浏览函数**********************************************
void Browse()
{ 

FILE *fp;
int total=0;
if((fp=fopen("f:\\zimou.txt","a+"))==NULL)
{
 printf("\tCan not open the inform file!");
 getch();
 exit(1);
}
while(fread(&stu,sizeof(stu),1,fp)==1)
{
 total++;
 if(total==1)
 print1();
 printf("%-10s%-10s%-20s",stu.class_num,stu.person_num,stu.name);
 printf("%-8c",stu.sex);
 printf("%-4d ",stu.num);
 printf("\n");
}
fclose(fp);
printf("\n\n\t共有 %d 条记录!\n",total);
printf("\tpress any key to continue!");
getchar();
getchar();
system("cls"); 

} 

//*******************查询函数*********************************************
void Query()
{
 FILE * fp;
 char num1[10];
 char ch;
if((fp=fopen("f:\\zimou.txt","a+"))==NULL)
{
 printf("\tCan not open the inform file!");
 getch();
 exit(1);
}
do
{
 getchar();
 rewind(fp);
 printf("\n请输入学号查询:");
 gets(num1);
 while(fread(&stu,sizeof(stu),1,fp)==1)
  if(strcmp(num1,stu.person_num)==0)
  {
   print1();
   printf("%-10s%-10s%-20s",stu.class_num,stu.person_num,stu.name);
   printf("%-8c",stu.sex);
   printf("%-4d ",stu.num);
   printf("\n");
   break;
  }
  puts("\n");
 printf("继续查询?(Y/N):[ ]\b\b");
 ch=getchar();
}while(ch=='Y'||ch=='y');
fclose(fp);
system("cls");
} 

//**********************学生成绩修改函数*********************************** 

void Recopose()
{
  FILE * fp1,* fp2;
  char num1[10];
  char ch;
  getchar();
 do
 {
  if((fp1=fopen("f:\\zimou.txt","a+"))==NULL)
  {
  printf("\tCan not open the infom file!");
  getch();
  exit(1);
  }
  if((fp2=fopen("f:\\ziye.txt","a+"))==NULL)
  {
  printf("\tCan not creat the temp file!");
  getch();
  exit(1);
  }
  printf("请输入想要修改的学号:");
  gets(num1);
while(fread(&stu, sizeof(stu),1,fp1)==1)
{
  if(strcmp(num1,stu.person_num)==0)
  {
   print1();
   printf("%-10s%-10s%-20s",stu.class_num,stu.person_num,stu.name);
   printf("%-8c",stu.sex);
   printf("%-4d ",stu.num);
   printf("\n");
   printf("\n\nPlease input the new information:\n");
   printf("\t班级代号:");gets(stu.class_num);
   printf("\t学生学号:");gets(stu.person_num);
   printf("\t学生姓名:"); gets(stu.name);
   printf("\t学生性别:");gets(&stu.sex);
   printf("\t学生成绩:");scanf("%d",&stu.num); getchar();
  }
 fwrite(&stu,sizeof(stu),1,fp2);
 }
 fclose(fp1);
 fclose(fp2);
 printf("修改成功!\n");
 remove("f:\\zimou.txt");
 rename("f:\\ziye.txt","f:\\zimou.txt");
 printf("继续修改?(Y/N):[ ]\b\b");
 ch=getchar(); getchar();
}while(ch=='Y'||ch=='y');
 system("cls");
} 

//*********************删除函数******************************************
void Delete()
{
  FILE * fp1,* fp2;
  int flag;
  char num1[10];
  char ch;
  getchar();
  do
  {
  if((fp1=fopen("f:\\zimou.txt","a+"))==NULL)
  {
   printf("\tCan not open the inform file!");
   getch();
   exit(1);
  }
  if((fp2=fopen("f:\\ziye.txt","a+"))==NULL)
  {
   printf("\tCan not creat the temp file!");
   getch();
   exit(1);
  }
  printf("请输入你要删除的学生的学号:");
  gets(num1);
  flag=0;
  while(fread(&stu,sizeof(stu),1,fp1)==1)
  {
   if(strcmp(num1,stu.person_num)==0)
   {
    print1();
    printf("%-10s%-10s%-20s",stu.class_num,stu.person_num,stu.name);
    printf("%-8c",stu.sex);
    printf("%-4d ",stu.num);
    printf("\n");
    flag=1;
   }
   else
    fwrite(&stu,sizeof(stu),1,fp2);
  }
  fclose(fp1);
  fclose(fp2);
  if(flag==1)
  {
   remove("f:\\zimou.txt");
   rename("f:\\ziye.txt","f:\\zimou.txt");
  }
  else
   printf("Can not find this record!\n");
  printf("继续删除?(Y/N):[ ]\b\b");
  ch=getchar(); getchar();
  }while(ch=='Y'||ch=='y');
  system("cls");
} 

//***********************************退出**************************************
void Exit()
{
 puts("\n\t\t\t\t感谢使用本系统!!\n\n\t\t\t\t有任何问题请联系:1005483758@qq.com \n");
 exit(0);
} 

//******************欢迎界面**********************************
void Welcome()
{
  printf("\n\n");
 printf(" \t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
 printf(" \t┃**********************************************************┃\n");
 printf(" \t┃***┏━━━━━━━━━━━━━━━━━━━━━━━━┓***┃\n");
 printf(" \t┃***┃************************************************┃***┃\n");
 printf(" \t┃***┃***           ****┃***┃\n");
 printf(" \t┃***┃***  欢迎使用学生成绩管理系统   ****┃***┃\n");
 printf(" \t┃***┃***           ****┃***┃\n");
 printf(" \t┃***┃***           ****┃***┃\n");
 printf(" \t┃***┃***     制作人:XXY   ****┃***┃\n");
 printf(" \t┃***┃***           ****┃***┃\n");
 printf(" \t┃***┃***      2013.6.20  ****┃***┃\n");
 printf(" \t┃***┃***           ****┃***┃\n");
 printf(" \t┃***┃************************************************┃***┃\n");
 printf(" \t┃***┗━━━━━━━━━━━━━━━━━━━━━━━━┛***┃\n");
 printf(" \t┃**********************************************************┃\n");
 printf(" \t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
 puts(" \n\t      ① 管理员登陆!       \n");
 puts(" \n\t      ② 游客 登陆!       \n");
 printf("\n请选择登陆(1 or 2):[ ]\b\b"); / /左移一位“\b ”
} 

//*****************************主函数****************************************
int main()
{
  int i,k=0;
  char username[15],pwd[7],c;
  system("color 5e");//颜色
  Welcome();
   c=getchar();getchar();
  if (c=='1')
  {
   system("cls");//跳转页面。
   puts("\n\n\n\n\n\n\n\t\t\t\t管 理 员 登 陆!\n\n\n\n\n\t\t\t\t 请 登 陆!");
   getchar();
   for(i=0;i<3;i++)
    {
      printf("\n请输入用户名:");
     gets(username);
     printf("\n请输入6位密码:");
     gets(pwd);
     //判断条件
     if((strcmp(username,"xiaxianyun")==0)&&(strcmp(pwd,"123456")==0))
     {
      printf("\n您已经成功登录\n");
      k=1;
      for(i=0;i<20;i++)
      {
        printf(".");
        Sleep(100);
      }
     system("cls"); 

      while(1)
      switch(menu())
      {
       case '1':Enter();break;
       case '2':Browse();break;
       case '3':Query();break;
       case '4':Recopose();break;
       case '5':Delete();break;
       case '6':Exit();break;
      }
      break;
     }
    else
     printf("\n用户名或密码无效 请重新输入:\n");
     continue;
    }
     if(k==0)
    printf("\n连续输入错误3次 将退出程序\n");
  Sleep(2000);
  exit(1);
  }
  else if(c=='2')//游客登录
  {
   system("cls");//跳转页面。
   puts("\n\n\n\n\n\n\n\t\t\t\t欢 迎 游 客 进 入!\n\n\n\n\n\t\t\t\t 请 确 定!");
   getchar();
   system("cls");
   while(1)
    switch(menu())
    {
     case '1':Enter();break;
     case '2':Browse();break;
     case '3':Query();break;
     case '4':system("cls");getchar();
     puts("\n\n\t\t对不起你没有权限修改!\n\n");
     printf("\t\tpress any key to continue!");getchar();system("cls");break;
     case '5':system("cls");getchar();
     puts("\n\n\t\t对不起你没有权限删除!\n\n");
     printf("\t\tpress any key to continue!");getchar();system("cls");break;
     case '6':Exit();break;
    }
  }
 return 0;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • C语言学生学籍管理系统课程设计
  • C语言实现简单学生学籍管理系统
  • 学生信息管理系统C语言版
  • C语言单链表版学生信息管理系统
  • C语言实现学生信息管理系统(单链表)
  • C语言学生信息管理系统小项目
  • C语言数组实现学生信息管理系统设计
  • C语言版学生成绩管理系统
  • C语言学生信息管理系统设计与实现
  • 基于C语言实现学生成绩管理系统
(0)

相关推荐

  • C语言学生信息管理系统小项目

    本文为大家分享了C语言学生信息管理系统小项目,供大家参考,具体内容如下 /* 运行环境:我是在linux里面用gcc编译的,在windows里应该也能运行,用的一些文件库函数都是c标准库,没有用linux的系统调用(纠正一下:system("clear")这个系统调用是linux的,windows里面用system("cls") ) (1)问题描述 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等.试设计一学生信息管理系统,使之能提供以下功

  • C语言实现学生信息管理系统(单链表)

    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 /*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016年7月1日 * 版本号:codeblock * * 问题描述: 学生信息管理系统 * 输入描述: * 程序输出: 输出结果 */ #include <stdio.h> #include <stdlib.h> #include

  • 基于C语言实现学生成绩管理系统

    本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 这里只贴代码,具体介绍省略. #include <stdio.h> #include <io.h> #include <conio.h> #include <stdlib.h> #include <string.h> #define MAX 200 struct student { char no[10]; // 学号 char name[50]; // 姓名 f

  • C语言数组实现学生信息管理系统设计

    概述 单纯只用多个数组管理学生成绩信息,不使用结构体,该程序最主要的难点是依据学号或总成绩对学生信息进行排序,借助了临时数组来标记排好序的下标. 运行结果如下: 输入数据: 打印数据: 根据学号对信息进行排序: 根据总成绩对信息进行排序: 根据学号删除某一信息: 代码如下: #include <stdio.h> #include <stdlib.h> //exit函数头文件 #include <string.h> //字符串相关操作头文件 #define MAX_STU

  • C语言学生学籍管理系统课程设计

    C语言学生学籍管理系统做了好长时间的,里面有点小问题,希望大佬找到并帮忙改改,注意输入密码三次错误会自动注销用户,密码123456 代码: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> struct student { char xuehao[100];//输入学号 char name[100];//输入姓名 char sex[100];//输入性别 int

  • C语言单链表版学生信息管理系统

    本文实例为大家分享了C语言学生信息管理系统的具体代码,供大家参考,具体内容如下 代码: //以单链表作为存储结构,设计和实现课程成绩管理的完整程序. //程序包括如下功能. //1.建立学生成绩表,包含学生的学号.姓名和成绩. //2.可以显示所有学生成绩. //3.可以计算学生的总数. //4.可以按学号和序号查找学生. //5.可以在指定位置插入学生成绩数据. //6.可以删除指定位置的学生数据. //7.可以把学生成绩按从高到低的顺序排序. //作者: yinlinqvan //操作系统:

  • C语言学生信息管理系统设计与实现

    本文实例为大家分享了C语言学生信息管理系统的具体代码,供大家参考,具体内容如下 #include"stdio.h" //标准的输入输出函数文件头部说明 #include"math.h" // 数学函数头部说明 #include"string.h" #include"stdlib.h" //通过该函数头部里的函数,改变控制台的背景和颜色 #include"windows.h" //头文件声明,下文用到了改变控

  • C语言实现简单学生学籍管理系统

    本文实例为大家分享了C语言实现学生学籍管理系统的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<string.h> #include<stdlib.h> #include<conio.h> #define N 100 /*存储100个学生的学籍信息*/ int flag; /*标记是否登录*/ struct date /*出生日期*/ { int year; int month; int day; }; struct

  • 学生信息管理系统C语言版

    C语言学生信息管理系统包括以下功能: 1.学生信息的整体注册 2.学生信息的修改 3.学生成绩信息的录入 4.学生信息的添加 5.恢复误删的学生信息 6.学生信息的删除 7.密码修改保存函数 8.学生信息的查询 9.密码修改函数 10.学生信息管理系统的菜单函数 #include "stdio.h" #include "malloc.h" #include "string.h" #include "stdlib.h" #inc

  • C语言版学生成绩管理系统

    本文实例为大家分享了C语言版学生成绩管理系统的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> #include<time.h> #include<conio.h> #include<string.h> #include<algorithm> char buf[255]; char c=14; char path[]="D:\\data"; char tm

随机推荐