c语言课程设计学生成绩管理系统 ()

合集下载

学生成绩管理系统(c语言)课程设计报告

学生成绩管理系统(c语言)课程设计报告

http://www.ut365.com/cyuyan/10.html学生成绩管理系统(c语言)课程设计报告学生成绩管理系统要求是这样的1、用c语言编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。

ﻫ2、具体要求:建立一个4个学生的信息登记表,每个学生的信息包括:学号,姓名,和3门课程的成绩(FOX,C,ENGLISH)。

程序运行时显示一个简单的菜单,例如:(1):信息输入(INPUT)ﻫ (2):总分统计(COUNT)ﻫ(3):总分排序(SORT)ﻫ(4):查询(QUERY)ﻫ其中:ﻫ (1):对4个学生的信息进行输入;(2):对每个学生的3门课程统计总分;ﻫ(3):对4个学生的总分按降序排序并显示出来;(4):查询输入一个学号后,显示出该学生的有关信息;............ﻫ偶先写了个...ﻫ#i nclude<iostream.h>#i nclude<stdlib.h>struct student{intnum;char name[20];ﻫint foxscore;ﻫintcscore;ﻫintenglishscore;ﻫstruct student *next;ﻫ};ﻫvoid menu(){cout<<" welecome to my student grade management system"<<endl;cout<<" please follow everyone step in the menu"<<endl;ﻫcout<<" 1.in put information"<<endl;ﻫcout<<" 2.total scores"<<endl;ﻫcout<<" 3.sort"<<endl;cout<<" 4.query"<<endl;cout<<" ***************************************************"<<endl;ﻫ}struct student *creat(struct student*head)//函数返回的是与节点相同类型的指针ﻫ{ﻫstruct student *p1,*p2;p1=p2=(struct student*) malloc(sizeof(structstudent)); // 申请新节点ﻫ cin>>p1->num>>p1->name>>p1->foxscore>>p1->cscore>>p1->englishscore; // 输入节点的值ﻫp1-> next = NULL; // 将新节点的指针置为空while(p1->num>0){ﻫif (head==NULL) head=p1; //空表,接入表头ﻫ e lse p2->next=p1; // 非空表,接到表尾ﻫ p2 = p1;p1=(struct student *)malloc(sizeof(struct student)); //申请下一个新节点ﻫcin>>p1->num>>p1->name>>p1->foxscore>>p1->cscore>>p1->englishsco re;//输入节点的值ﻫ }return head; //返回链表的头指针ﻫ}void count(struct student *head){struct student *temp;temp=head; //取得链表的头指针{ﻫint m;ﻫm=temp->foxscore+temp->cscore+temp->engliwhile(temp!==NULL)ﻫshscore;ﻫcout<<m<<endl;//输出链表节点的值temp=temp->next; //跟踪链表增长}}ﻫvoid sort(struct student *head)ﻫ{struct student *tp;tp=head;int a[4];//定义总分数组ﻫint i,j,k;while(temp!==NULL)ﻫ{a[i]=tp->foxscore+tp->cscore+tp->englishscore;ﻫtp=tp->next;i=i+1;ﻫ}ﻫfor(j=1;j<=3;j++)//冒泡法排序for(k=1;k<=4-j;k++){ﻫint t=a[k];a[k]=a[k+1];a[k+1]=t;ﻫ} if(a[k]<a[k+1])ﻫfor(i=1;i<5;i++)cout<<a[i]<<endl;}voidquery(struct student *head)ﻫ{ﻫstruct student *temper;temper=head;int number;ﻫcin>>number;ﻫfor(int i=1;i<=4;i++){{ﻫcout<<" nameis:"<<tempeif(number==temper->num)ﻫr->name<<endl;cout<<" foxscore is:"<<temper->foxscore<<endl;cout<<" c score is:"<<temper->cscore<<endl;ﻫcout<<" English scoreis:"<<temper->englishscore<<endl;ﻫcout<<"congratulation,syetem have found what you want to search"<<en dl;ﻫ}temper=temper->next;ﻫ}}ﻫvoidmain(){ﻫmenu();cout<<" firstly,please input information:"<<endl;struct student *head;head=NULL; /* 建一个空表*/ﻫhead=creat(head); /*创建单链表*/cout<<" secondly,count the total score each student:"<<endl;ﻫcount(head);ﻫcout<<" thirdly,sortingthe totalscore:"<<endl;ﻫsort(head);ﻫcout<<" enter num thatyou can search eachshtudent's information"<<endl;ﻫquery(head);ﻫcout<<" thanks you forusemy student grade management system"<<endl;}ﻫ编译时候都没有错....ﻫdebug输入时候出现了错误....ﻫ调试运行后发现原来是while循环出了问题啊ﻫ修改后.........#i nclude<iostream.h>ﻫ#include<stdlib.h>ﻫstruct studentﻫ{ﻫint num;char name[20];ﻫint foxscore;ﻫintcscore;int englishscore;struct student *next;};void menu()ﻫ{ﻫcout<<"welecome tomy studentgrade managementsystem"<<endl;ﻫcout<<" please follow everyone step in the menu"<<endl;cout<<"1.input information"<<endl;cout<<" 2.total scores"<<endl;cout<<" 3.sort"<<endl;ﻫcout<<" 4.query"<<endl;cout<<" ***************************************************"<<endl;ﻫ}struct student *creat(struct student *head) // 函数返回的是与节点相同类型的指针ﻫ{ﻫ struct student *p1,*p2;p1=p2=(struct student*) malloc(sizeof(struct student)); // 申请新节点cin>>p1->num>>p1->name>>p1->foxscore>>p1->cscore>>p1->englishscore; // 输入节点的值ﻫp1-> next = NULL; // 将新节点的指针置为空for(inti=1;i<=4;i++){if (head==NULL) head=p1; //空表,接入表头ﻫelse p2->next=p1; // 非空表,接到表尾ﻫ p2 = p1;p1=(structstudent *)malloc(sizeof(structstudent)); //申请下一个新节点if(i<=3){cin>>p1->num>>p1->name>>p1->foxscore>>p1->cscore>>p1->englishscore;ﻫ} //输入节点的值ﻫ}returnhead; //返回链表的头指针ﻫ}void count(struct student *head)ﻫ{struct student *temp;ﻫtemp=head; //取得链表的头指针for(int i=1;i<=4;i++) ﻫ{int m;ﻫm=temp->foxscore+temp->cscore+temp->englishscore;cout<<m<<endl;//输出链表节点的值ﻫtemp=temp->next; //跟踪链表增长ﻫ}}void sort(struct student *head){ﻫstruct student *tp;tp=head;ﻫint a[4];//定义总分数组ﻫint i,j,k;a[1]=tp->foxscore+tp->cscore+tp->englishscore;tp=tp->next;ﻫa[2]=tp->foxscore+tp->cscore+tp->englishscore;tp=tp->next;a[3]=tp->foxscore+tp->cscore+tp->englishscore;ﻫtp=tp->next;ﻫa[4]=tp->foxscore+tp->cscore+tp->englishscore;ﻫfor(j=1;j<=3;j++)//冒泡法排序for(k=1;k<=4-j;k++)ﻫif(a[k]<a[k+1]){ﻫint t=a[k];a[k]=a[k+1];a[k+1]=t;ﻫ}for(i=1;i<5;i++)ﻫcout<<a[i]<<endl;}ﻫvoid query(struct student*head){ﻫstruct student *temper;temper=head;ﻫint number;ﻫcin>>number;for(int i=1;i<=4;i++) ﻫ{if(number==temper->num){ﻫcout<<" name is:"<<temper->name<<endl;ﻫcout<<"fox score is:"<<temper->foxscore<<endl;cout<<" c scoreis:"<<temper->cscore<<endl;ﻫcout<<" English score is:"<<temper->englishscore<<endl;cout<<" congratulation,syetemhave found what you want to sear ch"<<endl;ﻫ}temper=temper->next;}ﻫ}ﻫvoid main(){ﻫmenu();cout<<" firstly,please input information:"<<endl;structstudent *head;head=NULL; /* 建一个空表*/head=creat(head); /* 创建单链表*/cout<<" secondly,count the total scoreeach student:"<<endl;ﻫcoun t(head);cout<<" thirdly,sorting the total score:"<<endl;ﻫsort(head);ﻫcout<<" enter num that you can search each shtudent'sinformation"<<endl;ﻫquery(head);cout<<" thanks you for use my studentgrade management system"<<endl;ﻫ}C语言课程设计_贪吃蛇代码#define N 200#include <graphics.h>ﻫ#include <stdlib.h>#include<dos.h>ﻫ#define LEFT 0x4b00ﻫ#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011bﻫint i,key;int score=0;/*得分*/ﻫint gamespeed=50000;/*游戏速度自己调整*/ﻫstruct Foodﻫ{ﻫ int x;/*食物的横坐标*/int y;/*食物的纵坐标*/ﻫint yes;/*判断是否要出现食物的变量*/}food;/*食物的结构体*/ﻫstruct Snakeﻫ{ﻫint x[N];int y[N];int node;/*蛇的节数*/int direction;/*蛇移动方向*/ﻫ int life;/* 蛇的生命,0活着,1死亡*/ﻫ}snake;ﻫvoid Init(void);/*图形驱动*/ﻫvoid Close(void);/*图形结束*/ﻫvoid DrawK(void);/*开始画面*/ﻫvoid GameOver(void);/*结束游戏*/ﻫvoid GamePlay(void);/*玩游戏具体过程*/ﻫvoid PrScore(void);/*输出成绩*//*主函数*/ﻫvoid main(void)ﻫ{Init();/*图形驱动*/DrawK();/*开始画面*/ﻫ GamePlay();/*玩游戏具体过程*/Close();/*图形结束*/ﻫ}/*图形驱动*/ﻫvoid Init(void){ﻫint gd=DETECT,gm;ﻫinitgraph(&gd,&gm,"c:\\tc");ﻫ cleardevice();ﻫ}/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/ﻫvoid DrawK(void)ﻫ{ /*setbkcolor(LIGHTGREEN);*/setcolor(11);setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/for(i=50;i<=600;i+=10)/*画围墙*/ﻫ{ﻫ rectangle(i,40,i+10,49); /*上边*/}ﻫ for(i=40;i<=450;i+=10) rectangle(i,451,i+10,460);/*下边*/ﻫ{ﻫ rectangle(50,i,59,i+10); /*左边*/rectangle(601,i,610,i+10);/*右边*/}ﻫ}ﻫ/*玩游戏具体过程*/ﻫvoid GamePlay(void)ﻫ{randomize();/*随机数发生器*/food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/ﻫ snake.life=0;/*活着*/snake.direction=1;/*方向往右*/snake.x[0]=100;snake.y[0]=100;/*蛇头*/ﻫ snake.x[1]=110;snake.y[1]=100;snake.node=2;/*节数*/ﻫPrScore();/*输出得分*/ﻫ while(1)/*可以重复玩游戏,压ESC键结束*/ﻫ{ﻫwhile(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/{if(food.yes==1)/*需要出现新食物*/ﻫ {food.x=rand()%400+60;food.y=rand()%350+60;while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/ﻫfood.x++;while(food.y%10!=0)ﻫfood.y++;food.yes=0;/*画面上有食物了*/}ﻫif(food.yes==0)/*画面上有食物了就要显示*/ﻫ{ﻫ setcolor(GREEN);ﻫrectangle(food.x,food.y,food.x+10,food.y-10);}for(i=snake.node-1;i>0;i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/{snake.x[i]=snake.x[i-1];ﻫsnake.y[i]=snake.y[i-1];ﻫ }ﻫ/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/switch(snake.direction){ﻫcase 1:snake.x[0]+=10;break;ﻫ case 2: snake.x[0]-=10;break;ﻫ case 3: snake.y[0]-=10;break;case 4: snake.y[0]+=10;break;ﻫ}for(i=3;i<snake.node;i++)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/ﻫ{ﻫ if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]){ﻫGameOver();/*显示失败*/ﻫ snake.life=1;ﻫ break;}}if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||ﻫsnake.y[0]>455)/*蛇是否撞到墙壁*/ﻫ{GameOver();/*本次游戏结束*/snake.life=1; /*蛇死*/}ﻫif(snake.life==1)/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/ﻫbreak;ﻫif(snake.x[0]==food.x&&snake.y[0]==food.y)/*吃到食物以后*/{setcolor(0);/*把画面上的食物东西去掉*/rectangle(food.x,food.y,food.x+10,food.y-10);ﻫsnake.x[snake.node]=-20;snake.y[snake.node]=-20;/*新的一节先放在看不见的位置,下次循环就取前一节的位置*/ﻫsnake.node++;/*蛇的身体长一节*/food.yes=1;/*画面上需要出现新的食物*/score+=10;ﻫPrScore();/*输出新得分*/ﻫ}setcolor(4);/*画出蛇*/for(i=0;i<snake.node;i++)ﻫrectangle(snake.x[i],snake.y[i],snake.x[i]+10,ﻫ snake.y[i]-10);ﻫdelay(gamespeed);ﻫsetcolor(0);/*用黑色去除蛇的的最后一节*/rectangle(snake.x[snake.node-1],snake.y[snake.node-1],snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);ﻫ } /*endwhile(!kbhit)*/if(snake.life==1)/*如果蛇死就跳出循环*/ﻫbreak;ﻫ key=bios key(0);/*接收按键*/if(key==ESC)/*按ESC键退出*/break;ﻫelseif(key==UP&&snake.direction!=4)/*判断是否往相反的方向移动*/snake.direction=3;ﻫelseﻫif(key==RIGHT&&snake.direction!=2)snake.direction=1;ﻫelseﻫif(key==LEFT&&snake.direction!=1) snake.direction=2;elseif(key==DOWN&&snake.direction!=3)ﻫsnake.direction=4;ﻫ }/*endwhile(1)*/ﻫ}/*游戏结束*/void GameOver(void){ﻫ cleardevice();ﻫ PrScore();ﻫsetcolor(RED);settextstyle(0,0,4);outtextxy(200,200,"GAMEOVER");ﻫgetch();ﻫ}/*输出成绩*/void PrScore(void){char str[10];ﻫsetfillstyle(SOLID_FILL,YELLOW);ﻫ bar(50,15,220,35);ﻫ setcolor(6);ﻫ settextstyle(0,0,2);ﻫ sprintf(str,"score:%d",score);ﻫ outtextxy(55,20,str);}ﻫ/*图形结束*/void Close(void){getch();closegraph();}ﻫC语言课程设计_贪吃蛇代码,不错啊c语言课程设计_计算器设计#include <dos.h> /*DOS接口函数*/ﻫ#include <math.h> /*数学函数的定义*/#include <conio.h> /*屏幕操作函数*/ﻫ#include <stdio.h> /*I/O函数*/ﻫ#include <stdlib.h> /*库函数*/ﻫ#include <stdarg.h> /*变量长度参数表*/ﻫ#include <graphics.h> /*图形函数*/#include <string.h> /*字符串函数*/#include <ctype.h> /*字符操作函数*/#defineUP 0x48/*光标上移键*/#define DOWN 0x50 /*光标下移键*/#define LEFT 0x4b /*光标左移键*/#define RIGHT 0x4d /*光标右移键*/ﻫ#define ENTER 0x0d /*回车键*/void *rar; /*全局变量,保存光标图象*/struct palettetype palette; /*使用调色板信息*/ﻫint GraphDriver; /* 图形设备驱动*/ﻫint GraphMode; /* 图形模式值*/ﻫintErrorCode; /* 错误代码*/int MaxColors; /* 可用颜色的最大数值*/int MaxX, MaxY; /*屏幕的最大分辨率*/ﻫdouble AspectRatio; /* 屏幕的像素比*/void drawboder(void); /*画边框函数*/ﻫvoid initialize(void); /*初始化函数*/ﻫvoidcomputer(void); /*计算器计算函数*/ﻫvoid changetextstyle(int font, int direction,int charsize); /*改变文本样式函数*/ﻫvoid mwindow(char *header); /*窗口函数*/int specialkey(void) ; /*获取特殊键函数*/int arrow(); /*设置箭头光标函数*/ﻫ/*主函数*/int main()ﻫ{initialize();/* 设置系统进入图形模式*/computer(); /*运行计算器*/ﻫ closegraph();/*系统关闭图形模式返回文本模式*/ﻫ return(0); /*结束程序*/ﻫ}ﻫ/* 设置系统进入图形模式*/void initialize(void)ﻫ{int xasp, yasp;/* 用于读x和y方向纵横比*/GraphDriver = DETECT; /* 自动检测显示器*/initgraph( &GraphDriver, &GraphMode, "" );ﻫ/*初始化图形系统*/ ErrorCode = graphresult(); /*读初始化结果*/if(ErrorCode != grOk ) /*如果初始化时出现错误*/{ﻫprintf("Graphics System Error: %s\n",ﻫgrapherror msg( ErrorCode ) ); /*显示错误代码*/ﻫexit( 1 ); /*退出*/ﻫ } getpalette( &palette ); /* 读面板信息*/MaxColors = getmaxcolor() + 1; /* 读取颜色的最大值*/MaxX= getmaxx(); /* 读屏幕尺寸*/MaxY = getmaxy(); /* 读屏幕尺寸*/ﻫ getaspectratio( &xasp, &yasp ); /*拷贝纵横比到变量中*/ﻫAspectRatio = (double)xasp/(double)yasp;/* 计算纵横比值*/}/*计算器函数*/ﻫvoid computer(void)ﻫ{ﻫstruct viewporttype vp; /*定义视口类型变量*/int color, height, width;intx, y,x0,y0, i, j,v,m,n,act,flag=1;ﻫfloat num1=0,num2=0,result; /*操作数和计算结果变量*/char cnum[5],str2[20]={""},c,temp[20]={""};char str1[]="1230.456+-789*/Qc=^%";/* 定义字符串在按钮图形上显示的符号*/mwindow( "Calculator" );/*显示主窗口*/ﻫcolor =7; /*设置灰颜色值*/ﻫgetviewsettings( &vp );/* 读取当前窗口的大小*/ﻫ width=(vp.right+1)/10; /* 设置按钮宽度 */ﻫ height=(v p.bottom-10)/10 ; /*设置按钮高度 */ﻫx = width/2; /*设置x的坐标值*/y = height/2; /*设置y的坐标值*/ﻫ setfillstyle(SOLID_FILL, color+3);ﻫbar( x+width*2, y, x+7*width, y+height );ﻫ/*画一个二维矩形条显示运算数和结果*/setcolor( color+3 );/*设置淡绿颜色边框线*/rectangle( x+width*2,y, x+7*width, y+height );ﻫ/*画一个矩形边框线*/ﻫ setcolor(RED); /*设置颜色为红色*/outtextxy(x+3*width,y+height/2,"0."); /*输出字符串"0."*/ﻫx =2*wi dth-width/2; /*设置x的坐标值*/ﻫy =2*height+height/2; /*设置y的坐标值*/ﻫ for( j=0 ; j<4; ++j ) /*画按钮*/{for( i=0 ; i<5 ; ++i )ﻫ {setfillstyle(SOLID_FILL, color);ﻫ setcolor(R ED);bar( x, y, x+width, y+height ); /*画一个矩形条*/rectangle( x, y, x+width, y+height );ﻫsprintf(str2,"%c",str1[j*5+i]);ﻫ/*将字符保存到str2中*/ﻫouttextxy(x+(width/2), y+height/2, str2);x =x+width+ (width /2) ; /*移动列坐标*/}ﻫ y +=(height/2)*3;/* 移动行坐标*/ﻫx =2*width-width/2; /*复位列坐标*/ﻫ }x0=2*width;y0=3*height;ﻫ x=x0;y=y0;ﻫgotoxy(x,y); /*移动光标到x,y位置*/ﻫarrow(); /*显示光标*/putimage(x,y,rar,XOR_PUT);ﻫ m=0;ﻫ n=0;strcpy(str2,""); /*设置str2为空串*/while((v=specialkey())!=45) /*当压下Alt+x键结束程序,否则执行下面的循环*/ {while((v=specialkey())!=ENTER) /*当压下键不是回车时*/{putimage(x,y,rar,XOR_PUT); /*显示光标图象*/ﻫif(v==RIGHT) /*右移箭头时新位置计算*/ﻫif(x>=x0+6*width)/*如果右移,移到尾,则移动到最左边字符位置*/ﻫ{x=x0;m=0;ﻫ}ﻫelseﻫ{ﻫx=x+width+width/2;ﻫm++;ﻫ } /*否则,右移到下一个字符位置*/ﻫ if(v==LEFT) /*左移箭头时新位置计算*/if(x<=x0)ﻫ{ﻫ x=x0+6*width;ﻫm=4;ﻫ } /*如果移到头,再左移,则移动到最右边字符位置*/elseﻫ{x=x-width-width/2;ﻫm--;ﻫ}/*否则,左移到前一个字符位置*/ﻫif(v==UP)/*上移箭头时新位置计算*/ﻫif(y<=y0)ﻫ{ﻫy=y0+4*height+height/2;n=3;} /*如果移到头,再上移,则移动到最下边字符位置*/else{y=y-height-height/2;ﻫn--;ﻫ} /*否则,移到上边一个字符位置*/if(v==DOWN) /*下移箭头时新位置计算*/if(y>=7*height)ﻫ{y=y0;n=0;} /*如果移到尾,再下移,则移动到最上边字符位置*/elseﻫ {y=y+height+height/2;n++;} /*否则,移到下边一个字符位置*/putimage(x,y,rar,XOR_PUT); /*在新的位置显示光标箭头*/ﻫ }ﻫc=str1[n*5+m];/*将字符保存到变量c中*/ﻫ if(is digit(c)||c=='.') /*判断是否是数字或小数点*/ﻫ{if(flag==-1) /*如果标志为-1,表明为负数*/ﻫ{ﻫ strcpy(str2,"-");/*将负号连接到字符串中*/flag=1;} /*将标志值恢复为1*/sprintf(temp,"%c",c); /*将字符保存到字符串变量temp中*/strcat(str2,temp); /*将temp中的字符串连接到str2中*/ﻫ setfillst yle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2);ﻫ outtextxy(5*width,height,str2);/*显示字符串*/}ﻫif(c=='+')ﻫ {num1=atof(str2); /*将第一个操作数转换为浮点数*/ﻫstrcpy(str2,""); /*将str2清空*/ﻫ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=='-'){if(strcmp(str2,"")==0)/*如果str2为空,说明是负号,而不是减号*/flag=-1; /*设置负数标志*/else{num1=atof(str2); /*将第二个操作数转换为浮点数*/ﻫstrcpy(str2,""); /*将str2清空*/ﻫact=2;/*做计算减法标志值*/ﻫ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=='*')ﻫ{num1=atof(str2); /*将第二个操作数转换为浮点数*/ﻫstrcpy(str2,"");/*将str2清空*/ act=3;/*做计算乘法标志值*/ﻫsetfillstyle(SOLID_FILL,color+3); bar(2*w idth+width/2,height/2,15*width/2,3*height/2);outtextxy(5*width,height,"0."); /*显示字符串*/ﻫ}if(c=='/'){num1=atof(str2);/*将第二个操作数转换为浮点数*/strcpy(str2,"");/*将str2清空*/ﻫact=4;/*做计算除法标志值*/ﻫsetfillstyle(SOLID_FILL,color+3);bar(2*width+width/2,height/2,15*width/2,3*height/2);}ﻫif(c=='^')outtextxy(5*width,height,"0."); /*显示字符串*/ﻫ{num1=atof(str2); /*将第二个操作数转换为浮点数*/strcpy(str2,""); /*将str2清空*/act=5; /*做计算乘方标志值*/ﻫsetfillstyle(SOLID_FILL,color+3); /*设置用淡绿色实体填充*/bar(2*width+width/2,height/2,15*width/2,3*height/2); /*画矩形*/ﻫouttextxy(5*widt}ﻫif(c=='%')h,height,"0."); /*显示字符串*/ﻫ{ﻫnum1=atof(str2); /*将第二个操作数转换为浮点数*/strcpy(str2,""); /*将str2清空*/ﻫact=6; /*做计算模运算乘方标志值*/ﻫsetfillstyle(SOLID_FILL,color+3);/*设置用淡绿色实体填充*/ﻫbar(2*width+width/2,height/2,15*widt h/2,3*height/2); /*画矩形*/outtextxy(5*width,height,"0.");/*显示字符串*/}ﻫif(c=='=')ﻫ{num2=atof(str2);/*将第二个操作数转换为浮点数*/ﻫswitch(act) /*根据运算符号计算*/ﻫ{ﻫcase 1:result=num1+num2;break; /*做加法*/case 2:result=num1-num2;break; /*做减法*/ﻫcase 3:result=num1*num2;break; /*做乘法*/ﻫcase4:result=num1/num2;break; /*做除法*/ﻫcase 5:result=pow(num1,num 2);break;/*做x的y次方*/ﻫcase6:result=fmod(num1,num2);break; /*做模运算*/ﻫ}ﻫsetfillstyle(SOLID_FILL,color+3);/*设置用淡绿色实体填充*/ﻫbar(2*width +width/2,height/2,15*width/2,3*height/2); /*覆盖结果区*/ﻫsprintf(temp,"%f",re sult); /*将结果保存到temp中*/ﻫouttextxy(5*width,height,temp); /*显示结果*/ﻫ}if(c=='c')ﻫ{num1=0;/*将两个操作数复位0,符号标志为1*/ﻫnum2=0;flag=1;ﻫstrcpy(str2,"");/*将str2清空*/ﻫ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=='Q')exit(0); /*如果选择了q回车,结束计算程序*/ﻫ}ﻫputimage(x,y,rar,XOR_P UT);/*在退出之前消去光标箭头*/ﻫreturn; /*返回*/ﻫ}ﻫ/*窗口函数*/void mwindow(char*header )ﻫ{int height;cleardevice(); /* 清除图形屏幕 */setcolor(MaxColors -1); /*设置当前颜色为白色*/ﻫsetviewport( 20,20, MaxX/2,MaxY/2, 1 ); /*设置视口大小*/height=textheight( "H"); /*读取基本文本大小*/ﻫsettextstyle( DEFAULT _FONT, HORIZ_DIR, 1 );/*设置文本样式*/settextjustify(CENTER_TEXT, TOP_TEXT );/*设置字符排列方式*/outtextxy(MaxX/4, 2,header ); /*输出标题*/setviewport( 20,20+height+4, MaxX/2+4, MaxY/2+20, 1); /*设置视口大小*/ﻫdrawboder();/*画边框*/}ﻫvoid drawboder(void) /*画边框*/ﻫ{ﻫstruct viewporttype vp; /*定义视口类型变量*/ﻫsetcolor(MaxColors- 1 ); /*设置当前颜色为白色*/ﻫsetlinestyle( SOLID_LINE, 0, NORM_WIDTH);/*设置画线方式*/ﻫgetviewsettings( &vp );/*将当前视口信息装入vp所指的结构中*/rectangle( 0, 0,vp.right-vp.left, vp.bottom-vp.top); /*画矩形边框*/}ﻫ/*设计鼠标图形函数*/ﻫint arrow()ﻫ{int size;ﻫintraw[]={4,4,4,8,6,8,14,16,16,16,8,6,8,4,4,4}; /*定义多边形坐标*/setfillstyle(SOLID_FILL,2);/*设置填充模式*/fillpoly(8,raw); /*画出一光标箭头*/size=imagesize(4,4,16,16); /*测试图象大小*/ﻫrar=malloc(size); /*分配内存区域*/ﻫgetimage(4,4,16,16,rar); /*存放光标箭头图象*/ﻫputimage(4,4,rar,XOR_PUT);/*消去光标箭头图象*/ﻫreturn 0;}ﻫ/*按键函数*/int specialkey(void)ﻫ{ﻫint key;while(bioskey(1)==0); /*等待键盘输入*/ﻫkey=bioskey(0); /*键盘输入*/key=key&0xff?key&0xff:key>>8; /*只取特殊键的扫描值,其余为0*/ﻫreturn(key); /*返回键值*/}c语言课程设计_计算器设计进程调度代码ﻫﻫ#include "stdio.h"#include "stdlib.h"#include "string.h"ﻫtypedef struct nodeﻫ{charname[10]; /*进程标识符*/int prio; /*进程优先数*/int round; /*进程时间轮转时间片*/int cputime; /*进程占用CPU时间*/ﻫint needtime; /*进程到完成还要的时间*/int count; /*计数器*/ﻫchar state; /*进程的状态*/struct node *next; /*链指针*/ﻫ}PCB;ﻫPCB *finish,*ready,*tail,*run; /*队列指针*/ﻫint N; /*进程数*//*将就绪队列中的第一个进程投入运行*/firstin(){ﻫrun=ready;/*就绪队列头指针赋值给运行头指针*/run->state='R'; /*进程状态变为运行态*/ﻫready=ready->next; /*就绪对列头指针后移到下一进程*/ﻫ}ﻫ/*标题输出函数*/voidprt1(char a){ﻫif(toupper(a)=='P') /*优先数法*/printf("namecputime needtime priority state\n");ﻫelseﻫprintf(" name cputime needtimecount roundstate\n");ﻫ}ﻫ/*进程PCB输出*/ﻫvoid prt2(chara,PCB *q){ﻫif(toupper(a)=='P') /*优先数法的输出*/printf(" %-10s%-10d%-10d%-10d %c\n",q->name,q->cputime,q->needtime,q->prio,q->state);else/*轮转法的输出*/printf("%-10s%-10d%-10d%-10d%-10d %-c\n",q->name,q->cputime,q->needtime,q->count,q->round,q->state);}ﻫ/*输出函数*/voidprt(char algo){PCB *p;prt1(algo);/*输出标题*/ﻫif(run!=NULL) /*如果运行指针不空*/ﻫprt2(algo,run); /*输出当前正在运行的PCB*/p=ready; /*输出就绪队列PCB*/ﻫwhile(p!=NULL)ﻫ{prt2(algo,p);ﻫp=p->next;}p=finish; /*输出完成队列的PCB*/while(p!=NULL)ﻫ{ﻫprt2(algo,p);p=p->next;}getch(); /*压任意键继续*/}/*优先数的插入算法*/insert1(PCB *q){ﻫPCB *p1,*s,*r;ﻫint b;s=q; /*待插入的PCB指针*/p1=ready; /*就绪队列头指针*/r=p1; /*r做p1的前驱指针*/b=1;while((p1!=NULL)&&b) /*根据优先数确定插入位置*/if(p1->prio>=s->prio){ﻫr=p1;ﻫp1=p1->next;ﻫ}elseb=0;if(r!=p1)/*如果条件成立说明插入在r与p1之间*/ﻫ{r->next=s;s->next=p1;}elseﻫ{s->next=p1; /*否则插入在就绪队列的头*/ready=s;}ﻫ}ﻫ/*轮转法插入函数*/insert2(PCB *p2)ﻫ{tail->next=p2; /*将新的PCB插入在当前就绪队列的尾*/ﻫtail=p2;p2->next=NULL;ﻫ}ﻫ/*优先数创建初始PCB信息*/ﻫvoid create1(charalg){PCB *p;ﻫint i,time;ﻫchar na[10];ﻫready=NULL; /*就绪队列头指针*/finish=NULL; /*完成队列头指针*/ﻫrun=NULL; /*运行队列指针*/printf("Enter name and time of process\n"); /*输入进程标识和所需时间创建PCB*/ﻫfor(i=1;i<=N;i++)ﻫ{ﻫp=malloc(sizeof(PCB));ﻫscanf("%s",na);ﻫscanf("%d",&time);strcpy(p->name,na);p->cputime=0;p->needtime=time;ﻫp->state='w';p->prio=50-time;ﻫif(ready!=NULL)/*就绪队列不空调用插入函数插入*/insert1(p);ﻫelse{p->next=ready; /*创建就绪队列的第一个PCB*/ready=p;ﻫ}}ﻫclrscr();printf(" output of priority:\n");ﻫprintf("************************************************\n");ﻫprt(alg); /*输出进程PCB信息*/ﻫrun=ready; /*将就绪队列的第一个进程投入运行*/ﻫready=ready->next;ﻫrun->state='R';}ﻫ/*轮转法创建进程PCB*/void create2(char alg){PCB *p;inti,time;char na[10];ﻫready=NULL;finish=NULL;run=NULL;ﻫprintf("Enter name and time of round process\n");ﻫfor(i=1;i<=N;i++) {ﻫp=malloc(sizeof(PCB));scanf("%s",na);ﻫscanf("%d",&time);ﻫstrcpy(p->name,na);p->cputime=0;ﻫp->needtime=time;ﻫp->count=0; /*计数器*/ﻫp->st ate='w';ﻫp->round=2;/*时间片*/if(ready!=NULL)ﻫinsert2(p);else{ﻫp->next=ready;ﻫready=p;ﻫtail=p;}ﻫ}ﻫclrscr();printf(" output of round\n");printf("************************************************\n");ﻫprt(alg); /*输出进程PCB信息*/run=ready; /*将就绪队列的第一个进程投入运行*/ready=ready->next;ﻫrun->state='R';}/*优先数调度算法*/ﻫpriority(char alg){ﻫwhile(run!=NULL)/*当运行队列不空时,有进程正在运行*/{run->cputime=run->cputime+1;ﻫrun->needtime=run->needtime-1;ﻫrun ->prio=run->prio-3; /*每运行一次优先数降低3个单位*/ﻫif(run->needtime==0) /*如所需时间为0将其插入完成队列*/{run->next=finish;finish=run;ﻫrun->state='F'; /*置状态为完成态*/ﻫrun=NULL;/*运行队列头指针为空*/if(ready!=NULL) /*如就绪队列不空*/firstin(); /*将就绪对列的第一个进程投入运行*/ﻫ}ﻫelse /*没有运行完同时优先数不是最大,则将其变为就绪态插入到就绪队列*/if((ready!=NULL)&&(run->prio<ready->prio)){ﻫrun->state='W';ﻫinsert1(run);firstin(); /*将就绪队列的第一个进程投入运行*/ﻫ}ﻫprt(alg); /*输出进程PCB信息*/ﻫ}ﻫ}{ﻫrun->cputime=run-/*时间片轮转法*/ﻫroundrun(char alg)ﻫ{ﻫwhile(run!=NULL)ﻫ>cputime+1;ﻫrun->needtime=run->needtime-1;ﻫrun->count=run->count+1;ﻫif(run->needtime==0)/*运行完将其变为完成态,插入完成队列*/{ﻫrun->next=finish;finish=run;run->state='F';ﻫrun=NULL;ﻫif(ready!=NUL L)ﻫfirstin(); /*就绪对列不空,将第一个进程投入运行*/}ﻫelseﻫif(run->count==run->round)/*如果时间片到*/ﻫ{run->count=0; /*计数器置0*/ﻫif(ready!=NULL) /*如就绪队列不空*/{run->state='W'; /*将进程插入到就绪队列中等待轮转*/insert2(run);firstin();/*将就绪对列的第一个进程投入运行*/ﻫ}ﻫ}prt(alg); /*输出进程信息*/}ﻫ}/*主函数*/main()ﻫ{ﻫchar algo;/*算法标记*/clrscr();printf("type the algorithm:P/R(priority/roundrobin)\n");ﻫscanf("%c",&algo); /*输入字符确定算法*/ﻫprintf("Enter process number\n");ﻫscanf("%d",&N); /*输入进程数*/ﻫif(algo=='P'||algo=='p') {ﻫcreate1(algo);/*优先数法*/priority(algo);}elseﻫif(algo=='R'||algo=='r'){ﻫcreate2(algo); /*轮转法*/roundrun(algo);ﻫ}}[C语言课程设计]通讯录代码ﻫﻫ#include "stdio.h" /*I/O函数*/ﻫ#include"stdlib.h"/*标准库函数*/ﻫ#include "string.h"/*字符串函数*/ﻫ#include"ctype.h" /*字符操作函数*/ﻫ#defineM50 /*定义常数表示记录数*/typedef struct /*定义数据结构*/ﻫ{char name[20];/*姓名*/char units[30];/*单位*/ﻫ char tele[10]; /*电话*/}ADDRESS;/******以下是函数原型*******/ﻫintenter(ADDRESSt[]); /*输入记录*/void list(ADDRESS t[],int n);/*显示记录*/voidsearch(ADDRESS t[],int n); /*按姓名查找显示记录*/int delete(ADDRESS t[],intn);/*删除记录*/int add(ADDRESSt[],intn); /*插入记录*/voidsave(ADDRESS t[],int n); /*记录保存为文件*/int load(ADDRESS t[]); /*从文件中读记录*/ﻫvoid display(ADDRESSt[]);/*按序号查找显示记录*/void sort(ADDRESSt[],int n); /*按姓名排序*/ﻫvoid qseek(ADDRESS t[],int n);/*快速查找记录*/ﻫvoid copy(); /*文件复制*/void print(ADDRESS temp);/*显示单条记录*/ﻫint find(ADDRESSt[],int n,char*s);/*查找函数*/intmenu_select(); /*主菜单函数*//******主函数开始*******/main()ﻫ{inti;ﻫADDRESS adr[M]; /*定义结构体数组*/ﻫ intlength; /*保存记录长度*/ﻫ clrscr(); /*清屏*/ﻫfor(;;)/*无限循环*/{ﻫswitch(menu_select())/*调用主菜单函数,返回值整数作开关语句的条件*/{case0:length=enter(adr);break;/*输入记录*/ﻫ case 1:list(adr,length);break; /*显示全部记录*/case2:search(adr,length);break; /*查找记录*/ﻫ case3:length=delete(adr,length);break; /*删除记录*/case 4:length=add(adr,length); break; /*插入记录*/case 5:save(adr,length);break;/*保存文件*/ﻫcase 6:length=load(adr);break; /*读文件*/ case7:display(adr);break; /*按序号显示记录*/case8:sort(adr,length);break;/*按姓名排序*/case9:qseek(adr,length);break;/*快速查找记录*/case10:copy();break;/*复制文件*/case 11:exit(0); /*如返回值为11则程序结束*/ﻫ}}}/*菜单函数,函数返回值为整数,代表所选的菜单项*/ﻫmenu_select()ﻫ{ﻫ char s[80];int c;gotoxy(1,25);/*将光标定为在第25行,第1列*/ﻫprintf("pressany key enter menu......\n");/*提示压任意键继续*/ﻫ getch();/*读入任意字符*/ﻫ clrscr(); /*清屏*/ﻫ gotoxy(1,1);ﻫprintf("********************MENU*********************\n\n");printf(" 0. Enterrecord\n");ﻫ printf(" 1.List the file\n");printf(" 2.Searchrecord onname\n");printf(" 3. Delete arecord\n");ﻫ printf(" 4.addrecord\n");ﻫ printf(" 5. Savethe file\n");printf(" 6. Loadthefile\n");printf(" 7. display record on order\n");printf(" 8. sort tomake newfile\n");ﻫ printf(" 9.Quick seekrecord\n");ﻫprintf(" 10. copy the fileto new file\n");printf(" 11. Quit\n");ﻫ printf("***********************************************\n");do{printf("\n Enteryou choice(0~11):"); /*提示输入选项*/scanf("%s",s); /*输入选择项*/c=atoi(s);/*将输入的字符串转化为整型数*/ﻫ }while(c<0||c>11); /*选择项不在0~11之间重输*/returnc; /*返回选择项,主程序根据该数调用相应的函数*/ﻫ}ﻫ/***输入记录,形参为结构体数组,函数值返回类型为整型表示记录长度*/ﻫint enter(ADDRESS t[])ﻫ{int i,n;char *s;clrscr(); /*清屏*/ﻫprintf("\nplease input num \n");/*提示信息*/ﻫ scanf("%d",&n);/*输入记录数*/printf("please input record\n");/*提示输入记录*/ﻫ printf("name unit tele phone\n");ﻫ printf("------------------------------------------------\n");for(i=0;i<n;i++)ﻫ {scanf("%s%s%s",t[i].name,t[i].units,t[i].tele); /*输入记录*/ﻫprintf("----------------------------------------------\n");ﻫ }return n; /*返回记录条数*/}ﻫ/*显示记录,参数为记录数组和记录条数*/ﻫvoid list(ADDRESS t[],intn){ﻫint i;clrscr();ﻫ printf("\n\n*******************ADDRESS******************\n");printf("name unit telephone\n");printf("------------------------------------------------\n");for(i=0;i<n;i++)printf("%-20s%-30s%-10s\n",t[i].name,t[i].units,t[i].tele);ﻫ if((i+1)%10==0) /*判断输出是否达到10 {ﻫ printf("Press any keycontinue...\n"); /*提示信息*/条记录*/ﻫgetch(); /*压任意键继续*/}ﻫ printf("************************end*******************\n");}ﻫ/*查找记录*/void search(ADDRESS t[],int n)ﻫ{char s[20]; /*保存待查找姓名字符串*/ﻫ int i; /*保存查找到结点的序号*/clrscr(); /*清屏*/printf("please search name\n");ﻫscanf("%s",s); /*输入待查找姓名*/i=find(t,n,s);/*调用find函数,得到一个整数*/if(i>n-1) /*如果整数i值大于n-1,说明没找到*/ﻫ printf("not found\n");ﻫelseprint(t[i]);/*找到,调用显示函数显示记录*/}ﻫ/*显示指定的一条记录*/void print(ADDRESS temp){clrscr();ﻫ printf("\n\n********************************************\n");printf("name unit telephone\n");printf("------------------------------------------------\n");printf("%-20s%-30s%-10s\n",temp.name,temp.units,temp.tele);ﻫ printf("**********************end***********************\n");}/*查找函数,参数为记录数组和记录条数以及姓名s */intfind(ADDRESSt[],int n,char*s){inti;for(i=0;i<n;i++)/*从第一条记录开始,直到最后一条*/{ﻫ if(strcmp(s,t[i].name)==0) /*记录中的姓名和待比较的姓名是否相等*/return i; /*相等,则返回该记录的下标号,程序提前结结束*/ﻫ}return i; /*返回i值*/ﻫ}ﻫ/*删除函数,参数为记录数组和记录条数*/int delete(ADDRESS t[],int n){char s[20]; /*要删除记录的姓名*/int ch=0;int i,j;printf("please deletedname\n");/*提示信息*/scanf("%s",s);/*输入姓名*/ﻫ i=find(t,n,s); /*调用find函数*/ﻫ if(i>n-1) /*如果i>n-1超过了数组的长度*/printf("no foundnot deleted\n"); /*显示没找到要删除的记录*/else{print(t[i]); /*调用输出函数显示该条记录信息*/。

