加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C程序(学生管理系统)

(2014-05-30 23:07:37)
标签:

文化

//#include
//using namespace std;
#include "stdio.h"          
#include "stdlib.h"        
#include "string.h"        
#include "Conio.h"        
//#include  
#define closegr closegraph 
struct student 
char num[10];        
char name[15];         
int cgrade;          
int mgrade;          
int egrade;            
int total;            
float ave;            
}; 
typedef struct node 
{
struct student data;  
struct node *next;      
}Node,*Link;
//#include "stdio.h"          
//#include "stdlib.h"        
//#include "string.h"        
//#include "Conio.h"        
//#include "graphics.h" 
//#define closegr closegraph 
void initgr(void)            
int gd = DETECT, gm = 0;               
registerbgidriver(EGAVGA_driver);      
initgraph(&gd, &gm, " ");
}
void drawmat(char *mat,int matsize,int x,int y,int color)      
{    
int i, j, k, n;    
n = (matsize - 1) / 8 + 1;   
for(j = 0; j < matsize; j++)     
for(i = 0; i < n; i++)       
for(k = 0;k < 8; k++)          
if(mat[j * n + i] & (0x80 >> k))                           
putpixel(x + i * 8 + k, y + j, color); 
}   

int shoudsave=0;
struct student 
{  
char num[10];          
char name[15];          
int cgrade;            
int mgrade;            
int egrade;            
int total;             
float ave;               
char neartime[10];         
};      
void printstart()   
{    
printf("-----------------------------------------------------------------------\n");   
}    
void Wrong()   
{    
printf("\n=====>提示:输入错误!\n");   
}    
void Nofind()   
{    
printf("\n=====>提示:没有找到该学生!\n");   
}    
void printc()              
{    
printf(" 学号       姓名      性别  英语成绩  数学成绩  C语言成绩  总分 平均分\n");   
}    
void printe(Node *p)        
{    
printf("%-12s%s\t\t%s\t%d\t%d\t%d\t%d\t%d\n",p->data.num,p->data.name,p->data.sex,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.totle,p->data.ave);
}    
Node* Locate(Link l,char findmess[],char nameornum[])      
void main() 
{     
Link l;            
FILE *fp;           
int select;        
char ch;             
int count=0;        
Node *p,*r;         
l=(Node*)malloc(sizeof(Node));  
l->next=NULL;   
r=l;    
fp=fopen("C:\\student","rb");   
if(fp==NULL)   
{     
printf("\n=====>提示:文件还不存在,是否创建?(y/n)\n");    
scanf("%c",&jian);    
if(jian=='y'||jian=='Y')     
fp=fopen("C:\\student","wb");    
else    
exit(0);   
}    
printf("\n=====>提示:文件已经打开,正在导入记录......\n");   
while(!feof(fp))   
{     
p=(Node*)malloc(sizeof(Node));     
if(fread(p,sizeof(Node),1,fp))           
{      p->next=NULL;     r->next=p;      r=p;    
count++;    
}   
}    
fclose(fp);           
printf("\n=====>提示:记录导入完毕,共导入%d条记录.\n",count);   
while(1)   
{     
menu();     
printf("请你选择操作:");
scanf("%d",&sel);
if(sel==0)
{
if(shoudsave==1)
{
getchar();
printf("\n=====>提示:资料已经改动,是否将改动保存到文件中(y/n)?\n");
scanf("%c",&ch);    
if(ch=='y'||ch=='Y')     
Save(l);     
printf("\n=====>谢谢使用!\n");
break;
}
switch(sel)
{    
case 1:Add(l);
break;             
case 2:Del(l);
break;             
case 3:Qur(l);
break;             
case 4:Modify(l);
break;             
case 5:Disp(l);
break;             
case 6:Tongji(l);
break;             
case 7:Sort(l);
break;             
case 8:Save(l);
break;             
default: Wrong();     
printf("\n=====>提示:输入错误!\n"); 
getchar();   
getchar();
break;    
}
}
}
char menu( void )        
{      
char choice;     
clrscr();      
gotoxy( 17 , 5 );      
printf(" =================主菜单===================");     
gotoxy(17 , 6);      
printf(" ==      1    输入学生信息               ==");           
gotoxy(17 , 7);      
printf(" ==      2    删除学生信息               ==");           
gotoxy(17 , 8);      
printf(" ==      3    查询学生信息               ==");     
gotoxy(17 , 9);     
printf(" ==      4    修改学生信息               ==");           
gotoxy(17 , 10);      
printf(" ==      5    显示学生信息               ==");           
gotoxy(17 , 11);      
printf(" ==      6    统计学生信息               ==");           
gotoxy(17 , 12);      
printf(" ==      7    排序学生信息               ==");           
gotoxy(17 , 13);      
printf(" ==      8    保存学生信息               ==");     
gotoxy(17 , 14);      
printf(" ==      0    退出系统                   ==");           
gotoxy(17 , 15);      
printf(" ==========================================");  
}
Node* Locate(Link l,char findmess[],char nameornum[])               
{    
Node *r;    
if(strcmp(nameornum,"num")==0)                                  
{     
r=l->next;     
while(r!=NULL)    
{      
if(strcmp(r->data.num,findmess)==0)     
return r;     
r=r->next;
}
}
else 
if(strcmp(nameornum,"name")==0)                              
{     
r=l->next;     
while(r!=NULL)    
{      
if(strcmp(r->data.name,findmess)==0)     
return r;     
r=r->next;
}
}    
return 0;    
//}   return 0;        
}
void Add(Link l)        
{    
Node *p,*r,*s;      
char num[15];  
r=l;   
s=l->next;    
while(r->next!=NULL)     
r=r->next;          
while(1)   
{     
printf("请你输入学号(以'0'返回上一级菜单:)");
scanf("%s",num);
if(strcmp(num,"0")==0) 
break;
while(s)
{
if(strcmp(s->data.num,num)==0)
{
printf("=====>提示:学号为'%s'的学生已经存在,若要修改请你选择'4?修改'!\n",num);
printstart();
printc();
printe(s);
printstart();
printf("\n");
return;
}
s=s->next;
}
p=(Node *)malloc(sizeof(Node));
strcpy(p->data.num,num);
printf("请你输入姓名:");
scanf("%s",p->data.name);
getchar();
printf("请你输入性别:");
scanf("%s",p->data.sex);
getchar();
printf("请你输入c语言成绩:");
scanf("%d",&p->data.cgrade);
getchar();
printf("请你输入数学成绩:");
scanf("%d",&p->data.mgrade);
getchar();
printf("请你输入英语成绩:");
scanf("%d",&p->data.egrade);
getchar();
p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade;
p->data.ave=p->data.totle / 3;    
p->next=NULL;
r->next=p;
r=p;
shoudsave=1;
}
}
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有