当前位置:文档之家› 校园卡管理系统

校园卡管理系统

湖南涉外经济学院课程设计报告课程名称: C语言课程设计报告题目:校园卡管理系统学生姓名:万智亮所在学院:信息科学与工程学院专业班级:电信1202班学生学号: 12430621817069 指导教师:彭琼刘晓秋20 13 年6月21日C语言程序设计课程设计任务书摘要校园卡管理系统是应用于校园卡管系统和应用的软件,该软件在程序设计中有它不可取代的地位,该软件是以C语言为实现语言,其功能在系统内部有源代码直接完成,管理者只需输入一些简单的汉字、数字,即可达到自己管理用户的目标。

学校校园卡管理系统以菜单方式工作,密码登陆。

其中有校园卡信息的录入功能(增加数据),校园卡信息的删除(删除数据),校园卡信息的浏览功能(查找数据),校园卡信息的修改(修改数据),校园卡信息的排序的6种功能。

校园卡信息的录入采用结构体存放校园卡信息,也可采用多维数组存放;而校园卡信息的删除是任意输入一本校园卡的编号,可以将它所有的校园卡删除;同时校园卡信息的浏览功能可以任意输入一张校园卡的卡号,显示出所有相关数据,能多次查找。

校园卡信息需要修改时,任意输入校园卡的卡号,显示出所有相关信息后,给出提示菜单,可选择对某一项信息进行修改并保存;最后就是校园卡信息的排序。

可以将所有校园卡的信息按余额从低到高依次显示出来。

关键词:校园卡;管理系统目录一、概述 (1)二、需求分析 (2)三、系统设计 (3)四、录入与添加及查找模块详细设计与实现 (4)五、结论与心得 (9)六、参考文献 (11)一、概述选择这个课题主要是了解校园卡管理系统的内涵,综合学期所学的知识来编译一个系统,了解C语言的作用以及重要性,从中来学好这门语言,巩固这一学期来所学到的知识。

本课题小组有四人组成分别是:组长万智亮,组员董浩、姚江宁、王红阳。

我们的分工是:万智亮负责密码、添加数据、查找数据;董浩负责删除数据;姚江宁负责修改数据;王红阳负责排序数据。

我们对设计、个模块编程、撰写文档、测试等任务有明确的分工,并在项目开始时有和合理的进度计划,同时在老师的指导下完成了该课题。

二、需求分析1.添加学生信息卡号添加数据:根据主函数,在声明函数之后,调用用函数void zjsj来实现此操作,对已经注册的登录用户有自己的个人卡号系统的录入功能。

2.删除旧卡删除数据;任意输入校园卡的编号,将它所有的信息从数组中删除,调用函数void scsj来进行操作,登录用户拥有自己校园卡管理的查询功能,可以按条件查询和模糊查询。

3.修改校园卡修改数据:任意输入一张卡的编号,打印出所有相关信息后,可对卡的信息进行修改并保存,调用void xgsj函数来实现此操作。

4.查询校园卡查找数据:任意输入一张卡的编号,打印出所有相关数据。

要求能多次查找数据。

可调用void czsj函数进行操作。

5.排序校园卡排序模块:统计所有校园卡的余额,将包括所有数据的数组元素按余额从高到低的顺序排序打印出来。

可调用void jspx函数来实现此功能。

三、系统设计校园卡管理系统分为:登陆界面→添加数据→删除数据→修改数据→查找数据→计算并排序。

录入与添加模块:进行录入数据存入到结构体中,如果之后想要添加信息,此模块也能实现。

删除数据:用户如果想要删除某个数据,则可以选择此模块完成。

修改数据:如果某条信息是错误的或者用户想要对此条信息进行修改,则可以通过此模块完成。

查找数据:如果信息量过多,用户想要查找某条信息,则可以通过此模块完成。

计算排序:此模块主要功能是将所有校园卡按余额排序,这样能够快捷地得到所要查询校园卡的信息。

1.总流程图2.技术路线数据结构形式:结构体+二叉排序树。

以用户为节点建立二叉排序树,以玩家为节点,以结构体形式接在用户节点之后。

功能:查找(按照卡号、姓名)、插入添加学生信息(按卡号)、删除、排序、查看、修改、查找、密码登录、初始化;四、详细设计我负责的是如下所画流程图这三个方面,在做之前可谓是不知如何动手,但是光坐到那里不做事却更加浪费时间,所以自己下了一个决心,没有绝对的事物是自己会做的,自有自己用心去做你才会懂得怎样去做,怎样去思考,怎样去分析。

程序详细分析如下:#include<stdio.h>#include<string.h> }函数主体#include<conio.h>#include<stdlib.h>#include<ctype.h>struct car /*校园卡的数据类型*/{int num;//定义变量char name[10];char class1[10];//字符变量int money;};struct car card[100]; /*定义学生信息的结构体类型*/void main()//函数体{void dljm();//声明“登陆界面”函数void mima();//声明“密码”函数void zjsj();//声明“添加数据”函数void scsj();//声明“删除数据”函数void czsj();//声明“查找数据”函数void xgsj();//声明“修改数据”函数void jspx();//声明“计算排序”函数mima();//调用“密码”函数dljm();//调用“登陆界面”函数//scsj();}int u,t;//定义局部变量//void main ()//{//}注释1:以上程序代码为函数头文件以及函数声明部分。