C语言课程设计—学生成绩管理系统

C语言课程设计—学生成绩管理系统

#include ”stdio.h”#include ”string.h”#include "stdlib.h"#include "conio.h"#include ”string.h”#include "fcntl。

h"typedef struct student{int num;char grade[10];char classroom[10];char name[10];float score_math;float score_chinese;float score_english;float average;float sum;}STU;typedef struct Node{STU data;struct Node *next;}*linklist;void menu();char *loginpassword(char password[],int n);//登录验证密码函数声明//linklist createstulist(linklist head);//创建学生链表即学生信息录入函数声明// void printstulist(linklist head);//学生信息输出函数声明//void searchstu_namelist(linklist head);//学生信息查询函数声明(按姓名)// void searchstu_numlist(linklist head);//学生信息查询函数声明(按学号) linklist modifystulist(linklist head);//学生信息修改函数声明//linklist delatestulist(linklist head);//学生信息删除函数声明//void savestulist(linklist head);//学生信息保存到文件函数声明// linklist loadstulist();//从文件中读取学生信息函数声明// void sortstulist(linklist head); //成绩排名函数(按年级)声明//void sort(STU stu[],int flag); //学生分班函数声明//void sortstuclass(linklist head); //成绩排名函数(按班级)声明////*************************************//void main(){char admin[]=”zhangqiong";char password[]=”123456";char person[20];char password1[10];int i;printf(”********************************************************************************\n”);printf("\t\t **********欢迎来到学生成绩管理系统**********\n\n");printf(”********************************************************************************\n\n”);printf(”\t\t\t\t用户登录\n\n\n\n");for(i=0;i<3;i++){printf("用户名:”);gets(person);fflush(stdin);printf(”\n\n\n”);loginpassword(password1,10);printf("\n\n\n”);if(strcmp(admin,person)==0&&strcmp(password,password1)==0){printf(”\t\t\t\t成功登录,亲!\n”);printf("\n\n”);printf(”按任意键继续!”);getch();menu();break;}elseprintf("\t用户名或者密码输入错误\n”);}if(i==3)printf("\t对不起,您今天输入次数太多,已被强制退出!\n”);}//**********************************************************////**********************************************************//char *loginpassword(char password[],int n)//登录密码函数,隐藏密码可见//{int i=0;int m=0;char ch;printf("用户密码:”);while((ch=getch())!='\r’&&m〈n){password[i++]=ch;printf(”*");}password[i]='\0';return password;}//***************************************************// void menu()//主界面函数//{system("cls");linklist L;L=(linklist)malloc(sizeof(Node));L—>next=NULL;int ch;do{printf(”\t -——-----—-******——--——--—---******—————-————-******-—-—-—-—-—\n\n");printf("\t\t\t**********学生成绩管理系统***********\n\n”);printf("\t ——----——--******-—-——------—******—---———--—-******—---———-——\n\n\n\n\n");printf("\t1。

学生成绩管理系统c语言课程设计报告(一)

学生成绩管理系统c语言课程设计报告(一)

学生成绩管理系统c语言课程设计报告(一)学生成绩管理系统C语言课程设计报告摘要本文介绍了一款学生成绩管理系统的C语言课程设计报告。

该系统可实现学生信息的录入、成绩的计算和管理等功能。

本报告详细介绍了系统的需求分析、概要设计和实现细节等内容。

系统需求分析功能需求•系统管理员可以进行学生信息的录入、删除和修改操作。

•系统可以根据已有的学生成绩进行排名,并输出排名列表。

•系统可以查询某个学生的成绩和排名。

•系统可支持标准输出数据、文件存储数据两种方式,并提供相应的查询功能。

性能需求•系统应该能够在1秒内响应用户的操作请求。

•系统的数据存储应该具有较高的可靠性和安全性。

界面需求•系统的界面应该易于操作和友好。

•界面的色彩搭配应该符合用户的视觉需求。

概要设计总体设计•系统分为两个主要模块:学生信息管理模块和成绩查询排名模块。

•学生信息管理模块包括对学生信息的增删改查等操作。

•成绩查询排名模块可以查询学生的成绩并输出排名列表。

•数据存储采用文件存储方式,具有较高的可靠性和安全性。

数据结构设计•采用结构体的方式存储学生信息,包括学生ID、姓名、性别、年龄和成绩等信息。

struct Student{int id; //学生IDchar name[20]; //学生姓名char sex[5]; //学生性别int age; //学生年龄float score; //学生成绩};约束条件•系统仅支持标准C语言的编写。

实现细节数据存储•学生信息存储在文件中,每个学生的信息存储在一行中。

•系统启动时初始化学生信息的文件。

•系统在每次修改或录入学生信息后自动保存信息到文件中。

功能实现•学生信息管理模块实现学生信息的增删改查等操作,并将操作结果输出到文件和屏幕上。

•成绩查询排名模块实现了对某个学生的单独查询和对所有学生的排名查询,并将查询结果输出到文件和屏幕上。

总结本文针对学生成绩管理系统的C语言课程设计报告进行了介绍。

从需求分析、概要设计到实现细节,本文详细地介绍了该系统的开发过程。

学生成绩管理系统c语言课程设计

学生成绩管理系统c语言课程设计

学生成绩管理系统c语言课程设计1. 介绍学生成绩管理系统是一种可以帮助学校或教育机构管理学生的成绩信息的软件系统。

它能够记录和管理学生的各门课程的成绩,提供成绩查询、统计分析以及生成报表的功能。

在这个项目中,我们将使用C语言来设计和实现一个简单的学生成绩管理系统。

2. 功能需求2.1 学生信息管理•添加学生信息:输入学生的学号、姓名、性别、年龄等基本信息,并将其保存到系统中。

•修改学生信息:根据学生的学号或姓名,找到对应的学生信息,并允许修改其基本信息。

•删除学生信息:根据学生的学号或姓名,找到对应的学生信息,并从系统中删除。

2.2 成绩管理•录入学生成绩:输入学生的学号或姓名,根据学号或姓名找到对应的学生信息,并记录其各门课程的成绩。

•查询学生成绩:根据学生的学号或姓名,找到对应的学生信息,并显示其各门课程的成绩。

•统计学生成绩:计算学生的总分、平均分等统计信息,并按照成绩排名进行排序并显示。

•生成成绩报表:将学生的成绩信息按照一定的格式输出到文件中,以方便查阅和打印。

2.3 界面设计•主菜单:显示系统的功能选项,包括学生信息管理、成绩管理、退出等选项。

•学生信息管理菜单:显示学生信息管理的功能选项,包括添加学生信息、修改学生信息、删除学生信息等选项。

•成绩管理菜单:显示成绩管理的功能选项,包括录入学生成绩、查询学生成绩、统计学生成绩、生成成绩报表等选项。

•输入提示:在功能选项中,根据需要给出相应的输入提示,以引导用户正确地操作系统。

3. 设计思路3.1 数据结构设计为了实现学生成绩管理系统,我们需要设计合适的数据结构来存储学生信息和成绩。

在这个项目中,我们可以使用结构体来表示学生信息,如下所示:struct Student {int id; // 学号char name[20]; // 姓名char gender[10]; // 性别int age; // 年龄float grades[5]; // 各门课程成绩};3.2 模块设计为了实现功能需求中的各项功能,我们需要设计相应的模块来实现。

C语言课程设计学生成绩管理系统

C语言课程设计学生成绩管理系统

C语言课程设计学生成绩管理系统Company number【1089WT-1898YT-1W8CB-9UUT-92108】信息技术工程学院C语言课程设计报告题目:学生成绩管理系统(student achievementmanagement system)目录一设计目的通过本课程设计巩固《C语言程序设计》课程的教学成果,深入理解结构体、指针、链表、动态分配内存和文件操作的等C程序设计中的中高级技术,通过课程设计的综合训练,培养学生实际分析问题、编程和动手能力、提高学生利用C语言进行程序设计的能力,初步培养良好的编程习惯和编程风格,初步学习程序的文档的撰写方法。

二课程设计的内容通过C语言程序系统,设计一个可以对学生的成绩信息进行管理的程序,其中学生的信息可以包括:学号、各科目的成绩的平均分排序等,其功能可以包括学生成绩的输入、输出、查询、排序、删除、统计、退出等。

三课程设计的要求与数据1、用C语言实现系统;2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出、显示,以及整个程序的切换登录模式和修改管理员的信息.3、学生信息包括:(1)、每一条记录包括一个学生的学号、姓名、3门课成绩(2)、成绩信息录入功能:(成绩信息用文件保存,可以一次完成若干条记录的输入。

)(3)、成绩信息显示浏览功能:完成全部学生记录的显示。

(4)、查询功能:完成按姓名查找学生记录,并显示。

(5)、成绩信息的删除:按学号进行删除某学生的成绩.(6)、排序功能:按学生平均成绩进行排序。

(7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!四课程设计应完成的工作(1)编写算法;(2)算法测试,并有具体的测试结果和结果分析;(3)撰写课程设计报告。

内容包括:1)封面扉页2)设计任务书3)目录4)总体设计方案(包括流程图)5)使用说明及运行实例(包括界面)6)成员设计内容简介7)项目源程序代码(注意注释的使用)8)指导教师评语五总体设计(包含几大功能模块)1、成绩录入功能2、成绩输出功能3、成绩查询功能4、删除模块5、排序功能6、统计功能7、退出系统六详细设计各个模块的功能和实现(1)整个成绩管理系统设计分为9个模块:1.输入学生成绩2.删除学生成绩3.查询学生成绩4.修改学生成绩5.排序学生成绩6.保存记录7.显示所有8.退出系统9.修改管理员信息(2)(主要函数的功能)1.主函数main():定义学生结构体数组,调用录入,统计等函数对成绩表进行处理。

