C语言课程设计校园卡管理系统.docx

上传人:b****1 文档编号:22800938 上传时间:2023-04-28 格式:DOCX 页数:17 大小:60.53KB
下载 相关 举报
C语言课程设计校园卡管理系统.docx_第1页
第1页 / 共17页
C语言课程设计校园卡管理系统.docx_第2页
第2页 / 共17页
C语言课程设计校园卡管理系统.docx_第3页
第3页 / 共17页
C语言课程设计校园卡管理系统.docx_第4页
第4页 / 共17页
C语言课程设计校园卡管理系统.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C语言课程设计校园卡管理系统.docx

《C语言课程设计校园卡管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计校园卡管理系统.docx(17页珍藏版)》请在冰豆网上搜索。

C语言课程设计校园卡管理系统.docx

C语言课程设计校园卡管理系统

湖南涉外经济学院

 

课程设计报告

 

课程名称:

C语言课程设计

报告题目:

校园卡管理系统

C语言程序设计课程设计任务书

报告题目

校园卡管理系统

完成时间

6.17-

6.21

学生姓名

万智亮

专业班级

电信1202

指导教师

彭琼

刘晓秋

职称

讲师

副教授

设计目的

1、熟练掌握C语言课程中所学的理论知识;

2、通过综合C语言的基本知识来解决实际问题;

3、加强分析和解决问题的能力。

设计内容

设计对学校校园卡进行管理的校园卡管理系统,包括创建帐号,户名,学生所在学院,余额,充值,消费等等操作(帐号不重复)。

系统功能包括:

1、系统以菜单方式工作,密码登陆。

2、校园卡信息的录入功能(增加数据)。

用数组数据类型赋初值的方法把校园卡信息(包括卡号,姓名,学生所在学院、余额等)送到各个数组中(但注意要是合法数据),然后把它们输出显示。

3、校园卡信息的删除(删除数据)。

任意输入校园卡的编号,将它所有的信息从数组中删除。

4、校园卡信息的浏览功能(查找数据)。

任意输入一张卡的编号,打印出所有相关数据。

要求能多次查找。

5、校园卡信息的修改(修改数据)。

任意输入一张卡的编号,打印出所有相关信息后,可对卡的信息进行修改并保存。

6、校园卡余额的计算并排序。

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

7、(选做)校园卡的充值和消费。

通过界面可对校园卡金额进行充值或消费,消费时要先检查剩余金额是否足够。

 

设计步骤

1、需求分析:

对系统的应实现的功能进行分析。

2、概要设计:

对系统功能进行模块分解,对模块的功能及模块之间的相互关系进行说明(如用到函数,则对函数间的接口进行说明),对系统使用的数据结构(各数组、主要变量的设置及其代表的含义)进行说明。

3、详细设计:

用流程图、伪代码等方法对各主要算法进行描述。

4、编写代码:

根据设计编写。

源程序要按照程序的格式规范来编写,要求结构清晰,界面友好,关键部分有必要的注释。

5、调试分析:

准备充分的测试数据对系统进行调试(对错误的数据输入也要进行测试,保证程序的容错性),并通过测试对系统提出改进设想。

工作内容及时间进度安排

第17周:

周1:

需求分析、小组分工

周2---周4:

设计、实现及测试

周5:

验收答辩

课程设计成果

1.与设计内容对应的软件程序

2.课程设计总结报告

 

摘要

校园卡管理系统(以下简称:

卡管系统)是应用于校园卡管系统和应用的软件,该软件在程序设计中有它不可取代的地位,该软件是以C语言为实现语言,其功能在系统内部有源代码直接完成,管理者只需输入一些简单的汉字、数字,即可达到自己管理用户的目标。

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

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

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

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

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

关键词:

添加、删除、查找、修改、排序

一、概述………………………………………………………………………………1

二、需求分析…………………………………………………………………………2

三、系统设计…………………………………………………………………………3

四、添加模块详细设计与实现……………………………………………………4

五、结论与心得………………………………………………………………………6

六、参考文献…………………………………………………………………………6

 

一、概述

选择这个课题主要是了解校园卡管理系统的内涵,综合学期所学的知识来编译一个系统,了解C语言的作用以及重要性,从中来学好这门语言,巩固这一学期来所学到的知识。

本课题有四人组成的课题小组,【组长:

万智亮(1、2、4);组员:

王红阳(6)、董浩(3)、姚江宁(5)】组员对设计、个模块编程、撰写文档、测试等任务有明确的分工,并在项目开始时有和合理的进度计划。

各自对应自己所做的步骤如上小括号标示具体内容下:

1、系统以菜单方式工作,密码登陆。

2、校园卡信息的录入功能(增加数据)。

用数组数据类型赋初值的方法把校园卡信息(包括卡号,姓名,学生所在学院、余额等)送到各个数组中(但注意要是合法数据),然后把它们输出显示。

3、校园卡信息的删除(删除数据)。

任意输入校园卡的编号,将它所有的信息从数组中删除。

4、校园卡信息的浏览功能(查找数据)。

任意输入一张卡的编号,打印出所有相关数据。

要求能多次查找。

5、校园卡信息的修改(修改数据)。

任意输入一张卡的编号,打印出所有相关信息后,可对卡的信息进行修改并保存。

6、校园卡余额的计算并排序。

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

7、(选做)校园卡的充值和消费。

通过界面可对校园卡金额进行充值或消费,消费时要先检查剩余金额是否足够。

二、需求分析

1.添加学生信息卡号

添加数据:

根据主函数,在声明函数之后,调用用函数voidzjsj来实现此操作,对已经注册的登录用户有自己的个人卡号系统的录入功能。

2.删除旧卡

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

3.修改校园卡

修改数据:

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

4.查询校园卡

查找数据:

任意输入一张卡的编号,打印出所有相关数据。

要求能多次查找。

查找数据)。

任意输入一张卡的编号,打印出所有相关数据。

要求能多次查找。

可调用voidczsj函数进行操作。

5.排序校园卡

排序模块:

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

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

三、系统设计

校园卡管理系统分为:

(登陆界面→添加新卡→删除数据→查找数据→查找数据→计算并排序)

2.总流程图

3.技术路线

数据结构形式:

结构体+二叉排序树。

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

功能:

查找(按照卡号、姓名)、插入添加学生信息(按卡号)、删除、排序、查看、修改、查找、密码登录、初始化;

四、详细设计

【校园卡管理系统】我负责的是以上所画流程图这三个方面,在做之前可谓是不知如何动手,但是光坐到那里不做事却更加浪费时间,所以自己下了一个决心,没有绝对的事物是自己会做的,自有自己用心去做你才会懂得怎样去做,怎样去思考,怎样去分析。

程序详细分析:

#include

#include}函数主体

#include

#include

#include

structcar/*校园卡的数据类型*/

{

intnum;//定义变量

charname[10];

charclass1[10];//字符变量

intmoney;

};

structcarcard[100];/*定义学生信息的结构体类型*/

voidmain()//函数体

{

voiddljm();//声明“登陆界面”函数

voidmima();//声明“密码”函数

voidzjsj();//声明“添加数据”函数

voidscsj();//声明“删除数据”函数

voidczsj();//声明“查找数据”函数

voidxgsj();//声明“修改数据”函数

voidjspx();//声明“计算排序”函数

mima();//调用“密码”函数

dljm();//调用“登陆界面”函数

//scsj();

}

intu,t;

//voidmain()

//{

//}

注释1:

以上程序代码为函数头文件以及函数声明部分。

voidmima()

{

chara[7],b[]={"533159"};

inti,j;

for(j=1;j<=3;j++)

{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;}

else

printf("\t\t输入密码错误!

请重新输入:

\n");

}

}

本程序代码功能是设置校园卡管理系统的登陆界面,”533159为登陆密码。

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

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

voiddljm()

{

chari;//“定义一个全局变量”

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();gotoM;break;//“利用case语句进行选择所要执行的内容,break语句进行跳转。

case'B':

scsj();gotoM;break;

case'C':

czsj();gotoM;break;

case'D':

xgsj();gotoM;break;

case'E':

jspx();gotoM;break;

}

}

voidzjsj()//“添加系统”定义键入学生信息函数。

