| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2992 人关注过本帖
标题:(3)C语言问题之学生信息管理系统
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用武伟在2015-11-15 23:37:22的发言:

    说实话,学校期末对课设的要求是3小时400行代码,也就是说你400行实现它那个基本要求即可。1000行是高级要求,说要是提前自己准备好1000行以上的课设可以申请答辩,进而申请答优(据说给个优秀的成绩不容易)。

    本来我的初衷是想提前准备,有答辩这方面的想法,但这两天想了想,现在才学了1个多月的C语言,指针&链表都没学,后面的文件就不用说了,而且现在也不清楚课设的具体时间,心里想着是不是准备得太早了?有种上战场打仗的士兵连枪怎么用都不知道的感觉

早是早了點,但你必須要有目標。現在練基本功,要有針對性,清楚將來需要做什麽,去學那些,而不是學用不到的那些。文件處理,是最基本的功夫。很奇怪的是,我在這裏這麽久,還真沒見幾個探討這方面問題的,原本以爲是他們懂了嫌太簡單不用問,但到了最後課設,他們提問,原來是不懂的。文件處理是一大項,多文件多模塊編程又是另一大項,也是沒見人探討的,都是一個main.cpp包打天下。

授人以渔,不授人以鱼。
2015-11-15 23:48
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 61楼 武伟
那是從文件管理系統軟件對用戶的角度來講,即你不需要知道文件存放在什麽具體的物理位置,如何分佈等。但我現在所說的,是你檢索文件時系統有一個“搜索路徑”的概念,在這個環境變量控制下,文件可以不跟執行程序放在一起的,亦即操作系統(實際是操作系統中的文件管理模塊)可以根據用戶設定的一堆目錄集合中依次搜索文件,衹有在這些目錄中全都找不到,才會報告文件不存在。因此,前面簡略地說,你的數據文件應該跟.exe文件放在一起,其實是不必的——本來也不應該放在一起,對數據的組織來説,數據文檔應有歸類存放的文件夾,不與可執行程序在一起,諸如資源、臨時數據、生成報表等,都要有條理的歸類文件夾,甚至有按企業組織結構和用戶級別、時間段分類分層做目錄樹的,這樣的管理系統,不可能規定文檔都跟.exe在一起,操作系統也提供不讓這些在一起的能力。

爲什麽我前面不直接答你數據文件路徑不對呢,原因也在這裏。其實我前面已經隱晦地暗示了,說你的文件位置可能沒放對,即是說數據文件沒在搜索路徑上,但未必必須要跟.exe在一起,那樣答雖然直接,但後面你就不會如上述那樣管理和組織文件了。之所以在IDE中可以這樣,直接執行.exe又要那樣,其實就是這個原因,因爲IDE中已經預設了一個搜索路徑,文件在不同位置也能找得到。那麽,直接執行.exe就必須放在一起嗎?也可以不必,完全可以自己在cmd中設置搜索路徑!這些,就是我說的應有系統知識,不管用什麽語言寫程序,都是應知應會。

[此贴子已经被作者于2015-11-16 00:07编辑过]


授人以渔,不授人以鱼。
2015-11-16 00:02
武伟
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:506
专家分:2638
注 册:2015-7-23
收藏
得分:0 
以下是引用TonyDeng在2015-11-15 23:42:54的发言:

一個學生管理系統,實際上是一個小型的數據庫系統,自己做數據庫,不是外挂現成數據庫系統,而是自己的程序就是數據庫系統。基本功能就是所有數據庫都要有的那些,別以爲很少很簡單,沒有一定的數據庫設計知識,做出來的數據結構文檔和實現方案是好不到哪去的。自己做數據庫管理,難度由數據量的規模及功能的需求決定,小型有小型的實現方案,中型、大型有另外的方案,千變萬化,這類課題,怎麽做都有新鮮的做法,都能鍛煉能力。我說過,抓住一個課題死啃,大學四年就這麽個課題,做好了,也就差不多了。刷題,就衹能做一個一個的獨立功能,對系統設計沒有幫助,你的志向不是衹做螺絲釘的。


    感觉跟T版大大交流一番真心收获不少,我这两天还在课设和蓝桥杯的校选赛之间纠结,课设想好好地用心做,但是蓝桥杯(简单地说还是刷题)又不想错过,虽然说可能含金量可能不是很大,但对我自己来说,或多或少都是一种经历与锻炼吧,总之就是想尽善尽美——当然这有点不可能,就我当前的水平来说。

    但是经您这么一说,我心里就想得开了,目标还是要长远些、可行些、切合实际些、有价值些
2015-11-16 00:05
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
今天看到一個報道,說有專家認爲把程序員稱爲工程師是降低了“工程師”的含金量,這表明當今工業化制度下的程序員就是人家出個別題目讓你做的,這種程序員的檔次夠不到構建工程項目那個層次。但在以前,程序員可是從設計到實現、維護全包的,那些程序員才有光環,是以前這樣的程序員留下榮譽,後人以爲也當程序員就擁有同樣的榮譽,事實上已經不是那樣了。當然,有人說一輩子寫代碼就好了,那是人各有志吧,也不能說不好,子非魚。我衹是這麽提一下。