void mima(){char a[7],b[]={"533159"};int i,j;for (j=1;j<=3;j++)//for循环来控制密码登陆次数,次数为三次{printf("\t\t请输入密码:");for (i=0;i<6;i++){a[i]=getch();if(a[i]==8) {i=i-2;printf("\b \b");}else{if (a[i]==13)break;printf("*");}}a[i]='\0';printf("\n");if (strcmp(a,b)==0)//比较两个字符串的大小,两个字符串相同时返回0.{printf("密码正确\n");break;}elseprintf("\t\t输入密码错误!请重新输入:\n");}}本程序代码功能是设置校园卡管理系统的登陆界面,”533159为登陆密码。

定义一个整型变量i,用一个for循环来控制密码登陆次数,次数为三次,密码和账号只要其中有一个出错则屏幕显示请再次输入,若输入次数错误超过三次则会显示校园卡管理系统登陆失败。

输入正确则显示登陆成功,进入系统主菜单界面。

void dljm(){char i;//“定义一个全局变量”printf("\n\n");M:system("cls");//按任意键继续。

printf("\n\n");printf("\t\t◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆\n");printf("\t\t************************************************\n");printf("\t\t*******※欢迎进入校园卡管理系统功能界面※*******\n");printf("\t\t************************************************\n");printf("\t\t◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆\n");printf("\n\n\n\n");//mima();printf("\t\t\t→←→←→←→←→←→←→←→←→←→\n");printf("\t\t\t←→←→A 校园卡信息添加系统←→←→\n");printf("\t\t\t→←→←→←→←→←→←→←→←→←→\n");printf("\t\t\t←→←→B 校园卡信息删除系统←→←→\n");printf("\t\t\t→←→←→←→←→←→←→←→←→←→\n");printf("\t\t\t←→←→C 校园卡信息查找系统←→←→\n");printf("\t\t\t→←→←→←→←→←→←→←→←→←→\n");printf("\t\t\t←→←→D 校园卡信息修改系统←→←→\n");printf("\t\t\t→←→←→←→←→←→←→←→←→←→\n");printf("\t\t\t←→←→E 校园卡信息求值系统←→←→\n");printf("\t\t\t→←→←→←→←→←→←→←→←→←→\n");printf("\n\n\n");printf("\t\t请输入所需功能的对应字母\n");i=getchar();switch(i)//开关控制语句{case 'A':zjsj();goto M;break; //“利用case语句进行选择所要执行的内容,break语句进行跳转。

case 'B':scsj();goto M;break;case 'C':czsj();goto M;break;case 'D':xgsj();goto M;break;case 'E':jspx();goto M;break;}}具体截图操作功能如下:void zjsj()//“添加系统”定义键入学生信息函数。

{int j,k;//“定义局步变量“char a;printf("\t\t\t^◎^-^◇^-^◆^-^◎^-^◇^-^◆^-^◎^\n");printf("\t\t\t****************************************\n");printf("\t\t\t******* ㈠校园卡信息添加系统㈠ *******\n");printf("\t\t\t****************************************\n");printf("\t\t\t^◎^-^◇^-^◆^-^◎^-^◇^-^◆^-^◎^\n"); printf("\n\n\n");printf("\t\t请输入新的信息\n");printf("\n");l:printf("卡号");scanf("%d",&card[u].num); /*输入卡号*/for (j=0;j<u;j++) /*输入每个学生的信息*/{if((card[u].num==card[j].num)){printf("\t\t卡号重复,请重新输入.\n");scanf("%d",&card[u].num);}}printf("姓名");scanf("%s",&card[u].name); /*输入姓名*/printf("班级");scanf("%s",card[u].class1); /*输入班级*/printf("金额");fflush(stdin);scanf("%d",&card[u].money); /*输入金额*/u++;printf("\t\t是否继续输入信息,继续(Y),退出(n)\n");getchar();a=getchar();if (a=='y'||a=='Y') goto l;elseprintf("\n\n");printf("\t\t卡号姓名班级金额 \n"); for (j=0;j<u;j++){printf("\t\t%d\t",card[j].num); printf("%s\t",card[j].name);printf("%s\t",card[j].class1);printf("%d\t",card[j].money);printf("\n");}printf("\n");printf("\t\t\t按1键退出\n");scanf("%d",&k);getchar();//读取下一个字符}具体截图操作功能如下:void czsj()//“查找系统”{int i,y;char a;printf("\t\t\t^◎^-^◇^-^◆^-^◎^-^◇^-^◆^-^◎^\n");printf("\t\t\t****************************************\n");printf("\t\t\t******* ㈡校园卡信息查找系统㈡ *******\n");printf("\t\t\t****************************************\n");printf("\t\t\t^◎^-^◇^-^◆^-^◎^-^◇^-^◆^-^◎^\n");printf("\n\n\n");R:printf("\t\t\t请输入要查询的卡号信息:");scanf("%d",&y);printf("\t\t卡号姓名班级金额 \n");for (i=0;i<u;i++) /*查找每个学生的信息*/if(y==card[i].num){printf("\t\t%d\t",card[i].num);printf("%s\t",card[i].name);printf("%s\t",card[i].class1);printf("%d\t",card[i].money);printf("\n");}printf("\n");printf("\t\t是否继续输入信息,继续(Y),退出(n)\n");getchar();a=getchar();if (a=='y'||a=='Y') goto R;//“条件语句,判断是否继续,”“gotoR返回到界面”。

相关主题