C语言课程设计-学生成绩管理系统

C语言课程设计-学生成绩管理系统

#include<stdio.h>#include<string.h>/* strcmp 函数原型(yuánxíng)包含*/#define N 100/*定义最大学生(xué sheng)人数为100*/struct student /*学生(xué sheng)结构体定义*/ {char no[11]; /*学号,10 位*/char name[10];/*姓名(xìngmíng),3 个汉字*/ float score[5];/*储存5 门功课(gōngkè)的成绩*/ float ave;/*储存平均分*/int year;/*入学年*/}stu[N];int num;int panduani(int); void output(); void init();void newfile(); void read1(); void weihu(); void new1(); void xiugai();int xgcj(int); void delete1(); void tongji(); void tongji1();/*通过i 的值,判断信息要查找的信息是否存在*/ /*输出学生成绩函数(公共函数) *//*系统初始化函数*//*建立新的数据文件*//*从数据文件中读取数据*//*维护界面函数*//*新增一个学生成绩函数*//*修改学生成绩*//*修改成绩*//*删除学生信息函数*//*统计界面函数*//*计算每一个学生平均分*/void tongji2(); /*计算每门课程的平均分*/void paixu1(); /*排序函数*/void paino(); /*按学号排序*/void paiave(); /*按平均分排序*/void paidkcj(); /*按单科成绩排序*/void change(int,int); /*交换结构体数组中的两个记录*/ void outputx(int); /*选择输出单科成绩徐修楼编*/ void find1(); /*查找界面函数*/int find(char sno[]); /*按学号查找*/int findname(char cname[]);/*按姓名查找*/void findyear(int cyear); /*按入学年查找*/void save(); void stop(); /*保存文件*/ /*停顿函数*/void stop() /*停顿函数 (公共函数) */{printf("Press Any Key To Continue...\n");getch();}void output() /*输出学生(xué sheng)成绩函数(公共函数) */{int i,j;printf("================================================================= ==\n");printf("XueHao XingMing RuXueNian C GaoShu DaWu DianLu MoDian\n");printf("================================================================= ==\n");for(i=0;i<num;i++)printf("%-11s% -10s%-11d",stu[i].no,stu[i].name,stu[i].year);for(j=0;j<5;j++)printf("% -7.1f",stu[i].score[j]);printf("\n");}stop();}void init() /*系统(xìtǒng)初始化函数*/{if(access("stu.dat",0)) /*判断文件是否(shì fǒu)存在*/newfile(); /*若不存在(cúnzài),新建数据文件*/elseread1(); /*若存在(cúnzài),读取数据*/}void newfile() /*建立新的数据文件*/{int i;FILE *fp;if((fp=fopen("stu.dat","wb"))==NULL) /*创建二进制文件*/{printf("Chuang Jian Shi Bai! Qing Chong Xin Yun Xing Cheng Xu.\n"); /*显示“创建文件失败,请重新运行程序”*/exit(0); /*终止程序*/}printf(" Chu Ci Yun Xing, Jin Xing Shu Ju Chu Shi Hua...\n");/*显示“初次运行,进行数据初始化...”*/stop();clrscr();printf(" Qing Shu Ru Xue Sheng Ren Shu:");/*显示“请输入学生人数:”*/scanf("%d",&num);for(i=0;i<num;i++)printf("Qing Shu Ru Di %d Ge Xue Sheng De Xue Hao:",i+1); /*显示(xiǎnshì)“请输入(shūrù)第i+1 个学生的学号:”*/getchar(); /*吃回车(huí chē)*/gets(stu[i].no);printf("Xing Ming:"); /*显示(xiǎnshì)“姓名(xìngmíng):”*/gets(stu[i].name);printf("Ru Xue Nian:");/*显示“入学年”*/scanf("%d",&stu[i].year);printf("C-YuYan Cheng Ji:");/*显示“C 语言成绩”*/scanf("%f",&stu[i].score[0]);printf("GaoShu Cheng Ji:");/*显示“高数成绩”*/scanf("%f",&stu[i].score[1]);printf("DaWu Cheng Ji:");/*显示“大物成绩”*/scanf("%f",&stu[i].score[2]);printf("DianLu Cheng Ji:");/*显示“电路成绩”*/scanf("%f",&stu[i].score[3]);printf("MoDian Cheng Ji:");/*显示“模电成绩”*/scanf("%f",&stu[i].score[4]);fwrite(&stu[i],1,sizeof(struct student),fp); /*把第i+1 名学生成绩写入文件*/}fclose(fp);clrscr();printf("======================================\n");printf(" Gung Cai Shu Ru De %d Ge Shu Ju Wei:\n",num); /*显示“刚才输入的num 个数据为:”*/printf("======================================\n\n");output();}void read1() /*从数据文件中读取数据*/{FILE *fp;num=0; /*num 为数据文件中实际存储的学生人数*/fp=fopen("stu.dat","r");if(fp==NULL) /*数据文件不存在*/{printf("Wen Jian Da Kai Shi Bai! Chong Xin Yun Xing Cheng Xu\n"); /*显示“文件打开失败!重新运行程序”*/exit(0);}while(!feof(fp)){fread(&stu[num],1,sizeof(struct student),fp);num++;}num--;fclose(fp);printf("=======================================\n");printf(" Xian You %d Ge Xue Sheng De Cheng Ji:\n",num); /*显示(xiǎnshì)“现有(xiàn yǒu) NUM 个学生(xué sheng)的成绩:”*/printf("=======================================\n\n");output();}void weihu() /*维护(wéihù)界面函数*/{char c1;while(1){clrscr();printf("\n\n\n\t\t\t*****************************\n");printf("\t\t\t* printf("\t\t\t* printf("\t\t\t* printf("\t\t\t* printf("\t\t\t*Wei Hu1. Xin Zeng2. Shan Chu3. Xiu GaiESC. Fan Hui*\n");*\n"); /*新增*/*\n"); /*删除(shānchú) (按学号) */*\n"); /*修改*/*\n"); /*返回*/printf("\t\t\t*****************************\n");printf("\t\t\tQing Xuan Ze:\n");/*请选择:*/c1=getch();if(c1==27)break;switch(c1){case '1':new1();break;case '2':delete1();case '3':xiugai();break;default:printf("Xuan Zen You Wu,Qing Chong Xuan!\n");/*“选择有误,请重选!”*/}}}void new1() /*新增一个学生成绩函数*/{printf("Qing Shu Ru Xue Hao:"); /*显示“请输入学号:”*/getchar(); /*吃回车*/gets(stu[num].no);printf("Xing Ming:"); /*显示(xiǎnshì)“姓名(xìngmíng):”*/gets(stu[num].name);printf("Ru Xue Nian:");/*显示(xiǎnshì)“入学(rù xué)年”*/scanf("%d",&stu[num].year);printf("C-YuYan Cheng Ji:");/*显示(xiǎnshì)“C 语言成绩”*/scanf("%f",&stu[num].score[0]);printf("GaoShu Cheng Ji:");/*显示“高数成绩”*/scanf("%f",&stu[num].score[1]);printf("DaWu Cheng Ji:");/*显示“大物成绩”*/scanf("%f",&stu[num].score[2]);printf("DianLu Cheng Ji:");/*显示“电路成绩”*/scanf("%f",&stu[num].score[3]);printf("MoDian Cheng Ji:");/*显示“模电成绩”*/scanf("%f",&stu[num].score[4]);num++;printf("\n======================================\n");printf(" Xian You %d Ge Xue Sheng De Cheng Ji:\n",num); /*显示“现有NUM 个学生的成绩:”*/printf("======================================\n\n");output();}void xiugai() /*修改学生成绩*/{char xg[11];int i;printf("\nQing shu ru yao xiu gai xue sheng de xue hao:\n\n");gets(xg);for(i=0;i<num;i++)if(strcmp(stu[i].no,xg)==0)break;if(i==num){printf("\nShu ju wen jian wu gai sheng xi xi!\n\nQing chong xin shu ru xue hao.\n\n");stop();return;}xgcj(i);}int xgcj(int x) /*修改成绩*/{char xueke[5][10]={"Cyuyan"," Gaoshu","Wuli","Dianlu","Modian"};char (*p)[10],c;int j,k;p=xueke;for(;;){clrscr();printf("\n");printf("\t\t\t************************************\n\n");printf("\t\t\t printf("\t\t\t printf("\t\t\t printf("\t\t\t printf("\t\t\t printf("\t\t\t printf("\t\t\tCheng Ji1.C Yu Yan2.Gao Shu3.Wu Li4.Dian Lu5.Mo DianEsc.Fan Hui\n");\n"); /*C 语言(yǔyán)*/\n"); /*高数*/\n"); /*大学物理*/\n"); /*电路(diànlù)*/\n"); /*模电*/\n\n"); /*返回(fǎnhuí)上级*/printf("\t\t\t************************************\n\n");printf("\tQing xuan ze yao xiu gai de cheng ji(press 1.2.3.4.5.Esc):\n");c=getch();if(c==27)break;else if (c>='1'&&c<='5'){k=c-49;printf("\nQing shu ru %s cheng ji:\n",p+k);scanf("%f",&stu[x].score[k]);printf("\nXiu gai hou gai xue sheng xin xi wei:\n");printf("XueHao XingMing RuXueNian C GaoShu DaWu DianLu MoDian\n"); printf("================================================================= ==\n");printf("%-11s%-10s%-11d",stu[x].no,stu[x].name,stu[x].year);for(j=0;j<5;j++)printf("% -7.1f",stu[x].score[j]);printf("\n");}else printf("\nXuan Zen You Wu,Qing Chong Xuan!\n\n");stop();}}int find(char sno[]) /*按学号查找(chá zhǎo) */{int i;for(i=0;i<num;i++)if(strcmp(stu[i].no,sno)==0) /*判断(pànduàn)两个字符串相等*/return i;/*查找成功*/return -1;/*查找失败*/}void delete1() /*删除学生信息函数*/{char cno[11];int i,j;printf("Qing Shu Ru Yao Shan Chu De Xue Sheng Xue Hao:"); /*“请输入(shūrù)要删除的学生学号”*/gets(cno);i=find(cno);if(i!=-1){for(j=i;j<num;j++)stu[j]=stu[j+1];num--;printf("Xian You %d Ge Xue Sheng De Cheng Ji:\n",num); /*显示(xiǎnshì)“现有NUM 个学生(xué sheng)的成绩:”*/output();}else {printf("qing shu ru zheng que de xue hao. \n");stop();}}void tongji() /*统计界面(jièmiàn)函数*/{int i;char c2;while(1){clrscr();printf("\n\n\n\t\t\t************************************\n");printf("\t\t\t* Tong Ji *\n");printf("\t\t\t* 1. Xue Sheng Ping Jun Fen *\n"); /*计算(jì suàn)学生平均分*/printf("\t\t\t* 2. Ke Cheng Ping Jun Fen *\n"); /*计算每门课程平均分*/printf("\t\t\t* ESC. Fan Hui *\n"); /*返回*/printf("\t\t\t************************************\n");printf("\t\t\tQing Xuan Ze:\n");/*请选择:*/c2=getch();if(c2==27) break;switch(c2){case '1':tongji1();printf("\n\nXue Sheng Ping Jun Fen Wei:\n");printf("===========================================\n");printf("XueHao XingMing RuXueNian PingJunFen\n");printf("===========================================\n");for(i=0;i<num;i++)printf("%-11s% -10s%-11d%-10.2f\n",stu[i].no,stu[i].name,stu[i].year,stu[i].ave); stop();break;case '2':tongji2();break;default:printf("Xuan Zen You Wu,Qing Chong Xuan!\n");/*“选择(xuǎnzé)有误,请重选!”*/ }}}void tongji1() /*计算(jì suàn)每一个学生平均分*/{int i,j;for(i=0;i<num;i++){stu[i].ave=0;for(j=0;j<5;j++)stu[i].ave+=stu[i].score[j];stu[i].ave=stu[i].ave/5;}}void tongji2() /*计算(jì suàn)每门课程的平均分*/{int i,j;float sum;float avec[5]; /*储存(chǔcún)每门课的平均分*/for(j=0;j<5;j++){sum=0;for(i=0;i<num;i++)sum+=stu[i].score[j];avec[j]=sum/num;}printf("\n\nGe Ke Ping Jun Fen Wei:\n");/*“各科平均分:”*/printf("===================================\n"); printf("C GaoShu DaWu DianLu MoDian\n");printf("===================================\n"); for(i=0;i<5;i++)printf("%-7.1f",avec[i]);printf("\n");stop();}void paixu1() /*排序(pái xù)界面*/{char c3;for(;;){clrscr();printf("\n\n\n");printf("\t\t\t*************************************\n");printf("\t\t\t* printf("\t\t\t*printf("\t\t\t* printf("\t\t\t* printf("\t\t\t*Pai Xu * \n");1. An Xue Hao * \n"); /*按学号排序(pái xù)*/2. An Ping Jun Fen * \n"); /*按平均分排序(pái xù)*/3. An dan ke cheng ji * \n"); /*按单科成绩(chéngjì)排序*/ ESC. Fan Hui * \n"); /*返回(fǎnhuí)*/printf("\t\t\t*************************************\n\n"); printf("\t\Qing Xuan Ze(press 1.2.3.Esc):\n");/*请选择(xuǎnzé):*/ c3=getch();if(c3==27) break;switch(c3){case '1':paino();break;case '2':paiave();break;case '3':paidkcj();break;default:printf("\nXuan Zen You Wu,Qing Chong Xuan!\n\n");/*选择有误,请重选!*/stop();}}}void paino() /*按学号排序*/{ /*按学号从低到高冒泡法排序*/int i,j,k;for(i=0;i<num;i++)for(j=0;j<num-1-i;j++)if(strcmp(stu[j].no,stu[j+1].no)>0)change(j,j+1);printf("\nPai Xu Hou Wei:\n"); /*“排序后为:”*/output();}void paiave() /*按平均分排序*/{ /*按平均分从高到低冒泡法排序*/int i,j;struct student temp;tongji1(); /*计算平均成绩*/for(i=0;i<num;i++)for(j=0;j<num-i-1;j++)if(stu[j].ave<stu[j+1].ave)change(j,j+1);printf("\n\tPai Xu Hou Wei:\n"); /*“排序(pái xù)后为:”*/printf("\t===============================================\n"); printf("\tXueHao XingMing RuXueNian Ave Pai ming\n");printf("\t===============================================\n"); for(i=0;i<num;i++)printf("\t%-11s% -10s%-11d%-6.2f %4d\n",stu[i].no,stu[i].name,stu[i].year,stu[i].ave,i+1);stop();}void paidkcj() /*按单科成绩(chéngjì)排序*/char c;int i,j,k;for(;;){clrscr();printf("\n");printf("\t\t\t************************************\n\n");printf("\t\t\t printf("\t\t\t printf("\t\t\t printf("\t\t\t printf("\t\t\t printf("\t\t\t printf("\t\t\tDan Ke Cheng Ji1.C Yu Yan2.Gao Shu3.Wu Li4.Dian Lu5.Mo DianEsc.Fan Hui\n");\n"); /*C 语言*/\n"); /*高数*/\n"); /*大学物理*/\n"); /*电路(diànlù)*/\n"); /*模电*/\n\n"); /*返回(fǎnhuí)上级*/printf("\t\t\t************************************\n\n");printf("\tQing xuan ze(press 1.2.3.4.5.Esc):\n");c=getch();if(c==27)break;else if (c>='1'&&c<='5'){k=c-49;for(i=0;i<num;i++)for(j=0;j<num-1-i;j++)if(stu[j].score[k]<stu[j+1].score[k])change(j,j+1);outputx(k);}else printf("\nXuan Zen You Wu,Qing Chong Xuan!\n\n");stop();}}void change(int i,int j) /*交换(jiāohuàn)结构体数组中的两个记录*/ {struct student temp;temp=stu[i];stu[i]=stu[j];stu[j]=temp;void outputx(int k) /*选择(xuǎnzé)输出单科成绩*/{char xueke[5][10]={"Cyuyan","Gaoshu","Wuli","Dianlu","Modian"};char (*p)[10]; /*定义(dìngyì)一个指向包含10 个字符型元素的一维数组的指针变量*/int i;p=xueke;printf("\n\tPai Xu Hou Wei:\n");printf("\t===============================================\n");printf("\tXueHao XingMing RuXueNian %s Pai Ming\n",p+k);printf("\t===============================================\n");for(i=0;i<num;i++)printf("\t%-11s% -10s%-11d%-6.1f%5d\n",stu[i].no,stu[i].name,stu[i].year,stu[i].score[k],i+1);}void find1() /*查找界面(jièmiàn)函数*/{char c4;char cno[11],cname[10];int i,j,cyear;while(1){clrscr();printf("\t\t\t************************************\n");printf("\t\t\t* printf("\t\t\t*printf("\t\t\t* printf("\t\t\t* printf("\t\t\t*Cha Zhao *\n");1. An Xue Hao *\n"); /*按学号查找(chá zhǎo)*/2. An Xing Ming *\n"); /*按姓名(xìngmíng)查找*/3. An Ru Xue Nian *\n"); /*按入学年查找*/ ESC. Fan Hui *\n"); /*返回*/printf("\t\t\t************************************\n"); printf("\t\t\tQing Xuan Ze:\n");/*请选择:*/c4=getch();if(c4==27) break;switch(c4){case '1':printf("Shu Ru Xue Hao:\n");/*“输入学号:”*/gets(cno);i=find(cno);panduani( i);break;case '2':printf("Shu Ru Xing Ming:\n");/*“输入(shūrù)姓名:”*/gets(cname);i=findname(cname);panduani(i);break;case '3':printf("Shu Ru RU Xue Nian:\n");/*“输入(shūrù)入学年”*/scanf("%d",&cyear);findyear(cyear);stop();break;default:printf("Xuan Zen You Wu,Qing Chong Xuan!\n");/*“选择(xuǎnzé)有误,请重选!”*/}}}int findname(char cname[]) /*按姓名(xìngmíng)查找*/{int i;for(i=0;i<num;i++)if(strcmp(stu[i].name,cname)==0) /*判断两个(liǎnɡ ɡè)字符串相等*/return i; /*查找成功*/return -1; /*查找失败*/}void findyear(int cyear){int i,j,flag=0;for(i=0;i<num;i++)if(stu[i].year==cyear){ flag=1;break;}if(flag==0){printf("Yao Cha Zhao De Xue Sheng Bu Cun Zai\n");stop(); }else{printf("Cha Zhao Dao De Xue Sheng Xin Xi Wei:\n");/*“查找到的学生信息为:”*/printf("XueHao XingMing RuXueNian C GaoShu DaWu DianLu MoDian\n");printf("================================================================= ==\n");for(i=0;i<num;i++){if(stu[i].year==cyear) /*判断两个数值相等*/{printf("%-11s% -10s%-11d",stu[i].no,stu[i].name,stu[i].year);for(j=0;j<5;j++)printf("% -7.1f",stu[i].score[j]);printf("\n");}}}}int panduani(int i) /*通过i 的值,判断(pànduàn)信息要查找的信息是否存在*/{int j;if(i==-1){printf("Yao Cha Zhao De Xue Sheng Bu Cun Zai\n");/*要查找的学生(xué sheng)不存在*/ stop();}else{printf("Cha Zhao Dao De Xue Sheng Xin Xi Wei:\n");/*“查找到的学生(xué sheng)信息为:”*/printf("XueHao XingMing RuXueNian C GaoShu DaWu DianLu MoDian\n");printf("================================================================= ==\n");printf("%-11s% -10s%-11d",stu[i].no,stu[i].name,stu[i].year);for(j=0;j<5;j++)printf("% -7.1f",stu[i].score[j]);printf("\n");stop();}}void save() /*保存(bǎocún)文件*/{int i;FILE *fp;if((fp=fopen("stu.dat","wb"))==NULL) /*创建(chuàngjiàn)二进制文件*/{printf("Chuang Jian Shi Bai! Qing Chong Xin Yun Xing Cheng Xu.\n"); /*显示“创建文件失败,请重新运行程序”*/exit(0); /*终止程序*/}for(i=0;i<num;i++)fwrite(&stu[i],1,sizeof(struct student),fp); /*将I+1 名学生成绩写入文件*/fclose(fp);}void main() /*主控菜单(cài dān)*/{char c;init();while(1){clrscr();printf("\n\n\n\t\t\t*****************************\n");printf("\t\t\t* MAIN MENU *\n");printf("\t\t\t* printf("\t\t\t* printf("\t\t\t* printf("\t\t\t* 1. Wei Hu *\n"); /*维护(wéihù)*/2. Tong Ji *\n"); /*统计(tǒngjì)*/3. Pai Xu *\n"); /*排序(pái xù)*/4. Cha Zhao *\n"); /*查找(chá zhǎo)*/printf("\t\t\t* ESC. SAVE & EXIT *\n"); /*存盘退出*/ printf("\t\t\t*****************************\n");printf("\t\t\tQing Xuan Ze:\n");/*请选择:*/c=getch();switch(c){case '1':weihu();break;case '2':tongji();break;case '3':paixu1();break;case '4':find1();break;case 27:save();exit(0);break;default:printf("Xuan Zen You Wu,Qing Chong Xuan!\n");/*“选择有误,请重选!”*/}}}(1) #include<stdio.h>#include<string.h>/* strcmp 函数原型包含*/#define N 100/*定义最大学生人数为100*/struct student /*学生结构体定义*/{char no[11](2) feof(fp)){fread(&stu[num],1,sizeof(struct student),fp)。

学生成绩管理系统(c语言课设)

学生成绩管理系统(c语言课设)
scanf("%s",name);
for(j1=0;j1<=imax-1;j1++)
if(strcmp(name,stu[j1].name)==0)
{ printf("学号 姓名 C语言成绩 数学成绩 英语成绩 总分 平均分 名次\n ");
printf("*9 output record 0 quit system *\n");
printf("**********************************************************\n");
do { printf("输入c语言成绩:\t"); scanf("%d",&stu[i].cgrade);}while(stu[i].cgrade>100||stu[i].cgrade<0);
do { printf("输入数学成绩:\t"); scanf("%d",&stu[i].mgrade);}while(stu[i].mgrade>100||stu[i].mgrade<0);
else if(i1==0) { }
else if(i1==1)
{
if(im>0&&im<=30)
{
for (i=0;i<=im-1;i++)
{
do { printf("输入学号:\t");scanf("%s",&num);}while(strlen(num)>=10);

学生成绩管理系统c语言课程设计

学生成绩管理系统c语言课程设计

学生成绩管理系统c语言课程设计一、课程目标知识目标:1. 让学生掌握C语言中结构体、数组、函数等基本知识点的综合运用,能够设计并实现一个学生成绩管理系统;2. 让学生了解并掌握文件操作在C语言中的实现方法,能够完成数据的存储与读取;3. 让学生理解模块化编程的思想,能够将复杂的程序分解为多个简单、独立的功能模块。

技能目标:1. 培养学生运用C语言解决实际问题的能力,提高编程技巧;2. 培养学生分析问题、设计算法、编写程序、调试程序的能力;3. 培养学生团队协作能力,能够与他人共同完成一个项目。

情感态度价值观目标:1. 培养学生对待编程的兴趣和热情,激发学生学习C语言的积极性;2. 培养学生认真负责、严谨细致的工作态度,养成良好的编程习惯;3. 培养学生善于思考、勇于创新的精神,提高学生的自主学习能力。

分析课程性质、学生特点和教学要求,本课程将目标分解为以下具体学习成果:1. 能够独立设计并实现一个具备基本功能的学生成绩管理系统;2. 能够运用所学知识,完成对学生成绩的增、删、改、查等操作;3. 能够通过团队协作,优化系统功能,提高系统性能;4. 能够对编程过程中遇到的问题进行自主分析、解决,并在实践中不断总结经验,提高编程能力。

二、教学内容根据课程目标,本章节的教学内容主要包括以下几部分:1. C语言基础回顾:结构体、数组、函数的定义与使用;2. 文件操作:文件的打开、关闭、读写操作;3. 模块化编程:功能模块的划分、接口设计、实现与调用;4. 学生成绩管理系统需求分析:功能模块划分、数据结构设计;5. 学生成绩管理系统的设计与实现:各功能模块的具体实现;6. 团队协作与项目实践:项目分工、进度安排、协作沟通。

具体教学大纲安排如下:1. 复习C语言基础知识,明确课程所需掌握的基本概念(1课时);2. 讲解文件操作原理,并通过示例演示文件操作在C语言中的实现(2课时);3. 介绍模块化编程思想,分析学生成绩管理系统功能模块划分及接口设计(2课时);4. 分析学生成绩管理系统需求,引导学生进行数据结构设计(2课时);5. 指导学生进行学生成绩管理系统的设计与实现,分阶段完成各功能模块(6课时);6. 安排团队协作项目实践,确保学生在实践中掌握所学知识,提高编程能力(4课时)。

c语言课程设计学生成绩管理系统代码

c语言课程设计学生成绩管理系统代码

学生成绩管理系统是一个常见的C语言入门项目,可以帮助初学者了解循环、条件控制、结构体、文件操作等基本知识。

以下是一个简单的C语言学生成绩管理系统示例,实现了查询、添加、修改和删除学生成绩等功能。

您可以修改和扩展该代码以满足您的需求:#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct {int id;char name[20];float score;} Student;void display_menu();void add_student();void find_student();void edit_student();void delete_student();void save_data();void load_data();int student_count = 0;Student students[100];int main() {load_data();while (1) {display_menu();int choice;printf("请输入您的选择:");scanf("%d", &choice);switch (choice) {case 1:find_student();break;case 2:add_student();break;case 3:edit_student();break;case 4:delete_student();break;case 5:save_data();printf("数据已保存。

\n");exit(0);default:printf("无效的选项!\n");}}return 0;}void display_menu() {printf("学生成绩管理系统\n");printf("====================\n");printf("1. 查询学生成绩\n");printf("2. 添加学生成绩\n");printf("3. 修改学生成绩\n");printf("4. 删除学生成绩\n");printf("5. 退出系统\n");printf("====================\n");}void add_student() {printf("请输入学生ID:");scanf("%d", &students[student_count].id); printf("请输入学生姓名:");scanf("%s", students[student_count].name); printf("请输入学生成绩:");scanf("%f", &students[student_count].score); student_count++;printf("学生已添加成功!\n");}void find_student() {int id;printf("请输入要查询的学生ID:");scanf("%d", &id);for (int i = 0; i < student_count; ++i) {if (students[i].id == id) {printf("ID:%d, 姓名:%s, 成绩:%.2f\n", students[i].id, students[i].name, students[i].score);return;}}printf("未找到该学生。

C语言课程设计 学生成绩管理系统

C语言课程设计 学生成绩管理系统

#include <stdio.h>#include <malloc.h>#include <string.h>#include <stdlib.h>typedef struct student /*定义一个单链表*/ {char sno[10];char name[10];int Chinese;int Math;int English;int sum;float avg;struct student *next;}student1,*grade;grade get_info(grade L) //输入学生信息{student1 *s,*p=NULL,*q;int flag,n,i;char choice='Y';while(choice!='N'&&choice!='n'){printf("\n请输入要录入的学生个数:");scanf("%d",&n);for(i=1;i<=n;i++){s=(student1 *)malloc(sizeof(student1));printf("\n请输入学生的学号:\n");scanf("%s",&s->sno);printf("\n请输入学生的姓名:\n");scanf("%s",&s->name);printf("\n请输入学生的语文成绩:\n");scanf("%d",&s->Chinese);printf("\n请输入学生的数学成绩:\n");scanf("%d",&s->Math);printf("\n请输入学生的英语成绩:\n");scanf("%d",&s->English);s->sum=s->Chinese+s->Math+s->English;s->avg=(float)s->sum/3;if(L!=NULL){q=L;p=L;while(q){flag=strcmp(q->sno,s->sno);if(flag==0){printf("该学生已存在!\n");break;}q=q->next;}if(flag!=0){while(p->next) p=p->next;p->next=s;p=s;s->next=NULL; /*尾结点的指针置空,下同!*/}}else{L=s;s->next=NULL;}}printf("\n是否继续?(Y/N或y/n):");scanf("%s",&choice);system("cls");}return L;}sno_select(grade L) /*按学生学号查找*/{student1 *p=L;char num[10],choice='Y';int i=1,flag;while(choice!='N'&&choice!='n'){printf("\n请输入该学生的学号:");scanf("%s",&num);while(p){flag=strcmp(p->sno,num);if(flag==0){printf("\n*************************************************************\n");printf("\t学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");printf("\t%s\t%s\t%d\t%d\t%d\t%d\t%.2f\n",p->sno,p->name,p->Chinese,p->Math,p->English,p->sum,p->avg);printf("***************************************************************\n");break;}else p=p->next;}if(flag) printf("\n不存在该学号的学生!\n\n");printf("继续查找?(Y/N或y/n):");scanf("%s",&choice);system("cls");}return 0;}grade_select(grade L) /*按分数段查询*/{int n,m,j,k=0,x=0,y=0;char choice='Y';student1 *p=L;while(choice!='N'&&choice!='n'){printf("\n可查找的科目的菜单如下:\n");printf("\t 1.语文 2.数学 3.英语\n");printf("请选择(输入序号即可):");scanf("%d",&j);printf("\n请输入一个分数段,即输入n,m的值(n<m):");scanf("%d%d",&n,&m);printf("\n*************************************************************\n");printf("\t学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");while(p){if(j==1){x=1;y=1;if(p->Chinese>=n&&p->Chinese<=m){printf("\t%s\t%s\t%d\t%d\t%d\t%d\t%.2f\n",p->sno,p->name,p->Chinese,p->Math,p->English,p->sum,p->avg);k=1;}}if(j==2){k=1;y=1;if(p->Math>=n&&p->Math<=m){printf("\t%s\t%s\t%d\t%d\t%d\t%d\t%.2f\n",p->sno,p->name,p->Chinese,p->Math,p->English,p->sum,p->avg);x=1;}}if(j==3){k=1;x=1;if(p->English>=n&&p->English<=m){printf("\t%s\t%s\t%d\t%d\t%d\t%d\t%.2f\n",p->sno,p->name,p->Chinese,p->Math,p->English,p->sum,p->avg);}}p=p->next;}printf("\n*************************************************************\n");if(L==NULL) printf("该系统还没有存放数据!\n\n");else{if(k==0) printf("没有学生的语文成绩在这个分数段上\n\n");if(x==0) printf("没有学生的数学成绩在这个分数段上\n\n");if(y==0) printf("没有学生的英语成绩在这个分数段上\n\n");}k=0;x=0;y=0;printf("继续查找?(Y/N或y/n):");scanf("%s",&choice);system("cls");}}statistics(grade L) /*统计函数*/{student1 *p=L;int i=0;char choice='N';float all_avg=0;while(choice!='Y'&&choice!='y'){while(p){all_avg=all_avg+p->avg;p=p->next;i++;}printf("\n===================================================\n");printf("该班级总人数为:%d\n",i);if(L==NULL) printf("该班级的平均分为:0\n");else printf("该班级的平均分为:%5.2f\n",all_avg/i);printf("===================================================\n");printf("\n退出?(Y或y):");scanf("%s",&choice);}system("cls");}grade delete_grade(grade L) /*删除指定学生成绩函数*/{student1 *p=L,*q=L;int i=1,flag;char choice='Y',num[10];while(choice!='N'&&choice!='n'){printf("\n===================================================\n");if(L==NULL) printf("该系统中不存在任何数据\n\n");else{printf("\n请输入想要删除的学生学号:");scanf("%s",&num);while(p){flag=strcmp(p->sno,num);if(flag==0){if(q==p){L=q->next;free(q);}else{while(q->next!=p) q=q->next;q->next=p->next;free(p);}break;}p=p->next;}if(flag) printf("\n不存在该学生");else printf("\n删除成功!");printf("\n===================================================\n");}p=L;q=L;printf("继续删除?(Y/N或y/n):");scanf("%s",&choice);system("cls");}return L;}asc_order_grade(grade L) /*升序排序函数*/{int k,x=1,n=0,m,y;float z;student1 *p,*q,*s=L;char t[10],choice;while(s) /*计算链表数据个数n*/{s=s->next;n++;}while(x){choice='N';printf("****************************************\n");printf(" 成绩升序排序菜单如下:\n");printf(" -----------------------------------\n");printf(" 1.按语文成绩升序排序\n");printf(" 2.按数学成绩升序排序\n");printf(" 3.按英语成绩升序排序\n");printf(" 4.按总成绩升序排序\n");printf(" 5.按平均成绩升序排序\n");printf(" 6.返回主菜单\n");printf("****************************************\n");printf("请选择(输入菜单序号即可):");scanf("%d",&k);system("cls");if(k==1) /*按语文成绩升序排序*/{while(choice!='Y'&&choice!='y'){for(m=0;m<n-1;m++){p=L;while(p->next){q=p->next;if(p->Chinese>=q->Chinese){strcpy(t,p->sno); /*学号交换*/strcpy(p->sno,q->sno);strcpy(q->sno,t);strcpy(t,p->name); /*学号交换*/strcpy(p->name,q->name);strcpy(q->name,t);y=p->Chinese; /*语文成绩交换*/p->Chinese=q->Chinese;q->Chinese=y;y=p->Math; /*数学成绩交换*/p->Math=q->Math;q->Math=y;y=p->English; /*英语成绩交换*/p->English=q->English;q->English=y;y=p->sum; /*总成绩交换*/p->sum=q->sum;q->sum=y;z=p->avg; /*平均成绩交换*/p->avg=q->avg;q->avg=z;}p=p->next;}}p=L;printf("\n按语文成绩升序排序的最终结果为:\n");printf("\n*************************************************************\n");printf("\t学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");while(p){printf("\t%s\t%s\t%d\t%d\t%d\t%d\t%.2f\n",p->sno,p->name,p->Chinese,p->Math,p->English,p->sum,p->avg);p=p->next;}printf("\n*************************************************************\n");printf("\n\n");printf("退出?(Y或y)");scanf("%s",&choice);system("cls");}}else if(k==2) /*按数学成绩升序排序*/{while(choice!='Y'&&choice!='y'){for(m=0;m<n-1;m++){p=L;while(p->next){q=p->next;if(p->Math>=q->Math){strcpy(t,p->sno); /*学号交换*/strcpy(p->sno,q->sno);strcpy(q->sno,t);strcpy(t,p->name); /*学号交换*/strcpy(p->name,q->name);strcpy(q->name,t);y=p->Chinese; /*语文成绩交换*/p->Chinese=q->Chinese;q->Chinese=y;y=p->Math; /*数学成绩交换*/p->Math=q->Math;q->Math=y;y=p->English; /*英语成绩交换*/p->English=q->English;q->English=y;y=p->sum; /*总成绩交换*/p->sum=q->sum;q->sum=y;z=p->avg; /*平均成绩交换*/p->avg=q->avg;q->avg=z;}p=p->next;}}p=L;printf("\n按数学成绩升序排序的最终结果为:\n");printf("\n*************************************************************\n");printf("\t学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");while(p){printf("\t%s\t%s\t%d\t%d\t%d\t%d\t%.2f\n",p->sno,p->name,p->Chinese,p->Math,p->English,p->sum,p->avg);p=p->next;}printf("\n*************************************************************\n");printf("\n\n");printf("退出?(Y或y)");scanf("%s",&choice);system("cls");}}else if(k==3) /*按英语成绩升序排序*/{while(choice!='Y'&&choice!='y'){for(m=0;m<n-1;m++){p=L;while(p->next){q=p->next;if(p->English>=q->English){strcpy(t,p->sno); /*学号交换*/strcpy(p->sno,q->sno);strcpy(q->sno,t);strcpy(t,p->name); /*学号交换*/strcpy(p->name,q->name);strcpy(q->name,t);y=p->Chinese; /*语文成绩交换*/p->Chinese=q->Chinese;q->Chinese=y;y=p->Math; /*数学成绩交换*/p->Math=q->Math;q->Math=y;y=p->English; /*英语成绩交换*/p->English=q->English;q->English=y;y=p->sum; /*总成绩交换*/p->sum=q->sum;q->sum=y;z=p->avg; /*平均成绩交换*/p->avg=q->avg;q->avg=z;}p=p->next;}}p=L;printf("\n按英语成绩升序排序的最终结果为:\n");printf("\n*************************************************************\n");printf("\t学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");while(p){printf("\t%s\t%s\t%d\t%d\t%d\t%d\t%.2f\n",p->sno,p->name,p->Chinese,p->Math,p->English,p->sum,p->avg);p=p->next;}printf("\n*************************************************************\n");printf("\n\n");printf("退出?(Y或y)");scanf("%s",&choice);system("cls");}}else if(k==4) /*按总成绩升序排序*/ {while(choice!='Y'&&choice!='y'){for(m=0;m<n-1;m++){p=L;while(p->next){q=p->next;if(p->sum>=q->sum){strcpy(t,p->sno); /*学号交换*/strcpy(p->sno,q->sno);strcpy(q->sno,t);strcpy(t,p->name); /*学号交换*/strcpy(p->name,q->name);strcpy(q->name,t);y=p->Chinese; /*语文成绩交换*/p->Chinese=q->Chinese;q->Chinese=y;y=p->Math; /*数学成绩交换*/p->Math=q->Math;q->Math=y;y=p->English; /*英语成绩交换*/p->English=q->English;q->English=y;y=p->sum; /*总成绩交换*/p->sum=q->sum;q->sum=y;z=p->avg; /*平均成绩交换*/p->avg=q->avg;q->avg=z;}p=p->next;}}p=L;printf("\n按总成绩升序排序的最终结果为:\n");printf("\n*************************************************************\n");printf("\t学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");while(p){printf("\t%s\t%s\t%d\t%d\t%d\t%d\t%.2f\n",p->sno,p->name,p->Chinese,p->Math,p->English,p->sum,p->avg);p=p->next;}printf("\n*************************************************************\n");printf("\n\n");printf("退出?(Y或y)");scanf("%s",&choice);system("cls");}}else if(k==5) /*按平均绩升序排序*/{while(choice!='Y'&&choice!='y'){for(m=0;m<n-1;m++){p=L;while(p->next){q=p->next;if(p->avg>=q->avg){strcpy(t,p->sno); /*学号交换*/strcpy(p->sno,q->sno);strcpy(q->sno,t);strcpy(t,p->name); /*学号交换*/strcpy(p->name,q->name);strcpy(q->name,t);y=p->Chinese; /*语文成绩交换*/p->Chinese=q->Chinese;q->Chinese=y;y=p->Math; /*数学成绩交换*/p->Math=q->Math;q->Math=y;y=p->English; /*英语成绩交换*/p->English=q->English;q->English=y;y=p->sum; /*总成绩交换*/p->sum=q->sum;q->sum=y;z=p->avg; /*平均成绩交换*/p->avg=q->avg;q->avg=z;}p=p->next;}}p=L;printf("\n按平均成绩升序排序的最终结果为:\n");printf("\n*************************************************************\n");printf("\t学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");while(p){printf("\t%s\t%s\t%d\t%d\t%d\t%d\t%.2f\n",p->sno,p->name,p->Chinese,p->Math,p->English,p->sum,p->avg);p=p->next;}printf("\n*************************************************************\n");printf("\n\n");printf("退出?(Y或y)");scanf("%s",&choice);system("cls");}}else if(k==6){system("cls");break;}else printf("请输入正确的序号!!\n\n");}}void menu() /*菜单函数*/{printf("\t\t|----------------------------------------|\n");printf("\t\t| 欢迎进入学生成绩管理系统|\n");printf("\t\t|----------------------------------------|\n");printf("\t\t|****************************************|\n");printf("\t\t| 1.录入学生信息|\n");printf("\t\t| 2.按指定学生学号查询|\n");printf("\t\t| 3.按指定分数段查询|\n");printf("\t\t| 4.统计操作|\n");printf("\t\t| 5.删除指定学生成绩|\n");printf("\t\t| 6.成绩升序排序|\n");printf("\t\t| 7.退出|\n");printf("\t\t|****************************************|\n"); }int main(){int i=10;grade L=NULL;while(i!=8){menu();printf("根据菜单,请输入想要执行的功能的数字代号:");scanf("%d",&i);system("cls");switch(i){case 1:L=get_info(L);break;case 2:sno_select(L);break;case 3:grade_select(L);break;case 4:statistics(L);break;case 5:L=delete_grade(L);break;case 6:asc_order_grade(L);break;case 7:printf("\n\n\t\t\t谢谢使用!\n\n\t\t\t 再见!\n");break;default:printf("请输入正确的序号!!\n\n");}}}。

学生成绩管理系统c语言课程设计

学生成绩管理系统c语言课程设计

学生成绩管理系统c语言课程设计一、课程目标知识目标:1. 理解C语言在学生成绩管理系统中的应用和重要性;2. 掌握C语言的基本语法,如数据类型、运算符、控制结构等;3. 学会使用C语言数组、函数和文件操作实现学生成绩的存储、查询、修改和删除;4. 了解结构体在C语言中的应用,能够使用结构体表示和管理学生信息。

技能目标:1. 能够运用所学知识,独立设计和编写一个简单的学生成绩管理系统;2. 培养学生的编程思维和解决问题的能力,使其能够分析需求,提出解决方案;3. 提高学生的团队协作和沟通能力,能够在小组合作中发挥积极作用。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发其学习C语言的积极性;2. 培养学生的责任感和自信心,使其在学习过程中保持积极的心态;3. 培养学生尊重知识产权,遵循编程规范,养成良好的编程习惯。

本课程旨在通过学生成绩管理系统的设计与实现,使学生在掌握C语言基础知识的基础上,提高编程实践能力。

针对学生的年级特点,课程注重培养学生的学习兴趣、动手能力和团队协作精神,使其在完成课程任务的过程中,形成积极向上的情感态度价值观。

课程目标的设定既符合学科知识体系,又注重学生个体发展需求,为后续教学设计和评估提供明确的方向。

二、教学内容本课程教学内容依据课程目标,结合教材章节,进行以下安排:1. C语言基础知识回顾:- 数据类型、变量和常量- 运算符和表达式- 控制结构(顺序、选择、循环)2. 数组与函数:- 数组的概念及应用- 函数的定义、声明和调用- 递归函数3. 结构体与文件操作:- 结构体的定义和使用- 文件的打开、读写和关闭- 学生信息存储与读取4. 学生成绩管理系统设计与实现:- 系统需求分析- 功能模块划分- 编程实现(数据输入、查询、修改、删除、排序等)5. 团队协作与项目实践:- 小组分工与协作- 代码审查与优化- 项目测试与总结教学内容按照以上五个方面进行系统性地组织,确保学生能够逐步掌握C语言在学生成绩管理系统中的应用。

学生成绩管理系统C语言(附完整源代码)

学生成绩管理系统C语言(附完整源代码)

学生成绩管理系统C语言(附完整源代码)学生成绩管理系统C语言(附完整源代码)课程设计报告学生成绩管理系统院系:专业:班级:完成日期: 2009年1月03日设计题目:学生成绩管理系统目录1、题目描述2、算法设计/设计思想3、结构框图、各模块的功能描述4、主体思想:5、程序的,,,流程图6、源代码1.题目描述设计一个简单的学生成绩管理系统,要求有简单的界面,程序段要分清模块,该程序应该:(1)输入学生成绩,求总分,平均分,以及排序。

(2)查询学生单科成绩,总分和平均成绩;(3)添加、修改学生成绩具有下列功能:(4)实现保存与查看功能2.算法设计/设计思想利用二维数组——定义stu[][]存储学生学号、各科成绩,总分,平均分,名次,利用文件来存储,读取数据。

详细合作是::负责inputx(),print1(),input();:卖力文件的储备和读取,main(),System(),Idea()和各挪用函数之间的连;:卖力find1(),find2(),find3(),find31(),Find();:负责del(),add(),change1(),Change();前期调试由小组配合卖力。

3.结构框图、各模块的功能描述3.1建立成就表3.1.1 input()功用是输退学生的信息,便于当前的查询、欣赏。

3.2增加3.2.1 add( )功用是向inputy()增加新的内容。

3.3.2 chance( )对单科成绩进行修改。

3.3查询3.3.1可根据学号,科目,名次,进行查询。

3.3.2查询内容包孕:该学生的各课成就、、均匀分。

3.4删除3.4.1能够输退学号删除一逻辑学生的一课成就。

3.5浏览成绩单3.5.1通过此print1()可以查看所有学生的各课成绩、总分、平均分和名次。

3.6文件()3.6.1保存以上所输入的信息以达到既是关闭窗口信息也不会丢失信息的目的。

3.6.2随时打开,修改文件。

3.7.退出功用是退出主菜单退出系意见评述功能菜单统输入增加及改查找功用退出功用菜单成就功用查输排查找学学添修某某生生加改XXX某成成就绩科绩绩绩成就按按按名学科次号目查查查找找找四、主体思想:1、斟酌到此步伐量大代码多,以是用函数挪用,分几小我去完成。

c语言课程设计(3)学生成绩管理系统

c语言课程设计(3)学生成绩管理系统

学生成绩管理程序本章课程是设计一个实用的小型学生成绩管理程序,它要求不用链表,而用数组来设计这个程序,它有查询和检索功能,并且能够对指定文件操作,也可将多个文件组成一个文件。

设计要求1.功能设计要求设计要求实现的功能较多,所以将它们分为几个部分叙述。

建立文件●可以使用默认文件名或指定文件名将记录存储到文件;●文件保存成功返回0,失败返回-1;●设置保存标志savedTag作为是否对记录进行存储操作的信息;●写同名文件将覆盖原来文件的内容;增加学生记录●可在已有记录后面追加新的记录●可以随时用它增加新的记录,它们仅保存在结构数组中;●可以将一个文件读入,追加在已有记录之后;●如果已经采取文件追加的方式,在没有保存到文件之前,将继续保持文件追加状态,以便实现连续文件追加操作方式;●如果没有记录存在,给出提示信息。

显示记录●如果没有记录可供显示,给出提示信息;●可以随时显示内存中的记录文件存储●可以按默认名字或指定名字存储记录文件;●存储成功返回0.,否则返回-1;●更新存储标志;读取文件●可以按照默认名字或指定名字将记录文件读入内存;●读取成功返回0,否则返回-1;●可以将指定或默认文件追加到现有记录并更新记录的尾部;●可以将文件连续追加到现有记录并更新记录的名词;●更新存储标志;删除记录●可以按“学好”、“姓名”、“名词”方式删除记录;●给出将删除记录的信息,经确认后在删除;●如果已经是空表,删除时给出提示信息并返回菜单;●如果没有要删除的信息,输出没有找到的信息;●应该更新其他记录的名词;●删除操作权限于内存,只有执行存记录时,才能覆盖原记录;修改记录●可以按“学号”、“姓名”、“名次”方式修改记录内容;●给出将修改记录的信息,经确认后进行修改;●如果已经是空表,应给出提示信息并返回主菜单;●如果没有找到需要要改的信息,输出提示信息;●应该同时更新其他记录的名词;●修改操作权限于内存,只有进行存储操作时,才能覆盖原记录;●更新存储标志;查询记录●可以按“学号”、“姓名”、“名次”方式修改记录内容;●能给出查询记录的信息;●如果查询的信息不存在,输出提示信息;对记录进行排序●可以按学好进行升序或降序排序;●可以按名称进行升序和降序排序;●可以按名词进行升序或降序排序;●如果属于选择错误,可以立即退出排序;●更新存储标志;头文件●使用条件编译定义头文件;●函数原型声明;●数据结构及包含文件;测试程序●应列出测试大纲对程序进行测试;●应保证测试用例测试到程序的各种边缘情况;●以上是基本要求,希望通过对本章设计的理解,重新考虑如何进行设计。

学生成绩管理系统C语言课程设计

学生成绩管理系统C语言课程设计

××××学院课程设计报告课程名称:学院:专业班级:姓名:学号:指导教师:完成时间:报告成绩:评阅意见:评阅老师:评阅时间:、 “ “ “《学生成绩管理系统》C 语言课程设计一、 设计要求1) 收集资料,全面分析课题,分解问题,形成中体编程思路;2) 深入分析各个小问题,编写个部分程序模块;3) 对于设计中用到的关键函数,要联系实际 问题进行具体介绍; 4) 上机调试,确保程序能正确运行;二、 设计目的:1) 通过设计,了解 C 语言的实际运用,加强对 C 语言的重视;2) 通过设计,强化 C 语言的基本运用及 C 语句的准确掌握;3) 通过设计,掌握设计软件一般方法,了解软件设计的一般思路; 4) 通过设计,锻炼撰写报告的水平。

三、 课题分析:编写一个《学生成绩管理系统》的 C 程序,包括以下功能:1) 学号段查询功能;2) 输入功能;3) 添加功能、修改功能; 4) 成绩处理功能等5) 可实现数据输入、数据显示、数据插入、数据访问、数据保留、数据更新等存储功能,以及各学科平均分、最高分、最低分的提取等数据处理功能。

该程序运行相对只能化,可通过学号比较来插入数据、根据姓名查找数据以及更新数据。

其操作简单,查找方 便,修改迅速,普遍适合学校学生成绩管理,可大大减少人工管理的工作量,提高工作效 率。

四、 定义数据结构及相关解释:1) 在《学生成绩管理系统》中,各模块功能系统之间构成的数据结构关系为非线性数据结构的树结构。

2) 树结构:每一个结点只有一个前件,称为父结点。

没有前件的结点只有一个,称为树的根结点,简称树的根。

在《学生成绩管理系统》中的数据结构图中“图书馆管理程序”为根;在树结构中,每一个结点都可以有多个后件,他们都称为该结点的子结点,没有后 件的结点称为叶子。

例如,在《学生成绩管理系统》中的数据结构图中“查看数据” 通 过比较学号来插入数据”、 通过姓名查找查看数据”、 通过姓名查找来更新数据”、 保留数据”以及求各学科的“平均分、最高分、最低分”为“学生成绩管理系统”的子结点,也是该树结构的叶子。

