📄 1.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 + -