学生证管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国地质大学(武汉)C语言课程设计论文
学院: 计算机学院
专业: 信息安全
题目: 学生证管理系统
班级: 192101班
姓名: 崔新月
学号: 20101001364
指导教师: 朱莉张冬梅
2011年6月6日
一课程设计的目的提高程序设计能力,检验课堂教学内容,掌程序设计的基本方法和调试技能。在编程的过程中可以深入的学习
数据结构,算法,编译原理,操作系统原理,软件工程等知识,从而更深层次的提高自己的编程水平。还有就是通过这次课程设
计可以为以后参加ACM等编程大赛做准备,培养我们编程的兴
趣。
二课程设计报告正文
题目
该系统应该具有下列功能:
(1)录入某位学生的学生证信息。
(2)给定学号,显示某位学生的学生证信息。
(3)给定某个班级的班号,显示该班所有学生的学生证信息。
(4)给定某位学生的学号,修改该学生的学生证信息。
(5)给定某位学生的学号,删除该学生的学生证信息。
(6)提供一些统计给类信息的功能。
【输入要求】
应用程序运行后,在屏幕上显示一个菜单。用户可以根据要求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
【输出要求】
(1)应用程序运行后,要在屏幕上显示一个菜单。
(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的
数据内容、格式及结束方式等。 【提示】
设计时可采用结构体类型和一维数组类型,用来保存学生证的内容。
三 分析
由于题目要求给出清晰明确懂得信息,所以在程序中要提供各种
不同功能的模块。这样子可以使程序更加简单易懂,可读性强。
四
总体设计
五 具体设计及分析
1.主函数
主函数主要提供菜单界面以及各模板函数的调用。以结构体的形式定义。通过直到型循环以及sqitch 语句来实现各功能模块的调用以及循环。
#include
#define J30
信息输入模块
信息查询模块 信息修改模块 信息删除模块 信息统计模块
功能选择
系统模块
main() /*主函数菜单*/ {
int n,q;
do
{
printf("\t\t***********************MENU*********************** **\n\n");
printf("\t\t\t\t 1. 录入\n");
printf("\t\t\t\t 2. 查询\n");
printf("\t\t\t\t 3. 修改\n");
printf("\t\t\t\t 4. 删除\n");
printf("\t\t\t\t 5. 统计\n");
printf("\t\t\t\t 6. 退出\n");
printf("\n\t\t************************************************** **\n");
printf("请选择你需要做什么(1-6):[ ]\b\b");
scanf("%d",&n);
if(n<1||n>6)
{
q=1;
getchar();
}
else q=0;
}
while(q==1);
switch(n)
{
case 1:scanf_stu();break;
case 2:search();break;
case 3:revise();break;
case 4:delete_stu();break;
case 5:stat();break;
case 6:exit(0);
}
}
struct student /*定义结构体*/ {
char num[10];
char class_num[10];
char name[10];
char sex[4];
char nation[10];
char native[10];
int born;
int ave; }
2.各功能模块的设计
(1)输入模块
主要用于录入学生的学生证信息,调用添加各文件函数
int scanf_stu()
{
int n;
n=load(); /*调用加载文件函数*/ input(n); /*调用添加记录函数*/ save(n); /*调用保存函数*/ printf_back(); /*调用选择返回或结束函数*/ }
int load() /*加载文件记录并计算学生个数函数*/ {
FILE *fp;
int i;
if((fp=fopen("student card.txt","rb"))==NULL)
{
printf("\n Can not open file\n");
return NULL;
}
for(i=0;!feof(fp);i++)
fscanf(fp,"%s%s%s%s%s%s%d%d",st[i].num,st[i].class_num,st[i].name,st[i]. sex,st[i].nation,st[i].native,&st[i].born,&st[i].ave);
fclose(fp);
return(i);
}
int input(int i)
{
bijiao_num(i); /*调用确认学号不重复函数*/ class_input(i); /*调用输入班号函数*/ printf("\n 姓名:");
scanf("%s",st[i].name);
printf("\n 性别:");
scanf("%s",st[i].sex);
printf("\n 民族:");
scanf("%s",st[i].nation);
printf("\n 籍贯:");
scanf("%s",st[i].native);