虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > C/C++编程 > C语言学生学籍管理系统课程设计

C语言学生学籍管理系统课程设计
类别:C/C++编程   作者:码皇   来源:互联网   点击:

这篇文章主要介绍了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 age;
    //输入年龄 char jiguan[100];
    //输入籍贯 char dianhua[100];
    //输入电话 char yuanxi[100];
    //输入院系 char banji[100];
    //输入班级 }
    stu[1000];
    void shouye()//首页 {
    int i;
    printf("^-^-----------------------------------------------------^-^n");
    printf("n");
    printf(" $ 欢迎使用学生学籍管理系统! $n");
    printf(" $ 制作人: $n");
    printf(" $ 李威鹏 $n");
    printf(" $ 时间:2017.12 $n");
    printf("n");
    printf("^-^-----------------------------------------------------^-^n");
    printf("Enter键继续!");
    getchar();
    system("cls");
    }
    void zhuxiao()//注销用户 {
    system("shutdown -f ");
    }
    void denglu()//登陆 {
    void menu();
    int i,j;
    char mima[16];
    for(j=1;
    j<=4;
    ) {
    if(j==4) break;
    else if(j<4) {
    printf("请输入6位密码:n");
    printf("剩余输入次数%dn",4-j);
    for(i=0;
    i<6;
    i++) {
    mima[i]=getch();
    printf("*");
    }
    }
    mima[i]='';
    if(strcmp(mima,"123456")==0) {
    system("cls");
    printf("密码正确n");
    printf("登陆成功!n");
    printf("按Enter键继续!");
    getchar();
    menu();
    return;
    }
    else {
    system("cls");
    printf("密码错误n");
    j++;
    }
    }
    printf("注销用户!!!n");
    zhuxiao();
    getch();
    }
    void menu()//菜单 {
    system("cls");
    printf("*-----------------------------学生管理系统--------------------------------*n");
    printf("n");
    printf("1.添加学生信息 2.删除某个学生信息 3.浏览学生信息n");
    printf("4.修改学生信息 5.查找某个学生信息 6.显示信息数量n");
    printf("0.退出系统n");
    printf("n");
    printf("*-------------------------------------------------------------------------*n");
    }
    void save(int m) {
    int i;
    FILE*fp;
    if ((fp=fopen("系统","wb"))==NULL) {
    printf ("文件打开失败n");
    exit(0);
    }
    for (i=0;
    i<m;
    i++) if (fwrite(&stu[i],sizeof(struct student),1,fp)!=1) printf("文件打开失败n");
    fclose(fp);
    }
    int load()//打开文件,读取里面的数据 {
    FILEFILE *fp;
    int i=0;
    if((fp=fopen("系统","rb"))==NULL) {
    printf ("文件打开失败n");
    exit(0);
    }
    else {
    do {
    fread(&stu[i],sizeof(struct student),1,fp);
    i++;
    }
    while(feof(fp)==0);
    }
    fclose(fp);
    return(i-1);
    }
    int menuchoose()//选择菜单 {
    int n;
    menu();
    printf("请选择菜单0~6:");
    while(1 != scanf("%d", &n) || n < 0 || n> 6) {
    menu();
    printf("选择菜单错误,请重新选择(0 ~ 6):");
    fflush(stdin);
    //清空输入缓冲区 }
    return n;
    }
    void add()//添加学生信息 {
    int i,m,q,s=1;
    system("cls");
    printf("---------------输入学生信息---------------n");
    printf("请输入需要添加学生的总人数:n");
    scanf("%d",&m);
    for (i=0;
    i<m;
    i++) {
    printf("n输入第 %d 个学生学籍信息.n",i+1);
    printf("请输入学号:");
    scanf("%s",stu[i].xuehao);
    for(q=0;
    q<m;
    q++) {
    if(strcmp(stu[q].xuehao,stu[i].xuehao)==0&&q!=i) {
    printf("该学号已经存在,请重新输入:n");
    printf("请输入学号:n");
    s=1;
    scanf("%s",stu[q].xuehao);
    }
    }
    printf("请输入姓名:");
    scanf("%s",stu[i].name);
    printf("请输入性别:");
    scanf("%s",stu[i].sex);
    printf("请输入年龄:");
    scanf("%d",&stu[i].age);
    getchar();
    printf("请输入籍贯:");
    scanf("%s",stu[i].jiguan);
    printf("请输入电话:");
    scanf("%s",stu[i].dianhua);
    printf("请输入院系:");
    scanf("%s",stu[i].yuanxi);
    printf("请输入班级:");
    scanf("%s",stu[i].banji);
    }
    save(m);
    }
    void show() {
    system("cls");
    int i;
    int m=load();
    if(m==0) {
    printf("n暂无学生信息!n");
    printf("是否添加学生信息?n 是:1 否:2n");
    int a2;
    scanf("%d",&a2);
    if(a2==1) add();
    else menu();
    }
    else {
    printf("----------------------浏览学生信息--------------------------n");
    printf("n");
    printf("tttttttn");
    for(i=0;
    i<m;
    i++) {
    printf("第%d位同学的信息为:n",i+1);
    printf("学号:%sn",stu[i].xuehao);
    printf("姓名:%sn",stu[i].name);
    printf("性别:%sn",stu[i].sex);
    printf("年龄:%dn",stu[i].age);
    printf("籍贯:%sn",stu[i].jiguan);
    printf("电话:%sn",stu[i].dianhua);
    printf("院系:%sn",stu[i].yuanxi);
    printf("班级:%sn",stu[i].banji);
    }
    system("pause");
    }
    }
    void del() {
    int m=load();
    int i,j,n,t,flag;
    char xuehao[20];
    printf("n 原有的学生信息为:n");
    show();
    printf("n");
    printf("请输入要删除的学生的学号:n");
    scanf("%s",xuehao);
    for(flag=1,i=0;
    flag&&i<m;
    i++) {
    if(strcmp(stu[i].xuehao,xuehao)==0) {
    printf("学号:%sn",stu[i].xuehao);
    printf("姓名:%sn",stu[i].name);
    printf("性别:%sn",stu[i].sex);
    printf("年龄:%dn",stu[i].age);
    printf("籍贯:%sn",stu[i].jiguan);
    printf("电话:%sn",stu[i].dianhua);
    printf("院系:%sn",stu[i].yuanxi);
    printf("班级:%sn",stu[i].banji);
    printf("是否要删除此人信息?n是请按1,否请按0:n");
    scanf("%d",&n);
    if(n==1) {
    for(j=i;
    j<m-1;
    j++) {
    strcpy(stu[j].name,stu[j+1].name);
    strcpy(stu[j].xuehao,stu[j+1].xuehao);
    strcpy(stu[j].sex,stu[j+1].sex);
    stu[j].age=stu[j+1].age;
    strcpy(stu[j].yuanxi,stu[j+1].yuanxi);
    strcpy(stu[j].banji,stu[j+1].banji);
    strcpy(stu[j].jiguan,stu[j+1].jiguan);
    strcpy(stu[j].dianhua,stu[j+1].dianhua);
    }
    flag=0;
    }
    }
    }
    if(!flag) m=m-1;
    else printf("n无此人信息!n");
    save(m);
    printf("n是否继续删除信息n 继续请按1n退出请按0n");
    scanf("%d",&t);
    switch(t) {
    case 1: del();
    break;
    case 0: menu();
    break;
    default : break;
    }
    }
    void xiugai()//修改学生信息 {
    system("cls");
    FILEFILE *fp;
    int n,i,j,c,x,y;
    char m[10];
    n=load();
    show();
    printf("请输入要修改学生的学号或姓名:");
    scanf("%s",&m);
    do {
    printf("n请选择要修改的选项:nn1.学号 2.姓名 3.性别 4.年龄 5.籍贯 6.电话 7.院系 8.班级 9.取消并返回n");
    printf("请选择?:n ");
    scanf("%d",&c);
    if(c>9||c<1) {
    menu();
    puts("n选择错误!请重新选择!");
    fflush(stdin);
    //清空输入缓冲区 }
    }
    while(c>9||c<1);
    for (i=0;
    i<n;
    i++) if (!strcmp(stu[i].xuehao,m)||!strcmp(stu[i].name,m)) {
    switch (c) {
    case 1: printf("学号:");
    scanf("%s",stu[i].xuehao);
    break;
    case 2: printf("姓名:");
    scanf("%s",stu[i].name);
    break;
    case 3: printf("性别:");
    scanf("%s",stu[i].sex);
    break;
    case 4: printf("年龄:");
    scanf("%d",&stu[i].age);
    break;
    case 5: printf("籍贯:");
    scanf("%s",stu[i].jiguan);
    break;
    case 6: printf("电话:");
    scanf("%s",stu[i].dianhua);
    break;
    case 7: printf("院系:");
    scanf("%s",stu[i].yuanxi);
    break;
    case 8: printf("班级:");
    scanf("%s",stu[i].banji);
    break;
    case 9: menu();
    /*返回主菜单*/ }
    printf("是否保存?n");
    printf("是:1n否:2n");
    scanf("%d",&x);
    }
    if(x==1) {
    save(n);
    printf("保存成功!n");
    printf("是否继续修改?继续:1 否:2n");
    int p;
    scanf("%d",&p);
    if(p==1) {
    xiugai();
    }
    else {
    menu();
    }
    }
    else {
    printf("退出请按0,继续修改请按1n");
    scanf("%d",&y);
    switch(y) {
    case 0: break;
    case 1: xiugai();
    break;
    }
    }
    }
    void showone(int c) /*输出一个学生的信息*/ {
    printf("学号:%sn",stu[c].xuehao);
    printf("姓名:%sn",stu[c].name);
    printf("性别:%sn",stu[c].sex);
    printf("年龄:%dn",stu[c].age);
    printf("籍贯:%sn",stu[c].jiguan);
    printf("电话:%sn",stu[c].dianhua);
    printf("院系:%sn",stu[c].yuanxi);
    printf("班级:%sn",stu[c].banji);
    }
    void chazhao()//查找某个学生的信息 {
    system("cls");
    FILE*fp;
    int a1,b1,c1,d1,e1,n,i;
    char t[10];
    n=load();
    printf("请输入要查找的学生的学号或姓名:");
    scanf("%s",t);
    for(i=0;
    i<n;
    i++) if (!strcmp(stu[i].xuehao,t)||!strcmp(stu[i].name,t)) {
    printf("学号:%sn",stu[i].xuehao);
    printf("姓名:%sn",stu[i].name);
    printf("性别:%sn",stu[i].sex);
    printf("年龄:%dn",stu[i].age);
    printf("籍贯:%sn",stu[i].jiguan);
    printf("电话:%sn",stu[i].dianhua);
    printf("院系:%sn",stu[i].yuanxi);
    printf("班级:%sn",stu[i].banji);
    printf("是否继续查找?继续:1 返回主菜单:2n");
    scanf("%d",&c1);
    switch(c1) {
    case 1: chazhao();
    return ;
    case 2: system("cls");
    menu();
    return;
    }
    }
    if (strcmp(stu[i].xuehao,t)||strcmp(stu[i].name,t)) {
    printf("无该学生信息!n");
    printf("是否继续查找? 继续:1 返回主菜单:2n");
    scanf("%d",&b1);
    switch(b1) {
    case 1: chazhao();
    return;
    case 2: menu();
    return ;
    }
    }
    }
    void shuliang() {
    system("cls");
    int n,h;
    n=load();
    printf("共有 %d 个学生的记录.n",n);
    if(n==0) {
    printf("暂无学生信息!n");
    system("pause");
    menu();
    }
    else {
    printf("是否显示学生信息?n是:1 否:2n");
    scanf("%d",&h);
    if(h==1) {
    show();
    }
    else {
    menu();
    }
    }
    menu();
    /*返回主函数*/ }
    int main() {
    shouye();
    denglu();
    int test=1;
    while(test) {
    switch(menuchoose()) {
    case 0: test=0;
    printf("n ^-^谢谢使用!^-^ n");
    printf(" 代码有点长,错误也有点多,望见谅^-^n");
    break;
    case 1://增加学生学籍信息 add();
    break;
    case 2://删除某个学生信息 del();
    break;
    case 3://显示学生信息 show();
    break;
    case 4://修改学生信息 xiugai();
    break;
    case 5://查找某个学生信息 chazhao();
    break;
    case 6: shuliang();
    //显示学生学籍数量 break;
    }
    }
    return 0;
    }

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

您可能感兴趣的文章:

  • C语言银行系统课程设计
  • C语言职工信息管理系统源码
  • C语言实现歌曲信息管理系统
  • C语言实现图书管理系统
  • C语言实现学生学籍管理系统
  • C语言实现简单学生学籍管理系统
  • 学生信息管理系统C语言版
  • C语言单链表版学生信息管理系统
  • C语言实现学生信息管理系统(单链表)
  • C语言银行储蓄系统源码
相关热词搜索: C语言学生学籍管理系统 C语言学籍管理系统