设计一个简单的基于C/S结构的学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能 用Java程序设计一个简单学生个人信息管理系统,该系统具有录...
\u8bbe\u8ba1\u4e00\u4e2a\u7b80\u5355\u7684\u57fa\u4e8eC/S\u7ed3\u6784\u7684\u5b66\u751f\u4e2a\u4eba\u4fe1\u606f\u7ba1\u7406\u7cfb\u7edf\uff0c\u8be5\u7cfb\u7edf\u5177\u6709\u5f55\u5165\uff0c\u67e5\u8be2\uff0c\u4fee\u6539\u4e09\u9879\u57fa\u672c\u529f\u80fd\u3002\u8981\u6c42\u598220\u5206\u6ca1\u4eba\u4f1a\u7ed9\u4f60\u5199\u7684\uff0c\u9664\u975eRMB\u3002\u800c\u4e14\u4f60\u8fde\u7528\u4ec0\u4e48\u8bed\u8a00\u90fd\u6ca1\u8bf4
\u54ce\u3001 \u8001\u5927\u3001\u4f60\u8be5\u4e0d\u4f1a\u8ba9 \u5e2e\u4f60\u5199 \u6bd5\u4e1a\u8bd5\u9898\u5427\uff01\uff01\uff01
\u4e0d\u8fc7 \u5e2e\u4f60\u5206\u6790 \u4e00\u4e0b\u5427\uff01\uff01 \u6211\u4e5f\u662f \u65b0\u624b\uff01\uff01\uff01
1\u3001\u9996\u5148 \u521b\u5efa\u6570\u636e\u5e93 \uff08\u4ee5\u4e3a\u4f60\u7684\u9700\u6c42\u8f83\u5c11 \u4e0d\u7528\u5199\u9879\u76ee\u6587\u6863\u4e86 \u76f4\u5954\u4e3b\u9898\u597d\u4e86\uff09
\u5b66\u751f\u8868\uff08Students\uff09 \u5b66\u5206\u8868\uff08Score\uff09\u5b66\u79d1\u8868\uff08Greade\uff09 \u4f30\u8ba1\u8fd9\u4e09\u4e2a\u5c31 \u591f\u7528\u4e86\uff08\u4e0d\u591f\u4f60\u5728\u6dfb\u52a0\u3001\u3001\uff09
2\u3001\uff08\u4f7f\u7528JSP \u5b8c\u6210\uff09\u521b\u5efa \u9875\u9762 \uff08\u6839\u636e\u4f60\u7684\u9700\u6c42 \u521b\u5efa\u5427\uff09\u4ee5\u53ca\u5bfc\u5165\u6570\u636e\u5e93 \u9a71\u52a8\u3001\u3001\u3001
3\u3001\u6570\u636e\u5e93\u8fde\u63a5\u7c7b\u3001\u5b9e\u4f53\u7c7b\u3001 Dao \u7c7b\u3001\u4e1a\u52a1\u7c7b\uff01
4\u3001\u4f60\u7684\u5f55\u5165\uff0c\u67e5\u3001\u4fee\u6539\u3001\u5206\u522b \u7528
1\u3001insert into \uff08\u8868\u540d\uff09values\uff08\u5217\u503c\uff09
2\u3001select * \uff08\u6216 \u5217\u540d\uff09 from \u8868\u540d where =\uff1f\uff1b
3\u3001delete * from \u8868\u540d where=\uff1f\uff1b
4\u3001\u5173\u4e8e\u9875\u9762\u7684 \u9a8c\u8bc1 \u4f60\u5728 \u521b\u5efa jsp \u9875\u9762\u65f6\uff0c \u6dfb\u52a0 javascript \u8fdb\u884c \u9a8c\u8bc1 \u5c31\u884c\u4e86\uff01\uff01
\u56db\u3001\u5230\u6b64 \u5206\u6790\u5b8c\u4e86 \u8bf4\u5b9e\u8bdd\u3001\u8fd9\u9879\u76ee \u4e0d\u96be\u3001\u670b\u53cb\u5982\u679c\u4f60\u52a8\u624b\u7684\u8bdd\uff0c\u4e5f\u5c31\u4e09\u56db\u4e2a\u5c0f\u65f6 \u5c31K.O\u4e86!!
\u5b66\u4e60 \u8981\u80af\u52a8\u624b\uff01\uff01\uff01 \u52a0\u6cb9\u554a\uff01\uff01\uff01 \u508d\u665a \u5feb\u4e50\uff01 \u9009\u6211 \u5427\uff01Thanks
这个给你参考一下吧
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<string.h>
typedef struct STUDENT
{
char studentNumber[10];/*学生学号*/
char studentName[20];/*学生姓名*/
char className[20];/*班级名称*/
float mark1;/*第1门成绩*/
float mark2;/*第2门成绩*/
float mark3;/*第3门成绩*/
struct STUDENT *next;
}STUDENT;
STUDENT *headLink;/*链表表头指针*/
/*以下是函数声明*/
void ReadInfoFormFile(void);
void DesplayMenu(void);
void CreateHeadLink(void);
STUDENT *MallocNode(void);
void GetInformation(STUDENT *t);
void OutputInformation(void);
void DesplayInfoBystudentName(void);
void DesplayInfoBystudentNumber(void);
void DesplayOneNode(STUDENT *t);
void InsertOneNode(STUDENT *t);
void DeleteNodeBystudentNumber(void);
void ChangeMarkByName(void);
void ChangeMarkByNumber(void);
void SaveLinkToFile(void);
void DesplayMarkSegment(void);
void CompositorByTotalMark(void);
int choose;/*用于接受用户的选择*/
/*主函数*/
main()
{
CreateHeadLink();
ReadInfoFormFile();
DesplayMenu();
}
/************************************
函数功能:从文件中读学生信息到链表中
************************************/
void ReadInfoFormFile(void)
{
FILE *fp;
STUDENT *p;
fp=fopen("student.txt","r");
if(!fp)
{
printf("文件不存在\n");
return;
}
p=MallocNode();
while(fscanf(fp,"%s%s%s%f%f%f",p->studentNumber,p->studentName,p->className,&(p->mark1),&(p->mark2),&(p->mark3))>0)
{
InsertOneNode(p);
p=MallocNode();
}
fclose(fp);
}
/************************************
函数功能:显示菜单,根据用户的输入
完成相应的功能
************************************/
void DesplayMenu(void)
{
STUDENT *p;
printf("-------请选择相应功能------------\n\n");
printf("| 1 显示所有学生的信息 |\n");
printf("| 2 按姓名查询 |\n");
printf("| 3 按学号查询 |\n");
printf("| 4 增加学生 |\n");
printf("| 5 删除学生 |\n");
printf("| 6 按姓名修改学生成绩 |\n");
printf("| 7 按学号修改学生成绩 |\n");
printf("| 8 保存所有学生信息 |\n");
printf("| 9 显示优秀和不及格学生成绩 |\n");
printf("| 10 排序结果并输出绩 |\n");
printf("| 11 退出 |\n\n");
scanf("%d",&choose);/*取得用户的选择*/
switch(choose)
{
case 1:
OutputInformation();/*显示所有学生的信息*/
break;
case 2:
DesplayInfoBystudentName();
break;
case 3:
DesplayInfoBystudentNumber();/*根据用户输入的学号显示该学生的信息*/
break;
case 4:
p=MallocNode();/*先申请一个新结点*/
GetInformation(p);/*要求用户输入信息到新结点中*/
InsertOneNode(p);/*将新结点加到链表中*/
break;
case 5:
DeleteNodeBystudentNumber();/*根据用户输入的学号删除该学生*/
break;
case 6:
ChangeMarkByName();/*根据用户输入的姓名修改学生成绩*/
break;
case 7:
ChangeMarkByNumber();/*根据用户输入的学号修改学生成绩*/
break;
case 8:
SaveLinkToFile();/*保存数据*/
break;
case 9:
DesplayMarkSegment();/*显示各分数段的学生成绩*/
break;
case 10:
CompositorByTotalMark();
break;
case 11:
SaveLinkToFile();/*保存数据后再退出*/
free(headLink);
exit(1);
break;
default:
break;
}
DesplayMenu();/*递归调用*/
}
/************************************
函数功能:建立链表表头
************************************/
void CreateHeadLink(void)
{
STUDENT *p;
p=(STUDENT*)malloc(sizeof(STUDENT));
headLink=p;
p->next=NULL;
}
/************************************
函数功能:申请一个新结点,并将其初始化
************************************/
STUDENT *MallocNode(void)
{
STUDENT *p;
int i;
p=(STUDENT*)malloc(sizeof(STUDENT));
if(p==NULL)
return NULL;
for(i=0;i<10;i++)
p->studentNumber[i]='\0';
for(i=0;i<20;i++)
p->studentName[i]='\0';
for(i=0;i<20;i++)
p->className[i]='\0';
p->mark1=0.0;
p->mark2=0.0;
p->mark3=0.0;
p->next=NULL;
return p;
}
/************************************
函数功能:取得用户输入的学生信息
************************************/
void GetInformation(STUDENT *t)
{
printf("请输入学生学号:\n");
scanf("%s",t->studentNumber);
printf("请输入学生姓名:\n");
scanf("%s",t->studentName);
printf("请输入该生所在班级:\n");
scanf("%s",t->className);
printf("请输入第1门成绩:\n");
scanf("%f",&(t->mark1));
printf("请输入第2门成绩:\n");
scanf("%f",&(t->mark2));
printf("请输入第3门成绩:\n");
scanf("%f",&(t->mark3));
}
/************************************
函数功能:在链表的结尾处增加一个结点
************************************/
void InsertOneNode(STUDENT *t)
{
STUDENT *p;
p=headLink;
while(p->next)
{
p=p->next;
}
p->next=t;
}
/************************************
函数功能:根据用户输入的学生姓名显示该学生的信息
************************************/
void DesplayInfoBystudentName(void)
{
STUDENT *p;
char studentName[20];
char flag=0;
p=headLink->next;
printf("请输入学生姓名:\n");
scanf("%s",studentName);
while(p)
{
if(strcmp(p->studentName,studentName)==0)
{
printf("学号\t姓名\t班级\t成绩1\t成绩1\t成绩3\t总成绩\t平均成绩\n\n");
DesplayOneNode(p);
flag=1;
break;
}
p=p->next;
}
if(!flag)
printf("对不起,不存在姓名为 %s 的学生\n",studentName);
}
/************************************
函数功能:根据用户输入的学号显示该学生的信息
************************************/
void DesplayInfoBystudentNumber(void)
{
STUDENT *p;
char studentNumber[10];
char flag=0;
p=headLink->next;
printf("请输入学生学号:\n");
scanf("%s",studentNumber);
while(p)
{
if(strcmp(p->studentNumber,studentNumber)==0)
{
printf("学号\t姓名\t班级\t成绩1\t成绩1\t成绩3\t总成绩\t平均成绩\n\n");
DesplayOneNode(p);
flag=1;
break;
}
p=p->next;
}
if(!flag)
printf("对不起,不存在学号为 %s 的学生\n",studentNumber);
}
/************************************
函数功能:输出一个结点的信息
************************************/
void DesplayOneNode(STUDENT *t)
{
printf("%s\t",t->studentNumber);
printf("%s\t",t->studentName);
printf("%s\t",t->className);
printf("%.2f\t",t->mark1);
printf("%.2f\t",t->mark2);
printf("%.2f\t",t->mark3);
printf("%.2f\t",t->mark1+t->mark2+t->mark3);
printf("%.2f\t\n",(t->mark1+t->mark2+t->mark3)/3);
}
/************************************
函数功能:根据用户输入的学号删除该学生
************************************/
void DeleteNodeBystudentNumber(void)
{
char studentNumber[10];
STUDENT *p,*q;
char flag=0;
printf("请输入要删除的学生学号:");
scanf("%s",studentNumber);
p=headLink;
q=headLink->next;
while(q)
{
if(strcmp(q->studentNumber,studentNumber)==0)
{
p->next=q->next;
free(q);
flag=1;
break;
}
p=p->next;
q=q->next;
}
if(!flag)
{
printf("不存在该学号的学生\n");
return;
}
printf("成功删除\n");
}
/************************************
函数功能:显示所有学生的信息
************************************/
void OutputInformation(void)
{
STUDENT *p;
p=headLink->next;
if(p==NULL)
{
printf("现在没有学生信息,请先输入学生信息\n\n");
return;
}
printf("学号\t姓名\t班级\t成绩1\t成绩1\t成绩3\t总成绩\t平均成绩\n\n");
while(p)
{
DesplayOneNode(p);
p=p->next;
}
}
/************************************
函数功能:根据输入的姓名修改成绩
************************************/
void ChangeMarkByName(void)
{
STUDENT *p;
char studentName[20];
char flag=0;
float mark1,mark2,mark3;
p=headLink->next;
printf("请输入学生姓名:\n");
scanf("%s",studentName);
while(p)
{
if(strcmp(p->studentName,studentName)==0)
{
printf("请输入新的第1门成绩:\n");
scanf("%f",&mark1);
printf("请输入新的第2门成绩:\n");
scanf("%f",&mark2);
printf("请输入新的第3门成绩:\n");
scanf("%f",&mark3);
p->mark1=mark1;
p->mark2=mark2;
p->mark3=mark3;
flag=1;
printf("修改成功\n");
break;
}
p=p->next;
}
if(!flag)
printf("对不起,不存在姓名为 %s 的学生\n",studentName);
}
/************************************
函数功能:根据输入的学号修改成绩
************************************/
void ChangeMarkByNumber(void)
{
STUDENT *p;
char studentNumber[20];
char flag=0;
float mark1,mark2,mark3;
p=headLink->next;
printf("请输入学生学号:\n");
scanf("%s",studentNumber);
while(p)
{
if(strcmp(p->studentNumber,studentNumber)==0)
{
printf("请输入新的第1门成绩:\n");
scanf("%f",&mark1);
printf("请输入新的第2门成绩:\n");
scanf("%f",&mark2);
printf("请输入新的第3门成绩:\n");
scanf("%f",&mark3);
p->mark1=mark1;
p->mark2=mark2;
p->mark3=mark3;
flag=1;
printf("修改成功\n");
break;
}
p=p->next;
}
if(!flag)
printf("对不起,不存在学号为 %s 的学生\n",studentNumber);
}
/************************************
函数功能:保存链表数据到文件中
************************************/
void SaveLinkToFile(void)
{
STUDENT *p;
FILE *fp;
p=headLink->next;
if(p==NULL)
{
printf("现在没有学生信息,请先输入学生信息\n\n");
return;
}
fp=fopen("student.txt","w+");
if(!fp)
{
printf("文件不存在\n");
return;
}
while(p)
{
fprintf(fp,"%s %s %s %f %f %f\n",p->studentNumber,p->studentName,p->className,p->mark1,p->mark2,p->mark3);
p=p->next;
}
fclose(fp);
}
/************************************
函数功能:显示优秀和不及格学生成绩
************************************/
void DesplayMarkSegment(void)
{
STUDENT *p;
int count=0;
p=headLink->next;
printf("60分以下(不及格)的学生成绩如下:\n");
printf("学号\t姓名\t班级\t成绩1\t成绩1\t成绩3\t总成绩\t平均成绩\n\n");
while(p)
{
if((6>((int)(p->mark1/10)))||(6>((int)(p->mark2/10)))||(6>((int)(p->mark3/10))))/*只要有一科不及格就认为该生不及格*/
{
count++;
DesplayOneNode(p);
}
p=p->next;
}
printf("不及格的学生一共有%d人\n",count);
p=headLink->next;
printf("成绩优秀的学生成绩如下:\n");
printf("学号\t姓名\t班级\t成绩1\t成绩1\t成绩3\t总成绩\t平均成绩\n\n");
count=0;
while(p)
{
if((8<=((int)(p->mark1/10)))&&(8<=((int)(p->mark2/10)))&&(8<=((int)(p->mark3/10))))
{
count++;
DesplayOneNode(p);
}
p=p->next;
}
printf("成绩优秀的学生一共有%d人\n",count);
}
/************************************
函数功能:按总成绩排序
************************************/
void CompositorByTotalMark(void)
{
STUDENT exchange,*r,*p,*q;
r=headLink->next;
if(r==NULL)
{
printf("现在还没学生信息,请先输入学生信息\n");
return;
}
while(r)/*两层while循环实现排序*/
{
p=r;
q=r->next;
while(q)
{
if((q->mark1+q->mark2+q->mark3)>(p->mark1+p->mark2+p->mark3))
{
strcpy(exchange.studentNumber,q->studentNumber);/*先复制q结点信息到exchange*/
strcpy(exchange.studentName,q->studentName);
strcpy(exchange.className,q->className);
exchange.mark1=q->mark1;
exchange.mark2=q->mark2;
exchange.mark3=q->mark3;
strcpy(q->studentNumber,p->studentNumber);/*再复制p结点信息到q*/
strcpy(q->studentName,p->studentName);
strcpy(q->className,p->className);
q->mark1=p->mark1;
q->mark2=p->mark3;
q->mark3=p->mark3;
strcpy(p->studentNumber,exchange.studentNumber);/*最后复制exchange结点信息到p*/
strcpy(p->studentName,exchange.studentName);
strcpy(p->className,exchange.className);
p->mark1=exchange.mark1;
p->mark2=exchange.mark2;
p->mark3=exchange.mark3;
}
q=q->next;
}
r=r->next;
}
OutputInformation();
}
祝你学好c语言。我不是冲着分来的,就是想让你能好好认识到什么是大学的真谛,这样的实践菜能让你逐渐成熟!
好的
绛旓細锛僫nclude锛渟tdio锛巋锛烇紡锛忚绠楀櫒 voidmenu锛堬級锛忥紡鑷畾涔夌殑鑿滃崟鐣岄潰 锝 printf锛堬紓锛嶏紞锛嶏技n锛傦級锛沺rintf锛堬紓璇疯緭鍏ヤ綘鐨勯夋嫨锛糿锛傦級锛沺rintf锛堬紓1锛庯紜锛糿锛傦級锛沺rintf锛堬紓2锛庯紞锛糿锛傦級锛沺rintf锛堬紓3锛庯紛锛糿锛傦級锛沺rintf锛堬紓4锛庯紡锛糿锛傦級锛沺rintf锛堬紓锛嶏紞锛嶏技n锛傦級锛涳綕 intmain锛堬級锝 int...
绛旓細娑夊強涓変釜鍙橀噺锛岀敤int绫诲瀷锛屼腑闂寸敤if璇彞閫夋嫨锛屽綋瑕佸疄鐜板姞娉曟椂锛屽氨鐢╥f璇彞閫夋嫨+銆傜敤鍓嶄袱涓暣鍨嬫墍鍔犵粨鏋滀粯缁欑涓変釜鏁村瀷锛屽苟杈撳嚭銆
绛旓細stu *p=NULL;// 鎸囬拡锛屾寚鍚戜釜寰呮彃鍏ョ殑缁撶偣stu *q=NULL;// 鎸囬拡锛岀敤浜庡湪鍏跺悗鎻掑叆缁撶偣head = NULL;// 涓寮濮嬮摼琛ㄤ负绌篎ILE * r =fopen("input.dat","r"); p = (stu*)malloc(sizeof(stu));while(fscanf(r,"%s%s%f%f%f",p->num,p->name,&p->score[0],&p->score[1],&p->...
绛旓細缁欎綘涓涓瀛︾敓鎴愮哗绠$悊鐨勭郴缁燂紝鏈夋垚缁╃殑褰曞叆锛屽垎鏁扮殑鎺掑簭锛屽垹闄わ紝淇敼绛夊姛鑳姐俿truct __stu{ int stuNum;char name[20];int ScoreMath;};__stu stu[50];int numberSTU = 0;void printinfo(void){ printf("1 鎴愮哗褰曞叆\n");printf("2 鎴愮哗鏄剧ず\n");printf("3 鎴愮哗淇敼\n");printf("4 ...
绛旓細鍏蜂綋瑕佹眰濡備笅:1銆佸湪涓荤▼搴忎腑,鍏堟樉绀哄涓嬭彍鍗:绠鏄瀛︾敓淇℃伅绠$悊绯荤粺***绯荤粺鍔熻兘鑿滃崟***---1.褰曞叆瀛︾敓淇℃伅2.鎸夋垚缁╂帓搴3.澧炲姞瀛︾敓淇℃伅4.鎸夊鍙峰垹... 鍏蜂綋瑕佹眰濡備笅:1銆 鍦ㄤ富绋嬪簭涓,鍏堟樉绀哄涓嬭彍鍗: 绠鏄撳鐢熶俊鎭鐞嗙郴缁 ***绯荤粺鍔熻兘鑿滃崟*** --- 1. 褰曞叆瀛︾敓淇℃伅 2. 鎸夋垚缁╂帓搴 3. 澧炲姞瀛︾敓淇℃伅 ...
绛旓細瀛︾敓鎴愮哗绠$悊绯荤粺 鍔熻兘:鐢╟璇█缂栧啓涓涓畝鍗曠殑瀛︾敓淇... 13 2013-06-04 C璇█缂栧啓璁捐涓涓畝鍗曠殑瀛︾敓鎴愮哗绠$悊绋嬪簭 鎬ユ眰澶х甯繖! 2 2012-01-22 濡備綍鐢–璇█缂栧啓瀛︾敓淇℃伅绠$悊绯荤粺?瑕佹眰濡備笅 璇剧▼璁捐鍐呭鍙婅... 2007-07-25 C璇█璇剧▼璁捐"瀛︾敓淇℃伅绠$悊绯荤粺璁捐 "鎬庝箞鍋? 1 2013-09-10 姹備竴c璇█...
绛旓細if(c=='+'){num1=atof(str2); /*灏嗙涓涓鎿嶄綔鏁拌浆鎹负娴偣鏁*/strcpy(str2,""); /*灏唖tr2娓呯┖*/act=1; /*鍋氳绠楀姞娉曟爣蹇楀*/setfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2);outtextxy(5*width,height,"0."); /*鏄剧ず瀛楃涓*/}if(c=='-')...
绛旓細瀹屾垚姣忎綅瀛︾敓鐨勬昏瘎鎴愮哗璁$畻锛堝钩鏃舵垚缁*30%+鏈熸湯鑰冭瘯鎴愮哗*70%锛夊苟鐢熸垚鏁版嵁鏂囦欢,鐢熸垚鍒嗘暟娈电粺璁℃枃浠讹紙涓嶅強鏍间汉鏁帮紝60-69鏁帮紝70-79浜烘暟锛80-89浜烘暟锛90-100浜烘暟锛屽強鏍 鐜囷級锛岄氳繃瀛︾敓鎴愮哗鐨勬暟鎹枃浠舵煡璇㈠鐢熸垚缁╋紙鏌ヨ鏉′欢鑷畾锛夈傞氳繃瀛︾敓鎴愮哗鐨勫垎娈电粺璁℃枃浠惰緭鍑哄鐢熸垚缁╁垎娈垫儏鍐靛拰鍙婃牸鐜囥傜▼搴忚姹傦細锛1...
绛旓細锛僫nclude锛渟tdio锛巋锛烇紡锛忚绠楀櫒 voidmenu锛堬級锛忥紡鑷畾涔夌殑鑿滃崟鐣岄潰 锝 printf锛堬紓锛嶏紞锛嶏技n锛傦級锛沺rintf锛堬紓璇疯緭鍏ヤ綘鐨勯夋嫨锛糿锛傦級锛沺rintf锛堬紓1锛庯紜锛糿锛傦級锛沺rintf锛堬紓2锛庯紞锛糿锛傦級锛沺rintf锛堬紓3锛庯紛锛糿锛傦級锛沺rintf锛堬紓4锛庯紡锛糿锛傦級锛沺rintf锛堬紓锛嶏紞锛嶏技n锛傦級锛涳綕 intmain锛堬級锝 int...
绛旓細// 1 灏涓涓鐧惧垎鍒舵垚缁╄浆鎹㈡垚绛夌骇鍒舵垚缁╋紝鐧惧垎鍒朵笌绛夌骇鍒剁殑瀵瑰簲鍏崇郴锛90-100浼橈紝80-89鑹 70-79涓 60-69宸 60浠ヤ笅鍔 //2 鐢⊿WITCH璇彞瀹炵幇璇ュ姛鑳 //3 鐢ㄩ敭鐩樿緭鍏ョ櫨鍒嗗埗鎴愮哗锛岃緭鍏ュ墠瑕佹湁鎻愮ず淇℃伅锛屽浜庝笉鍚堢悊鐨勬暟鎹緭鍏ュ簲鎶ュ嚭閿欒淇℃伅 //4 杈撳叆缁撴灉搴斿寘鍚櫨鍒嗗埗鎴愮哗鍜屾垚缁╃瓑绾 include<stdio.h...