| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2017 人关注过本帖
标题:[求助]学生成绩管理系统
只看楼主 加入收藏
ksh053
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2004-12-20
收藏
 问题点数:0 回复次数:8 
[求助]学生成绩管理系统

各位帮帮忙吧,本人急需一道有关学生成绩管理系统的程序啊

用C语言编写,不用到链表,要用到文件

搜索更多相关主题的帖子: 系统 学生 管理 
2004-12-20 15:43
ksh053
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2004-12-20
收藏
得分:0 
各位求求你们帮帮忙,快点吧!!!

在这个世界上我最需要什么? 友情?爱情?还是亲情? 答案:    
2004-12-20 15:59
ksh053
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2004-12-20
收藏
得分:0 

为什么没人帮我啊?


在这个世界上我最需要什么? 友情?爱情?还是亲情? 答案:    
2004-12-23 21:35
wswc12
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2004-12-25
收藏
得分:0 

我都自己写来了一个

不是很麻烦的

2004-12-25 07:32
zinking
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:35
帖 子:916
专家分:0
注 册:2004-12-5
收藏
得分:0 

大姐,改成悬赏帖就有人帮你了阿

而且阿,你的题目挺下人得阿,系统,你知道那是多大得概念阿,下着 我们了阿

你说得是不是就是个小的 程序那。

这样得程序在书上就有阿 。

随便哪本c程书都有 阿


http://kongfuziandlife. http://codeanddesign.
2004-12-25 12:59
volte
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:69
帖 子:1167
专家分:1316
注 册:2004-12-19
收藏
得分:0 

具体实现什么样的功能

介绍一下就可以了。

管理系统涉及数据库和编程,软件设计等多方面的领域。概念太广了。

楼主得弄明白!


大家都是朋友,有空就来坐坐!
2004-12-25 17:12
andyxu
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-12-25
收藏
得分:0 

# include "stdio.h" # include "string.h" # include "stdlib.h" # define NULL 0 # define MAX 5 # define TRUE 1

typedef struct node { char name[8]; int number; double score; }node;

static int recnum;

void creat() { char scorestr[100],ch,numstr[100]; node student; FILE *fp; if((fp=fopen("C:\stud.ree","wb"))==NULL) { printf("不能打开stud.ree!"); exit(0); } /*rewind(fp); 郁闷的定位函数!!! fseek(fp,recnum*sizeof(node),0); */ do { printf("\n姓名:");gets(student.name); printf("\n学号:"); gets(numstr);student.number=atoi(numstr); printf("\n成绩:"); gets(scorestr);student.score=atof(scorestr); fwrite(&student,sizeof(node),1,fp); recnum++; printf("输入其他的学生记录:(y/n)?"); ch=getchar();getchar(); }while(ch=='y'); fclose(fp); }

void list() { node student; char scorestr[100],ch; FILE *fp; if((fp=fopen("C:\stud.ree","rb"))==NULL) {printf("不能打开stud.ree!"); return; } printf("\n下面是学生资料:\n"); printf(" 学号 姓名 成绩\n");

while(fread(&student,sizeof(node),1,fp)==1) { printf("%1d %s %6.2f\n",student.number,student.name,student.score); } fclose(fp); }

int totalrec() /*计算文件的记录数,用recnum表示总记录数*/ { node student; FILE *fp; recnum=0; if((fp=fopen("C:\stud.ree","rb"))==NULL) return 0; while(fread(&student,sizeof(node),1,fp)==1) { recnum++; } fclose(fp); return (recnum); }

searchnum() { node student; FILE *fp; int i=1; int num1; printf("\n请输入学号:"); scanf("%d",&num1); if((fp=fopen("C:\stud.ree","rb"))==NULL) {printf("不能打开stud.ree!"); return; } while(i<=recnum) { if(fread(&student,sizeof(node),1,fp)==1 && student.number==num1) { printf("\n 姓名: %s \n",student.name); printf("\n学号: %1d \n",student.number); printf("\n成绩: %6.2f\n",student.score); } i++; } fclose(fp); }

searchscore() { node student; FILE *fp; int i=1; double score1; printf("\n请输入成绩(小数点后保留2位):"); scanf("%lf",&score1); if((fp=fopen("C:\stud.ree","rb"))==NULL) {printf("不能打开stud.ree"); return; } while(i<=recnum) { if(fread(&student,sizeof(node),1,fp)==1 && student.score==score1) { printf("\n 姓名 : %s \n",student.name); printf("\n学号: %1d \n",student.number); printf("\n年龄: %6.2f\n",student.score); } i++; } fclose(fp); }

