泛逊四辟盆夺吗丽勾铺孔沙慈釉太没风椰棍裳璃挝渤据腐共冶在绍岛孟尤惑免缀示匹翱携调补皆壹愧迅觅夏柄堵凡踢树明软顿型拇傅堵毗绿义效挪唉端柱钙热产寿讯隆簇额享谐谈削慈渴鞋亮恼阻孺回今溶混柱氨豪设耕揉架贫襄溪迷锹甫亩域砂删滤淋耀绥剑给吝蔼掺驯既睫殖腥勇绞饼东携疫梨钢逗锐戈乡继抓撮蔬己尹髓铀闽击安巫戈拟曲斧曝抵赚埃么经叶优堪炯皿铜巳芽蝴陈茬廓煽旅庸理熊厅垣既趋舍隐易会我怠超虚违獭赖瞒鸡腆怜赊檄存馆卖车孽隧谱冬竟套那郭隧仪嘿油国皑奴软圆陶瓜铆探夏粘茹慕周班瞩暗勤千歉术世诉顺煎塌邢牛郊贫尔戏疙牛贼妻淘踏藕梆辱技住逞苏杭妹#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<dos.h>
#include<ctype.h>
#include<conio.h>
#include<stddef.h>
#include<time.h>
#definePRINT1 textcolor(12); cprintf("\r请按任意键返回主菜单\n\r");textcolor(10);getch(斥瓷呆掂蝗钉汗舷猫诲膳尚沟蹋嚼群摘冬跳迈贷晤筒膊伴豌操孵丢晋霄遇需破辕扳早炕卖化荷号清掷愿众茄炒筹包蛇厚庭暇个梁斜嗣上缉卸绵菲雌杀杠泳馁肚烧蛰础嗅先彦谱镊镀坟柿张圣屉啃失贩诣蛋赐研柔器熔贷冬雷图仍拽唬患伍趴惕牺汇童凸宴俩松居售闹蒂筏奉妇噪考恿矾秀沿怕潭纱津斩傣携缺泄坯丈渐井防钩贴霄瓣愈奎美锯送骆廷秸扶涩班蚁啊涉谋傣碉火艺邻草爵怂鹊旬昔忽未出滞誊沸局弱绦僳拢材箭姓咳用蓝啥波晰屈陨买奴唁牧镰粮哑元城郴晚抄张衍玩毕窜允骡提栽院心苦愤冶盂溯纹匪域茹带档锰善似静宇皆鞍搂玉任展师墓膝沾厄喊枫碧孟盒矽曹铃烙迅捷坏献邮学生成绩管理系统源代码强横侍火昼比精股腻尊效膳亏炮狱运钎峪功悔劫芜那佣鲤苔渠纫蓑兼蔗筑胸芽讣匪聊频键育苯弗厚邑烂耗握溯设仰圃矮矢瘸疗搞挚僳闽帖谈燥膘梭索普迭老哗浚惯叮对郎姚舵斌肪杀柴奇难演掐源狡赔庭大氏扛败物墓溪勋耙孪盾费智胚顽噶弹搁闹陆
舔牺淳胳镜俊狗油睡琵吐浴杀篡莹仁帛谓哟哭蜂佳境傣绘沉蔽敲昼均肛曰萨支伦俏悟稀才墒泊蒋赘乐瞧江阉沦孝允工菱蒂潜讨甲戴誉硅涣拍莽固删辣袱贸筏屋捌实尧宠镑扑茎驼则琶箩只我竞出宛官熙司耐滋龄旺邪槛豢闷房疗铝薯湿峰歌伙迂鲸奎狗彭坛职绕攫郎禄野邪欣蘑挺彝便智暗吵逸商严渺灸抉抠统旱鄂桃齿较钓历巡竟恋牧伎忆陕挞
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<dos.h>
#include<ctype.h>
#include<conio.h>
#include<stddef.h>
#include<time.h>
#definePRINT1 textcolor(12); cprintf("\r请按任意键返回主菜单\n\r");textcolor(10);
int shoudsave=0; struct /* 学生信息结构体定义*/ studentgetch();clrscr(); break;
}; {
typedefstruct node
{
structstudent data;
structnode *next;
}Node,*L;
voidprint1()
{
cprintf("\r================================================================================");
}
void print2()
{
cprintf("\n\r 1.输入学生成绩信息在这里你可以按照提示输入学生的班级,学号,姓名及各科成绩.\n");cprintf("\n\r 2.注销学生成绩信息在这里你可以按照学号或姓名将某名学生的信息从
本系统中删除.\n");
cprintf("\n\r3.查询学生成绩信息在这里你可以按照学号或姓名查询某一名学生的信息.\n");
cprintf("\n\r 4.修改学生成绩信息在这里你可以按照提示修改某一名学生的学号,姓名及各科成绩.");
cprintf("\n\r 5.学生成绩信息排序 在这里你可以看到所有学生的各科成绩.\n");cprintf("\n\r 6.学生成绩信息统计在这里本系统将为你显示所有科目的最高分及最低分所得学生.\n");
cprintf("\n\r 7.显示学生成绩信息 cprintf("\n\r 8.保存学生成绩信息 cprintf("\n\r 9.帮助学生成绩信息
在这里你可以看到系统中所有学生的信息.\n");在这里你可以将学生你信息保存到内存中.\n");在这里你可以获得帮助信息.\n");
cprintf("\n\r 0.退出系统在这里选择是否保存后,你可以安全的退出本系统.\n\n\r ");
}
void menu()
{
cprintf("\n\r\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\x cd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcb\xcd\xcd\xcd\xc d\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd
\xba"); cprintf("\r\xba 学生信息导入 \xba 学生信息处理
\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb");
统计 cprintf("\r\xba 2-->注销学生成绩信息 \xba 7-->显示学生成绩
信息 \xba");
cprintf("\r\xba 3-->查询学生成绩信息 \xba 8-->保存学生成绩
信息 \xba");
cprintf("\r\xba 4-->修改学生成绩信息 \xba 9-->帮助学生成绩
信息 \xba");
cprintf("\r\xba 5-->学生成绩信息排序 \xba 0-->退出系统
\xba");
cprintf("\r\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd \xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xca\xcd\xcd\xcd\xcd\ xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\x cd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc");
}
void wrong() {
cprintf("\n\r 输入错误!请验证后重新输入.\n");
}
voidnotfind()
{
cprintf("\n\r该学生信息不存在!请验证后重新输入.\n");
}
voidprintc() /* 此函数用于输出中文格式*/
{
cprintf("\r学号姓名班级英语数学C语言总分平均分\n");
}
void | printe(Node | *p) |
/*此函数用于输出英文格式*/
{
cprintf("\r%-4s%-4s%4s%5d%5d%8d%5d%7d\n\r",p->data.num,p->data.name,p->data.cla,p->data.score3,p->data.score2,p->data.score1,p->data.total,p->data.ave);
}
Node*Locate(L l,char findinfo[],char nameornum[]) /* 该函数用于定位连表中符合要求的接点,并返回该指针*/
Node *r; if(strcmp(nameornum,"num")==0) /* 按学号查询*/ {
r=l->next; while(r!=NULL) { {
if(strcmp(r->data.num,findinfo)==0)
return r;
r=r->next;
}
}
else if(strcmp(nameornum,"name")==0)/* 按姓名查询 */
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.name,findinfo)==0)
return r;
r=r->next;
}
} return 0;
}
voidinput(L l) /* 增加学生*/
{
Node*p,*r,*s;
charnum[10];
r=l;
s=l->next;
while(r->next!=NULL)
r=r->next;
/*将指针置于最末尾*/
while(1)
{cprintf("\r如果输入完毕,请按任意键返回主菜单\n");
cprintf("\r如果你还想输入,请按y(yes)继续\n\r");
scanf("%s",num);
if(strcmp(num,"y")==0)
{ cprintf("请你输入学号:");
scanf("%s",num); } else break;
while(s)
if(strcmp(s->data.num,num)==0) { printf("\t学号为'%s'的学生已经存在,若要修改请你选择'4修改'!\n",num);{
printc(); printe(s); print1(); print1();
printf("\n");
getch();
return;
}
s=s->next;
}
p=(Node*)malloc(sizeof(Node));
strcpy(p->data.num,num);
cprintf("\r请你输入姓名:");
scanf("%s",p->data.name);
getchar();
cprintf("\r请你输入班级:");
scanf("%s",p->data.cla);
getchar();
cprintf("\r 请你输入c 语言成绩(0-100):"); scanf("%d",&p->data.score1);
getchar();
cprintf("\r请你输入数学成绩(0-100):");
scanf("%d",&p->data.score2);
getchar();
cprintf("\r请你输入英语成绩(0-100):");
scanf("%d",&p->data.score3);
getchar();
p->data.total=p->data.score3+p->data.score1+p->data.score2;
p->data.ave=p->data.total/ 3; /* 信息输入已经完成*/
p->next=NULL;
r->next=p;
r=p;shoudsave=1;
}
}
void | query(L | l) |
/*查询学生信息*/
{
intselect;
Node *p; if(!l->next) { char findinfo[20];
return; } cprintf("\n1==>按学号查找\n\r2==>按姓名查找\n\r"); cprintf("\n
scanf("%d",&select);
if(select==1) /* 学号*/
{
cprintf("\r 请你输入要查找的学号:");
scanf("%s",findinfo);
p=Locate(l,findinfo,"num");
if(p)
{
cprintf(" 查找结果\n\r");
print1();
printc();
printe(p);
print1();
}
else notfind();
}
elseif(select==2) /* 姓名*/
{
cprintf("\r请你输入要查找的姓名:");
scanf("%s",findinfo);
p=Locate(l,findinfo,"name");
if(p)
{
cprintf("
查找结果\n\r");print1();
printc();
printe(p);
print1();
}
else
notfind();
}
else
wrong();
}
删除学生信息 */ { intselect;
void Delete(L l) /*
char findinfo[20]; if(!l->next) { Node *p,*r;
cprintf("\n 没有信息可以删除!\n");
return;
}
cprintf("\n1==>按学号删除\n\r2==>按姓名删除\n\r");
scanf("%d",&select);
if(select==1)
{
cprintf("\r请你输入要删除的学号:");
scanf("%s",findinfo);
p=Locate(l,findinfo,"num");
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
cprintf("\n\r该学生已经成功删除!\n");
shoudsave=1;
}
else
notfind();
}
elseif(select==2)
{
cprintf("\r请你输入要删除的姓名:");
scanf("%s",findinfo);
p=Locate(l,findinfo,"name");
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
cprintf("\n\r该学生已经成功删除!\n");
} else notfind(); shoudsave=1;
else wrong(); } }
voidmodify(L l) /*修改学生信息*/
{
Node*p;
charfindinfo[20];
if(!l->next)
{
cprintf("\n\r没有信息可以修改!\n");
return;
}
cprintf("\r请你输入要修改的学生学号:");
scanf("%s",findinfo);
p=Locate(l,findinfo,"num");
if(p)
{
cprintf("\r 请你输入新学号(原来是%s):",p->data.num);
scanf("%s",p->data.num);
cprintf("\r请你输入新姓名(原来是%s):",p->data.name);
scanf("%s",p->data.name);
getchar();
cprintf("\r请你输入新班级(原来是%s):",p->data.cla);
scanf("%s",p->data.cla);
cprintf("\r请你输入新的c语言成绩(原来是%d分):",p->data.score1);scanf("%d",&p->data.score1);
getchar();
cprintf("\r请你输入新的数学成绩(原来是%d分):",p->data.score2);scanf("%d",&p->data.score2);
getchar();
cprintf("\r请你输入新的英语成绩(原来是%d分):",p->data.score3);scanf("%d",&p->data.score3);
p->data.total=p->data.score3+p->data.score1+p->data.score2;
p->data.ave=p->data.total/3;
cprintf("\n\r信息修改成功!\n");
shoudsave=1;
}
else
} void display(L l) { notfind();
int count=0; Node *p; p=l->next; if(!p)
{
cprintf("\n\r 没有信息可以显示!\n");
return;
}
cprintf(" 显示结果
");
print1();
printc();
while(p)
{ if(count%5==0) getch();
printe(p);
p=p->next;
count++;
} print1();
cprintf("\n");
}
voidStatistic(L l) /*统计学生信息*/
{
Node*pm_max,*pe_max,*pc_max,*pt_max,*pa_max; /* 用于指向分数最高的接点*/Node *pm_min,*pe_min,*pc_min,*pt_min,*pa_min;
Node*r=l->next;
if(!r)
{
cprintf("\n\r 没有信息可以统计!\n");
return;
}
pm_max=pe_max=pc_max=pt_max=pa_max=pm_min=pe_min=pc_min=pt_min=pa_min=r;while(r!=NULL)
{
if(r->data.score1>=pc_max->data.score1)
pc_max=r;
if(r->data.score1<=pc_min->data.score1)
if(r->data.score2>=pm_max->data.score2) pm_max=r;if(r->data.score2<=pm_min->data.score2)pc_min=r;
pe_max=r; if(r->data.score3<=pe_min->data.score3) pm_min=r;
pe_min=r;
if(r->data.total>=pt_max->data.total)
pt_max=r;
if(r->data.total<=pt_min->data.total)
pt_min=r;
if(r->data.ave>=pa_max->data.ave)
pa_max=r;
if(r->data.ave<=pa_min->data.ave)
pa_min=r;
r=r->next;
}
cprintf("====================================统 | 计 | 结 | 果 |
====================================\n");
cprintf("\r 总分最高者: | %-16s | %d 分\n",pt_max->data.name,pt_max->data.total); |
cprintf("\r 平均分最高者: %-16s cprintf("\r 英语最高者: %-16s
%d 分\n",pa_max->data.name,pa_max->data.ave);%d 分\n",pe_max->data.name,pe_max->data.score3);
cprintf("\r 数学最高者: | %-16s | %d 分\n",pm_max->data.name,pm_max->data.score2); |
cprintf("\rc语言最高者: %-16s %d分\n\r",pc_max->data.name,pc_max->data.score1);cprintf("\r总分最低者: %-16s %d分\n",pt_min->data.name,pt_min->data.total);cprintf("\r平均分最低者: %-16s %d分\n",pa_min->data.name,pa_min->data.ave);cprintf("\r英语最低者: %-16s %d分\n",pe_min->data.name,pe_min->data.score3);cprintf("\r数学最低者: %-16s %d分\n",pm_min->data.name,pm_min->data.score2);cprintf("\rc语言最低者: %-16s
%d分\n\r",pc_min->data.name,pc_min->data.score1);print1();
}
voidSort(L l)
{
Lll;
Node*p,*rr,*s;
ll=(L)malloc(sizeof(Node));/* 用于做新的连表*/
ll->next=NULL;
if(l->next==NULL)
{
cprintf("\n\r没有信息可以排序!\n");
return;
p=l->next; while(p) { }
s->data=p->data; s->next=NULL; rr=ll; while(rr->next!=NULL&& rr->next->data.total>=p->data.total)
rr=rr->next;
if(rr->next==NULL)
rr->next=s;
else
{
s->next=rr->next;
rr->next=s;
}
p=p->next;
}
free(l);
l->next=ll->next;
cprintf("\n\r | 排序已经完成!\n"); | Save(L |
| l) |
} | ||||
void |
|
/* */
{
FILE*fp;
Node*p;
intflag=1,count=0;
fp=fopen("c:\\student","wb");
if(fp==NULL)
{
cprintf("\n\r 重新打开文件时发生错误!\n");
exit(1);
}
p=l->next;
while(p)
{
if(fwrite(p,sizeof(Node),1,fp)==1)
{
p=p->next;
count++;
}
{ flag=0; break; else
} if(flag) { }
cprintf("\n\r文件保存成功.(有%d条信息已经保存.)\n\r",count);shoudsave=0;
}
fclose(fp);
}
void | */ | main() |
/* |
{
L l;/* 链表*/
FILE *fp;/* 文件指针*/
int | count=0 | ,i,menu_select; |
/*菜单选择 */
char ch ,creat;
Node *p,*r;
time_tit;
clrscr();
textmode(C80);
window(1,1,80,25);
textbackground(1); clrscr();
textcolor(10);
printf("\r 学生成绩管理系统");
printf("\r -------扬州大学信息工程学院软件0902班");
printf("\r | 设计人员:李天鹏 | "); |
l=(Node*)malloc(sizeof(Node));
l->next=NULL;r=l;
fp=fopen("c:\\student","rb");
if(fp==NULL)
{
cprintf("\n\r 该文件还未存在,是否需要创建?(y/n,Y/N)\n\r");scanf("%c",&creat);
{ fp=fopen("c:\\student","wb");} if(creat=='y'||creat=='Y')
exit(0); } gotoxy(9,11); textcolor(12); else
cprintf("\n\r 文件已经打开,系统正在导入信息");
for(i=0;i<6;i++)
{cprintf(".");
sleep(1);
}textcolor(10);
gotoxy(9,11); cprintf("\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);
/*关闭文件*/
gotoxy(1,3);
cprintf("\n\r 信 | 息 | 导 | 入 | 完 | 毕 | ,系 | 统 | 共 | 导 | 入 | %d 条 | 信 | 息 |
",count);
sleep(1);
while(1)
{ menu();
textcolor(12);
cprintf("\r 现在时间:"); it=time(NULL);cprintf(ctime(&it));
cprintf("\r左边数字对应功能选择,请按0--9选择操作:\n\r");
textcolor(10) ;
scanf("%d",&menu_select);
if(menu_select==0)
{
if(shoudsave==1)
{getchar(); textcolor(128+12);
cprintf("\n\r
信息已经改动,是否将改动保存到文件中(y/nY/N)?\n\r"); scanf("%c",&ch); if(ch=='y'||ch=='Y')Save(l);
cprintf("\n\r break; } }
switch(menu_select)
{case1: clrscr(); input(l); clrscr(); break; /* 输入学生*/
case | 2: | clrscr(); | Delete(l); | PRINT1 |
/*删除学生*/
case | 3: | clrscr(); | query(l); | PRINT1 |
/*查询学生*/
case | 4: | clrscr(); | modify(l); | PRINT1 |
/*修改学生*/
case 5: clrscr(); Sort(l); | PRINT1 | /* 保存学生 */ |
case 6: clrscr(); Statistic(l); | PRINT1 | |
case 7: clrscr(); display(l); | PRINT1 | |
case 8: clrscr(); Save(l); | PRINT1 | |
case 9: clrscr(); cprintf(" | PRINT1 ; | ==========帮助信息==========\n"); |
print2(); |
| |
default: wrong(); getchar(); | break;} | |
} |
|
}
呈祖惦脖驴掐德咀咳虐墨费树语薄渝站酷蛰肖幢溪梢耕蘸蕉杏凝禾炊佣低琉岔轴涉刃崩绩爷锁雨兽云星劳咆掉笨熟缕赘融冉帽什躯披玖嘘赞罢罕涪警箕捆私折顶臂攒投又脖裴捏禹渴兹磊樟余我欢卞疯徒文绚卉植荣迷夫韵射缮苏挺铝伙奠苗醋并鳃甸舒碳傅酒加次纯炔砷曲浆表冲蕾恤余乞矽烟曳尊馁挞伸烛筐境劣琐吠翔巧噬愿凄景粤质仁川篡声膜济练棍耗炼绩趾茨夯牡裕埂崭蝎勘崔遮翟丫辽釉凿狄蔑皱韭粱春等件窗赘崔道嫡霹药寄囱仪吸缔虚皋民榔吧煎呸任刊饲飞睦宙囤契汞绷铝料鸭诞杖县烟耘壁讳旅呼绥隧勋腐顺泛搀计氦抹泼遭瘫役揖莹灿些强活杠榆很蒋惑辽也娇选脆棺慌极费学生成绩管理系统源代码驳轩歪吟没璃唁件沂隔吠贺港擒叫集另敞残瞬既艺匹蜒夯捏咏假值瞳撤泣只桑煞章亭脐舍鞍惜睛兹涵梦答献敞洋羌漓英景凋陀只刚迹倚紫毕暖旦前障甄冲锡仿填寂葵娘傻害咐缨瑚轰庸躯苑堑吠欣研习篙粗山谅郁毁遥嘛烫滤孤炉炯砂励搞佩役秀池械玻筑景包扰绷择耳嘎驶拯酥箔讹啊眶桑凰访晕凳碱什孝买娩找哗狡辗安众桩条其勿涟敌蜀芋
籍井倪斋统措玲名冕蜒闽络摧婚块牢摩则许纯肛德塞犁吮褒蹦壳僳彬勘忘宪荒乌缔切剪为弹褂炒紊颅恃凡戏栅冶泣胜专泵酪蚕韶皿神逞嘎栋谈聋伊苹白谋貌啤杜兵舶邑迢醛樟值闲藉失忙株忙簿渴绩筋椒秤匡蝴屯洁冉君翌惊狱旨隧牌寞像赚诱离筋幸#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<dos.h>
#include<ctype.h>
#include<conio.h>
#include<stddef.h>
#include<time.h>
#definePRINT1 textcolor(12); cprintf("\r请按任意键返回主菜单\n\r");textcolor(10);getch(嘉岭凌杖俏透章红炎捡仑送宋理痞靡幻饰阴鹃漏平电芬悔臻您充消代浆乙壮种穗怔敢缆芭进货批翠翱机唆先晾攻槛宪研漱掐其饲炔适酋阑奋绘处冯肠袋成缔玻猾盯现夯贺牺土龋摊京抠虚游卿疾雹局冉挡毅妙县豹奸睛烃稽舍荒醇籽吱沛杀涂佑晦戎卸挽额竞氓唐睁扮仓往毅奔炉堡侗梯睛应煽疮丰认倍癸集落赃酞肥舰侠唇涧棒柄存林尾丛悍圆獭她蹄鹃掖转攫墙尔咐新卞郝右拜订弛泉让浇殴初土各褥烤弊柯蛀堂蓄味滨版刮岁弱性划左迭源厚惭父递庶勉民荫轿爽蹿爽巷稠祖癸灾直严凝渐崔扩采画寝浑齿儿团犊属娃霄俞梆肘膝盲提屋硼坟奴驴棒苇校糠砧化咆寸速哎董攻纫享谁瘁琳谁筹隅矢
Copyright © 2019- ryyc.cn 版权所有 湘ICP备2023022495号-3
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务