| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1980 人关注过本帖
标题:分享原创:一个简单的学生信息管理系统(请大家提提意见)
只看楼主 加入收藏
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
结帖率:89.66%
收藏
已结贴  问题点数:20 回复次数:16 
分享原创:一个简单的学生信息管理系统(请大家提提意见)
程序代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

#define NULL 0

struct student{
    char name[20];
    char id[20];
    char sex[3];
    int year,month;
    char major[50];
    char ban_ji[50];
    char address[50];
    char phone_num[20];

};

int main(int argc, char* argv[])
{
    FILE* fp;
    fp=fopen("学生成绩管理系统.txt","ab+");
    if(fp==NULL){
        printf("打开文件失败!\n");
        exit(1);
    }
    while(1){
    printf("*******************欢迎使用学生成绩管理系统!**********************\n");
    printf("1.录入学生信息\n");
    printf("2.显示学生信息\n");
    printf("3.查找学生\n");
    printf("4.退出\n");
    printf("********************************************************************\n");
    printf("请选择要操作的项目:");
    int i;
    scanf("%d",&i);
    switch(i){
    case 1:
        {
        struct student *p=(student*)malloc(sizeof(struct student));
        if(p==NULL){
            printf("申请内存失败!\n");
            exit(1);
        }
        printf("请输入学生姓名:");
        scanf("%s",p->name);

        printf("请输入学生学号:");
        scanf("%s",p->id);

        printf("请输入学生性别:");
        scanf("%s",p->sex);

        printf("请输入学生出生年份:");
        scanf("%d",&p->year);

        printf("请输入学生出生月份:");
        scanf("%d",&p->month);

        printf("请输入学生的专业:");
        scanf("%s",p->major);

        printf("请输入学生所在的班级:");
        scanf("%s",p->ban_ji);

        printf("请输入学生的家庭住址:");
        scanf("%s",p->address);

        printf("请输入学生的宿舍电话:");
        scanf("%s",p->phone_num);

        fwrite(p,sizeof(struct student),1,fp);

        free(p);
        p=NULL;
        }
        system("pause");
        system("cls");
        break;
    case 2:
        {
            struct student* p=(student*)malloc(sizeof(struct student));
            if(p==NULL){
                printf("申请内存失败!\n");
                exit(1);
            }
            rewind(fp);
            while(!feof(fp)){
                if(fread(p,sizeof(struct student),1,fp))
                    printf("姓名:%s\n学号:%s\n性别:%s\n出生年月:%d %d\n专业:%s\n所在班级:%s\n家庭住址:%s\n宿舍电话:%s\n\n",
                            p->name,p->id,p->sex,p->year,p->month,p->major,p->ban_ji,p->address,p->phone_num);
            }
            free(p);
            p=NULL;
        }
        system("pause");
        system("cls");
        break;
    case 3:
        rewind(fp);
        printf("1.按姓名查找\n2.按学号查找\n");
        int j;
        scanf("%d",&j);
        switch(j){
        case 1:
            {
                char names[20];
                int n=0;
                printf("请输入要查找的学生的姓名:");
                scanf("%s",names);
                struct student* p=(student*)malloc(sizeof(struct student));
                if(p==NULL){
                    printf("申请内存失败!\n");
                    exit(1);
                }
                while(!feof(fp)){
                    if(fread(p,sizeof(struct student),1,fp))
                        if(strcmp(p->name,names)==0){
                            n++;
                            printf("姓名:%s\n学号:%s\n性别:%s\n出生年月:%d %d\n专业:%s\n所在班级:%s\n家庭住址:%s\n宿舍电话:%s\n\n",
                                    p->name,p->id,p->sex,p->year,p->month,p->major,p->ban_ji,p->address,p->phone_num);
                        }
                }
                if(!n)    printf("没有对应的信息!\n");               
            }
            break;
        case 2:
            {
                char number[20];
                int n=0;
                printf("请输入要查找的学生的学号:");
                scanf("%s",number);
                struct student* p=(student*)malloc(sizeof(struct student));
                if(p==NULL){
                    printf("申请内存失败!\n");
                    exit(1);
                }
                while(!feof(fp)){
                    if(fread(p,sizeof(struct student),1,fp))
                        if(strcmp(p->id,number)==0){
                            n++;
                            printf("姓名:%s\n学号:%s\n性别:%s\n出生年月:%d %d\n专业:%s\n所在班级:%s\n家庭住址:%s\n宿舍电话:%s\n\n",
                                    p->name,p->id,p->sex,p->year,p->month,p->major,p->ban_ji,p->address,p->phone_num);
                        }
                }
                if(!n)    printf("没有对应的信息!\n");    


            }
            break;
        default:printf("您的输入无效!\n");
        }
        system("pause");
        system("cls");
        break;
    case 4:exit(0);
        break;
    default:printf("您的输入无效!\n");

    }



    }
    fclose(fp);

    return 0;
}


[ 本帖最后由 南国利剑 于 2010-6-7 19:33 编辑 ]
搜索更多相关主题的帖子: 信息管理系统 学生 意见 分享 
2010-06-07 16:46
zdoublehang
Rank: 1
等 级:新手上路
帖 子:90
专家分:3
注 册:2010-5-27
收藏
得分:2 
好啊!!!!!!!!!!!!!!!!
2010-06-07 19:40
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:2 
太一般了。

完全没有面向对象的思想。

怎么还能置顶?
2010-06-07 19:59
迷失的木桶
Rank: 4
等 级:业余侠客
帖 子:52
专家分:230
注 册:2010-5-29
收藏
得分:4 
纯C实现,很不错~。楼主再写个C++版的
2010-06-07 20:25
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
回复 3楼 Devil_W
谢谢!
说的对。
我是帮一个朋友写的。
他要求用纯C写。
呵呵。。。

南国利剑
2010-06-07 22:39
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
回复 4楼 迷失的木桶
好的,我前段时间也写了个类似的。一会贴出来。

南国利剑
2010-06-07 23:02
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:2 
以下是引用南国利剑在2010-6-7 23:02:18的发言:

好的,我前段时间也写了个类似的。一会贴出来。


很好,很想见识你的C++是什么水平的。

看看你怎么设计类, 用到了C++的哪些技巧。
2010-06-07 23:35
迷失的木桶
Rank: 4
等 级:业余侠客
帖 子:52
专家分:230
注 册:2010-5-29
收藏
得分:2 
呵呵,其实用C实现就可以了,如果改成C++我觉得实现成本升高,并且没有多大变化。当然作为练手还是不错的。
2010-06-08 08:52
yi19860699
Rank: 2
来 自:江西
等 级:论坛游民
帖 子:42
专家分:40
注 册:2009-9-3
收藏
得分:4 
性别 我输入123  结果没报错····
2010-06-08 16:24
yi19860699
Rank: 2
来 自:江西
等 级:论坛游民
帖 子:42
专家分:40
注 册:2009-9-3
收藏
得分:2 
#define NULL 0
 请问大侠  这个用法和意义
2010-06-08 16:26
快速回复:分享原创:一个简单的学生信息管理系统(请大家提提意见)
数据加载中...
 
   



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

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