C语言课设学生信息管理系统
c语言课程设计学生信息管理系统

c语言课程设计学生信息管理系统一、背景介绍二、需求分析1.功能需求2.性能需求三、系统设计1.系统架构设计2.数据库设计3.界面设计四、系统实现与测试1.环境搭建与配置2.代码实现3.测试与调试五、总结一、背景介绍学生信息管理系统是一个基本的信息管理系统,用于管理学生的基本信息和课程成绩等数据。
在高校中,学生信息管理系统是一个非常重要的工具,可以帮助教师和管理员更好地了解学生情况,为教育教学提供数据支持。
C语言作为一门非常重要的编程语言,在计算机科学领域得到了广泛应用。
在C语言课程设计中,开发一个学生信息管理系统是非常有意义的。
二、需求分析1.功能需求(1)添加学生信息:包括姓名、性别、年龄等基本信息以及选修课程成绩等详细信息。
(2)删除学生信息:根据学号或姓名删除已有的学生信息。
(3)修改学生信息:根据学号或姓名修改已有的学生信息。
(4)查询学生信息:根据姓名或年龄等条件查询学生基本信息以及选修课程成绩等详细信息。
(5)统计学生信息:统计学生的人数、男女比例、平均年龄等信息。
2.性能需求(1)系统响应速度快,操作简单方便。
(2)数据存储稳定可靠,数据安全性高。
三、系统设计1.系统架构设计本系统采用B/S架构,即浏览器/服务器架构。
用户通过浏览器访问服务器上的网站,进行学生信息管理操作。
服务器端采用C语言编写,通过CGI技术实现与客户端的交互。
客户端使用HTML、CSS和JavaScript等技术实现用户界面。
2.数据库设计本系统采用MySQL数据库存储学生信息和课程成绩等数据。
数据库中包含两张表:学生表和成绩表。
其中,学生表包含字段:学号、姓名、性别、年龄;成绩表包含字段:学号、课程名称、成绩。
3.界面设计本系统的界面应该简洁明了,易于操作。
主要分为以下几个模块:(1)登录模块:用户输入账号和密码登录系统。
(2)添加模块:用户可以添加新的学生信息和课程成绩等数据。
(3)删除模块:用户可以根据学号或姓名删除已有的学生信息。
c语言课程设计学生信息管理系统

C语言课程设计学生信息管理系统1. 简介本文将详细介绍基于C语言的学生信息管理系统的设计和实现。
该系统旨在帮助学校或教育机构有效管理和维护学生的个人信息,包括基本信息、成绩等。
通过该系统,可以方便地查询、修改和删除学生信息,实现学生信息的快速检索和更新。
2. 系统需求分析在设计学生信息管理系统之前,我们首先需要明确系统的需求。
以下是该系统的基本需求:1.学生基本信息管理:包括学生的姓名、学号、性别、年龄、出生日期等信息。
2.学生成绩管理:包括学生的各科成绩、总分以及平均分等信息。
3.学生信息查询:用户可以根据学生的学号或姓名进行信息查询。
4.学生信息修改:用户可以修改学生的基本信息和成绩信息。
5.学生信息删除:用户可以删除学生的信息。
3. 系统设计与实现3.1 数据结构设计为了存储和管理学生信息,我们需要设计合适的数据结构。
以下是一个简单的示例:struct Student {char name[100];int studentId;char gender[10];int age;char birthdate[20];float scores[5];float totalScore;float averageScore;};3.2 界面设计在设计用户界面时,我们可以利用C语言提供的基本控制台窗口进行操作。
可以使用菜单方式的交互,通过键盘输入选择相应的功能。
3.3 功能实现根据系统需求,我们需要实现以下功能:3.3.1 学生信息录入用户可以输入学生的基本信息和成绩信息,并将其存储到系统中。
在录入信息时,需要检查输入的合法性,如学号是否唯一、成绩是否在有效范围内等。
3.3.2 学生信息查询用户可以根据学生的学号或姓名进行信息查询。
系统会返回与输入内容匹配的学生信息列表,并打印在屏幕上供用户查看。
3.3.3 学生信息修改用户可以选择要修改的学生信息,并提供新的值进行修改。
系统会根据用户的输入更新相应学生的信息。
c语言课程设计之学生信息管理系统 (2)