main() {int n; /*N为选择函数变量*/ clrscr(); gotoxy(10,10); printf("欢迎进入学生学籍管理系统"); gotoxy(10,12); printf("1:显示学生信息 2:成绩查找信息"); gotoxy(10,14); printf("3:添加学生信息 4:删除学生信息"); gotoxy(10,16); printf("5:学号查找信息 6:退出管理系统");

while(TRUE) { totalrec(); printf("\n当前文件的记录数是:%d",recnum); printf("\n请选择(1-6)"); scanf("%d",&n); getchar(); switch(n) { case 1:list();break; case 2:searchscore();break; case 3:creat();break; case 4:printf("本函数尚未定义!");break; case 5:searchnum();break; case 6:exit(0);break; default :printf("\n请选择1-6这几个数字!!!"); } }

}


2004-12-27 21:50
andyxu
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-12-25
收藏
得分:0 

creat函数只能创建记录而不能追加,我试着用了ftell函数来进行定位,但是失败了,追加记录

是加上了但是前面的记录全都重写了(值都变成了默认值),郁闷!有哪个朋友知道怎么追加还

请赐教啊!


2004-12-27 21:50
andyxu
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-12-25
收藏
得分:0 

我知道怎么不能追加了,creat函数里的文件打开方式错了,应该是fopen("C:\stud.ree","ab")以追加方式打开,然后配合 rewind(fp); fseek(fp,recnum*sizeof(node),0); 语句就可以了。 下面是正确的代码! # include "stdio.h" # include "string.h" # include "stdlib.h" # define NULL 0 # define MAX 5 # define TRUE 1

typedef struct node { char name[8]; int number; double score; }node;

static int recnum;

void creat() { char scorestr[100],ch,numstr[100]; node student; FILE *fp; if((fp=fopen("C:\stud.ree","ab"))==NULL) { printf("不能打开stud.ree!"); exit(0); } rewind(fp); fseek(fp,recnum*sizeof(node),0); do { printf("\n姓名:");gets(student.name); printf("\n学号:"); gets(numstr);student.number=atoi(numstr); printf("\n成绩:"); gets(scorestr);student.score=atof(scorestr); fwrite(&student,sizeof(node),1,fp); recnum++; printf("输入其他的学生记录:(y/n)?"); ch=getchar();getchar(); }while(ch=='y'); fclose(fp); }

void list() { node student; char scorestr[100],ch; FILE *fp; if((fp=fopen("C:\stud.ree","rb"))==NULL) {printf("不能打开stud.ree!"); return; } printf("\n下面是学生资料:\n"); printf(" 学号 姓名 成绩\n");

while(fread(&student,sizeof(node),1,fp)==1) { printf("%1d %s %6.2f\n",student.number,student.name,student.score); } fclose(fp); }

int totalrec() /*计算文件的记录数,用recnum表示总记录数*/ { node student; FILE *fp; recnum=0; if((fp=fopen("C:\stud.ree","rb"))==NULL) return 0; while(fread(&student,sizeof(node),1,fp)==1) { recnum++; } fclose(fp); return (recnum); }

searchnum() { node student; FILE *fp; int i=1; int num1; printf("\n请输入学号:"); scanf("%d",&num1); if((fp=fopen("C:\stud.ree","rb"))==NULL) {printf("不能打开stud.ree!"); return; } while(i<=recnum) { if(fread(&student,sizeof(node),1,fp)==1 && student.number==num1) { printf("\n 姓名: %s \n",student.name); printf("\n学号: %1d \n",student.number); printf("\n成绩: %6.2f\n",student.score); } i++; } fclose(fp); }

searchscore() { node student; FILE *fp; int i=1; double score1; printf("\n请输入成绩(小数点后保留2位):"); scanf("%lf",&score1); if((fp=fopen("C:\stud.ree","rb"))==NULL) {printf("不能打开stud.ree"); return; } while(i<=recnum) { if(fread(&student,sizeof(node),1,fp)==1 && student.score==score1) { printf("\n 姓名 : %s \n",student.name); printf("\n学号: %1d \n",student.number); printf("\n年龄: %6.2f\n",student.score); } i++; } fclose(fp); }

main() {int n; /*N为选择函数变量*/ clrscr(); gotoxy(10,10); printf("欢迎进入学生学籍管理系统"); gotoxy(10,12); printf("1:显示学生信息 2:成绩查找信息"); gotoxy(10,14); printf("3:添加学生信息 4:删除学生信息"); gotoxy(10,16); printf("5:学号查找信息 6:退出管理系统");

while(TRUE) { totalrec(); printf("\n当前文件的记录数是:%d",recnum); printf("\n请选择(1-6)"); scanf("%d",&n); getchar(); switch(n) { case 1:list();break; case 2:searchscore();break; case 3:creat();break; case 4:printf("本函数尚未定义!");break; case 5:searchnum();break; case 6:exit(0);break; default :printf("\n请选择1-6这几个数字!!!"); } }

}


2004-12-28 22:22
快速回复:[求助]学生成绩管理系统
数据加载中...
 
   



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

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