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

]大家好,我是新来的,今天刚刚注册!有个题目,希望大家能帮忙一下,谢谢!!!

题目名称:学生成绩管理系统 设计要求:编写一学生成绩管理系统,实现对学生成绩的计算机管理。 (1)学生基本信息包括:班级,性别,学号,要求能输入至少四个科目的成绩。 (2)对系统的使用权限做如下规定:学生只能查询本人的成绩,管理员可以输入,修改和查询每个学生的成绩。 (3)管理员和学生都可以随时修改自己的密码。 (4)对学生的各科成绩进行排序,并按总成绩排序。 (5)求各科的平均成绩,并求出每个学生的平均成绩。 (6)用户能够获得在线帮助信息。 (7)系统的截面设计要合理,友好。

我知道很难。。不过还是谢谢帮忙的人,呵呵~~希望大家一起研究!

搜索更多相关主题的帖子: 系统 学生 管理 
2004-10-11 15:36
chen__han1
Rank: 1
等 级:新手上路
帖 子:256
专家分:0
注 册:2004-9-16
收藏
得分:0 

呵呵,新来的啊,

你这样他们大多不帮你啊,这不帮做题,可以帮人改.你应该把你的思路和基本算法写出来,

问别人还有哪些地方漏了或错了.就是这个样子了.

而且你这个好象不是c的内容吧.


路漫漫其修远兮 吾将上下而求索!
2004-10-13 08:12
小小
Rank: 1
等 级:新手上路
威 望:1
帖 子:219
专家分:0
注 册:2004-5-31
收藏
得分:0 

应该是:网络编程吧

用ASP等写吧?


有一天咖啡的舞者 £
2004-10-14 17:17
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 

#include <graphics.h> #include <stdio.h> #include <conio.h> #include <stdio.h>

/*定义各个按键的值*/ #define fRIGHT 0x4d00 #define fENTER 0x000d #define fLEFT 0x4b00 #define fUP 0x4800 #define fDOWN 0x5000 #define fESC 0x001b #define fTAB 0x0009 #define fINSERT 0x5200 #define fHOME 0x4700 #define fEND 0x4f00 #define fPageUp 0x4900 #define fPageDown 0x5100 #define fDEL 0x5300 #define fF1 0x3b00 #define fF2 0x3c00 #define fF3 0x3d00 #define fF4 0x3e00 #define fF5 0x3f00 #define fF6 0x4000 #define fF7 0x4100 #define fF8 0x4200 #define fF9 0x4300 #define fF10 0x4400

#define mcolor BLUE /*定义字体颜色*/

/*设置图形配置器,如果图形配置器设置不对,在此函数中修改*/ void setgraph(void) {int gd=DETECT,gm=0; registerbgidriver(EGAVGA_driver); initgraph(&gd,&gm,""); }

/*链表数据区*/ struct record { char stuid[10]; /*学号*/ char name[30]; /*姓名*/ char chinese[5]; /*语文*/ char math[5]; /*数学*/ char english[5]; /*英语*/ char chemistry[5];/*化学*/ char computer[5]; /*电脑*/ char music[5]; /*音乐*/ char picture[5]; /*美术*/ char physics[5]; /*物理*/ char sport[5]; /*体育*/ struct record *next; /*上一个数据地址*/ struct record *prior; /*下一个数据地址*/ }list_entry; /*___________*/

/*菜单数据区*/ struct record *start; /*用来存储上一个地址值*/ struct record *last; /*用来存储下一个地址值*/

void *buf;/*用来保存图象数据的指针*/

char title[]="Student Restul Inquire System. Ver 1.0";/*标题栏文字---学生成绩查询系统*/

char menutext[8][20]={/*菜单栏文字*/ "Files","Edits","","","","","",""}; int menutextcolor[8]={7,7,7,7,7,7,7,7}; /*菜单栏文字颜色控制,用来显示被选中的菜单*/

char list[8][5][20]={/*菜单选项文字*/ ".About",".Cls",".LoadFile",".SaveFile",".Quit",/*介绍,清屏,读档案文件,写档案文件,退出*/ ".New",".Delete",".List",".Search",".Revise",/*新建,删除,列表,搜索,修改*/ ".",".",".",".",".", ".",".",".",".",".", ".",".",".",".",".", ".",".",".",".",".", ".",".",".",".",".", ".",".",".",".",".", };

/*各个菜单选项区大小分配*/ int x1=495,y1=60,x2=635,y2=175; int xs1[8]={10,85,163,240,320,400,480,485}; int xs2[8]={150,225,303,380,460,540,620,635}; /*___________*/

char filename[30]; /*文件名*/