以前跟我一起出來的,有不少科班程序員(我不是),他們絕大多數,都不會從零開始構建一個程序,倒是我寫出來了,讓他們改,倒能改的頭頭是道。所以一般的情況是,我寫好整個架構,個別需要微調、我技術能力做不到的,就找他們去弄,是我需要什麽說什麽,他們做出來,叫他們自己想,是想不到的。

[此贴子已经被作者于2015-11-16 00:22编辑过]


授人以渔,不授人以鱼。
2015-11-16 00:14
武伟
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:506
专家分:2638
注 册:2015-7-23
收藏
得分:0 
回复 63楼 TonyDeng
    看来“授人以渔”在这里体现得很好嘛,让我误打误撞给探索出来了。
    嗯,大概知道文件管理的含义了,回头我再多了解了解这方面的知识,咱俩多交流交流呗

    这个点最想说的是“抱歉!”,让您陪我聊到这么久,您先睡吧,说不定明天还得早点去上班。我把今天的内容再整理下,您明天再回复。晚安喽,明天再见
2015-11-16 00:23
武伟
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:506
专家分:2638
注 册:2015-7-23
收藏
得分:0 
回复 65楼 TonyDeng
    看来要是没您开个好头,后面的工作都没办法继续,这种感觉肯定爽歪歪,当然,实力就在那摆着呢
2015-11-16 00:39
武伟
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:506
专家分:2638
注 册:2015-7-23
收藏
得分:0 
回复 68楼 边小白
这么说吧,准备得有点早,有很多都没学,说句尴尬的,你楼上说得我都看不懂也就是说,就算现在有了解决方案,我都不一定能理解,打算把这个功能往后放放。

你也说得对,昨天光顾着听教导了,把主题给忘了,不过和T版交流真的很有收获,就算他昨天给了一个方法,但我看不懂的话,还是没用。还不如听听过来人的意见与建议,好歹日后有个大概的基准与方向吧

[此贴子已经被作者于2015-11-16 10:10编辑过]

2015-11-16 09:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
告訴你道理之後就會明白人家設計的方案爲什麽這樣做

