1、直到编译成功为止。(3)执行运行操作,逐一对每个模块进行调试。直到全部程序运行成功为止。(4)请老师检查,向老师演练此程序,并能回答老师提出的相关问题。三、需求分析1.该学生学籍管理系统,添加用户密码登陆功能,能够完成学生基本信息的录入、修改、添加、查询、删除、排序、输出、退出操作。 每个模块的功能如下: A、录入模块能够完成学生学号、姓名、性别、年龄、出生年月、所在院系专业、学制、班级的输入。 B、更新模块中可以对学生信息进行添加、删除、修改。 C、查询模块能按学号或姓名查询一个学生的全部信息,并能显示该学生的全部信息,可以查询所有已经录入的学生信息。 D、排序模块将按照学生学号的顺序进行所
2、有学生基本信息的排序并显示。 E、退出模块可直接退出此程序,结束操作。2.创建该学生学籍管理系统目的就是能够对学生基本信息进行创建(录入)、修改、添加、查询、删除、排序等功能,这样可以简化许多人工做起来很复杂的问题。譬如:“排序”,有了此程序只需将信息输入,计算机就可自动执行,省时、省力。另外,它还可以重复使用,方便、快捷。3.该学生信息管理系统是在VC+ 6.0环境下运行。方法:1、添加学生信息:选择添加输入学生信息。2、删除学生信息:可选择按学号进行删除,如要删除某学生的信息,按学号删除,输入该学生的学号,核对屏幕上的信息,确认删除即可。3、修改学生信息:输入要修改学生的学号,显示该生所有
3、信息,可按屏幕所显示的提示操作,修改其任意信息,如选择修改年龄,再输入,显示出修改后的信息,然后询问是否继续。Y则继续,N则退回主界面。4、查询模块:按姓名或学号选择对应的选项进行查询。5、排序模块:选择按学号排序四、概要设计 1系统结构图(功能模块图)对系统进行分析,给出系统结构图: 主函数 1. 删除模块:删除一个学生的信息。del()2. 修改模块:对一个学生的信息中错误的部分进行修改。Change() 3. 添加模块:添加一个学生的信息。insert_message() 1.按姓名查询 2.按学号查询。 1.升序排列 2.降序排列 退出系统2功能模块说明对各个模块进行功能的描述:(1)
4、.输入模块:Input()实现学生基本信息的基本输入如学号、姓名、性别、年龄、出生年月、所在院系专业、学制、班级。(2).排序模块:void sort(struct student_type students,int sum)根据统计信息将住宿人员按某因素进行排序。(3).更新模块:A.修改模块: void modify(struct student_type students,int sum) B.添加模块:void add(struct student_type students,int *sum) C.删除模块:int del(struct student_type students,i
5、nt sum)处理各种可能出现的意外情况如想插入新数据,修改某学生信息,删除错误信息等。(4).查询模块:按照学号进行查询并显示学生的信息:void reserch(struct student_type students,int sum)根据一定规则排序好的数据,输入一定信息后显示该信息的其他信息。(5).输出模块:Output(),将查询结果输出。五、详细设计及运行结果流程图, 函数之间相互调用的图示 ,程序设计及编码, 运行结果。六、调试情况,设计技巧及体会1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。通过两周的编程,我完成了学生证管理这个小系统。进一步理解并掌握了C 语言
6、中的精华指针和结构体。程序可以流畅运行,实现对数据的录入、修改、插入、删除、排序、查询、统计等基本功能。程序开始时从文件中读取数据,结束时对新数据或更新的数据进行保存,以便下次再次调用。但不足之处在于我没有用链表。2、在设计过程中的感受。本次课程设计我感受颇深,对我无疑是一次巨大大的挑战,实习过程中我深刻感受到我C语言编程方面的不足,尤其是链表的使用,我虽然完成了本次设计,但没能使用链表是我最大的遗憾,今后我会在此方面多下工夫,熟练掌握他。还有此次实习对我函数,结构体,指针,文件,等各方面的知识来了一次系统的复习,是我明白自己还存在很多很多的不足,以后还需多下工夫,真正实现很完整优秀的编程。七
7、、参考文献1.C语言程序设计 王曙燕 曹锰 科学出版社 2005年2月2.C语言程序设计 谭浩强 清华大学出版社 1999年12月八、附录:源代码(略,详见电子版实验报告)#includestdlib.hstring.hconio.h#define MAX 100int m=3;struct day_type /*日期结构体类型*/ int year; int month;struct student_type char num10; /*学号*/ char name10; /*姓名*/ char sex4; /*性别(男为m,女为w)*/ int age; /*年龄*/ struct day
8、_type birthday; /*出生年月*/ char aa20;/*所在院系专业*/ int xue10;/*学制*/ int clas;/*班级*/ ;int number;int read_file(struct student_type students) FILE *fp; int i=0; if(fp=fopen(student.txt,rt)=NULL) printf(n 库存文件不存在,请创建!n); return 0; while(!feof(fp) fread(&studentsi,sizeof(struct student_type),1,fp); if(studen
9、tsi.num=0) break; else i+; fclose(fp); return i;void save_file(struct student_type students,int sum) int i;wt printf(读文件错误n return; for(i=0;isum;i+) if(fwrite(&studentsi,sizeof(struct student_type),1,fp)!=1) printf(写文件错误nvoid mima(void) int j; char mima4; printf(请输入密码: for(j=0;j6;j+) int t; for(t=0;
10、t3;t+) mimat=getch(); putch(* mima3=0; getch(); if(strcmp(mima,123)=0) printf(成功登陆!t欢迎您的到来! break; if(m=0) int i;密码错误,请您停止输入 !由于您设置了密码提示,按任意键进入下一步操作! getch();tt1:找回密码;ntt2:退出系统! scanf(%d,&i); while(1) if(i=1) break; if(i=2) exit(0); if(m!=4)ntt密码错误!nttt你还有%d次输入机会!,m); m-;请重新输入密码:/*输入模块*/int input(st
11、ruct student_type students) system(clsn请输入要录入的学生的个数(最多%d个):,MAX); scanf(number);nn 录入学生学生证信息 (最多录入%d个)n,number); -n while(inumber) n 第%d个学生,i+1);n 学生学号:%s,studentsi.num); if(studentsi.num=0) break;n 学生姓名:,studentsi.name);n 学生性别(男为m,女为w):,studentsi.sex);n 学生年龄:studentsi.age);n 学生出生年月(xxxx-yy):%d-%dstudentsi.birthday.year,&studentsi.birthday.month);n 所在院系专业:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1