/*链表函数区*/ void enter(); /*新创建一个数据,也就是学生的学号、姓名和各科成绩*/ void display(); /*显示数据内容*/ void search(); /*搜索数据,有两种查找模式,学号和姓名*/ void save(); /*保存数据到文件中*/ void load(); /*从文件中读取数据到内存*/ void revise(); /*修改数据*/ void getname(int ,int ,char *);/*一个在图形界面下输入字符的函数*/ /*____________*/

/*菜单函数区*/ int Funkey(); /*无暂停按键判断*/ int OneFunKey(); /*有暂停按键判断*/ void setgraph(); /*显示器设置,如果你不能正常运行,请修改这个程序*/ void ShowMenu(); /*显示菜单轮廓*/ void ShowList(int x); /*显示选项框*/ void SaveList(); /*选项框显示区图象保存*/ void PutListSave(); /*选项框显示区图象释放*/ void MenuLight(int keydat); /*菜单字幕变色,表示该栏菜单被选中*/ void ListLight(int m); /*选项字幕变色,表示光条在该选项上*/ void IDmaster(int id); /*选项编号管理器,用来确定哪个选项被选中*/ void MenuMaster(); /*菜单按键管理器,用来判断方向键等*/ void aboutme(); /*介绍自己以及论坛*/ /*___________*/

main() /*主函数*/ { unsigned key; int n;

filename[0]='\0'; /*初始化文件名,在SAVE中判断是否已经输入过文件名,如果没有,重新输入*/ setgraph(); ShowMenu(); buf=(void *)malloc(imagesize(x1,y1,x2,y2));

while((key=FunKey())!=255){ /*判断是否激活了菜单*/

setcolor(7); rectangle(5,20,79*8,40);

if(key==fTAB){ /*按下TAB键激活菜单*/ setcolor(YELLOW); rectangle(5,20,79*8,40); MenuMaster(); }

} getch(); }

void aboutme() /*介绍自己以及论坛*/ { void *mpbuf; mpbuf=(void *)malloc(imagesize(200,200,400,300)); getimage(200,200,400,300,mpbuf);

setfillstyle(SOLID_FILL,BLUE); bar(200,200,400,300); setcolor(RED); outtextxy(240,235," vLinux"); outtextxy(210,280,"By http://bbs.bc-cn.net"); getch(); putimage(200,200,mpbuf,0); free(mpbuf); }

/*无暂停按键控制器*/ int FunKey() { unsigned key; if(bioskey(1)==0) return(0); key=bioskey(0); if(key<<8) key=key&0x00ff; return key; }

/*有暂停按键控制器*/ int OneFunKey() { unsigned key; key=bioskey(0); if(key<<8) key=key&0x00ff; return key; }

void ShowMenu()/*画菜单轮廓*/ { int n;

/*标题栏*/ setfillstyle(SOLID_FILL,BLUE); bar(0,0,639,20);

/*菜单栏*/ setfillstyle(SOLID_FILL,8); bar(5,20,79*8,40); /*菜单栏背景*/ setcolor(0); for(n=1;n<=8;n++) rectangle(5,20,79*n,40);

/*工作区*/ setfillstyle(SOLID_FILL,7); bar(6,45,635,475);

/*重新标绘边框*/ setcolor(7); rectangle(0,0,639,479);

/*菜单文字信息*/ /*标题栏文字*/ settextstyle(0,0,2); outtextxy(2,2,title);

/*菜单栏文字*/ settextstyle(0,0,1); for(n=0;n<8;n++){ setcolor(menutextcolor[n]); outtextxy(20+n*80,25,menutext[n]); } }

/*菜单选项*/ void ShowList(int x) { int m,n,a=x1,b=y1,c=x2,d=y2;

/*进行文字阴影处理*/ for(n=0;n<3;n++){ setcolor(8+n); for(m=0;m<5;m++){ rectangle(a,b,c,d-(d-b)/5*m); outtextxy(a+8,(b+8)+(d-b)/5*m,menutext[x]); outtextxy(a+8+sizeof(menutext[x])*2,(b+8)+(d-b)/5*m,list[x][m]); } a++;b++;c--;d--; } }

void clsworkplace() /*清除工作区*/ { setfillstyle(SOLID_FILL,7); bar(6,45,635,475); }

void clstextlen() /*清除消息显示区,用来更新消息文字*/ { setfillstyle(SOLID_FILL,7); bar(10,60,250,67); }

void SaveList()/*保存菜单选项显示区*/ { getimage(x1,y1,x2,y2,buf); }

void PutListSave() /*释放菜单选项显示区*/ { putimage(x1,y1,buf,0); }

void MenuLight(int keydat)/*菜单被选中的栏用高亮度显示*/ { int n; for(n=0;n<8;n++) menutextcolor[n]=7; if(0<=keydat<=7) menutextcolor[keydat-1]=YELLOW; for(n=0;n<8;n++){ setcolor(menutextcolor[n]); outtextxy(20+n*80,25,menutext[n]); } }

void ListLight(int m) /*菜单选项的光条,采用改变背景颜色重放技术*/ { int a=x1,b=y1,c=x2,d=y2; setfillstyle(SOLID_FILL,13); bar(a,b-(d-b)/5*(m-4),c,d-(d-b)/5*m); }

void MenuMaster() /*菜单按键管理器*/ { unsigned key; int Lsign,x=-1,y=-1,id=-1,sign=0;/*sign为IDmaster标记,如果sign=1则跳出while去执行IDmaster*/ Lsign=0;/*功能按贱执行标记,0-没执行,1-执行了*/ SaveList();/*保存菜单选项区的图象*/ while(sign==0 && (key=OneFunKey())!=fTAB){

switch(key){/*功能按键*/ case fLEFT: x--;break; case fRIGHT: x++;break; case fUP: y++;break; case fDOWN: y--;break; case fESC: PutListSave();MenuLight(9);break; case fENTER: id=(10*(x+1)+5-y);sign=1;break;/*计算ID的值,并且sign标志为1*/ } /*限制上下左右的范围*/ if(x<0) x=1; if(x>1) x=0; if(y<0) y=4; if(y>4) y=0;

PutListSave();/*释放保存的图象数据,起清除原来的菜单选项图象作用*/

x1=xs1[x];x2=xs2[x];

SaveList(); /*保存新的菜单选项区的图象数据*/

ListLight(y); /*显示光条*/ ShowList(x); /*显示菜单选项*/ MenuLight(x+1); /*加亮被选中的菜单名称*/

Lsign=1;/*把标志设置成1,表示已经执行过了*/ } /*如果Lsign标志为1,那么执行下面的代码。作用是,返回保存的单选项显示区图象数据*/ if(Lsign){ PutListSave(); MenuLight(9); }

IDmaster(id);/*把ID的值送给IDmaster*/ }

void enter() /*输入学生档案信息函数*/ { int c=0; struct record *info,*dls_store(); setfillstyle(SOLID_FILL,7); bar(330,70,630,478); for(;c<1;c++){ info=(struct record *)malloc(sizeof(list_entry)); if(!info){ clstextlen(); outtextxy(10,60,"out of memory"); return; }

for(c=0;c<11;c++){ /*画表格*/ setcolor(BLUE); rectangle(320,70,586,90+20*c); }

inputs(334,75,"enter student ID:",500,75,info->stuid,10); if(!info->stuid[0]) break; inputs(334,75+20*1,"enter name: ",500,75+20*1,info->name,30); inputs(334,75+20*2,"enter Chinese: ",500,75+20*2,info->chinese,5); inputs(334,75+20*3,"enter Math: ",500,75+20*3,info->math,5); inputs(334,75+20*4,"enter English: ",500,75+20*4,info->english,5); inputs(334,75+20*5,"enter Chemistry: ",500,75+20*5,info->chemistry,5); inputs(334,75+20*6,"enter Physics: ",500,75+20*6,info->physics,5); inputs(334,75+20*7,"enter Computer: ",500,75+20*7,info->computer,5); inputs(334,75+20*8,"enter Music: ",500,75+20*8,info->music,5); inputs(334,75+20*9,"enter Picture: ",500,75+20*9,info->picture,5); inputs(334,75+20*10,"enter sport: ",500,75+20*10,info->sport,5); start=dls_store(info,start); clstextlen(); outtextxy(10,60,"Input is END!"); } }

inputs(xo,yo,prompt,xi,yi,s,count) /*输入函数*/ /*(xo,yo)显示文字坐标,显示文字内容,(xi,yi)输入文字坐标,输入文字的最大值*/ char *prompt; char *s; int xi,yi,xo,yo,count; { int n; char p[255]; setcolor(mcolor);

clstextlen(); /*清除信息区域*/

do{ for(n=0;n<=200;n++) p[n]='\0';

outtextxy(xo,yo,prompt); getname(xi,yi,p);

if(strlen(p)>count){ /*判断输入的数据是否超过范围,这样可以防止溢出攻击*/

clstextlen(); outtextxy(10,60,"too long");

} }while(strlen(p)>count); strcpy(s,p); }

struct record *dls_store(i,top) /*双链表连接函数*/ struct record *i; struct record *top; { struct record *old,*p; if(last==NULL){ i->next=NULL; i->prior=NULL; last=i; return i; } p=top; old=NULL; while(p){ if(strcmp(p->name,i->name)<0){ old=p; p=p->next; } else{ if(p->prior){ p->prior->next=i; i->next=p; i->prior=p->prior; p->prior=i; return top; } i->next=p; i->prior=NULL; p->prior=i; return i; } } old->next=i; i->next=NULL; i->prior=old; last=i; return start; }

delete() /*删除选定的学生档案,输入学号确定学生*/ { struct record *info,*find(); static char s[10]; int n; for(n=0;n<10;n++) s[n]='\0';


感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2004-10-15 00:02
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 
clstextlen(); inputs(10,60,"enter student ID:",10,70,s,10);

info=find(s); if(info){ if(start==info){ start=info->next; if(start) start->prior=NULL; else last=NULL; } else{ info->prior->next=info->next; if(info!=last) info->next->prior=info->prior; else last=info->prior; } free(info); clstextlen(); setcolor(mcolor); outtextxy(10,60,"Delete succeed!"); } }

struct record *find(stuid) /*按学号查找学生*/ char *stuid; { struct record *info; info=start; while(info){ if(!strcmp(stuid,info->stuid)) return info; info=info->next; } clstextlen(); outtextxy(10,60,"ID no found\n"); return NULL; }

struct record *finds(name) /*按姓名查找学生*/ char *name; { struct record *info; info=start; while(info){ if(!strcmp(name,info->name)) return info; info=info->next; } clstextlen(); outtextxy(10,60,"Name no found"); return NULL; }

lists() /*列表,显示都有那些已经记录的学生以及他们的成绩等*/ { register int t; struct record *info; info=start; while(info){ getch(); clsworkplace(); display(info); info=info->next; } outtextxy(10,60,"END!"); }

void display(info)/*显示学生成绩信息*/ struct record *info; { clsworkplace(); setcolor(mcolor); outtextxy(20,75,"Student ID: ");outtextxy(20+200,75,info->stuid); outtextxy(20,75+20*1,"Name: ");outtextxy(20+200,75+20*1,info->name); outtextxy(20,75+20*2,"Chinese: ");outtextxy(20+200,75+20*2,info->chinese); outtextxy(20,75+20*3,"Math: ");outtextxy(20+200,75+20*3,info->math); outtextxy(20,75+20*4,"English: ");outtextxy(20+200,75+20*4,info->english); outtextxy(20,75+20*5,"Chemistry: ");outtextxy(20+200,75+20*5,info->chemistry); outtextxy(20,75+20*6,"Physics: ");outtextxy(20+200,75+20*6,info->physics); outtextxy(20,75+20*7,"Computer: ");outtextxy(20+200,75+20*7,info->computer); outtextxy(20,75+20*8,"Music: ");outtextxy(20+200,75+20*8,info->music); outtextxy(20,75+20*9,"Picture: ");outtextxy(20+200,75+20*9,info->picture); outtextxy(20,75+20*10,"Sport: ");outtextxy(20+200,75+20*10,info->sport); outtextxy(20,75+20*11,"___________ "); }

void search() /*搜索学生ID或者名字*/ { int n=0; static char names[40]; struct record *info,*find();

for(;n<39;n++) names[n]='\0';

clstextlen(); inputs(10,60,"enter name or ID to search",10,75,names,40);

if(!(info=finds(names)) && !(info=find(names))){ clstextlen(); outtextxy(10,60,"not found!"); } else display(info); }

void save() /*保存档案*/ { register int t; struct record *info; FILE *fp; setcolor(mcolor);

clstextlen(); inputs(10,60,"enter the file name:",10,75,filename,30);

if((fp=fopen(filename,"wb"))==NULL){ clstextlen(); outtextxy(10,60,"cannot open file"); getch(); exit(1); } clstextlen(); outtextxy(10,60,"saving file"); info=start; while(info){ fwrite(info,sizeof(struct record),1,fp); info=info->next; } fclose(fp); }

void load() /*读取档案*/ { register int t; struct record *info,*temp=NULL; FILE *fp; setcolor(mcolor);

clstextlen(); inputs(10,60,"enter the file name:",10,75,filename,30);

if((fp=fopen(filename,"rb"))==NULL){ clstextlen(); outtextxy(10,60,"cannot open file"); getch(); exit(1); } while(start){ info=start->next; free(info); start=info; } clstextlen(); outtextxy(10,60,"load file"); start=(struct record *)malloc(sizeof(struct record)); if(!start){ clstextlen(); outtextxy(10,60,"out of memory"); return; } info=start; while(!feof(fp)){ if(1!=fread(info,sizeof(struct record),1,fp)) break; info->next=(struct record *)malloc(sizeof(struct record)); if(!info->next){ clstextlen(); outtextxy(10,60,"out of memory"); return; } info->prior=temp; temp=info; info=info->next; } temp->next=NULL; last=temp; start->prior=NULL; fclose(fp); }