c语言课程设计学生成绩管理系统源代码

c语言课程设计学生成绩管理系统源代码

标题:C语言课程设计——学生成绩管理系统源代码摘要:本文介绍了一份用C语言编写的学生成绩管理系统源代码。

通过该系统,教师和学生可以方便地进行成绩录入、查询、修改和统计等操作。

文章从简单到复杂地介绍了系统的各个模块和功能,并提供了自己对该系统的理解和观点。

【序言】在现代教育系统中,学生成绩管理是一项重要任务。

为了方便教师进行成绩管理和学生了解自己的成绩情况,我们设计了一款学生成绩管理系统,使用C 语言实现。

该系统简洁易用,提供了多个功能模块,包括成绩录入、查询、修改和统计等。

通过本文,我们将逐步介绍该系统的具体实现和设计思路。

【正文】 1. 【模块1:登陆模块】在学生成绩管理系统中,首先需要实现登陆模块,以确保只有授权人员才能访问和管理成绩信息。

该模块要求用户输入用户名和密码,与预先存储的用户名和密码进行匹配。

一旦验证成功,用户将获得访问系统的权限。

我们在设计中使用了安全的密码存储方式,如hash算法等。

2.【模块2:成绩录入模块】学生成绩录入是该系统的核心功能之一。

在该模块中,教师可以输入学生的学号、尊称和各项科目的考试成绩。

我们使用了结构体数组来存储学生的相关信息,并通过循环和用户输入实现多次成绩录入,确保系统的灵活性和扩展性。

3.【模块3:成绩查询模块】为了便捷地查询学生成绩,我们设计了成绩查询模块。

该模块允许用户通过学号或尊称查询学生的成绩。

我们使用了线性搜索算法和条件判断来实现查询功能,并通过输出语句将查询结果展示给用户。

4.【模块4:成绩修改模块】在实际教学中,教师可能需要对学生的成绩进行修改。

为此,我们设计了成绩修改模块。

该模块允许用户根据学生的学号或尊称选择需要修改的学生,并提供修改学生各项科目成绩的功能。

我们使用了指针和条件判断等技术,确保修改操作的准确性和可靠性。

5.【模块5:成绩统计模块】学生成绩统计模块可以帮助教师对班级的整体成绩进行分析和评估。

该模块提供了课程总成绩、平均分、最高分、最低分等统计指标。

学生成绩管理系统代码c语言编写

学生成绩管理系统代码c语言编写

C程序学生管理系统/* Note:Your choice is C IDE */#include"stdio.h"#include"stdlib.h"#include"string.h"typedef struct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedef struct unit//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL) { printf("=>初始化失败!");return 0;}else{p->next=NULL;p->date.number=0;//头结点存放学生人数 printf("初始化成功!\n");return p;}}void add(unit *head)//增加学生{unit *p,*q;int m,n=0;q=head->next;p=(unit*)malloc(sizeof(unit));printf("=>请输入新生姓名!\n");gets(p->);fflush(stdin);printf("=>请输入学号!\n");while(n==0){scanf("%d",&m);fflush(stdin);if(q==NULL) n=1;while(q){if(q->date.number==m){printf("=>你输入的学号与已有同学的学号相同,请重新输入!\n");q=head->next;break;}else{q=q->next;if(q==NULL) n=1;}}}p->date.number=m;printf("=>请输入性别!\n");gets(p->date.sex);fflush(stdin);printf("=>请输入数学成绩\n");scanf("%d",&m);fflush(stdin);p->date.math=m;printf("=>请输入英语成绩\n");scanf("%d",&m);fflush(stdin);p->date.eglish=m;printf("=>请输入c语言成绩\n");scanf("%d",&m);fflush(stdin);p->date.clanguge=m;p->date.average=(p->date.math+p->date.eglish+p->date.clanguge);q=head->next;head->next=p;p->next=q;head->date.number++;}void deletion(unit *head)//删除一名学生{unit *p=head->next,*q=head;char N[10];printf("=>请输入你想删除的学生姓名!\n");gets(N);fflush(stdin);if(p==NULL)printf("=>系统无学生可删除!\n");while(p){if(strcmp(p->,N)==0){q->next=p->next;head->date.number--;printf("=>删除%s成功!\n",p->);free(p);break;}else{p=p->next;q=q->next;if(p==NULL)printf("=>你要删除的学生不存在,删除失败!\n");}}}int display(unit *head)//显示学生信息{unit *p=head->next;int m,n=0;char N[10];if(p==NULL){printf("=>系统无学生!\n");return 0;}while(n==0){printf("********************************************************* *********************\n");printf("=>请选择你的操作!\n");printf("=>\t\t\t1.显示所有\t2.按姓名查找\n\t\t\t3.按学号查找\t4.返回主菜单\n");scanf("%d",&m);fflush(stdin);switch(m){case 1:printf("\n=>该系统拥有%d名学生!\n\n",head->date.number);p=head->next;printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n\n");while(p){printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date.numb er,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);p=p->next;}break;case 2:printf("=>请输入查找姓名!\n");gets(N);fflush(stdin);p=head->next;while(p){if(strcmp(p->,N)==0){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t 综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date.numb er,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);break;}else{p=p->next;if(p==NULL)printf("=>你要查的学生不存在!");}}break;case 3: printf("=>请输入查找学号!\n");scanf("%d",&m);fflush(stdin);p=head->next;while(p){if(p->date.number==m){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t 综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date.numb er,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);break;}else{p=p->next;if(p==NULL)printf("=>你要查的学生不存在!\n");}}break;case 4:n=1;break;}}return 1;}int range(unit *head)//排序{unit *p=head,*q=head->next;int n,i,m=head->date.number;printf("********************************************************* **********************\n");printf("\t\t\t1.按学号\t2.按成绩\n\n");printf("=>请选择操作!\n》");scanf("%d",&n);fflush(stdin);if(q==NULL){ printf("=>无学生可排序!\n");return 0;}switch(n){case 2:for(i=0;i<m;i++)//按总分排序{p=head;q=head->next;while(q->next){if((q->date.average)<(q->next->date.average)){p->next=q->next;p=p->next;q->next=p->next;p->next=q;}else{p=p->next;q=q->next;}}}break;case 1:for(i=0;i<=m;i++)//按学号排序{p=head;q=head->next;while(q->next){if((q->date.number)>(q->next->date.number)){p->next=q->next;p=p->next;q->next=p->next;p->next=q;}else{p=p->next;q=q->next;}}}break;}printf("=>排序成功!\n");return 1;}void menu(){printf("\n********************************* 主菜单***************************************\n");printf("\t\t\t1.新建系统\t2.添加学生\n\t\t\t3.删除学生\t4.查看信息\n\t\t\t5.排列顺序\t6.读取信息\n\t\t\t7.保存信息\t8.退出系统\n");printf("=>请选择你的操作!\n");}int save(unit *head)//保存{FILE *fp;unit *p;p=head;if((fp=fopen("d:\\学生","wb+"))==NULL){printf("=>保存失败!");return 0;}while(p){fwrite(&(p->date),sizeof(student),1,fp);p=p->next;}printf("=>保存成功!");fclose(fp);return 1;}unit* read()//读入系统学生信息{int i;unit *p,*q,*head;FILE *fp;if((head=(unit*)malloc(sizeof(unit)))==NULL) { printf("=>开辟空间失败!");exit(1);}else{head->next=NULL;head->date.number=0;//头结点存放学生人数}q=head;if((fp=fopen("d:\\学生","rb"))==NULL){printf("=>系统无学生!\n");return 0;}fread(&(q->date),sizeof(student),1,fp);for(i=0;i<head->date.number;i++){if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>读值失败!");exit(1);}fread(&(p->date),sizeof(student),1,fp);p->next=q->next;q->next=p;}fclose(fp);return head;}void main(){int m=0,n, i;unit *head;printf("************************************************************* *******************\n\n");printf("\t\t\t* 欢迎使用学生成绩管理系统 * \n");printf("\n\t\t\t\t\t\t\t\t编译员:岳英明\n\n");printf("=>正在读取系统信息......\n");if((head=read())==0){printf("=>是否新建?\n");printf("\t\t\t是(1)\t\t否(2)\n");scanf("%d",&i);fflush(stdin);if(i==1)head=build();else if(i==2)exit(1);}elseprintf("=>信息导入成功!");while(m==0){menu();scanf("%d",&n);fflush(stdin);switch(n){case 1: head=build();break;case 2:add(head);break;case 3:deletion(head);break;case 4:display(head);break;case 5: range(head);break;case 6:head=read();if(head!=0) printf("=>读取存盘成功!\n");break;case 7:save(head);break;case 8:m=1;break;}}}。