学生信息管理系统设计案例一、引言学生信息管理系统是一种集学生信息录入、查询、修改和删除等功能于一体的软件系统。
为了满足学校对学生信息的有效管理和查询需求,本文将介绍一种用C语言实现的学生信息管理系统设计案例。
二、需求分析学生信息管理系统主要有以下几个功能模块: 1. 学生信息录入:包括学生姓名、学号、年龄、性别等基本信息的录入。
2. 学生信息查询:可以根据学号或姓名进行查询,并显示查询结果。
3. 学生信息修改:可以根据学号或姓名选择要修改的学生信息,并进行修改操作。
4. 学生信息删除:可以根据学号或姓名选择要删除的学生信息,并进行删除操作。
三、系统设计1. 数据结构设计为了存储学生信息,我们需要定义一个学生结构体,包括姓名、学号、年龄、性别等字段。
同时,为了方便管理学生信息,我们可以使用链表数据结构来存储学生信息,并设计一个头节点来指向链表的第一个节点。
struct student {char name[20];int student_id;int age;char gender[10];struct student* next;};struct student* head; // 头节点2. 功能模块设计2.1 学生信息录入在该功能模块中,用户需要输入学生的姓名、学号、年龄和性别等信息,并将该学生信息添加到链表中。
为了方便起见,我们可以将该功能模块定义为一个函数add_student()。
2.2 学生信息查询在该功能模块中,用户可以根据学号或姓名进行学生信息的查询。
查询结果将会显示学生的基本信息。
为了方便起见,我们可以将该功能模块定义为一个函数search_student()。
2.3 学生信息修改在该功能模块中,用户可以根据学号或姓名选择要修改的学生信息,并进行修改操作。
为了方便起见,我们可以将该功能模块定义为一个函数update_student()。
2.4 学生信息删除在该功能模块中,用户可以根据学号或姓名选择要删除的学生信息,并进行删除操作。
学生信息管理系统c语言

学生信息管理系统c语言1. 简介学生信息管理系统是一个基于C语言开发的程序,用于管理学校或教育机构中的学生信息。
该系统可以实现学生信息的录入、查询、修改和删除等功能,并且支持数据的持久化存储。
本文档将介绍学生信息管理系统的功能、使用方法以及具体实现细节。
2. 功能学生信息管理系统具有以下主要功能:2.1 录入信息该系统可以通过用户输入的方式录入学生的基本信息,包括学号、姓名、性别、年龄、班级等。
其中,学号是唯一的标识符,用于区分不同的学生。
2.2 查询信息用户可以通过学号或姓名查询特定学生的信息。
系统会根据用户提供的查询条件,在学生信息数据库中查找匹配的学生记录,并将结果显示给用户。
2.3 修改信息用户可以修改已录入学生的信息,包括姓名、性别、年龄、班级等。
系统会根据用户提供的学号,在学生信息数据库中找到相应的学生记录,并将其修改为用户输入的新信息。
2.4 删除信息用户可以根据学号删除某个学生的信息。
系统会在学生信息数据库中找到匹配的学生记录,并将其从数据库中删除。
3. 使用方法学生信息管理系统的使用方法如下:3.1 编译和运行程序首先,需要将C源代码编译成可执行文件。
在命令行中输入以下命令:gcc main.c -o student_system然后,运行编译得到的可执行文件:./student_system3.2 界面操作系统运行后,会显示一个简单的命令行界面,用户可以通过键盘输入指定的命令来执行相应的操作。
以下是系统支持的命令列表:•add:录入学生信息•search:查询学生信息•modify:修改学生信息•delete:删除学生信息•exit:退出系统用户可以根据提示输入相应的命令,并按下回车键确认。
系统会根据用户输入执行相应的操作,然后返回到命令行界面,等待下一次输入。
4. 实现细节学生信息管理系统的实现细节如下:4.1 数据存储系统使用文件来持久化存储学生信息。
每个学生的信息被保存在一个独立的记录中,记录之间使用换行符进行分隔。
c学生信息管理系统课程设计

c学生信息管理系统课程设计一、教学目标本课程旨在让学生了解和掌握学生信息管理系统的基本原理和应用,培养学生运用信息技术解决实际问题的能力。
具体目标如下:1.知识目标:使学生了解学生信息管理系统的概念、功能和应用场景;掌握学生信息管理系统的基本原理和技术。
2.技能目标:培养学生运用学生信息管理系统进行学生信息管理的实际操作能力;培养学生运用编程语言进行简单的学生信息管理系统开发能力。
3.情感态度价值观目标:培养学生对信息技术应用的积极态度,提高学生信息素养;培养学生团队协作、创新思维和解决问题的能力。
二、教学内容1.学生信息管理系统概述:介绍学生信息管理系统的基本概念、功能和应用场景。
2.学生信息管理系统原理:讲解学生信息管理系统的工作原理、关键技术及其实现方法。
3.学生信息管理系统应用:介绍学生信息管理系统的实际应用案例,分析其优势和不足。
4.学生信息管理系统开发:教授学生运用编程语言进行简单的学生信息管理系统开发过程。
三、教学方法1.讲授法:通过讲解、演示等方式,使学生了解学生信息管理系统的基本概念、原理和应用。
2.案例分析法:分析实际案例,使学生了解学生信息管理系统的优势和不足。
3.实验法:引导学生动手实践,培养学生运用学生信息管理系统进行实际操作的能力。
4.讨论法:学生进行小组讨论,培养学生的团队协作能力和创新思维。
四、教学资源1.教材:选择内容丰富、结构清晰的学生信息管理系统教材,为学生提供系统性的学习资源。
2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作PPT、视频等多媒体资料,提高课堂教学效果。
4.实验设备:准备计算机、网络设备等实验器材,为学生提供实践操作的机会。
五、教学评估本课程采用多元化的评估方式,全面客观地评价学生的学习成果。
评估方式包括:1.平时表现:评估学生在课堂上的参与度、提问回答等情况,以体现学生的学习态度和积极性。
2.作业:布置课后作业,评估学生的理解和应用能力。
学生管理系统c语言简单版

学生管理系统c语言简单版学生管理系统c语言简单版介绍:学生管理系统是一种用于管理学生信息的软件,它可以方便地对学生的基本信息、课程成绩等进行录入、查询、修改和删除等操作。
本文将介绍如何使用C语言编写一个简单的学生管理系统。
功能:1. 添加学生信息2. 查询学生信息3. 修改学生信息4. 删除学生信息5. 显示所有学生信息实现方法:1. 添加学生信息添加学生信息需要输入以下内容:姓名、性别、年龄、班级和电话号码。
我们可以定义一个结构体来存储这些信息,代码如下:```struct Student {char name[20];char sex[10];int age;char class[20];char phone[20];};```然后定义一个数组来存储多个学生的信息:```struct Student students[100];int count = 0; // 学生数量```接下来,我们可以编写一个函数来添加新的学生信息:```void addStudent() {struct Student student;printf("请输入姓名:");scanf("%s", );printf("请输入性别:");scanf("%s", student.sex);printf("请输入年龄:");scanf("%d", &student.age);printf("请输入班级:");scanf("%s", student.class);printf("请输入电话号码:");scanf("%s", student.phone);students[count++] = student; // 将新的学生信息存储到数组中 printf("添加成功!\n");}```2. 查询学生信息查询学生信息可以按照姓名或电话号码进行查询。
学生信息管理系统详细设计说明c语言