void revise() /*修改档案,按照学生ID来确定要修改的对象*/ { int c=0; struct record *info; static char stuid[10]; for(;c<10;c++) stuid[c]='\0';

clstextlen(); inputs(10,60,"Input ID:",10,70,stuid,10);

if(!(info=find(stuid))){ clstextlen(); setcolor(mcolor); outtextxy(10,60,"not found\n"); } else{ for(c=0;c<1;c++){/*填写表格*/ display(info);

for(c=0;c<11;c++){ /*画表格*/ setcolor(BLUE); rectangle(320,70,586,90+20*c); }

inputs(334,75,"enter student ID:",500,75,info->stuid,10); if(!info->stuid[0]) break; inputs(334,75+20*1,"enter name: ",500,75+20*1,info->name,30); inputs(334,75+20*2,"enter Chinese: ",500,75+20*2,info->chinese,5); inputs(334,75+20*3,"enter Math: ",500,75+20*3,info->math,5); inputs(334,75+20*4,"enter English: ",500,75+20*4,info->english,5); inputs(334,75+20*5,"enter Chemistry: ",500,75+20*5,info->chemistry,5); inputs(334,75+20*6,"enter Physics: ",500,75+20*6,info->physics,5); inputs(334,75+20*7,"enter Computer: ",500,75+20*7,info->computer,5); inputs(334,75+20*8,"enter Music: ",500,75+20*8,info->music,5); inputs(334,75+20*9,"enter Picture: ",500,75+20*9,info->picture,5); inputs(334,75+20*10,"enter sport: ",500,75+20*10,info->sport,5); clstextlen(); outtextxy(10,60,"Input is END!"); } clstextlen(); outtextxy(10,60,"Revise is ok!"); } }

void IDmaster(int id) /*菜单ID管理器--按照不同的ID所对应的值去执行相应的程序(函数)*/ { char texts[5]; void *mpbuf;

if(id==-1) return;/*空任务*/

itoa(id,texts,10);/*字符型转换整型*/

switch(id){ /*判断ID*/ case 11:aboutme();break; case 12:clsworkplace();break; case 13:load();break; case 14:save();break; case 15:exit(0);break; case 21:enter();break; case 22:delete();break; case 23:lists();break; case 24:search();break; case 25:revise();break; }

/*显示当前被执行的菜单选项的ID*/ /*mpbuf=(void *)malloc(imagesize(200,200,400,300)); getimage(200,200,400,300,mpbuf);

setfillstyle(SOLID_FILL,BLUE); bar(200,200,400,300); setcolor(RED); outtextxy(220,250,texts); getch(); putimage(200,200,mpbuf,0); free(mpbuf); */ }

void getname(int x,int y,char *name) /*图形状态下的输入字符的函数*/ { int n=0; char temp; void *mpbuf;

if(x<200) bar(10,70,250,83);

mpbuf=(void *)malloc(imagesize(x,y,x+100,y+15)); getimage(x,y,x+100,y+15,mpbuf);

setfillstyle(SOLID_FILL,7);

while((temp=getch())!=13){ if(temp==8) name[--n]='\0'; else name[n++]=temp; setfillstyle(SOLID_FILL,7); bar(x,y,x+100,y+15); putimage(x,y,mpbuf,0); outtextxy(x,y,name); } free(mpbuf); }

此程序为版主资料 留言")'>神vLinux飘飘教受,再此帮助与你,请感谢版主的帮助!


感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2004-10-15 00:03
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 
此程序为版神vLinux飘飘教受,再此帮助与你,请感谢版主的帮助!

感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2004-10-15 00:03
Yorick1013
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2004-10-11
收藏
得分:0 

谢谢各位高手了。。。。

我自己也弄了一些。。。只是要密码功能有点不明白,用到文件,就是用一个文件放密码,然后再指向他

不过要更改密码。。。这些有点不明白,简单的密码程序我也会一点,可这样的,有点不明白

2004-10-15 17:43
受难耶酥
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-1-9
收藏
得分:0 
#include <graphics.h>
这里不能用
2005-09-11 14:30
快速回复:[求助]学生成绩管理系统
数据加载中...
 
   



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

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