1.数据结构课程设计
#include
..\n");}void fh(){printf("\t===>按Enter键返回主菜单\n");}void xg() //修改学生信息{int way=0;printf("请选择修改查找方式\n");printf("1 按姓名查找修改\n"); printf("2 按学号查找修改\n"); scanf("%d",&way);switch(way){case 1: xmxg();break;case 2: xhxg();break;default: printf("输入有误,结束!\n");break;} } //按姓名修改void xmxg() {FILE *fp=NULL;char name[60];int i=0;int changeIndex=0;int index=0;printf("请输入要修改的学生姓名:");scanf("%s",name);for (i=0;i #include #include #include #include #pragma warning(disable:4996) struct Student/*定义一个结构体*/ { char Name[25];/*姓名*/ int Age; /*年龄*/ int Num; /*学号*/ float Score[3];/*三科成绩*/ float Total;/*总分*/ float Ave;/*平均分*/ }; int num;//学生人数//得到学生人数 int Num(void);/*定义一个输入函数,用于输入学生的信息*/ struct Student* Input(struct Student *pArr, int len);/*定义一个输出函数,用于输出学生的信息*/ void Output(struct Student *pArr, int len);/*定义一个删除函数用于删除学生信息*/ void Delete(struct Student *pArr, int len);/*定义一个查找函数,用于查找结构体*/ void Search(struct Student *pArr, int len);/*定义一个函数,用于修改结构体*/ void Change(struct Student *pArr, int len);//定义一个函数,用于添加学生信息 void Add(struct Student *pArr, int len);/*定义一个排序函数,用于对语文成绩排序*/ void ScoreChinese(struct Student *pArr, int len);/*定义一个排序函数,用于对数学成绩排序*/ void ScoreMath(struct Student *pArr, int len);/*定义一个排序函数,用于对英语成绩排序*/ void ScoreEnglish(struct Student *pArr, int len);/*定义一个排序函数,用于对总成绩排序*/ void ScoreTotal(struct Student *pArr, int len); int main() { int num, Item; struct Student *pArr = NULL; struct Student *p = NULL; printf("*************************欢迎使用学生成绩管理系统*******************************\n\n"); printf("请按任意将进入学生管理系统:\n"); getchar(); system("cls"); printf("------------------------ 请选择要操作的命令:-----------------------------------\n\n"); printf("-------------------------- 1 输入学生信息---------------------------------------\n\n"); printf("-------------------------- 2 输出学生信息---------------------------------------\n\n"); printf("-------------------------- 3 删除学生信息---------------------------------------\n\n"); printf("-------------------------- 4 查找学生信息---------------------------------------\n\n"); printf("-------------------------- 5 修改学生信息---------------------------------------\n\n"); printf("-------------------------- 6 增加学生信息---------------------------------------\n\n"); printf("-------------------------- 7 将学生的语文成绩按从大到小排-----------------------\n\n"); printf("-------------------------- 8 将学生的数学成绩按从大到小排-----------------------\n\n"); printf("-------------------------- 9 将学生的英语成绩按从大到小排-----------------------\n\n"); printf("-------------------------- 10 将学生的总成绩按从大到小排------------------------\n\n"); while (1) { printf("\n请选择操作命令;\n"); scanf("%d", &Item); switch (Item) { case 1://输入学生信息 { system("cls"); num = Num(); p = Input(pArr, num); } break; case 2://输出学生信息 { system("cls"); Output(p, num); } break; case 3://删除学生信息 { system("cls"); Delete(p, num); } break; case 4://查找学生信息 { system("cls"); Search(p, num); } break; case 5://修改学生信息 { system("cls"); Change(p, num); } break; case 6://添加学生信息 { system("cls"); Add(p, num); } break; case 7://将学生的语文成绩按从大到小排序 { system("cls"); ScoreChinese(p, num); } break; case 8://将学生的数学成绩按从大到小排序 { system("cls"); ScoreMath(p, num); } break; case 9://将学生的英语成绩按从大到小排序 { system("cls"); ScoreEnglish(p, num); } break; case 10://将学生的总成绩按从大到小排序 { system("cls"); ScoreTotal(p, num); } break; } } return 0; }//得到学生人数 int Num(void) { printf("请输入学生的人数\n"); scanf("%d", &num); return num;//返回学生人数 } struct Student* Input(struct Student *pArr, int len)/*定义一个输入函数,用于输入学生的信息*/ { pArr = (struct Student*)malloc(len*sizeof(struct Student));/*为学生分配内存*/ int i; for (i = 0; i { printf("请输入第%d个学生的姓名:\n", i+1);/*输入学生的姓名*/ scanf("%s", pArr[i].Name); printf("请输入第%d个学生的年龄:\n", i+1);/*输入学生的年龄*/ scanf("%d", &pArr[i].Age); printf("请输入第%d个学生的学号:\n",i+1);/*输入学生的学号*/ scanf("%d", &pArr[i].Num); printf("请输入第%d个学生的语文成绩:\n", i+1);/*输入学生的语文成绩*/ scanf("%f", &pArr[i].Score[0]); printf("请输入第%d个学生的数学成绩:\n", i+1);/*输入学生的数学成绩*/ scanf("%f", &pArr[i].Score[1]); printf("请输入第%d个学生的英语成绩:\n", i+1);/*输入学生的英语成绩*/ scanf("%f", &pArr[i].Score[2]);//计算总分 pArr[i].Total = pArr[i].Score[0] + pArr[i].Score[1] + pArr[i].Score[2];//计算平均分 pArr[i].Ave = pArr[i].Total / 3.0f; } return pArr; /*返回学生的信息*/ }/*定义一个输出函数,用于输出学生的信息*/ void Output(struct Student *pArr, int len) { printf("姓名\t年龄\t学号\t语文\t数学\t英语\t总分\t平均分\n"); for (int i = 0; i < len; i++) { printf("%s\t%d\t%d\t%g\t%g\t%g\t%g\t%g\n", pArr[i].Name, pArr[i].Age, pArr[i].Num, pArr[i].Score[0], pArr[i]。 #include #include#define MENU_NUM 7#define N 3 typedef struct s1 { char no[11]; /*学号由10个字符组成*/ char name[15]; /*学生姓名*/ float score[N]; /*各门课成绩*/ float sum; /*总分*/ float average; /*平均分*/ int order; /*名次*/ struct s1 *next; /*指向后继结点的指针*/ }STUDENT; /*定义结构体类型*/ STUDENT * head=NULL; void InputData( STUDENT * ptr ); void PrintMenu( ); int Menu_Select( ); void Init( ); void create( ); void print( ) ; void Delete( ); void append(); void computer(); main() { int key; while(1) { key=Menu_Select(); switch(key) { case 0: Init(); //初试化链表。 也就是若链表不为空则释放链表中所有数据,将head置为空(NULL) break; case 1: create(); //创建链表,输入数据 break; case 2: Delete(); //删除一个指定学号的记录数据 break; case 3: print(); //打印链表中所有数据 break; case 4: computer(); //计算链表中所有人的总分和平均分 break; case 5: append(); //追加一个数据到链表的尾部 break; case 6: Init(); //释放链表 exit(0); } }; } void PrintMenu( ) { int i; char * menu[]={ "0. Init list", "1. Enter list", "2. Delete a record from list", "3. Print list", "4. Compute the score", "5. Insert record to list", "6. Quit" }; printf("\n\n"); for (i=0;i printf("%s\n",menu[i]); printf("\nEnter your choice(0-6):"); } int Menu_Select( ) { int key; PrintMenu( ); scanf("%d",&key); return key; } void Init( ) //初始化单链表。也就是释放链表中的所有数据 { STUDENT *p,*ptr;//定义两个临时指针变量p,ptr p=head;ptr=head;//将两个临时变量指向头指针head ; while(ptr!=NULL) { ptr=ptr->next;//ptr指向下一个结构数据 free(p);//释放p所指向的结构数据的内存 p=ptr;//将p指向ptr所指向的数据 } head=NULL;//将head指向NULL } void create( ) //创建单链表 { STUDENT *pt, *pth=NULL; //定义两个指针变量:pt指向即将申请新的数据内存,pth指向当前数据 while(1) { pt=(STUDENT *)malloc(sizeof(STUDENT));//让pt指向新申请的内存空间 InputData(pt);//输入数据,存放到pt所指向的结构数据。 注意让pt的next指向NULL if (strcmp(pt->no,"@")==0) { free(pt);//释放pt所指向的内存空间 break;//退出循环 } else if (head==NULL) { pth=pt; head=pt;//将头指针head和pth指向pt } else { pth->next=pt; //将pth的next指向pt; pth=pt; //将pth指向pt; } }; } void print( ) //打印单链表中所有数据 { int i=0; STUDENT *p;//第一个指针p p=head;//将p指向head printf("\n"); printf("******************************STUDENT******************************\n"); printf("|rec|no | name | sc1| sc2| sc3| sum | ave |order|\n"); printf("|---|----------|----------------|----|----|----|------|-----|-----|\n"); //打印表头 while (p!=NULL) { printf("|%3d|%10s|%-16s|%4.1f|%4.1f|%4.1f|%6.2f|%5.1f|%5d|\n", ++i,p->no,p->name,p->score[0],p->score[1],p->score[2], p->sum,p->average,p->order); //打印p所指向的结构中的所有数据。注意打印数据间的分隔线 p=p->next;//将p指向p的下一个结构数据 } printf("********************************END********************************\n");//打印表尾 } void Delete( ) //删除一个记录 { STUDENT *p,*pth;//定义两个指针p,pth char no[11];//定义一个整数no(用来存储输入的学号) printf("intput delete no\n"); scanf("%s",no);//用输入语句输入一个学号存储到no中 p=head;pth=head;//将p和pth都指向头指针 if (strcmp(p->no,no)==0) //也就是若头指针指向的数据需要删除 { head=head->next;//将head指针指向head的下一个数据; free(p);//释放p所指向的数据 } else { p=p->next;//将p指向p的下一个数据 while ( p!=NULL) { if (strcmp(p->no,no)==0) //找到了要删除的数据 { pth->next=p->next;//将pth的next指向p的next free(p);//释放p break;//退出循环 } else { pth=pth->next;//将pth指向pth的next 或 将pth指向p p=p->next;//将p指向p的next } } } } void append() { STUDENT *p,*pth;//定义两个指针变量p,pth pth=head;//将pth指向head while ( pth->next!=NULL) { pth=pth->next;//ptr指向ptr的next } p=(STUDENT *)malloc(sizeof(STUDENT));//将p指向新申请的内存空间 InputData(p);p->next=NULL;//数据数据存储到p所指向的内存空间,注意将p的next置为NULL pth->next=p;//将ptr的next指向p } void InputData( STUDENT *ptr ) { int i; printf("enter no:"); scanf("%s",ptr->no); if (strcmp(ptr->no,"@")==0 ) return; printf("enter name:"); scanf("%s",ptr->name); for(i=0;i { printf("shuru chengji\n"); scanf("%f",&ptr->score[i]); } ptr->sum=0; ptr->average=0; ptr->order=0; ptr->next=NULL; } void computer() { STUDENT *p; p=head; for(;p;p=p->next) { p->sum=p->score[0]+p->score[1]+p->score[2]; p->average=(p->score[0]+p->score[1]+p->score[2])/3; } }。 参考代码如下,不过还是建议自己写一写比较好:#include 主要功能:(1)能按学期、按班级完成对学生成绩的录入、修改(2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出#include /*引用库函数*/ #include #include #include typedef struct /*定义结构体数组*/ { char num[10]; /*学号*/ char name[20]; /*姓名*/ int score; /*成绩*/ }Student; Student stu[80]; /*结构体数组变量*/ int menu_select() /*菜单函数*/ { char c; do{ system("cls"); /*运行前清屏*/ printf("\t\t****Students' Grade Management System****\n"); /*菜单选择*/ printf("\t\t | 1. Input Records |\n"); printf("\t\t | 2. Display All Records |\n"); printf("\t\t | 3. Sort |\n"); printf("\t\t | 4. Insert a Record |\n"); printf("\t\t | 5. Delete a Record |\n"); printf("\t\t | 6. Query |\n"); printf("\t\t | 7. Statistic |\n"); printf("\t\t | 8. Add Records from a Text File|\n"); printf("\t\t | 9. Write to a Text file |\n"); printf("\t\t | 0. Quit |\n"); printf("\t\t*****************************************\n"); printf("\t\t\tGive your Choice(0-9):"); c=getchar(); /*读入选择*/ }while(c'9'); return(c-'0'); /*返回选择*/ } int Input(Student stud[],int n) /*输入若干条记录*/ {int i=0; char sign,x[10]; /*x[10]为清除多余的数据所用*/ while(sign!='n'&&sign!='N') /*判断*/ { printf("\t\t\tstudent's num:"); /*交互输入*/ scanf("\t\t\t%s",stud[n+i].num); printf("\t\t\tstudent's name:"); scanf("\t\t\t%s",stud[n+i].name); printf("\t\t\tstudent's score:"); scanf("\t\t\t%d",&stud[n+i].score); gets(x); /*清除多余的输入*/ printf("\t\t\tany more records?(Y/N)"); scanf("\t\t\t%c",&sign); /*输入判断*/ i++; } return(n+i); } void Display(Student stud[],int n) /*显示所有记录*/ { int i; printf("\t\t\t-----------------------------------\n"); /*格式头*/ printf("\t\t\tnumber name score\n"); printf("\t\t\t-----------------------------------\n"); for(i=1;i1&&i%10==0) /*每十个暂停*/ {printf("\t\t\t-----------------------------------\n"); /*格式*/ printf("\t\t\t"); system("pause"); printf("\t\t\t-----------------------------------\n"); } } printf("\t\t\t"); system("pause"); } void Sort_by_num(Student stud[],int n) /*按学号排序*/ { int i,j,*p,*q,s; char t[10]; for(i=0;i0) {strcpy(t,stud[j+1].num); strcpy(stud[j+1].num,stud[j].num); strcpy(stud[j].num,t); strcpy(t,stud[j+1].name); strcpy(stud[j+1].name,stud[j].name); strcpy(stud[j].name,t); p=&stud[j+1].score; q=&stud[j].score; s=*p; *p=*q; *q=s; } } int Insert_a_record(Student stud[],int n) /*插入一条记录*/ {char x[10]; /*清除多余输入所用*/ printf("\t\t\tstudent's num:"); /*交互式输入*/ scanf("\t\t\t%s",stud[n].num); printf("\t\t\tstudent's name:"); scanf("\t\t\t%s",stud[n].name); printf("\t\t\tstudent's score:"); scanf("\t\t\t%d",&stud[n].score); gets(x); n++; Sort_by_num(stud,n); /*调用排序函数*/ printf("\t\t\tInsert Successed!\n"); /*返回成功信息*/ return(n); } int Delete_a_record(Student stud[],int n) /*按姓名查找,删除一条记录*/ { char s[20]; int i=0,j; printf("\t\t\ttell me his(her) name:"); /*交互式问寻*/ scanf("%s",s); while(strcmp(stud[i].name,s)!=0&&istud[i].score) j=i; if(stud[k].score 评论0 0 0。 你太搞笑了!我半个月前提了个类似的问题,也是学生管理系统,比你的还简单,悬赏150分都没人答.你才悬5分,有人答才怪呢.自己慢慢写吧,别等了噢.唉,过了这么久都没人答,你还在等??我把我的那个程序给你作参考吧,题目有点不同,你自己改一下啦。 #include #include 输入五名学生四门课程的成绩,统计每个学生的总分,及确定每个学生的名次: #include "stdio.h" struct student { int num; //学号 double mark[4]; //4门成绩 double erea; //总分 }; void fun() { int i,j; double dtemp=0.0; int itemp=0; struct student stu[5]; //输入每个学生的学号,和四门成绩 for (i=0; i<5; i++) { printf("输入第%i个学生的学号和4门成绩\n",i+1); scanf("%d%lf%lf%lf%lf",&stu[i].num, &stu[i].mark[0],&stu[i].mark[1],&stu[i].mark[2],&stu[i].mark[3]); } //统计总分 for (i=0; i<5; i++) { stu[i].erea = stu[i].mark[0] + stu[i].mark[1] + stu[i].mark[2] + stu[i].mark[3]; } //排名次 for (i=0; i<5; i++) { for (j=i+1; j<5; j++) { if (stu[i].erea < stu[j].erea) { dtemp = stu[i].erea; stu[i].erea = stu[j].erea; stu[j].erea = dtemp;//换总分 itemp = stu[i].num; stu[i].num = stu[j].num; stu[j].num = itemp; //换学号 } } } //输出排名结果和成绩 printf("\n排名结果如下:\n"); for (i=0; i<5; i++) { printf("第%d名 学号:%d 总分:%lf 平均分:%lf\n",i+1,stu[i].num,stu[i].erea,stu[i].erea/4); } } void main() { fun(); } 设计课题一:班级成绩管理系统 一、问题描述: 对一个有N个学生的班级,每个学生有M门课程。 该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。 二、功能要求: 1、本系统采用一个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称。 2、本系统显示这样的菜单: 请选择系统功能项: a、成绩录入 b、成绩显示 c、成绩保存 d、成绩排序 e、成绩修改(要求先输入密码) f、成绩统计 (1) 显示每门课程成绩最高的学生的基本信息 (2) 显示每门课程的平均成绩 (3) 显示超过某门课程平均成绩的学生人数 g、退出系统 3、执行一个具体的功能之后,程序将重新显示菜单。 4、将学生成绩保存到文件中。 三、算法提示: 1、数据结构:结构体类型数组。 2、数据库结构:下表构成该系统的基本数据库。 姓名 学号 课程名称1 课程名称2 ●●●●●● char Char float float 四、测试数据: 学生人数N=10 课程门数M=4 课程名:数学、语文、英语、政治 五、其它 对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。 问题补充: 今天谁能给我答案啊!!!!!!!!!!!!!! 提问者: 342123465 - 一级 最佳答案 C语言课程设计报告—班级成绩管理系统 需要分析: 学生成绩管理系统有13种功能。 把这13个功能做成13个子函数。在主函当数中设计一个菜单对这13个子数进行管理。 来实现对整个系统的操作。 根据课题的要求。 每一个学生的包括姓名(char)、学号(char)、M门课程的成绩(float).再加上系统功能上的要求每一学生的信息还要总分和名次等。所以自然的想到要用结构体来定义每一个学生的信息结构。 然后用链表把它们组成一个有序的整体。用对链表的操作来实现对所有学生信息的统一管理(成绩显示、成绩排序、成绩修改等)。 最后为了以后按照处理后的顺序保存到文件中。 . 各函数的功能: 概要设计: 程序的模块组成: 主 函 数: int main() 新建函数:STUDENT *init() 输入函数 :STUDENT *create() 显示函数: void print(STUDENT *head) 删除函数: STUDENT *delete(STUDENT *head) 按名字寻找函数: void lookup(STUDENT *head) 保存函数: void save(STUDENT *head) 按总分排序函数: STUDENT *sort(STUDENT *head) 计算总分和均分函数: void computer(STUDENT *h) 修改函数: STUDENT *Modify(STUDENT *head,STUDENT *new) 按学号排序函数: STUDENT *index(STUDENT *h) 菜单函数:int menu_select() 各个函数的主要功能: 输入函数: 随时输入数据。 菜单函数:显示系统主菜单。 显示函数: 显示所有学生的信息。 寻找函数: 方便学生查找自己的成绩。 删除函数: 删除某学生的信息。 排序函数: 按总成绩排序。 按学号排序函数: 按学号排序。 插入函数: 可以插入新的信息。 保存函数: 保存好学生成绩,以免丢失。 统计函数: l 显示每门课程成绩最高的学生的基本信息。 l 显示每门课程的平均成绩。 l 显示超过某门课程平均成绩的学生人数。 课题的功能模块的划分: 开始 菜单界面 功能选择 初始化函数 输入学生信息 删除学生信息 显示学生信息 查找学生信息 按成绩排序 保存到文件 从文件读数据 插入学生成绩 分类合计 退出系统 结束 详细设计: 整个系统除了主函数外,另外还有14个函数,实现八大功能:输入功能、显示功能、查找功能、排序功能、插入功能、保存功能、读取功能。 各个函数的详细设计说明分别如下: 主函数 main() 利用无限次循环for(;;)和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。 菜单选择函数 int menu_select() 这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择。 等执行完每一个函数功能后,返回菜单。 代码设计: 初始化函数 STUDENT *init() 这是一个无参函数,里面只有两个语句,它的作用是使链表初始化,使head的值为NULL和一个清屏语句。 比如:没有这个函数的话,在你没有输入任何数据的情况下,去执行显示功能的时候会显示一些乱码! 输入记录函数 STUDENT *create() 这是一个无参函数,用来执行学生成绩记录的输入,当学生为@时停止输入,函数结束后,带回一个链表头的指针指向一下个学生的信息插在表头。 N-S流程图如下: head=NULL无条件循环 指针p指向新开辟的单元 指针p是否为空 是 否 输入学号p->num 输出 p->num是否为@ 内存 是 否 溢出 输入姓名p->name 停止 for(i=0;i<3;i++) 输入 输入成绩 返回 p->sum=s; 菜单 p->average=(float)s/3; 显示记录函数 void print(STUDENT *head) 这是一个不返回值的有参函数,形参为“链表头的指针”,负责对全部学生成绩记录的输出,不足之处就是不能对学生成绩进行分页显示。 算法:先将p结点的指针指向第一个结点,将p结点(即第一个结点)的数据输出。然后再将p结点的指针指向p指针的的指针(即下一结点),将p结点(即第一结点)的数据输出。 重复执行此步聚直到p指针指向NULL为止。 N-S流程图如下: p=head,使指向第一个结。 自己拿回去改改。 /*11.3.2 源程序*//***********xuesheng.c***********//******头文件(.h)***********/#include "stdio.h" /*I/O函数*/#include "stdlib.h" /*其它说明*/#include "string.h" /*字符串函数*/#include "conio.h" /*屏幕操作函数*/#include "mem.h" /*内存操作函数*/#include "ctype.h" /*字符操作函数*/#include "alloc.h" /*动态地址分配函数*/#define N 3 /*定义常数*/typedef struct z1 /*定义数据结构*/{ char no[11]; char name[15]; int score[N]; float sum; float average; int order; struct z1 *next; }STUDENT;/*以下是函数原型*/STUDENT *init(); /*初始化函数*/STUDENT *create(); /*创建链表*/STUDENT *delete(STUDENT *h); /*删除记录*/void print(STUDENT *h); /* 显示所有记录*/void search(STUDENT *h); /*查找*/void save(STUDENT *h); /*保存*/STUDENT *load(); /*读入记录*/void computer(STUDENT *h); /*计算总分和均分*/STUDENT *insert(STUDENT *h); /*插入记录*/void append(); /*追加记录*/void copy(); /*复制文件*/STUDENT *sort(STUDENT *h); /*排序*/STUDENT *index(STUDENT *h); /*索引*/void total(STUDENT *h); /*分类合计*/int menu_select(); /*菜单函数*//******主函数开始*******/main(){ int i; STUDENT *head; /*链表定义头指针*/ head=init(); /*初始化链表*/ clrscr(); /*清屏*/ for(;;) /*无限循环*/ { switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/ { /*值不同,执行的函数不同,break 不能省略*/ case 0:head=init();break; /*执行初始化*/ case 1:head=create();break; /*创建链表*/ case 2:head=delete(head);break; /*删除记录*/ case 3:print(head);break; /*显示全部记录*/ case 4:search(head);break; /*查找记录*/ case 5:save(head);break; /*保存文件*/ case 6:head=load(); break; /*读文件*/ case 7:computer(head);break; /*计算总分和均分*/ case 8:head=insert(head); break; /*插入记录*/ case 9:copy();break; /*复制文件*/ case 10:head=sort(head);break; /*排序*/ case 11:append();break; /*追加记录*/ case 12:head=index(head);break; /*索引*/ case 13:total(head);break; /*分类合计*/ case 14:exit(0); /*如菜单返回值为14程序结束*/ } }}/*菜单函数,返回值为整数*/menu_select(){ char *menu[]={"***************MENU***************", /*定义菜单字符串数组*/ " 0. init list", /*初始化*/ " 1. Enter list", /*输入记录*/ " 2. Delete a record from list", /*从表中删除记录*/ " 3. print list ", /*显示单链表中所有记录*/ " 4. Search record on name", /*按照姓名查找记录*/ " 5. Save the file", /*将单链表中记录保存到文件中*/ " 6. Load the file", /*从文件中读入记录*/ " 7. compute the score", /*计算所有学生的总分和均分*/ " 8. insert record to list ", /*插入记录到表中*/ " 9. copy the file to new file", /*复制文件*/ " 10. sort to make new file", /*排序*/ " 11. append record to file", /*追加记录到文件中*/ " 12. index on nomber", /*索引*/ " 13. total on nomber", /*分类合计*/ " 14. Quit"}; /*退出*/ char s[3]; /*以字符形式保存选择号*/ int c,i; /*定义整形变量*/ gotoxy(1,25); /*移动光标*/ printf("press any key enter menu。 \n"); /*压任一键进入主菜单*/ getch(); /*输入任一键*/ clrscr(); /*清屏幕*/ gotoxy(1,1); /*移动光标*/ textcolor(YELLOW); /*设置文本显示颜色为黄色*/ textbackground(BLUE); /*设置背景颜色为蓝色*/ gotoxy(10,2); /*移动光标*/ putch(0xc9); /*输出左上角边框┏*/ for(i=1;i<44;i++) putch(0xcd); /*输出上边框水平线*/ putch(0xbb); /*输出右上角边框 ┓*/ for(i=3;i<20;i++) { gotoxy(10,i);putch(0xba); /*输出左垂直线*/ gotoxy(54,i);putch(0xba); } /*输出右垂直线*/ gotoxy(10,20);putch(0xc8); /*输出左上角边框┗*/ for(i=1;i<44;i++) putch(0xcd); /*输出下边框水平线*/ putch(0xbc); /*输出右下角边框┛*/ window(11,3,53,19); /* 制作显示菜单的窗口,大小根据菜单条数设计*/ clrscr(); /*清屏*/ for(i=0;i<16;i++) /*输出主菜单数组*/ { gotoxy(10,i+1); cprintf("%s",menu[i]); } textbackground(BLACK); /*设置背景颜色为黑色*/ window(1,1,80,25); /*恢复原窗口大小*/ gotoxy(10,21); /*移动光标*/ do{ printf("\n Enter you choice(0~14):"); /*在菜单窗口外显示提示信息*/ scanf("%s",s); /*输入选择项*/ c=atoi(s); /*将输入的字符串转化为整形数*/ }while(c<0||c>14); /*选择项不在0~14之间重输*/ return c; /*返回选择项,主程序根据该数调用相应的函数*/}STUDENT *init(){ return NULL;}/*创建链表*/STUDENT *create(){ int i; int s; STUDENT *h=NULL,*info; /* STUDENT指向结构体的指针*/ for(;;) { info=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/ if(!info) /*如果指针info为空*/ { printf("\nout of memory"); /*输出内存溢出*/ return NULL; /*返回空指针*/ } inputs("enter no:",info->no,11); /*输入学号并校验*/ if(info->no[0]=='@') break; /*如果学号首字符为@则结束输入*/ inputs("enter name:",。 转载请注明出处众文网 » c语言学生成绩管理系统毕业论文(数据结构课程设计)2.学生信息包括学号、姓名、高数,英语,计算机三门考试成绩
3.学生成绩管理系统c语言编辑的毕业设计 〔20分〕
4.c语言实现设计一个学生成绩管理系统课程
5.C语言课程设计
6.C语言学生成绩管理系统设计
7.用C语言 设计一学生成绩管理系统,要求: 1. 学生成绩的信息包括:
8.学生成绩管理系统设计 1 设计目的 通过开发学生成绩管理系统,进一
9.C语言程序设计 班级学生成绩管理系统
10.c语言学生成绩管理系统