C语言班级成绩管理系统 下载本文

数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了!

在参考书上,我们不仅参考了谭浩强主编的第二版《C语言程序设计》进行参考。

当然,我们的程序还有一些不完善的地方,比如说,当输入的数据不符合我们定义的数据的格式的时候,程序会出现一些错误,有时会出现主菜单的死循环;在一次程序运行中,只能行使一种权限,要想再行使另一种权限,就只能退出程序,然后再运行程序。

一周的课程设计即将结束,时间虽短,但是我收获了很多。最后,谢谢老师和同学们的指导,更要感谢我们小组成员之间的合作与交流。

- 21 -

参考文献

[1] 谭浩强.《C语言程序设计》(第二版).北京: 清华大学出版社,2009. [2] 谭浩强《C程序设计程序设计学习辅导》 .北京:清华大学出版社,2005.

22

附录 源代码

#include /*I/O函数*/ #include /*字符串函数*/ #define M 4 /*课程数*/ #define NUM 3 /*人数*/ #define NULL 0 #include #include int avar[M]; struct stu {

char name[20];

int num; int score[M]; };

void enter(struct stu s[],int n); void print(struct stu s[],int n); void save(struct stu s[],int n); void sort(struct stu s[],int n); void modify(struct stu s[],int n); void count(struct stu s[],int n); int menu();

void main() {

void clrscr();

struct stu student[NUM]; for( ; ; ) switch(menu()) {

case 1:enter(student,NUM);break;

case 2:print(student,NUM);break; case 3:save(student,NUM);break; case 4:sort(student,NUM);break;

23

case 5:modify(student,NUM);break; case 6:count(student,NUM);break; case 7:return; } } int menu() { int choice;

printf(\***************************\\n\

printf(\ 1 成绩录入\\n\printf(\ 2 成绩显示\\n\printf(\ 3 成绩保存\\n\printf(\ 4 成绩排序\\n\printf(\ 5 成绩修改\\n\printf(\ 6 成绩统计\\n\printf(\ 7 退出系统\\n\

printf(\ 学生人数级 NUM 课程 数学0 语文1 英语2 政治3\\n\

printf(\do {

printf(\

scanf(\}

while(choice<1||choice>7); return choice; }

void enter(struct stu s[],int n) { {

24

char c; int i=0; int j; do