学生信息管理系统详细设计说明c语言如何设计一个学生信息管理系统。
一、需求分析学生信息管理系统是以管理学生信息为主要功能的软件系统。
在设计之前,我们需要了解用户的需求。
通过对用户需求的分析,我们得出以下功能模块:1、学生信息录入:录入学生信息,包括学号、姓名、性别、出生日期、班级等信息。
2、学生信息查询:根据学号、姓名等关键字进行学生信息的查询,支持模糊查询。
3、学生信息修改:可以修改学生的相关信息,包括学号、姓名、班级等。
4、学生信息删除:删除已经录入的学生信息。
5、学生成绩查询:根据学号查询该学生的相关成绩信息。
6、学生成绩录入:录入学生的相关成绩信息,包括语文、数学、英语等。
二、系统设计在需求分析的基础上,我们可以开始进行系统设计。
1、数据结构设计(1)学生信息结构体/* 学生信息结构体*/typedef struct {/* 学号*/char id[11];/* 姓名*/char name[21];/* 性别*/char sex[3];/* 出生日期*/char birthday[11];/* 班级*/char class[21];} Info;(2)学生成绩结构体/* 学生成绩结构体*/typedef struct {/* 学号*/char id[11];/* 语文成绩*/int chinese;/* 数学成绩*/int math;/* 英语成绩*/int english;} Score;2、功能模块设计(1)学生信息录入在学生信息录入模块中,我们需要设计一个函数来进行学生信息的录入。
void AddInfo(Info *info);该函数的参数是学生信息结构体的指针,通过该参数可以将学生信息录入到系统中。
在该函数中,我们需要进行如下操作:1、提示用户输入学生信息;2、从键盘获取用户输入;3、将用户输入保存到结构体中;4、将结构体保存到文件中。
(2)学生信息查询在学生信息查询模块中,我们需要设计一个函数来查询学生信息。
C语言课程设计--学生信息管理系统