授人以渔,不授人以鱼。
2015-11-16 10:26
丁松
Rank: 2
来 自:重庆
等 级:论坛游民
威 望:1
帖 子:41
专家分:75
注 册:2015-11-11
收藏
得分:15 
// 2013113033丁松1.cpp : 定义控制台应用程序的入口点。
//
//#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "conio.h"
#include "malloc.h"
#include "windows.h"
#include "dos.h"
#include "ctype.h"
void menu();//菜单
void Hightlight();
void Unhightlight();
void denglu();//登陆类型
void student_in();//教师登陆
void teacher_in();//教师登陆
void admin_in();//管理员登陆
static int count=0,count1=0;//计数器
void gongneng_xuanze1();//功能选择
void gongneng_xuanze2();//功能选择
void gongneng_xuanze3();//功能选择
void resultinto();//成绩录入
void login();//新用户注册
void stu_login();
void tea_login();
void logout();//用户注销
void stu_logout();
void tea_logout();
void save1();
void open1();
void stu_save2();
void stu_open2();
void tea_save2();
void tea_open2();
void stu_save();
void tea_save();
void stu_open();
void tea_open();
void stduent_querye();//学生信息查询
void stduent_querye1();
void teacher_querye();//教师资料查询
void stu_all();//整体查询
void tea_all();//整体查询
void stu_all1();//整体查询
void tea_all1();//整体查询
void stu_xiugai_password();
void tea_xiugai_password();
struct students
{
    char name[20];//学生姓名
    char sex[10];//性别
    int age;
    char num[20];//学生学号
    char phone[20];//联系方式
    char password[10];//登录密码
    float score1;
    float score2;
    float score3;
    float sum;
    float ave;
}stu[50],stu_del;//学生数据类型
struct teachers
{
    char name[20];//教师姓名
    char sex[10];
    int age;
    char num[20];
    char phone[20];//联系方式
    char password[10];//登录密码
}tea[10],tea_del;//教师数据类型
struct administrator
{
    char name[20];//管理员姓名
    char sex[10];
    int age;
    char num[20];
    char phone[20];//联系方式
    char password[10];//登录密码
}adm;//管理员数据类型
void main()
{
    Unhightlight();
    system("cls");
    stu_open();
}
void menu()
{
    system("cls");
    count=0;
    int chioce,a;
    printf("\n\n\n\n\n\n");
    printf("\t\t\t************欢迎访问************\n");
    printf("\t\t\t*************请登录*************\n");
    printf("\t\t\t\t【1】用户登录\n");
    printf("\t\t\t\t【0】退出系统\n");
    printf("\t\t\t  (*_*)请输入您的选择【0-1】:\n");
    a:scanf("%d",&chioce);
    switch(chioce)
    {
        case 1:system("cls");denglu();break;
        case 0:{
            printf("\t\t\t******欢迎下次使用【确认是否退出】******\n\t\t\t\t【8】退出  【9】取消\n");
            r:scanf("%d",&a);
            switch(a)
                  {case 8:exit(0);break;
                  case 9:menu();break;
                  default:{printf("\t\t\t    输入错误,请您重新输入!");
                      goto r;}
                  }
               }
        default:{printf("\t\t\t    输入错误,请您重新输入!\n");
                    goto a;}
    }
}
void denglu()
{
    system("cls");
    count1=0;
    int chioce,a;
    printf("\n\n\n\n\n\n");
    printf("\t\t*****************学生档案管理系统**************\n");
    printf("\t\t【1】学生登录");
    printf("\t\t\t【2】教师登录\n");
    printf("\t\t【3】管理登陆");
    printf("\t\t\t【4】返回上级\n");
    printf("\t\t\t\t【0】退出系统\n");
    printf("\t\t***********************************************\n");
    printf("\t\t\t  请输入您选择的登陆类型【0-4】:\n");
    a:scanf("%d",&chioce);
    switch(chioce)
            {
                case 1:system("cls");
                    student_in();
                    break;
                case 2:system("cls");
                    teacher_in();
                    break;
                case 3:system("cls");
                    admin_in();
                    break;
                case 4:menu();break;
                case 0:{
            r:printf("\t\t\t******欢迎下次使用【确认是否退出】******\n\t\t\t\t【8】退出  【9】取消\n");
            scanf("%d",&a);
            switch(a)
                  {case 8:exit(0);break;
                    case 9:denglu();break;
                  default:{printf("\t\t\t    输入错误,请您重新输入!\n");
                      goto r;}}
                       }
                default:{printf("\t\t\t    输入错误,请您重新输入!\n");
                    goto a;}
            }
}
void student_in()//学生登陆
{
    int i;
    char stuname[20],stupass[20];
    printf("\t\t\t\t请输入学生用户名:\n");
    user:scanf("%s",stuname);
    for(i=0;i<50;i++)
    {
        if(strcmp(stu[i].name,stuname)==0)
        {
            printf("\t\t请输入密码(友情提示:您只有三次输入密码的机会):\n");
            mima:scanf("%s",stupass);
            if(strcmp(stu[i].password,stupass)==0)
            {count=0;
            gongneng_xuanze1();}
            else
            {
            count++;
            if(count==3)
            {
                printf("\t\t     您已经三次输入密码错误!将返回首页");
                menu();
            }
            else
            {printf("\t\t\t     密码错误,请重新输入:\n");
            goto mima;}
            }
        }
    }
        if(i==50)
        {
            count1++;
        if(count1==3)
        {
            printf("\t\t\t  是否登陆类型选择错误?任意键返回:\n");
            getch();
            system("cls");
                denglu();
        }
        else
        {
            printf("\t\t\t   用户名不存在,请重新输入:\n");
            goto user;
        }   
        }
}
void teacher_in()//教师登陆
{
    int i;
    char teaname[20],teapass[20];
    printf("\t\t\t\t请输入教师用户名:\n");
    user:scanf("%s",teaname);
    for(i=0;i<10;i++)
    {
        if(strcmp(tea[i].name,teaname)==0)
        {
            printf("\t\t请输入密码(友情提示:您只有三次输入密码的机会):\n");
            mima:scanf("%s",teapass);
            if(strcmp(tea[i].password,teapass)==0)
            {count=0;
            gongneng_xuanze2();}
            else
            {
            count++;
            if(count==3)
            {
                printf("\t\t     您已经三次输入密码错误!将返回首页");
                menu();
            }
            else
            {printf("\t\t\t     密码错误,请重新输入:\n");
            goto mima;}
            }
        }
    }
        if(i==10)
        {
            count1++;
        if(count1==3)
        {
            printf("\t\t\t  是否登陆类型选择错误?任意键返回:\n");
            getch();
            system("cls");
                denglu();
        }
        else
        {
            printf("\t\t\t   用户名不存在,请重新输入:\n");
            goto user;
        }   
        }
}
void admin_in()//管理员登陆
{
    char adname[20]="管理员";
    printf("\t\t\t\t请输入管理员用户名:\n");
    user:scanf("%s",adm.name);
    if(strcmp(adname,adm.name)==0)
    {
            printf("\t\t请输入密码(友情提示:您只有三次输入密码的机会):\n");
            char rightpass[20]="123456";
            mima:scanf("%s",adm.password);
            if(strcmp(rightpass,adm.password)==0)
            {count=0;
            gongneng_xuanze3();}
            else
            {
            count++;
            if(count==3)
            {
                printf("\t\t     您已经三次输入密码错误!将返回首页");
                menu();
            }
            else
                {printf("\t\t\t     密码错误,请重新输入:\n");
            goto mima;}
            }
    }
    else
    {
        count1++;
        if(count1==3)
        {
            printf("\t\t\t  是否登陆类型选择错误?任意键返回:\n");
            getch();
            system("cls");
                denglu();
        }
        else
        {
            printf("\t\t\t   用户名不存在,请重新输入:\n");
            goto user;
        }
    }
}
void gongneng_xuanze1()
{
    int chioce,a;
    system("cls");
    printf("\n\n\n\n\n\n");
    printf("\t\t*****************学生用户管理窗口**************\n");
    printf("\t\t【1】个人信息显示");
    printf("\t      【2】整体信息显示\n");
    printf("\t\t【3】修改密码");
    printf("\t\t      【4】返回上级\n");
    printf("\t\t\t\t【0】退出系统\n");
    printf("\t\t***********************************************\n");
    printf("\t\t\t  请选择您需要的功能:【0-4】\n");
    a:scanf("%d",&chioce);
    switch(chioce)
    {
    case 1:system("cls");stduent_querye1();break;
    case 2:system("cls");stu_all1();break;
    case 3:system("cls");stu_xiugai_password();break;
    case 4:system("cls");denglu();break;
    case 0:{
        r:printf("\t\t\t******欢迎下次使用【确认是否退出】******\n\t\t\t\t【8】退出  【9】取消\n");
        scanf("%d",&a);
        switch(a)
        {case 8:exit(0);break;
        case 9:gongneng_xuanze1();break;
        default:{printf("\t\t\t    输入错误,请您重新输入!\n");
            goto r;}}
           }break;
        default:{printf("\t\t\t    输入错误,请您重新输入!\n");
            goto a;}
    }
}
void stduent_querye1()
{
    int i;
    char num[50];
    printf("请输入要查找的学生学号:\n");
    scanf("%s",num);
    for(i=0;i<50;i++)
    {
        if(strcmp(stu[i].num,num)==0)
        {
            stu[i].sum=stu[i].score1 +stu[i].score2+stu[i].score3;
            stu[i].ave=stu[i].sum/3;
            Hightlight();
            printf("学号\t\t姓名\t\t性别\t\t电话\t\t年龄\n");
            Unhightlight();
            printf("%s\t%s\t\t%s\t\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].phone,stu[i].age);
            Hightlight();
            printf("语文\t\t数学\t\t英语\t\t总成绩\t\t平均成绩\n");
            Unhightlight();
            printf("%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);
            Hightlight();
            printf("以上是你的查询结果!按任意键返回!\n");
            Unhightlight();
            getch();
            system("cls");
            gongneng_xuanze1();
        }
    }
        if(i==50)
        {
            Hightlight();
            printf("该学生信息不存在!按任意键返回!\n");
            Unhightlight();
            getch();
            system("cls");
            gongneng_xuanze1();
        }
}
void stu_all1()
{
    int i=0;
    stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
    stu[i].ave=stu[i].sum/3;
    for(i=0;i<50;i++)
    {
        if(stu[i].age!=NULL)
        {
            Hightlight();
            printf("学号\t\t姓名\t\t性别\t\t电话\t\t年龄\n");
            Unhightlight();
            printf("%s\t%s\t\t%s\t\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].phone,stu[i].age);
            Hightlight();
            printf("语文\t\t数学\t\t英语\t\t总成绩\t\t平均成绩\n");
            Unhightlight();
            printf("%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);
        }
    }
    Hightlight();
    printf("以上是你的查询结果,按任意键返回!\n");
    Unhightlight();
    getch();
    system("cls");
    gongneng_xuanze1();
}
void stu_xiugai_password()
{
    int i=0;
    char newpassword[20],oldpassword[20],num[20];
    printf("请输入学生学号:");
    scanf("%s",num);
    for(i=0;i<50;i++)
    {
        if(strcmp(stu[i].num,num)==0)
        {
            r:printf("请输入旧密码:");
            scanf("%s",oldpassword);
            printf("请输入新密码:");
            scanf("%s",newpassword);
            if(strcmp(stu[i].password,oldpassword)==0)
            {
                strcpy(stu[i].password,newpassword);
                printf("密码修改成功!请保存");
                stu_save();
            }
            else
            {
                printf("旧密码输入错误,任意键返回!");
                getch();
                system("cls");
                gongneng_xuanze1();
            }
        }
    }
    if(i==50)
    {
        printf("信息有误,任意键返回!");
        getch();
        system("cls");
        gongneng_xuanze1();
    }
}
void stu_save()
{
    FILE *fp;
    int i;
    char filename[50];
    printf("请输入要保存的文件名(默认studata):");
    scanf("%s",filename);
    if((fp=fopen(filename,"wb"))==NULL)
    {
        Hightlight();
        printf("文件名为空,不能保存!\n");
        Unhightlight();
    }
    for(i=0;i<50;i++)
    {
        if(fwrite(&stu[i],sizeof(struct students),1,fp)!=1)
        {
            Hightlight();
            printf("文件保存失败!按任意键返回!\n");
            Unhightlight();
            getch();
            system("cls");
            gongneng_xuanze1();
        }
    }
    fclose(fp);
    Hightlight();
    printf("文件已保存!按任意键返回!\n");
    Unhightlight();
    getch();
    system("cls");
    gongneng_xuanze1();
}
void gongneng_xuanze2()
{
    int chioce,a;
    system("cls");
    printf("\n\n\n\n\n\n");
    printf("\t\t*****************教师用户管理窗口**************\n");
    printf("\t\t【1】学生信息查询");
    printf("\t      【2】学生成绩录入\n");
    printf("\t\t【3】保存学生信息");
    printf("\t      【4】载入学生信息\n");
    printf("\t\t【5】个人信息显示");
    printf("\t      【6】整体信息显示\n");
    printf("\t\t【7】修改密码");
    printf("\t\t      【8】返回上级\n");
    printf("\t\t\t\t【0】退出系统\n");
    printf("\t\t***********************************************\n");
    printf("\t\t\t  请选择您需要的功能:【0-8】\n");
    a:scanf("%d",&chioce);
    switch(chioce)
    {
    case 1:system("cls");stduent_querye();break;
    case 2:system("cls");resultinto();break;
    case 3:system("cls");save1();break;
    case 4:system("cls");open1();break;
    case 5:system("cls");teacher_querye();break;
    case 6:system("cls");tea_all1();break;
    case 7:system("cls");tea_xiugai_password();break;
    case 8:system("cls");denglu();break;
    case 0:{
        r:printf("\t\t\t******欢迎下次使用【确认是否退出】******\n\t\t\t\t【8】退出  【9】取消\n");
        scanf("%d",&a);
        switch(a)
        {case 8:exit(0);break;
        case 9:gongneng_xuanze2();break;
        default:{printf("\t\t\t    输入错误,请您重新输入!\n");
            goto r;}}
           }break;
        default:{printf("\t\t\t    输入错误,请您重新输入!\n");
            goto a;}
    }
}
void stduent_querye()
{
    int i;
    char num[50];
    printf("请输入要查找的学生学号:\n");
    scanf("%s",num);
    for(i=0;i<50;i++)
    {
        if(strcmp(stu[i].num,num)==0)
        {
            stu[i].sum=stu[i].score1 +stu[i].score2+stu[i].score3;
            stu[i].ave=stu[i].sum/3;
            Hightlight();
            printf("学号\t\t姓名\t\t性别\t\t电话\t\t年龄\n");
            Unhightlight();
            printf("%s\t%s\t\t%s\t\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].phone,stu[i].age);
            Hightlight();
            printf("语文\t\t数学\t\t英语\t\t总成绩\t\t平均成绩\n");
            Unhightlight();
            printf("%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);
            Hightlight();
            printf("以上是你的查询结果!按任意键返回!\n");
            Unhightlight();
            getch();
            system("cls");
            gongneng_xuanze2();
        }
    }
        if(i==50)
        {
            Hightlight();
            printf("该学生信息不存在!按任意键返回!\n");
            Unhightlight();
            getch();
            system("cls");
            gongneng_xuanze2();
        }
}
void resultinto()
{
    int i=0,num1;
    char lsnum;
    printf("请输入要录入成绩的学生学号:\n");
    printf("学号:");
    scanf("%s",&lsnum);
        for(i=0;i<50;i++)
        {
            if(strcmp(stu[i].num,&lsnum)==0)
            {
                printf("请输入学生的三门成绩:\n");
                printf("语文:");
                scanf("%f",&stu[i].score1);
                printf("数学:");
                scanf("%f",&stu[i].score2);
                printf("英语:");
                scanf("%f",&stu[i].score3);
                printf("是否继续录入:【1】是  【0】否\n");
                scanf("%d",&num1);
                if(num1!=1)
                {
                    system("cls");
                    gongneng_xuanze2();
                }
                else
                    resultinto();
            }
        }
            if(i==50)
            {
                Hightlight();
                printf("该学生信息不存在,按任意键返回!\n");
                Unhightlight();
                getch();
                system("cls");
                gongneng_xuanze2();
            }
}
void save1()
{
    FILE *fp;
    int i;
    char filename[50];
    printf("请输入要保存的文件名(默认studata):");
    scanf("%s",filename);
    if((fp=fopen(filename,"wb"))==NULL)
    {
        Hightlight();
        printf("文件名为空,不能保存!\n");
        Unhightlight();
    }
    for(i=0;i<50;i++)
    {
        if(fwrite(&stu[i],sizeof(struct students),1,fp)!=1)
        {
            Hightlight();
            printf("文件保存失败!按任意键返回!\n");
            Unhightlight();
            getch();
            system("cls");
            gongneng_xuanze2();
        }
    }
    fclose(fp);
    Hightlight();
    printf("文件已保存!按任意键返回!\n");
    Unhightlight();
    getch();
    system("cls");
    gongneng_xuanze2();
}
void open1()
{
    FILE *fp;
    int i=0; //打开文件流
    char filename[50];
    printf("请输入文件名(默认studata):");
    scanf("%s",filename); //输入要载入的文件名
    if((fp=fopen(filename,"rb"))==0) //如果当前目录下不存在相对应的文件,输出文件不存在,退出系统
    {
        Hightlight();
        printf("文件不存在!按任意键返回!\n");
        Unhightlight();
        getch();
        system("cls");
        gongneng_xuanze2();
    }
    while(fread(&stu[i],sizeof(struct students),1,fp)!=0)//若存在,读取系统
    {
        i++;
    }
    fclose(fp); //程序结束后,关闭流
    Hightlight();
    printf("信息已载入!按任意键返回!\n");
    Unhightlight();
    getch();
    system("cls");
    gongneng_xuanze2();
}
void teacher_querye()
{
   
{
    int i;
    char num[50];
    printf("请输入要查找的教师编号:\n");
    scanf("%s",num);
    for(i=0;i<10;i++)
    {
        if(strcmp(tea[i].num,num)==0)
        {
            Hightlight();
            printf("编号\t\t姓名\t\t性别\t\t电话\t\t年龄\n");
            Unhightlight();
            printf("%s\t\t%s\t\t%s\t\t%s\t%d\n",tea[i].num,tea[i].name,tea[i].sex,tea[i].phone,tea[i].age);
            Hightlight();
            printf("以上是你的查询结果!按任意键返回!\n");
            Unhightlight();
            getch();
            system("cls");
            gongneng_xuanze2();
        }
    }
        if(i==10)
        {
            Hightlight();
            printf("该教师信息不存在!按任意键返回!\n");
            Unhightlight();
            getch();
            system("cls");
            gongneng_xuanze2();
        }
}
}
void tea_all1()
{
    int i=0;
    for(i=0;i<10;i++)
    {
        if(tea[i].age!=NULL)
        {
            Hightlight();
            printf("编号\t\t姓名\t\t性别\t\t电话\t\t年龄\n");
            Unhightlight();
            printf("%s\t\t%s\t\t%s\t\t%s\t%d\n",tea[i].num,tea[i].name,tea[i].sex,tea[i].phone,tea[i].age);
        }
    }
    Hightlight();
    printf("以上是你的查询结果,按任意键返回!\n");
    Unhightlight();
    getch();
    system("cls");
    gongneng_xuanze2();
}
void tea_xiugai_password()
{
    int i=0;
    char newpassword[20],oldpassword[20],num[20];
    printf("请输入教师编号:");
    scanf("%s",num);
    for(i=0;i<10;i++)
    {
        if(strcmp(tea[i].num,num)==0)
        {
            r:printf("请输入旧密码:");
            scanf("%s",oldpassword);
            printf("请输入新密码:");
            scanf("%s",newpassword);
            if(strcmp(tea[i].password,oldpassword)==0)
            {
                strcpy(tea[i].password,newpassword);
                printf("密码修改成功!请保存");
                tea_save();
            }
            else
            {
                printf("旧密码输入错误,任意键返回!");
                getch();
                system("cls");
                gongneng_xuanze2();
            }
        }
    }
    if(i==10)
    {
        printf("信息有误,任意键返回!");
        getch();
        system("cls");
        gongneng_xuanze2();
    }
}
void tea_save()
{
    FILE *fp;
    int i;
    char filename[50];
    printf("请输入要保存的文件名(默认teadata):");
    scanf("%s",filename);
    if((fp=fopen(filename,"wb"))==NULL)
    {
        Hightlight();
        printf("文件名为空,不能保存!\n");
        Unhightlight();
    }
    for(i=0;i<10;i++)
    {
        if(fwrite(&tea[i],sizeof(struct teachers),1,fp)!=1)
        {
            Hightlight();
            printf("文件保存失败!按任意键返回!\n");
            Unhightlight();
            getch();
            system("cls");
            gongneng_xuanze2();
        }
    }
    fclose(fp);
    Hightlight();
    printf("文件已保存!按任意键返回!\n");
    Unhightlight();
    getch();
    system("cls");
    gongneng_xuanze2();
}
void gongneng_xuanze3()
{
    int chioce,a;
    system("cls");
    printf("\n\n\n\n\n\n");
    printf("\t\t*****************管理用户管理窗口**************\n");
    printf("\t\t【1】新用户注册");
    printf("\t\t      【2】老用户注销\n");
    printf("\t\t【3】显示学生信息");
    printf("\t      【4】显示教师信息\n");
    printf("\t\t【5】保存学生信息");
    printf("\t      【6】载入学生信息\n");
    printf("\t\t【7】保存教师信息");
    printf("\t      【8】载入教师信息\n");
    printf("\t\t【9】返回上级");
    printf("\t\t      【0】退出系统\n");
    printf("\t\t***********************************************\n");
    printf("\t\t\t  请选择您需要的功能:【0-9】\n");
    a:scanf("%d",&chioce);
    switch(chioce)
    {
    case 1:system("cls");login();break;
    case 2:system("cls");logout();break;
    case 3:system("cls");stu_all();break;
    case 4:system("cls");tea_all();break;
    case 5:system("cls");stu_save2();break;
    case 6:system("cls");stu_open2();break;
    case 7:system("cls");tea_save2();break;
    case 8:system("cls");tea_open2();break;
    case 9:system("cls");denglu();break;
    case 0:{
        r:printf("\t\t\t******欢迎下次使用【确认是否退出】******\n\t\t\t\t【8】退出  【9】取消\n");
        scanf("%d",&a);
        switch(a)
        {case 8:exit(0);break;
        case 9:gongneng_xuanze3();break;
        default:{printf("\t\t\t    输入错误,请您重新输入!\n");
            goto r;}}
           }break;
        default:{printf("\t\t\t    输入错误,请您重新输入!\n");
            goto a;}
    }
}   
void login()
{
    int chioce,a;
    system("cls");
    printf("\n\n\n\n\n\n");
    printf("\t\t*****************管理注册管理窗口**************\n");
    printf("\t\t【1】学生用户注册");
    printf("\t      【2】教师用户注册\n");
    printf("\t\t【3】返回上级");
    printf("\t\t      【0】退出系统\n");
    printf("\t\t***********************************************\n");
    printf("\t\t\t  请选择您需要的功能:【0-3】\n");
    a:scanf("%d",&chioce);
    switch(chioce)
    {
    case 1:system("cls");stu_login();break;
    case 2:system("cls");tea_login();break;
    case 3:system("cls");gongneng_xuanze3();break;
    case 0:{
        printf("\t\t\t******欢迎下次使用【确认是否退出】******\n\t\t\t\t【8】退出  【9】取消\n");
        r:scanf("%d",&a);
        switch(a)
        {case 8:exit(0);break;
        case 9:login();break;
        default:{printf("\t\t\t    输入错误,请您重新输入!\n");
            goto r;}}
           }break;
        default:{printf("\t\t\t    输入错误,请您重新输入!\n");
            goto a;}
    }
}
void stu_login()
{
    int i=0,num1;
    for(i=0;i<50;i++)
    {
        printf("请输入要注册的学生资料:\n");
        printf("学号:");
        scanf("%s",stu[i].num);
        printf("姓名:");
        scanf("%s",stu[i].name);
        printf("性别:");
        scanf("%s",&stu[i].sex);
        printf("年龄:");
        scanf("%d",&stu[i].age);
        printf("电话:");
        scanf("%s",&stu[i].phone);
        printf("请输入初始密码:\n");
        scanf("%s",&stu[i].password);
        printf("注册成功,是否继续注册:【1】是  【0】否\n");
        scanf("%d",&num1);  
        if(num1!=1)
        {
            gongneng_xuanze3();
        }
    }
}
void tea_login()
{
    int i=0,num1;
    for(i=0;i<10;i++)
    {
        printf("请输入要注册的教师资料:\n");
        printf("编号:");
        scanf("%s",tea[i].num);
        printf("姓名:");
        scanf("%s",tea[i].name);
        printf("性别:");
        scanf("%s",&tea[i].sex);
        printf("年龄:");
        scanf("%d",&tea[i].age);
        printf("电话:");
        scanf("%s",&tea[i].phone);
        printf("请输入初始密码:\n");
        scanf("%s",&tea[i].password);
        printf("注册成功,是否继续注册:【1】是  【0】否\n");
        scanf("%d",&num1);  
        if(num1!=1)
        {
            gongneng_xuanze3();
        }
    }
}
void logout()
{
    int chioce,a;
    system("cls");
    printf("\n\n\n\n\n\n");
    printf("\t\t*****************管理注销管理窗口**************\n");
    printf("\t\t【1】学生用户注销");
    printf("\t      【2】教师用户注销\n");
    printf("\t\t【3】返回上级");
    printf("\t\t      【0】退出系统\n");
    printf("\t\t***********************************************\n");
    printf("\t\t\t  请选择您需要的功能:【0-3】\n");
    a:scanf("%d",&chioce);
    switch(chioce)
    {
    case 1:system("cls");stu_logout();break;
    case 2:system("cls");tea_logout();break;
    case 3:system("cls");gongneng_xuanze3();break;
    case 0:{
        printf("\t\t\t******欢迎下次使用【确认是否退出】******\n\t\t\t\t【8】退出  【9】取消\n");
        r:scanf("%d",&a);
        switch(a)
        {case 8:exit(0);break;
        case 9:logout();break;
        default:{printf("\t\t\t    输入错误,请您重新输入!\n");
            goto r;}}
           }break;
        default:{printf("\t\t\t    输入错误,请您重新输入!\n");
            goto a;}
    }
}
void stu_logout()
{
    int i;
    char num[50];
    printf("请输入要注销的学生学号:\n");
    scanf("%s",num);
    for(i=0;i<50;i++)
        if(strcmp(num,stu[i].num)==0)
        {
            Hightlight();
            printf("学号\t\t姓名\t\t性别\t\t电话\t\t年龄\n");
            Unhightlight();
            printf("%s\t%s\t\t%s\t\t%s\t%d\n",stu[i].num,stu [i].name,stu[i].sex,stu[i].phone,stu[i].age);
            stu[i]=stu_del;
            Hightlight();
            printf("注销成功,按任意键返回\n");
            Unhightlight();
            break;
        }
        if(i==50)
        {
            Hightlight();
            printf("该学生信息不存在!按任意键返回!\n");
            Unhightlight();
        }
        getch();
        system("cls");
        gongneng_xuanze3();
}
void tea_logout()
{
    int i;
    char num[50];
    printf("请输入要注销的教师编号:\n");
    scanf("%s",num);
    for(i=0;i<10;i++)
        if(strcmp(num,tea[i].num)==0)
        {
            Hightlight();
            printf("编号\t\t姓名\t\t性别\t\t电话\t\t年龄\n");
            Unhightlight();
            printf("%s\t\t%s\t\t%s\t\t%s\t%d\n",tea[i].num,tea[i].name,tea[i].sex,tea[i].phone,tea[i].age);
            tea[i]=tea_del;
            Hightlight();
            printf("注销成功,按任意键返回\n");
            Unhightlight();
            break;
        }
        if(i==10)
        {
            Hightlight();
            printf("该教师信息不存在!按任意键返回!\n");
            Unhightlight();
        }
        getch();
        system("cls");
        gongneng_xuanze3();
}
void stu_all()
{
    int i=0;
    stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
    stu[i].ave=stu[i].sum/3;
    for(i=0;i<50;i++)
    {
        if(stu[i].age!=NULL)
        {
            Hightlight();
            printf("学号\t\t姓名\t\t性别\t\t电话\t\t年龄\n");
            Unhightlight();
            printf("%s\t%s\t\t%s\t\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].phone,stu[i].age);
            Hightlight();
            printf("语文\t\t数学\t\t英语\t\t总成绩\t\t平均成绩\n");
            Unhightlight();
            printf("%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n",stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);
        }
    }
    Hightlight();
    printf("以上是你的查询结果,按任意键返回!\n");
    Unhightlight();
    getch();
    system("cls");
    gongneng_xuanze3();
}
void tea_all()
{
    int i=0;
    for(i=0;i<10;i++)
    {
        if(tea[i].age!=NULL)
        {
            Hightlight();
            printf("编号\t\t姓名\t\t性别\t\t电话\t\t年龄\n");
            Unhightlight();
            printf("%s\t\t%s\t\t%s\t\t%s\t%d\n",tea[i].num,tea[i].name,tea[i].sex,tea[i].phone,tea[i].age);
        }
    }
    Hightlight();
    printf("以上是你的查询结果,按任意键返回!\n");
    Unhightlight();
    getch();
    system("cls");
    gongneng_xuanze3();
}
void stu_save2()
{
    FILE *fp;
    int i;
    char filename[50];
    printf("请输入要保存的文件名(默认studata):");
    scanf("%s",filename);
    if((fp=fopen(filename,"wb"))==NULL)
    {
        Hightlight();
        printf("文件名为空,不能保存!\n");
        Unhightlight();
    }
    for(i=0;i<50;i++)
    {
        if(fwrite(&stu[i],sizeof(struct students),1,fp)!=1)
        {
            Hightlight();
            printf("文件保存失败!按任意键返回!\n");
            Unhightlight();
            getch();
            system("cls");
            gongneng_xuanze3();
        }
    }
    fclose(fp);
    Hightlight();
    printf("文件已保存!按任意键返回!\n");
    Unhightlight();
    getch();
    system("cls");
    gongneng_xuanze3();
}
void tea_save2()
{
    FILE *fp;
    int i;
    char filename[50];
    printf("请输入要保存的文件名(默认teadata):");
    scanf("%s",filename);
    if((fp=fopen(filename,"wb"))==NULL)
    {
        Hightlight();
        printf("文件名为空,不能保存!\n");
        Unhightlight();
    }
    for(i=0;i<10;i++)
    {
        if(fwrite(&tea[i],sizeof(struct teachers),1,fp)!=1)
        {
            Hightlight();
            printf("文件保存失败!按任意键返回!\n");
            Unhightlight();
            getch();
            system("cls");
            gongneng_xuanze3();
        }
    }
    fclose(fp);
    Hightlight();
    printf("文件已保存!按任意键返回!\n");
    Unhightlight();
    getch();
    system("cls");
    gongneng_xuanze3();
}
2015-11-17 09:47
丁松
Rank: 2
来 自:重庆
等 级:论坛游民
威 望:1
帖 子:41
专家分:75
注 册:2015-11-11
收藏
得分:0 
void stu_open2()
{
    FILE *fp;
    int i=0; //打开文件流
    char filename[50];
    printf("请输入文件名(默认studata):");
    scanf("%s",filename); //输入要载 入的文件名
    if((fp=fopen(filename,"rb"))==0) //如果当前目录下不存在相对应的文件,输出文件不存在,退出系统
    {
        Hightlight();
        printf("文件不存在!按任意键返回!\n");
        Unhightlight();
        getch();
        system("cls");
        gongneng_xuanze3();
    }
    while(fread(&stu[i],sizeof(struct students),1,fp)!=0)//若存在,读取系统
    {
        i++;
    }
    fclose(fp); //程序结束后,关闭流
    Hightlight();
    printf("信息已载入!按任意键返回!\n");
    Unhightlight();
    getch();  
    system("cls");
    gongneng_xuanze3();
}
void tea_open2()
{
    FILE *fp;
    int i=0; //打开文件流
    char filename[50];
    printf("请输入文件名(默认teadata):");
    scanf("%s",filename); //输入要载 入的文件名
    if((fp=fopen(filename,"rb"))==0) //如果当前目录下不存在相对应的文件,输出文件不存在,退出系统
    {
        Hightlight();
        printf("文件不存在!按任意键返回!\n");
        Unhightlight();
        getch();
        system("cls");
        gongneng_xuanze3();
    }
    while(fread(&tea[i],sizeof(struct teachers),1,fp)!=0)//若存在,读取系统
    {
        i++;
    }
    fclose(fp); //程序结束后,关闭流
    Hightlight();
    printf("信息已载入!按任意键返回!\n");
    Unhightlight();
    getch();  
    system("cls");
    gongneng_xuanze3();
}
void Hightlight()
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|FOREGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE|FOREGROUND_BLUE);
}
void Unhightlight()
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|FOREGROUND_INTENSITY|BACKGROUND_BLUE|BACKGROUND_BLUE|BACKGROUND_GREEN|FOREGROUND_RED);
}
void stu_open()
{
    FILE *fp;
    int i=0; //打开文件流
    char filename[50]="studata";
    if((fp=fopen(filename,"rb"))==0) //如果当前目录下不存在相对应的文件,输出文件不存在,退出系统
    {
        Hightlight();
        printf("系统已格式化!任意键进入!\n");
        Unhightlight();
        getch();
        system("cls");
        menu();
    }
    while(fread(&stu[i],sizeof(struct students),1,fp)!=0)//若存在,读取系统
    {
        i++;
    }
    fclose(fp); //程序结束后,关闭流
    system("cls");
    tea_open();
}
void tea_open()
{
    FILE *fp;
    int i=0; //打开文件流
    char filename[50]="teadata";
    if((fp=fopen(filename,"rb"))==0) //如果当前目录下不存在相对应的文件,输出文件不存在,退出系统
    {
        Hightlight();
        printf("系统已格式化!任意键进入!\n");
        Unhightlight();
        getch();
        system("cls");
        menu();
    }
    while(fread(&tea[i],sizeof(struct teachers),1,fp)!=0)//若存在,读取系统
    {
        i++;
    }
    fclose(fp); //程序结束后,关闭流
    system("cls");
    menu();
}
2015-11-17 09:47
快速回复:(3)C语言问题之学生信息管理系统
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038798 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved