4.成绩排序
5.查询学生成绩
6.插入学生成绩
7.插入后的成绩表
编程中易出现的错误:
1、 2、 3、 4、
书写标识符时,忽略了大小写字母的区别。如p易写为P 忽略了变量的类型,进行了不合法的运算。 忘记加分号和大括号。 忘记定义。如下图
三. 总结及体会
通过这次的作业,自己真的学会了很多东西。首先,很多知识,单看课本是学不会的,只有真正动手去试一下
才会明白。其次,编程的确是一门很复杂的课程,必须花大量的时间去琢磨。而且编程是一门十分考验人的耐心的课程,犯了一点错误,你就必须认认真真地检查,不能有一点马虎,也不能有一点火燥。最重要的一点是,要想完成作业,必须查阅大量资料和询问师兄,这就考验了人的探讨能力和与他人的合作能力。
老实说,由于个人的c语言知识浅薄,我的这次作业还存在很多问题,可能也满足不了全部的设计要求。但是,自己已经尽力而为了,也亲自动手试过了,自己就不觉得遗憾了。以后,我还要必须努力学习,不断完善自己,虚心接受老师的教导,做出更好的系统。
四. 附录:源程序代码
#include
#define LEN sizeof(student) #define NULL 0
typedef struct student {
int num; /*学号*/
char name[20]; /*姓名*/ char sex[2]; /*性别*/ int score[4]; /*成绩*/ int sum; /*总成绩*/ struct student *next; }Student;
int n; /*声明一个全局变量*/
Student *cin(void);
Student *sort_1(Student *head,int); /*声明按学号排序函数*/
void sort_2(Student *head); /*声明按总分排序函数*/ void print(Student *head); /*声明显示函数*/
Student *sort_all(Student *head); /*声明排序函数*/ void find(Student *head); /*声明查询函数*/ Student *add_new(Student *head);
Student *cin() {
int flag;
Student *head,*p1,*p2; n=0;
head=(Student *)malloc(LEN); p2=head;
printf(\请输入第%d名学生的学号,学号为0表示结束输入:\ scanf(\while(getchar()!='\\n');
for(;flag;) /*输入每个学生的信息*/ { n++;
p1=(Student *)malloc(LEN); p1->num=flag;
printf(\请输入第%d名学生的姓名:\输入姓名*/ scanf(\
printf(\请输入第%d学生的性别:\输入性别*/ scanf(\
printf(\请输入第%d名学生的语文成绩:\输入语文成绩*/ scanf(\
printf(\请输入第%d名学生的数学成绩:\输入数学成绩*/ scanf(\
printf(\请输入第%d名学生的英语成绩:\输入英语成绩*/ scanf(\ printf(\请输入第%d名学生的c语言成绩:\输入c语言成绩*/ scanf(\
p1->sum=p1->score[0]+p1->score[1]+p1->score[2]+p1->score[3]; p2->next=p1; p2=p1;
printf(\请输入第%d名学生的学号,没有此学生则输入0表示结束:\ scanf(\ }
p2->next=NULL; printf(\return head; }