{

intj,k;//“定义局步变量“

chara;

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

{

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')gotol;

else

printf("\n\n");

printf("\t\t卡号姓名班级金额\n");

for(j=0;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();//读取下一个字符

}

voidczsj()//“查找系统”

{

inti,y;

chara;

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

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')gotoR;//“条件语句,判断是否继续,”“gotoR返回到界面”。

else

printf("\n\n");

printf("\t\t卡号姓名班级金额\n");

for(i=0;i

{

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\t按1键退出\n");

scanf("%d",&y);

getchar();

}

五、结论与心得

课程设计对我们来说是一次大考验,将以前学习的知识加以巩固。

自己动手,发现问题和解决问题,其中发现了自己很多地方的不足,平时没有掌握的知识在实践中暴漏,在设计之前可谓不知如何动手,但是经过不断的思考,查阅书籍和上网查资料及上机运行,解决了一些问题,却还存在很多问题,是寻求老师的帮助得以解决。

C语言在我们这个专业当中是一个重点学科,只有学好C语言知识,你才会在今后的专业深造学习起来得心应手,反过来说,如果自己没学好,多少会影响到你专业的扩展,在老师的帮助下,我也询问了老师,让我知道C语言的及其作用,它会应用到我们以后专业深造的后台程序编写,所以这一次的课程设计使我懂的了很多,以前不知道C语言到底对我们有什么用处,但是这次的考验真的让我体会到了C语言的重要性,也让我对学C语言的兴趣得以提升,我相信在今后的学习中,一定能把它解决好。

当今计算机应用在生活中可以说的无处不在,因此作为二十一世纪的大学来说掌握程序开发技术是十分重要地,而C语言又是最常见,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的。

这次的课程设计我不仅巩固《C语言程序设计》课程学习的内容,掌握设计的基本方法,强化上机动手能力,还进一步掌握以下知识:

数据类型、分支控制、循环控制、函数的定义及调用、结构体及数组等一些知识。

当我选择校园卡管理系统时,首先系统分析主要思路及框架,与同学讨论,联系所学知识,尽管一些文件要同组帮助找,也还有一些循环语句要具体分析,了解其运行路线,尤其是for,while,if等的使用,这次的课程设计应用起来特别多,所以很多通过老师的讲解让我懂得了很多,但这还是一小部分,想要学好C语言这些远远是不够的,这还是一点皮毛而已,所以以后C语言的学习,要更加用功,更加努力,这样你才能够熟练掌握C语言技巧,国家二级的考试通过才能得心应手,这次的课程设计也让我得到了许多经验,以后的学习,还是要多编写一些程序,这样有利于快捷、更好的掌握C语言的学习,因为只有加强动手能力才是以后深造的关键,所以动手能力实为重要。

第一次课程设计虽说能够运行通过,都是功能不过完善,所以继续修改,一遍一遍,最后还是不懂的只能需求老师的帮助了,慢慢努力,总算勉强通过,忙碌了一个星期,在大家的共同努力下,我们总算将程序设计出来了。

因为在设计过程中,让我了解到了要设计一个大程序,查找资料是至关重要的,在他人的基础上,在根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,都是重要你持之以恒,成功指日可待。

另外平时扎实的基础也很关键,因为如果你平时学的不怎么样,那么你面对一个比较有难度的程序,你可能会望而止步,看他人的程序都是个难点,更别说让你自己去设计。

为了解决此类问题,最好就是多问同学,多向老师请教,不要怕难为情。

所以我想这也是我的忧点,因为我不怕难为情,有困难实在解决不了,我就去寻求老师来帮助我解决,因为老师,凭他们多年的编写程序的经验,要解决我们的问题,只是小意思。

团队精神不可少,分工合作也是必须的,所以只有经过小组一起讨论之后在进行分工,这是尤为重要地。

通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样克服心理上的不良情绪,如果遇到一点点困难就选择逃避,这样永远是学不会的,所以只有持之以恒,坚持下去,这才硬道理。

因此在以后的生活和学习过程中,我一定会把课程设计的精神带到生活中,使生活更加美好。

六、参考文献

[1]谭浩强.C程序设计(第三版)[M].北京:

清华大学出版社,2005

[2]谭浩强.C程序设计题解与上机指导(第三版).北京:

清华大学出版社,2005

[3]HerbertSchildt.C语言大全(第四版).北京:

电子工业出版社,2004

[4]SamuelP.HarbisonⅢ,GuyL.Steele.C语言参考手册(第5版).北京:

机械工业出版社,2003

教师评语及设计成绩

教师评语:

 

课程设计成绩:

 

指导教师:

(签名)

日期:

年月日

........忽略此处.......

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1