⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.c

📁 学生成绩管理系统 有建立 删除 查找 修改等功能 能输入学号 姓名 三科的成绩 经检验能稳定运行
💻 C
字号:
#include "stdio.h"
#include "stdlib.h"   
#include "string.h"   
#include "conio.h"  
#include "mem.h"   
#include "ctype.h"   
#include "alloc.h"
#define NULL 0 

struct list{ 
   int num; 
   char name[256]; 
   int china; 
   int english; 
   int math; 
   struct list *next; 
}; 
typedef struct list node; 
typedef node *link; 
menu_select()
{
   char *menu[]={"***************MENU***************",  /*定义菜单字符串数组*/
     
   " 0. exit the programm",  
   " 1. create list",  
   " 2. search chengji ",       
   " 3. modify chengji",  
   " 4. delete chengji",   
   " 5. add chengji ",  
   " 6. pingjunfeng",  
   " 7. print chengji",
"***************MENU***************"};              
   char s[3];       /*以字符形式保存选择号*/
   int c,i;        /*定义整形变量*/
   gotoxy(1,25);        /*移动光标*/
   printf("press any key enter menu......\n");   /*压任一键进入主菜单*/
   getch();                       /*输入任一键*/
   clrscr();                     /*清屏幕*/
   gotoxy(1,1);             /*移动光标*/
   textcolor(YELLOW);   /*设置文本显示颜色为黄色*/
   textbackground(BLUE);   /*设置背景颜色为蓝色*/
   gotoxy(10,2);          /*移动光标*/
   putch(0xc9);        /*输出左上角边框┏*/
   for(i=1;i<44;i++)
      putch(0xcd);    /*输出上边框水平线*/
   putch(0xbb);            /*输出右上角边框  ┓*/
   for(i=3;i<20;i++)
   {
      gotoxy(10,i);putch(0xba);   /*输出左垂直线*/
      gotoxy(54,i);putch(0xba);
   }   /*输出右垂直线*/
   gotoxy(10,20);putch(0xc8);  /*输出左上角边框┗*/
   for(i=1;i<44;i++)
      putch(0xcd);      /*输出下边框水平线*/
   putch(0xbc);                 /*输出右下角边框┛*/
   window(11,3,53,19);       /* 制作显示菜单的窗口,大小根据菜单条数设计*/
   clrscr();              /*清屏*/
   for(i=0;i<10;i++)       /*输出主菜单数组*/
   {
      gotoxy(10,i+1);
      cprintf("%s",menu[i]);
   }
   textbackground(BLACK);   /*设置背景颜色为黑色*/
   window(1,1,80,25);       /*恢复原窗口大小*/
   gotoxy(10,21);       /*移动光标*/
   do{
      printf("\n	 Enter you choice(0~7):");    /*在菜单窗口外显示提示信息*/
      scanf("%s",s);           /*输入选择项*/
      c=atoi(s);            /*将输入的字符串转化为整形数*/
   }while(c<0||c>7);    /*选择项不在0~7之间重输*/
   return c;              /*返回选择项,主程序根据该数调用相应的函数*/
}
printf_list(link head) 
{ 
  link pointer; 
  pointer=head; 
  while(pointer!=NULL) 
  {textcolor(YELLOW);  
textbackground(BLUE); 
   printf("number:%d ",pointer->num); 
   printf("name:%s ",pointer->name); 
   printf("china:%d ",pointer->china); 
   printf("english:%d ",pointer->english); 
   printf("math:%d\n",pointer->math); 
   pointer=pointer->next; 
  } 
  } 
link creat_list(link head) 
{ 
   int cnum; 
   char cname[256]; 
   int cchina; 
   int cenglish; 
   int cmath; 
   link pointer,new; 
   int i; 
   head=(link)malloc(sizeof(node)); 
   if(head==NULL) 
     { printf("memory allocate failure!! "); 
       exit(0);} 
   else{ 
     printf("please input number:"); 
     scanf("%d",&cnum); 
     printf("please input name:"); 
     scanf("%s",&cname); 
     printf("please input china:"); 
     scanf("%d",&cchina); 
     printf("please input english:"); 
     scanf("%d",&cenglish); 
     printf("please input math:"); 
     scanf("%d",&cmath); 
     head->num=cnum; 
     for(i=0;i<256;i++) 
     { 
     head->name[i]=cname[i]; 
      } 
     head->china=cchina; 
     head->english=cenglish; 
     head->math=cmath; 
     head->next=NULL; 
     pointer=head; 
   while(1) 
   { 
     new=(link)malloc(sizeof(node)); 
     if(new==NULL){ 
      printf("memory allocate failure!! "); 
      exit(0);} 
      printf("please input number:"); 
      scanf("%d",&cnum); 
       if(cnum==0){ 
break;    } 
      printf("please input name:"); 
      scanf("%s",cname); 
      printf("please input china:"); 
      scanf("%d",&cchina); 
      printf("please input english:"); 
      scanf("%d",&cenglish); 
      printf("please input math:"); 
      scanf("%d",&cmath); 
      new->num=cnum; 
      for(i=0;i<256;i++){ 
      new->name[i]=cname[i];} 
      new->china=cchina; 
      new->english=cenglish; 
      new->math=cmath; 
      new->next=NULL; 
      pointer->next=new; 
      pointer=new; 
      } 
      } 
      return head; 
} 
search_chengji(int key1,link head) 
{ 
   link pointer; 
   pointer=head; 
   while(pointer!=NULL) 
   { 
    if(pointer->num==key1) 
    { 
    printf("number:%d ",pointer->num); 
    printf("name:%s ",pointer->name); 
    printf("china:%d ",pointer->china); 
    printf("english:%d ",pointer->english); 
    printf("math:%d ",pointer->math); 
    } 
    pointer=pointer->next; 
   } 
} 
link modify_chengji(link head,int key3) 
{ 

    link pointer; 
    char xname[256]; 
    int xchina; 
    int xenglish; 
    int xmath; 
    int choose,i; 
    pointer=head; 
    printf("enter 0 exit modefiy\n"); 
    printf("enter 1 modefiy name\n"); 
    printf("enter 2 modefiy china\n"); 
    printf("enter 3 modefiy english\n"); 
    printf("enter 4 modefiy math\n"); 
    scanf("%d",&choose); 
    switch(choose) 
  { 
  case 1: 
    printf("please input name:"); 
    scanf("%s",&xname); 
    break; 
  case 2: 
    printf("please input china:"); 
    scanf("%d",&xchina); 
    break; 
  case 3: 
    printf("please input english:"); 
    scanf("%d",&xenglish); 
    break; 
  case 4: 
    printf("please input math:"); 
    scanf("%d",&xmath); 
    break; 
  } 
  while(1){ 
    pointer=pointer->next; 
    if(pointer->num==key3) 
       { 
       if(choose==1) 
       { for(i=0;i<256;i++) 
       { 
pointer->name[i]=xname[i]; 
} 
break; 
} 
       else if(choose==2) 
       { pointer->china=xchina; 
       break;} 
       else if(choose==3) 
       { pointer->english=xenglish; 
      break; 
      } 
       else if(choose==4) 
{pointer->math=xmath; 
  break;} 
       } 
       } 
    return head; 
} 
link delete_chengji(link head,int key2) 
    { 
    link pointer; 
    link back; 
    pointer=head; 
    while(1) 
    { 
    if(head->num==key2) 
   { head=pointer->next; 
     free(pointer); 
     break; 
     } 
     back=pointer; 
     pointer=pointer->next; 
    if(pointer->num==key2) 
    { 
     back->next=pointer->next; 
     free(pointer); 
     break;} 
     } 
   return head; 
} 
link insert_chengji(link head,link new,int key3) 
{ 
    link pointer; 
    pointer=head; 
    while(1) 
    { 
    if(pointer==NULL){ 
    new->next=head; 
    head=new; 
    break;} 
    if(pointer->num==key3){ 
    new->next=pointer->next; 
    pointer->next=new; 
    break;} 
    pointer=pointer->next; 
    } 
 return head; 
    } 
pingjufen(link head) 
{ 
 link pointer; 
 int pchina,ppchina; 
 int penglish,ppenglish; 
 int pmath,ppmath; 
 int count; 
 pchina=0; 
 penglish=0; 
 pmath=0; 
 count=0; 
 pointer=head; 
 while(1) 
 { 
  pchina=pchina+pointer->china; 
  penglish=penglish+pointer->english; 
  pmath=pmath+pointer->math; 
  count=++count; 
  if(pointer->next==NULL) 
  { 
  break; 
  } 
  pointer=pointer->next; 
} 
  ppchina=pchina/count; 
  ppenglish=penglish/count; 
  ppmath=pmath/count; 
 printf("china ping jun fen:%d\n",ppchina); 
 printf("english ping jun fen:%d\n",ppenglish); 
 printf("math ping jun fen:%d\n",ppmath); 
} 
main() 
{ 
 for(;;) 
 { 
 link head; 
 link new; 
 int key; 
 int keynum; 
 
 
 switch(menu_select()){ 
     case  0: 
     exit(0); 
     case 1: 
    head=creat_list(head); 
    if(head!=NULL) 
    { printf_list(head);} 
     break; 
     case  2: 
     printf("please input 0 Exit. "); 
     printf("please input number for search:"); 
     scanf("%d",&keynum); 
     if(keynum==0){ 
break;      } 
     search_chengji(keynum,head); 
     break; 
     case  3: 
     printf("please input number for modify:"); 
     scanf("%d",&keynum); 
    head=modify_chengji(head,keynum); 
     if(head!=NULL) 
      { 
       printf_list(head); 
       } 
     break; 
     case  4: 
     printf("please input 0 exit "); 
     printf("please input number for delete:"); 
     scanf("%d",&keynum); 
      if(keynum==0){ 
break;     } 
    head=delete_chengji(head,keynum); 
     break; 
     case  5: 
     if(head!=NULL){ 
     new=(link)malloc(sizeof(node)); 
     printf("please input number:"); 
     scanf("%d",&new->num); 
     if(new->num==0){ 
 break;} 
     printf("please input name:"); 
     scanf("%s",&new->name); 
     printf("please input china:"); 
     scanf("%d",&new->china); 
     printf("please input english:"); 
     scanf("%d",&new->english); 
     printf("please input math:"); 
     scanf("%d",&new->math); 
     printf("please input the data number for insert:"); 
     scanf("%d",&keynum); 
     head=insert_chengji(head,new,keynum); 
     if(head!=NULL) { 
      printf_list(head);} 
     } 
     break; 
     case 6: 
     pingjufen(head); 
     break; 
     case 7: 
     printf_list(head); 
     break; 
     } 
     } 
 } 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -