最后退出系统。
测试结果:
经过上机调试,发现程序基本的功能都已实现,输入学生的信息,然后,修改,修改信息后存储到文件之中,删除信息等都得到了很好的实现。
当然,程序本身还存在一些细节问题:比如在输入学号的时候,当学号前第一个数字是0 的时候,在输出的时候没有显示0,
其次,在显示学生信息时,学生的各个信息并没有严格地对齐,使得界面不够美观。
心得体会:
在本次C语言课程设计的过程中,感受最深的是,我们培养了一种共同协作的能力。
在刚开始大家都还没有头绪的时候,大家都会抽出时间一起学习有关链表和文件的内容,共同探讨一些弄不懂的地方。为之后程序的设计打下了一个很好的基础。接下来是各个模块的实现,大家首先是针对各自比较熟悉的模块部分提出了自己的见解,写出自己的代码,然后马不停蹄地上机调试,对于自己一个人没能弄懂的地方,在自己提出来之后,大家都会很友好地提出自己所认为的解决方案,并相互磋商,在大家的共同努力下,终于完整地实现了学生管理系统的全部功能。 解决问题的能力得到了提高:
自然,做任何事,都或多或少难免会碰到些自己没办法解决的问题,同样,在整个程序设计的过程中,我也遇到了些不小的麻烦,首先就是有关文件的部分,由于在一开始自学文件整个部分时候,并没有将课本读的很透彻,以至在想办法将输入的信息以文件形式存储的时候,总是出现一些错误,本想着和小组里的同学讨论下该怎么解决这个问题,可是,想了想,觉得或许自己可以独立解决这个问题,于是硬着头皮,将课本上文件部分的内容又翻来翻去地看了好几遍,才发觉其实是自己的疏忽造成的。其实,有些时候,看似很难的问题,其实,多一点独立思考,也许就解决了。
另外,为了使整个程序趋于完美,我们也从网上找来了些类似 的程序,通过比较分析,发现了一些美中不足之处,然后,参照一些比较美观的程序界面做出了一些改进,使得学生管理系统的操作体验更好。这也使我明白,有时候,需要通过不断地比较才能从中找到差距,从而,不断改进,使得程序日趋完善。
四、 附录:
源程序如下:
#include
#include
#include
#include
#include
#define NULL 0
#define LEN sizeof(struct student)
#define FILE_DATA_PATH \
struct student //建立一个学生的结构 {
long int num; //学生人数 char name[20]; //学生姓名
int age; //年龄
char sex[4]; //性别
char birthday[10]; //生日
char address[30]; //地址
long int score; //成绩
char E_mail[20]; //邮箱
struct student *next; //指针指向学生结构 };
int TOTAL_NUM = 0; //初始化总人数为0
struct student *head = NULL; //指针指向的结构的首位为空
welcome();
mainmenu();
tuichuxitong();
record();
insert(struct student *stu);
display(struct student *stu);
displayAll();
query();
query_by_num();
query_by_name();
readData();
writeData();
freeAll();
del();
change();
devise(struct student *p);
main() {
welcome();
mainmenu(); }
welcome() //显示欢迎信息
{ system(\
printf(\
printf(\【学生信息管理系统】-------\\n\printf(\printf(\
printf(\制作人: 第一小组 \\n\
printf(\;
printf(\●☆☆ welcome ☆☆●\\n\printf(\
printf(\★★★★★★★★★★★★★★ ★★★★★★★★★★★★★★\\n\
printf(\
printf(\
printf(\
system(\system(\}
mainmenu() //系统主菜单
{ system(\
int choice;
choice = -1;
readData();
printf(\温馨提示:为保证您的操作得到保存,请按正常顺序退出系统^_^\\n\ do {
printf(\
printf(\学生信息管理系统 |\\n\
printf(\
printf(\录入学生信息 |\\n\
printf(\浏览学生信息 |\\n\
printf(\查询学生信息 |\\n\
printf(\删除学生信息 |\\n\
printf(\修改学生信息 |\\n\
printf(\退出系统 |\\n\
printf(\·*·*·*·*·*·*·*·*·*·|\\n\
printf(\
printf(\请输入您的选择:\
scanf(\
switch(choice) {
case 0:
writeData();
freeAll();
tuichuxitong();
exit(0);
case 1:
record();
break;
case 2:
displayAll();
break;
case 3:
query();
break;
case 4:
del();
break;
case 5:
change();
break;
default:
printf(\无效选项!\
break; } }
while(choice != 0); }
record() //录入学生信息
{ system(\
struct student *p0;
p0 = (struct student *)malloc(LEN);
printf(\
printf(\请输入学生的学号:\