c语言课程设计报告学生成绩管理系统总结 (2)

c语言课程设计报告学生成绩管理系统总结 (2)

C语言课程设计报告——学生成绩管理系统总结摘要本文主要总结了一个基于C语言的学生成绩管理系统的设计与实现过程。

该系统能够实现学生信息录入、成绩查询、成绩统计和成绩分析等功能。

通过本次课程设计,不仅能够提高学生对C语言编程的掌握能力,同时也能够对学生成绩管理系统的设计与实现有更深入的理解。

1. 引言学生成绩管理系统是学校教务管理的重要组成部分,也是教师和学生必备的工具。

随着计算机技术的发展,越来越多的学校开始采用电子化的方式管理学生成绩。

本次课程设计旨在设计并实现一个基于C语言的学生成绩管理系统,通过使用C语言进行编码和调试,提高学生的编程实践能力。

2. 需求分析2.1 学生信息录入学生成绩管理系统需要能够实现学生信息的录入功能,包括学号、姓名、性别、年龄等基本信息。

2.2 成绩查询学生成绩管理系统需要提供成绩查询功能,输入学生学号或姓名,系统能够返回该学生的成绩信息。

2.3 成绩统计学生成绩管理系统需要能够对某门课程的成绩进行统计,包括最高分、最低分、平均分等。

2.4 成绩分析学生成绩管理系统需要能够对学生成绩进行分析,比如成绩段划分、及格率统计等。

3. 设计与实现3.1 系统框架设计学生成绩管理系统采用模块化设计,包括学生信息录入模块、成绩查询模块、成绩统计模块和成绩分析模块。

每个模块根据功能需求进行设计,各模块间通过函数调用来实现数据传递和处理。

3.2 学生信息录入模块学生信息录入模块主要包括输入学生基本信息的函数。

通过使用C语言的输入函数scanf,可以实现从键盘输入学生学号、姓名、性别、年龄等信息,并将其存储在学生信息结构体数组中。

3.3 成绩查询模块成绩查询模块主要提供根据学号或姓名查询学生成绩的函数。

用户可以输入要查询的学生学号或姓名,系统会遍历学生信息结构体数组,找到对应的学生信息并输出其成绩信息。

3.4 成绩统计模块成绩统计模块主要实现对某门课程成绩进行统计的函数。

系统会遍历学生信息结构体数组,找到指定课程的成绩,计算最高分、最低分和平均分,并将结果返回给用户。

学生成绩管理系统c语言课程设计

学生成绩管理系统c语言课程设计

学生成绩管理系统c语言课程设计一、引言学生成绩管理系统是一种可以帮助学校或教育机构管理学生的成绩、课程和考试信息的软件。

本文将介绍一个基于C语言的学生成绩管理系统的设计过程。

二、需求分析在设计一个学生成绩管理系统之前,我们需要先进行需求分析。

以下是该系统需要满足的基本需求:1. 学生信息管理:包括添加、删除和修改学生信息,如姓名、性别、年龄等;2. 课程信息管理:包括添加、删除和修改课程信息,如课程名称、授课教师等;3. 成绩录入:可以录入每个学生在每门课程中的成绩;4. 成绩查询:可以查询某个学生在某门课程中的成绩以及某门课程所有学生的成绩排名等;5. 成绩统计:可以统计某个班级或某门课程所有学生的平均分、最高分和最低分等。

三、系统设计1. 数据结构设计为了实现上述需求,我们需要定义一些数据结构来存储相关信息。

以下是我们所定义的数据结构:(1)Student结构体:用于存储每个学生的基本信息,包括姓名、性别、年龄等。

typedef struct {char name[20];char sex[10];int age;} Student;(2)Course结构体:用于存储每门课程的基本信息,包括课程名称、授课教师等。

typedef struct {char name[20];char teacher[20];} Course;(3)Score结构体:用于存储每个学生在每门课程中的成绩。

typedef struct {int student_id;int course_id;float score;} Score;(4)Class结构体:用于存储某个班级的所有学生和所选的所有课程。

typedef struct {Student students[MAX_STUDENT_NUM];int student_num;Course courses[MAX_COURSE_NUM];int course_num;} Class;2. 功能实现在上述数据结构定义完成之后,我们可以开始实现各个功能模块。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
case 8:system("cls");goto Loop;
case 9:Modify_admin();break;
default:Wrong();getch();break;
}
}
}
else
{
while(1)
{
system("cls");
menu2();
scanf("%d",&select);
if(select==0)
二 课程设计的内容
通过C语言程序系统,设计一个可以对学生的成绩信息进行管理的程序,其中学生的信息可以包括:学号、各科目的成绩的平均分排序等,其功能可以包括学生成绩的输入、输出、查询、排序、删除、统计、退出等。
三 课程设计的要求与数据
1、用C语言实现系统;
2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出、显示,以及整个程序的切换登录模式和修改管理员的信息.
信息技术工程学院
C语言课程设计报告
题目:学生成绩管理系统(student achievement management system)
一设计目的3
二课程设计的内容3
三课程设计的要求与数据4
四课程设计应完成的工作4
五总体设计(包含几大功能模块)5
六详细设计6
各个模块的功能和实现6
流程图7
(管理员模式流程图)7
(来宾模式流程图)8
8
七调试分析(各模块测试结果)9
源代码9
各模块测试结果24
八总结29
九参考资料30
一 设计目的
通过本课程设计巩固《C语言程序设计》课程的教学成果,深入理解结构体、指针、链表、动态分配内存和文件操作的等C程序设计中的中高级技术,通过课程设计的综合训练,培养学生实际分析问题、编程和动手能力、提高学生利用C语言进行程序设计的能力,初步培养良好的编程习惯和编程风格,初步学习程序的文档的撰写方法。
printf("\n");
printf(" *******************************************************************\n");
printf(" * *\n");
printf(" * 1 输入成绩 2 删除成绩 *\n");
printf(" * *\n");
10.退出系统函数exit():当要退出整个系统时。
流程图
七 调试t;
#include<>
#include<>
#include<>
#include<>
#define HEADER2 " 学号 姓名 数学 英语 C语言 总分 平均分\n"
#define FORMAT " %s %s %d %d %d %d %.2f\n"
(6)、排序功能:按学生平均成绩进行排序。
(7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!
四 课程设计应完成的工作
(1)编写算法;
(2)算法测试,并有具体的测试结果和结果分析;
(3)撰写课程设计报告。内容包括:
1)封面扉页
2)设计任务书
3)目录
4)总体设计方案(包括流程图)
#define DATA p->,p->,p->,p->,p->,p->,p->
int saveflag=0;
typedef unsigned short WORD;
struct student{
char num[10];
char name[15];
int mgrade;
int egrade;
int cgrade;
default:Wrong();getch();break;
}
}
}
return 0;
}
各模块测试结果
创建管理员模块
主界面模块
输入成绩模块
删除成绩模块
查询成绩模块
修改成绩模块
排序成绩模块
保存记录模块
切换登陆模式
修改管理员信息
退出系统
八 总结
本次的课程设计已接近尾声,经过两周的课程设计的学习,让我从中收获了许多的东西,课程开始,由于许多东西的在大一学习C语言时理解不深入,在此次设计中遇到许许多多的问题,调试分析时会出现各种各样的错误,也就需要自己查阅更多的资料。通过查资料,修改源代码,调试分析,再到逐步完善的过程,似乎每一次的实验结果的成功,我都把它当做是一次成长。
case 2:Del(L);break;//删除记录
case 3:Qur(L);break;//查询模块
case 4:Modify(L);break;//修改模块
case 5:Sort(L);break;//排序模块
case 6:Save(L);break;//保存成绩
case 7:Disp(L);system("PAUSE");break;//显示成绩
回想起这两周的课程学习,让我真正体会到了理论与实践相结合的重要性,从拿到一个设计题目,再到对题目的构思、画流程图,到最后的编写源代码、调试分析、逐步完善、最后的整个程序的完成,看似一个很简单的过程,但是对于一个初次接触的我来说,每次似乎都是遇到了一个大困难。但是越是遇到困难,就越有解决问题的决心,每当遇到问题时,我都会及时的向老师、同学、还有图书馆的相关书籍寻求帮助。努力做到问题的及时解决。
printf(" * 3 查询成绩 4 修改成绩 *\n");
printf(" * *\n");
printf(" * 5 排序成绩 6 保存记录 *\n");
printf(" * *\n");
printf(" * 7 显示所有 0 退出系统 *\n");
printf(" * *\n");
printf(" *******************************************************************\n");
5)使用说明及运行实例(包括界面)
6)成员设计内容简介
7)项目源程序代码(注意注释的使用)
8)指导教师评语
五 总体设计(包含几大功能模块)
1、成绩录入功能
2、成绩输出功能
3、成绩查询功能
4、删除模块
5、排序功能
6、统计功能
7、退出系统
六 详细设计
各个模块的功能和实现
(1)整个成绩管理系统设计分为9个模块:
int total;
float ave;
};
typedef struct node{
struct student data;
struct node *next;
}Node,*Link;
void menu(){
time_t now;
now=time(NULL);
printf(" 学生成绩管理系统 \n");
在这里,感谢带我我们做课程设计的张老师!
九 参考资料
《C语言程序设计》 主编:谭浩强;
《C程序设计教程》 主编:李丽娟;
《C语言程序设计》 主编:楼永强,吴鹏,徐思友;
《C语言程序设计》 主编:吴红庆,李春萍;
网络相关资料。
getch();
}
int main()
{
Link L;
FILE *fp;
int select,State=0;
char ch,admin[20],admin_p[20];
int count=0;
Node *p,*r;
system("color 0A");
L=(Node*)malloc(sizeof(Node));
{
printf("谢谢您的使用!!\n");
exit(1);
}
switch(select)
{
case 1:Qur(L);break;
case 2:Sort(L);break;
case 3:Disp(L);system("PAUSE");break;
case 4:system("cls");goto Loop;
}
int menu2(){
理员模式 0.来宾模式\n");
printf("请选择:(0~1)");
scanf("%d",&state);
if(state==0)
return 0;
else if(state==1)
{
printf("请输入账号:");
scanf("%s",str_z);
if (strcmp(str1,str_z)==0&&strcmp(str2,str_m)==0)
3、学生信息包括:
(1)、每一条记录包括一个学生的学号、姓名、3门课成绩
(2)、成绩信息录入功能:(成绩信息用文件保存,可以一次完成若干条记录的输入。)
(3)、成绩信息显示浏览功能:完成全部学生记录的显示。
(4)、查询功能:完成按姓名查找学生记录,并显示。
(5)、成绩信息的删除:按学号进行删除某学生的成绩.
printf(" * 8 切换登录模式 9 修改管理员信息 *\n");
相关文档
最新文档