C语言课程设计题目:学生信息管理系统学号:**姓名:***班级:信计1102成绩:正文1系统功能本程序利用结构体数组及函数的调用完成对学生基本信息的动态管理。
可以对学生基本信息进行录入、查询、删除、修改、浏览、成绩汇总的功能。
2设计思想利用宏定义,函数的调用及结构体数组,通过菜单选择的方式,在不同函数功能间进行切换,从而达到实验设计的目的、使之具有学生信息管理的功能。
3概要设计1.模块介绍:采用模块化设计,功能放在各模块中实现。
主函数是程序的入口,在其中声明一些必要的变量,设计以无限循环程序,循环体为一个switch语句,该语句的条件是通过调用主菜单函数得到返回值,根据该返回值调用相应的各功能函数,同时要设置一个循环结束条件,以免造成死循环。
2.系统流程:主程序输入录入浏览查询删除修改汇总退出4详细设计1.代码介绍:本程序中,用num、name、banji、age、sex、birthday 、addr、phone、course、grade,来分别代表学生的学号、姓名、班级、年龄、性别、出生日期、住址、电话、所选课程、分数。
然后再利用结构体数组,将其归为学生的属性。
再用enter、print、save 、search、del、modify、rank、return,来分别表示学生信息的输入、浏览、录入、查找、删除、修改,学生成绩的汇总,程序的返回的功能。
在程序中,通过对各个代码的使用及各功能函数的调用,可实现本程序设计目的。
2.函数介绍:1.main( )主函数主函数是程序的入口,在其中定义一些必要的变量,设计以无限循环程序,循环体为一个switch语句,该语句的函数是通过调用主菜单函数得到返回值,根据返回值调用相应的各功能函数,同时要设置一个循环结束条件,以免造成死循环。
2.menu( )函数----制作菜单通过printf( )函数在屏幕上绘制一个菜单,将菜单进行编号,并显示一个提示输入选项,输入1~8之间的数字。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全局变量struct stud{char name[20];long num;int age;char sex;int score[3];char tele[12];struct stud *next;}子程序1.creat()函数功能:创建链表,提示输入学生信息,储存到链表中,录入完成后输入y继续,输入n停止,返回主菜单2.display()函数功能:显示当前已经存入链表的信息3.dele()函数功能:删除链表中学生信息,可按姓名或学号删除4.add()函数功能:按学号插入学生信息5.modify()函数功能:修改链表中学生信息6.search()函数功能:查找学生信息,可按学号或姓名查找7.sort()函数功能:对信息进行排序,可实现分别对三门成绩排序8.save()函数功能:将链表中的数据保存到指定文件9.load()函数功能:将指定文件中已有的数据读入链表源程序#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>struct stud{char name[20];long num;int age;char sex;int score[3];char tele[12];struct stud *next;}main(){struct stud *head;struct stud *creat(void);void display(struct stud *head);struct stud *dele(struct stud *head);struct stud *add(struct stud *head);struct stud *modify(struct stud *head);void search(struct stud *head);void save(struct stud *head);struct stud *sort(struct stud *head);void save(struct stud *head);struct stud *load();char ch;head=NULL;for(;;){ clrscr(); /*清屏函数*/printf(“\n\n\t\tWelcome to student informationmanagement system”);printf(“\n\n\t**************************************************************”);printf(“\n\t\t\t 1: Enter the information”);printf(“\n\t\t\t 2: List the information”);printf(“\n\t\t\t 3: Delete the information”);printf(“\n\t\t\t 4: Add the information”);printf(“\n\t\t\t 5: Modify the information”);printf(“\n\t\t\t 6: Search the information”);printf(“\n\t\t\t 7: Sort the information”);printf(“\n\t\t\t 8: Save the information”);printf(“\n\t\t\t 9: Load the information”);printf(“\n\t\t\t 0: Exit “);printf(“\n\t\t\t Enter your choice:”);fflush(stdin);ch=getchar();getchar();switch(ch){case ‘1’: head=creat();break;case ‘2’:display(head);system(“pause”);break;case ‘3’:head=dele(head);system(“pause”);break;case ‘4’:head=add(head);system(“pause”);break;case ‘5’:head=modify(head);system(“pause”);break;case ‘6’:search(head);system(“pause”);break;case ‘7’:head=sort(head);system(“pause”);break;case ‘8’:save(head);system(“pause”);break;case ‘9’:head=load();break;case ‘0’:return;break;default : clrscr();printf(“\n\t Error!Please check your input\n\n”);system(“pause”);}}}struct stud *creat(void) /*链表的创建*/ {struct stud *head,*p1;char ch;clrscr();head=NULL;p1=(struct stud *)malloc(sizeof(struct stud)); printf(“\t enter name:”);gets(p1->name); printf(“\t enter number:”);scanf(“%ld”,&p1->num);printf(“\t enter age:”);scanf(“%d”,&p1->age);printf(“\t enter sex:”);fflush(stdin);scanf(“%c”,&p1->sex);printf(“\t enter Math score:”);scanf(“%d”,&p1->score[0]);printf(“\t enter English score:”);scanf(“%d”,&p1->score[1]);printf(“\t enter C score:”);scanf(“%d”,&p1->score[2]);printf(“\t enter telephone number:”);fflush(stdin); gets(p1->tele);head=p1;p1->next=NULL;do{ printf(“\n\tDO YOU WANT TO CONTINUE? Y or N?”);printf(“\n\tEnter your choise:”);fflush(stdin); ch=getchar(); clrscr(); if(ch==’y’||ch==’Y’)head=add(head);else if(ch!=’N’&&ch!=’n’){ printf(“\n\tError !Please check your input”);ch=’y’;}}while(ch==’y’||ch==’Y’);return(head);}struct stud *dele(struct stud *head)/*链表的删除*/{struct stud *p1,*p2;int choose;long delnum;char name[20];clrscr();printf(“\n\t\tChoose the way you want”);printf(“\n\t 1: According to name\n “);printf(“\n\t 2: According to num\n”);printf(“\n\t Enter your choice:”);scanf(“%d”,&choose);fflush(stdin);if(choose==1){printf(“\n\t Enter the name:”);gets(name); if(head==NULL){printf(“\t\nNo information !\n”);return(head);} p1=head;while(strcmp(name,p1->name)!=0&&p1->next!=NULL){p2=p1;p1=p1->next;}if(strcmp(name,p1->name)==0){if(p1==head)head=p1->next;else p2->next=p1->next;printf(“\t Delete Successed !\n\n”);}else printf(“\t Not been find!\n\n”);return(head);}else if(choose==2){printf(“\n\tEnter the number:”);scanf(“%ld”,&delnum);if(head==NULL){printf(“\nNo information !\n”);return(head);} p1=head; while(delnum!=p1->num&&p1->next!=NULL){p2=p1;p1=p1->next;}if(delnum==p1->num){if(p1==head)head=p1->next;else p2->next=p1->next;printf(“\t Delete Successed !\n\n”);}else printf(“\t Not been find!\n”);return(head);}else {printf(“\n\t Error!Please check your input\n\n”);return(head);}}void display(struct stud *head){struct stud *p;p=head;clrscr();if(head==NULL)printf(“\n\t No information\n\n”);else {printf(“name\tnumber\tage\tsex\tMath\tEnglish\tC\ttelephone number\n”); do{printf(“%s\t%ld\t%d\t%c\t%d\t%d\t%d\t%s\n”,p->name,p->num,p->age,p->sex,p->score[ 0],p->score[1],p->score[2],p->tele);p=p->next;}while(p!=NULL); }}struct stud *add(struct stud *head)/*链表的插入*/{struct stud *p1,*p2,*p0;p0=(struct stud *)malloc(sizeof(struct stud));clrscr();printf(“\n\t\t Input the information:”);printf(“\n\t\t name:”);fflush(stdin);gets(p0->name);printf(“\t\t number:”);scanf(“%ld”,&p0->num);printf(“\t\t age:”);scanf(“%d”,&p0->age);printf(“\t\t sex:”);fflush(stdin);scanf(“%c”,&p0->sex);printf(“\t\t Math score:”);scanf(“%d”,&p0->score[0]);printf(“\t\t English score:”);scanf(“%d”,&p0->score[1]);printf(“\t\t C score:”);scanf(“%d”,&p0->score[2]);printf(“\t\t telephone number:”);fflush(stdin);gets(p0->tele);p1=head;if(head==NULL){head=p0;p0->next=NULL;}else{while(p0->num>p1->num){p2=p1,p1=p1->next;}if(p0->num<=p1->num){if(head==p1)head=p0;else p2->next=p0;p0->next=p1;}else{p1->next=p0;p0->next=NULL;}}return(head);}struct stud *modify(struct stud *head)/*链表的修改*/{struct stud *p1,*p2,*p0;clrscr();printf(“\n\tInput the student’s name:”);p0=(struct stud *)malloc(sizeof(struct stud));fflush(stdin);gets(p0->name);if(head==NULL){printf(“\nNo information !\n\n”);return(head);} p1=head; while(strcmp(p0->name,p1->name)!=0&&p1->next!=NULL){p2=p1;p1=p1->next;}if(strcmp(p0->name,p1->name)==0){printf(“name\tnumber\tage\tsex\tMath\tEnglish\tC\ttelephone number\n”); printf(“%s\t%ld\t%d\t%c\t%d\t%d\t%d\t%s\n”,p1->name,p1->num,p1->age,p1->sex,p1->score[0],p1->score[1],p1->score[2],p1->tele);if(p1==head)head=p1->next; else p2->next=p1->next; printf(“\tNew information: number:”); scanf(“%ld”,&p0->num); printf(“\t\t\t age:”); scanf(“%d”,&p0->age); printf(“\t\t\t sex:”); fflush(stdin); scanf(“%c”,&p0->sex); printf(“\t\t\t Math score:”); scanf(“%d”,&p1->score[0]); printf(“\t\t\t English score:”); scanf(“%d”,&p1->score[1]); printf(“\t\t\t C score:”); scanf(“%d”,&p1->score[2]); printf(“\t\t\t telephone number:”); fflush(stdin); gets(p0->tele); p1=head; if(head==NULL){head=p0;p0->next=NULL;}else{while(p0->num>p1->num){p2=p1;p1=p1->next;}if(p0->num<=p1->num){if(head==p1)head=p0;else p2->next=p0;p0->next=p1;}else{p1->next=p0;p0->next=NULL;}}printf(“Modify Successed !\n\n”);}else printf(“Not been find!\n\n”);return(head);}void search(struct stud *head)/*查询链表 */{struct stud *p;int choose;long num;char name[20];clrscr();printf(“\n\t\tChoose the way you want”);printf(“\n\t 1: According to name\n “);printf(“\n\t 2: According to num\n”);printf(“\n\t Enter your choice:”);scanf(“%d”,&choose);fflush(stdin);if(choose==1){printf(“\n\t enter the name:”);gets(name);if(head==NULL){printf(“\t\nNo information !\n\n”);}else{p=head;while(strcmp(name,p->name)!=0&&p->next!=NULL){p=p->next;}if(strcmp(name,p->name)==0){printf(“name\tnumber\tage\tsex\tMath\tEnglish\tC\ttelephone number\n”); printf(“%s\t%ld\t%d\t%c\t%d\t%d\t%d\t%s\n”,p->name,p->num,p->age,p->sex,p->score[ 0],p->score[1],p->score[2],p->tele);}else printf(“ Not been find!\n\n”);}}else if(choose==2){printf(“\n\t Enter the number:”);scanf(“%ld”,&num);if(head==NULL){printf(“\nNo information!\n”);}else{p=head;while(num!=p->num&&p->next!=NULL){p=p->next;}if(num==p->num){printf(“name\tnumber\tage\tsex\tMath\tEnglish\tC\ttelephone number\n”); printf(“%s\t%ld\t%d\t%c\t%d\t%d\t%d\t%s\n”,p->name,p->num,p->age,p->sex,p->score[ 0],p->score[1],p->score[2],p->tele);}else printf(“\t Not been find!\n”);}}else printf(“\n\t Error!Please check your input\n\n”);}struct stud *sort(struct stud *head){struct stud *first;struct stud *t;struct stud *p;struct stud *q;int ch;clrscr();printf(“\n\t\tChoose the way you want”);printf(“\n\t 1: According to Math:\n”);printf(“\n\t 2: According to English\n”);printf(“\n\t 3: According to C\n”);printf(“\n\t Enter your choice:”);scanf(“%d”,&ch);first = head->next;head->next = NULL;while (first != NULL){for (t=first, q=head; ((q!=NULL) && (q->score[ch-1]>t->score[ch-1])); p=q, q=q->next);first = first->next;if (q == head)head = t;else{p->next = t;}t->next = q;}printf(“\n\t\tSuccess !\n”);return head;}void save(struct stud *head) /*保存链表*/{FILE *fp;struct stud *p;char filename[20];printf(“\n\ninput the filename: “);fflush(stdin);gets(filename);if((fp=fopen(filename,”w”))==NULL){printf(“Save file %s error ! Type it again.\n\n”,filename); exit(0);}p=head;while(p!=NULL){ fprintf(fp,”%s\t”,p->name);fprintf(fp,”%ld\t”,p->num);fprintf(fp,”%d\t”,p->age);fprintf(fp,”%c\t”,p->sex);fprintf(fp,”%d\t”,p->score[0]);fprintf(fp,”%d\t”,p->score[1]);fprintf(fp,”%d\t”,p->score[2]);fprintf(fp,”%s\t\n”,p->tele);p=p->next;}printf(“\n\t\tSuccess !\n”);fclose(fp);}struct stud *load() /*链表的导入*/{FILE *fp;char filename[20];struct stud *head,*p1,*p2;printf(“\n\ninput the filename: “);fflush(stdin);gets(filename);if((fp=fopen(filename,”r”))==NULL){printf(“Load file %s error ! Type it again.\n\n”,filename); exit(0);}if(!feof(fp)){head=(struct stud *) malloc(sizeof(struct stud));fscanf(fp,”%s\t”,&head->name);fscanf(fp,”%ld\t”,&head->num);fscanf(fp,”%d\t”,&head->age);fscanf(fp,”%c\t”,&head->sex);fscanf(fp,”%d\t”,&head->score[0]);fscanf(fp,”%d\t”,&head->score[1]);fscanf(fp,”%d\t”,&head->score[2]);fscanf(fp,”%s\t\n”,&head->tele);p2=head;}while( !feof(fp)){ p1= (struct stud *) malloc(sizeof(struct stud));fscanf(fp,”%s\t”,&p1->name);fscanf(fp,”%ld\t”,&p1->num);fscanf(fp,”%d\t”,&p1->age);fscanf(fp,”%c\t”,&p1->sex);fscanf(fp,”%d\t”,&p1->score[0]);fscanf(fp,”%d\t”,&p1->score[1]);fscanf(fp,”%d\t”,&p1->score[2]);fscanf(fp,”%s\t\n”,&p1->tele);p2->next=p1;p2=p1; }p2->next=NULL;printf(“\n\t\t Success !\n”);fclose(fp);return(head);}心得体会这次的课程设计,使我们对C语言有了更近一步的认识和了解,不仅巩固了以前所学过的知识,而且在查阅资料过程中学到了很多书本上学不到的知识。