通讯录管理系统c语言

2022-10-02

第一篇:通讯录管理系统c语言

C语言作业:学通讯录

学生通讯录

一、语言和环境

1.

实现语言:C语言。

2.

环境要求:devC++。

二、实现功能

开发一套学生通讯录C语言系统,具体实现如下功能:

1.

打开系统显示欢迎界面,以及功能菜单,用户输入需要操作的功能序号,根据用户选择的需要进行相应界面

如图1所示。

图1

功能菜单

2.

当用户输入序号1时进入到录入学生信息界面,用户输入学生的姓名,性别,年龄和电话,输入完毕保存学生信息,并提示是否继续录入,如果选择Y则继续录入,如果选择为N则返回主菜单。如图2所示:

图2

录入学生信息

3.

当用户选择序号2则把录入的学生信息进行展示,如果没有录入则提示没有学术信息。如图3,图4所示

图3

显示录入的学生信息

图4

显示无学生信息

4.

当用户选择菜单按键3时可以通过姓名查询学生信息,如果有则显示此学生信息,如果

如图5所示

图5

查询学生信息

图6

查无此人

三、具体要求及推荐实现步骤

1.

定义结构体保存学生信息(学生姓名,学生年龄,学生性别,学生手机号),定义结构体数组保存学生商品。

2.

录入学生信息

a)

输入学生信息,保存在结构体数组中,定义变量保存存储的个数”

3.

显示

a)

读取数组中学生信息,循环显示。

4.

查找

a)

根据用户输入的姓名,在数组中进行查找

四、评分标准

标准:学生通讯录

该项目的评分标准如下:

20

变量定义

5

定义结构体和结构体数组

15

主函数中能够循环进行菜单中的相关操作,并选择退出能自动退出程序

35

录入信息

5

正确定义录入函数

20

正确对信息进行保存

10

实现是否继续录入功能

30

显示

5

正确定义显示函数

5

正确判断是否已经录入学生信息

20

正确对学生信息进行循环显示

15

查找

5

正确定义查找函数

10

正确显示查找功能

总分

100分

第二篇:c语言 电话簿管理系统

#include "stdio.h" #include "string.h" #define N 20 struct mem { char name[20];

char tel[20];

char wu[20];

char dz[20]; }mem[N]; void sorttel(struct mem tel[]) {

struct mem temp;

int i,j;

FILE *fp; if((fp=fopen("c: elephone.txt","rb"))==NULL) {

printf("不能打开文件 "); } for(i=0;i

for(j=0;j

if(strcmp(mem[j+1].tel,mem[j].tel)<0)

{

temp=mem[j];

mem[j]=mem[j+1];

mem[j+1]=temp;

} for(i=0;i

void sortname(struct mem tel[]) {

struct mem temp;

int i,j;

FILE *fp; if((fp=fopen("c: elephone.txt","rb"))==NULL) {

printf("不能打开文件 "); } for(i=0;i

for(j=i+1;j

if(strcmp(mem[j].name,mem[i].name)<0)

{

temp=mem[i];

mem[i]=mem[j];

mem[j]=temp;

} for(i=0;i

void sor() {int k;

do{printf ("--------------------排序菜单------------------- ");

printf("------------------------ ");

printf("

1:按号码排序 ");

printf("

2:按姓名排序 ");

printf("

0:退出 ");

printf("------------------------ ");

printf("请输入0-2选择功能 ");

scanf("%d",&k);getchar();

switch(k)

{

case 1:sorttel(mem);break;

case 2:sortname(mem);break;

case 0:return;

}

}while(1); }

void add() { char name[10]; char tel[10];

char wu[10];

char dz[10]; FILE *fp; if((fp=fopen("c: elephone.txt","a"))==NULL) {

printf("不能打开文件 ");

exit(0); }

printf("请输入姓名");

gets(name);

printf("请输入电话号码");

gets(tel);

printf("请输入工作单位");

gets(wu);

printf("请输入地址");

gets(dz);printf(" ");

fprintf(fp,"%s %s %s %s ",name,tel,wu,dz);

fclose(fp); } void del() {

FILE *fp;

int i=0,n;

char name[10];

printf("请输入删除名字");

gets(name);

if((fp=fopen("c: elephone.txt","r"))==NULL) {

printf("不能打开文件 ");

exit(0); }

while(!feof(fp))

{

fscanf(fp,"%s%s%s%s",mem[i].name,mem[i].tel,mem[i].wu,mem[i].dz);

if(strcmp(name,mem[i].name)!=0) i++;

}

fclose(fp); if((fp=fopen("c: elephone.txt","w"))==NULL) {

printf("不能打开文件 ");

exit(0); } for(n=0;n

fprintf(fp,"%s %s %s %s",mem[n].name,mem[n].tel,mem[n].wu,mem[n].dz); fclose(fp); } void dis() { FILE * fp; int i=0,n; printf("

姓名

电话号码

工作单位

地址 ");

if((fp=fopen("c: elephone.txt","r"))==NULL) {

printf("不能打开文件 ");

exit(0); }

while(!feof(fp))

{fscanf(fp,"%s%s%s%s",mem[i].name,mem[i].tel,mem[i].wu,mem[i].dz);i++;}

fclose(fp);

n=i;

for(i=0;i

printf("%-8s%11s%13s%24s ",mem[i].name,mem[i].tel,mem[i].wu,mem[i].dz); } void mod() { FILE * fp; int i=0,n; char name[10]; char nn[10];char nt[10]; char nwu[10];char ndz[10];

printf("请输入要修改的姓名"); gets(name); printf("请输入修改后的姓名"); gets(nn); printf("请输入修改后的电话号码"); gets(nt); printf("请输入修改后的工作单位"); gets(nwu); printf("请输入修改后的地址"); gets(ndz);printf(" "); if((fp=fopen("c: elephone.txt","r"))==NULL) {

printf("不能打开文件 ");

exit(0); }

while(!feof(fp))

{

fscanf(fp,"%s%s%s%s",mem[i].name,mem[i].tel,mem[i].wu,mem[i].dz);

if(strcmp(name,mem[i].name)==0)

{strcpy(mem[i].name,nn);strcpy(mem[i].tel,nt);strcpy(mem[i].wu,nwu);strcpy(mem[i].dz,ndz);}

i++;

}

fclose(fp); if((fp=fopen("c: elephone.txt","w"))==NULL) {

printf("不能打开文件 ");

exit(0); }

n=i;

for(i=0;i

fprintf(fp,"%s %s %s %s ",mem[i].name,mem[i].tel,mem[i].wu,mem[i].dz);

fclose(fp); } void main() {

int choose;

while(1)

{

printf ("--------------------电话簿管理系统-------------------- ");

printf("------------------------ ");

printf("

1:添加一个新号码 ");

printf("

2:删除一个号码 ");

printf("

3:显示所有保存的号码 ");

printf("

4:修改号码 ");

printf("

5:排序 ");

printf("

6:查询 ");

printf("

0:退出 ");

printf("------------------------ ");

printf("请输入0-6选择功能 ");

scanf("%d",&choose);getchar();

if(choose!=0)

switch(choose)

{

case 1:add();break;

case 2:del();break;

case 3:dis();break;

case 4:mod();break;

case 5:sor();break;

case 6:/*que();break*/;

}

else exit(0);

} }

第三篇:《C语言程序设计》考试系统

C language progamme design examination system

马国富

刘波

(安阳工学院 计算机工程系,河南 安阳455000)

Ma GuoFu,liu bo

(Department of Computer Engineering,Anyang Institute of Technology,Anyang 455000)

一:摘要

这一考试系统是一种计算机辅助教学软件,它包括教学模式,练习模式,考试模式。采用调用数据库的方式打开,可以实现随机选题和指定选题,而不是固定的试题。解决了由于教材更新和题库更新导致教学软件过时。大大提高了软件的利用价值,打破了教学软件内容的固化,其次三种工作模式极大地拓宽了软件的使用范围,不再是单一的教师教学软件或学生考试软件。可根据教学需要灵活地选择不同模式,同时少作修改即可用于其它课程。

系统解决了在多媒体教学中出现的模式僵化,内容固化的问题。更新教学内容只需建立一个新的数据源实现连接即可。

Abstract

The test system of the principle is a Computer extended education software, and this course is also the compulsory course in High etc. school.This system include Teaching mode. Practice mode Examination mode.You can use database open the examination database That is to say the content is up to you or at random.It is the revolution of test system This is the main reason we develop it.

二:关键词

考试系统 、多媒体技术、数据源、连接数据库

keyword examination system、multimedia technology、data soure、connection of database 三:课题研究的意义和目的

安阳工学院计科系毕业论文 2 3.1研究意义

现在,多媒体技术日趋成熟,多媒体系统以其能输出精彩的图形和图像、美妙的声音、动感的画面赢得了用户和社会各界广泛的关注和应用。如果把按传统考试方式同现代化的多媒体技术相结合,并且用多媒体著作工具及其它多媒体技术,编制一套符合高校考试需求的系统及其配套的多媒体教学软件,利用多媒体技术生动、直观、形象展示信息的特点,辅助教师授课和学生进行考试,尤其对部分有限制性的实验环节,可利用活动视频技术进行展示,这将会解决一系列目前存在的问题。总之,该课题是在计算机辅助教学及考试上进行的一次积极有意义的尝试,为其他实践性较强的课程进行多媒体辅助教学开辟一条新的路子,具有一定的理论和现实意义。

3.2目 的

传统的考试手段主要依靠有纸试卷,几乎没有可重用性。本课题将实现:用计算机辅助考试系统,把多媒体生动、直观的显示出来,使学生不再将考试视为一种枯燥无味的东西,提高了考试效果,使学生在一种愉悦的心情中进行考试,把枯燥的重复变为充满乐趣、具有启发性的考试过程,使学生能比较全面的学习知识,掌握技能,达到素质教育的要求。

四:系统流程图设计

4.1 初始化流程设计

在使用Authorware创建任何多媒体项目的时候,都应该先设置当前项目文件的窗口大小,将其设置为“800×600”,然后选择“演示居中屏幕”,同时取消对“显示标题栏”和“显示菜单栏”复选框的选择。

4.2 主界面的设计

本界面采用了Photoshop7.0图形图像处理软件来绘制。为了避免界面的单调和呆板,用蒙版和滤镜技术加以美化。该界面把Photoshop中的图层技术、图层蒙版技术、文字效果及滤镜等功能完美的结合了起来。并且在底部设置了一个Flash动画,增加视觉效果。

4.3背景音乐的交互控制

该多媒体教学以MIDI作为背景音乐,背景音乐的交互控制包括背景音乐的随机选曲播放、停止等功能,另外当该教学程序处于活动状态时,能够随时调整背景音乐和讲解声音的大小及比例,让使用者在一种轻松悦耳的环境中考试(调出WINDOWS的音量控制实现),还能够暂停背景音乐,当再次进入活动状态时则能重新播放背景音乐。

为了充分考虑用户计算机的不同配置情况,首先利用BUDAPI.U32的BASOUNDCARD函数判断用户机器是否已经安装了声卡,如果已经安装则执行背景音乐播放,否则不允许播放任何背景音乐操作.第 2 页 共 8 页

安阳工学院计科系毕业论文 3 程序如下:

IF BASOUNDCARD() THEN MIDI:=1 TEST(MIDI,MIDILOOP (FILELOCATION^”MUSICMUSIC-”^RANDOM(1,5,1)^”.MID”),STOPMIDI()) END IF 软件中的背景音乐交互控制是通过交互响应来实现的。在程序执行过程中,用户始终可以通过按钮控制背景音乐的播放与暂停。在计算图标“播放音乐”后添加一交互图标并命名为“音乐控制”,并在交互图标右边添加三个计算分支。设置“STOP/PLAY”分支为按钮响应交互,其功能是实现对背景音乐的控制。由于在整个程序执行过程中它都是有效的,因此须设置其为永久按钮,即选择“PERPETUAL”属性选项,同时设置“ACTIVE IF”条件为:BASOUNDCARD(),即检测到用户没有安装声卡的情况下该按钮及响应分支无效。

4.4内容的导航设计

该多媒体教学涉及内容繁多,不仅包括文本、图片、声音和动画,而且还有其它多媒体工具与Authorware 配合,同时,还把视频文件导入,以增加实用性。为使用户操作简单方便,设计了合理的教学内容导航。主文件与各章节之间的导航设计根据结构规划中的该章节内容的栏目划分,在流程设计中为这些栏目设计了导航,如图1为主程序内容导航的设计流程图。

图1 主程序内容导航

这样的流程设计使整个主程序结构清晰,可读性强。由于该文件结构是主-分结构,即主文件调用各章节模块文件的方式,因此在主文件的章节内容中实际存放的是一个起链接桥梁作用的调用脚

第 3 页 共 8 页

安阳工学院计科系毕业论文 4 本,而具体的考试试题题型内容则放在各章节的模块文件内。

4.5各模块的内容流程设计

图中的考试模式、练习模式、教学模式及退出系统这四部分主要程序流程图如下图

2、图

3、图

4、图5所示。

图2

第 4 页 共 8 页

安阳工学院计科系毕业论文 5

图3

图4

图5

第五部分的原理演示则是通过热区交互以及调入用VC6.0制作的演示内容的库文件,抽象的工作原理形象化,具体化。在打包的过程中采用了分步打包,首先对每部分进行打包。通过主文件调用其它各部分,这样避免了主文件过大,影响运行速度。

五: 以完成单选题为例来看具体实现过程

从单选题的数据库题库中随机抽取相应题数的问题;每一题只能选择一个答案;用户可以按次序做答,可跳过不答,在回答过程中,可以随时返回已做过的题目进行修改;交卷后会给出完成情况可以查

第 5 页 共 8 页

安阳工学院计科系毕业论文 6 看每题的回答情况.最后回到选题主界面,并把学生所做的答案成绩保存到数据库中。

当用户在主界面中,选择了“考试模式”后,系统就会进入到登录界面系统会提示输入用户名和密码,当输入后,点击“确定”后,系统将会进入到题型选择界面。在提示框中输入用户名和密码,我们点击“确定”后,就会进入到正式的单选题型界面中,选择“单选题”单击。

C语言程序设计考试系统的选择题从数据库中取出选择题,在一个界面上显示。利用三个热区域交互按钮“上一题”“下一题,”“完成”,按钮和四个热区域设置计算图标用来记录学生所选择的答案。在学生选择“完成”后,弹出学生做题的情况界面,

然后回到选题主界面,并把学生所做的答案成绩保存到数据库中。

5.1“未命名”用来擦除以前的图像

5.1.1 打开“未命名”的属性,进入“未命名”的属性窗口。

5.1.2在“属性窗口”中单击擦除标签在设置过渡效果进行设置 5.1.3单击“确定”按钮

5.2 设置“单选界面”插入一个图像

5.2.1双击“单选界面”图标进入显示图标窗口

5.2.2单击 绘图工具箱 图标进行绘制一个和窗口矩形一样大的矩形

5.2.3设置矩形的颜色为“绿色”

5.2.4单击显示图标窗口的关闭按钮,关闭保存对“单选界面”的设置 5.3 设置交互“进入”

5.3.1在交互图标的右边拖放一个群组“单选” 5.3.2设置单选的热区为“按钮“ 5.3.3单击确定后,双击“选择”。

5.3.3.1“未命名”用来擦除上次运行的图形 5.3.3.2在“打开数据库”的输入如下源程序:

第 6 页 共 8 页

安阳工学院计科系毕业论文 7 hint0:="您的数据库没有连接上......" --显示连接数据库的信息 title:="数据库连接...." ODBChandle:=ODBCOpen(WindowHandle,"","database","","") --得到数据源

getrecord:="select count(sequence) from erigister" --得到记录的个数 record:=ODBCExecute(ODBChandle,getrecord) if ODBChandle=0 then --测试连接数据库是否连接成功 MessageBox(WindowHandle,hint0,title,17) end if ODBCClose(ODBChandle) ODBChandle:=ODBCOpen(WindowHandle,"","database","","") if ODBChandle=0 then MessageBox(WindowHandle,hint0,title,17) end if sqlstring1:="select ssdb from erigister where sequence="^record^""-从表中选择单选库表题 ssdatabase:=ODBCExecute(ODBChandle,sqlstring1) getrecord:="select count(sequence) from "^ssdatabase^"" record:=ODBCExecute(ODBChandle,getrecord) --ssdb数据库的记录个数,以便产生随机数 sssum:=0 number1:=1 sui:=[] sui[1]:=Random(1,record,1) --下面程序用来产生一个随机数不能出现相同的题目 i:=2 repeat while i<=record flag:=0 repeat while flag=0 sui[i]:=Random(1,record,1) flag1:=0 repeat with p:=1 to i-1 if sui[i]=sui[p] then flag1:=1 end repeat if flag1=0 then flag:=1 end repeat i:=i+1 end repeat

5.3.3.3 在“做选择的背景”显示图标中设计单选题的界面如上图5.4 5.3.3.4 在“数据库的操作”中输入如下代码:在这里,我们就要实现对数据库的随机读取和跟踪答案的长短来选择界面

x:=0 ran:=sui[number1] result:="" record1:=Number(record)

第 7 页 共 8 页

安阳工学院计科系毕业论文 8 record:=record1 --得到记录的个数

sqlstring1:="select topic from "^ssdatabase^" where sequence="^ran^""分别得到选择题各项 sqlstring2:="select a from "^ssdatabase^" where sequence="^ran^"" sqlstring3:="select b from "^ssdatabase^" where sequence="^ran^"" sqlstring4:="select c from "^ssdatabase^" where sequence="^ran^"" sqlstring5:="select d from "^ssdatabase^" where sequence="^ran^"" sqlstring6:="select result from "^ssdatabase^" where sequence="^ran^"" get1:=ODBCExecute(ODBChandle,sqlstring1) --get1得到选择题目内容 get2:=ODBCExecute(ODBChandle,sqlstring2) --get2得到选择项A内容 get3:=ODBCExecute(ODBChandle,sqlstring3) --get3得到选择项B内容 get4:=ODBCExecute(ODBChandle,sqlstring4) --get4得到选择项C内容 get5:=ODBCExecute(ODBChandle,sqlstring5) --get5得到选择项D内容 get6:=ODBCExecute(ODBChandle,sqlstring6) --get6得到选择题的答案 inputa:=1 --用来设置热区域的激活条件

5.3.3.5 空“操作”用来设置跳转标志

5.3.3.6

在交互图标右边拖入四个热区域

在计算图标中从左到右的四个计算图标中输入: result:="A" result:="b" result:="c" result:="d"在交互属性中设置激活条件为inputa=1: ,鼠标指针设置为标准鼠标指针,其它的为默认设置.其中result变量用来记录用户所选的答案. 5.3.3.7拖一个交互图标“未命名”在它的右边拖两个计算图标为“上一题”和“下一题”,再拖一个群组“完成”放在“下一题”右边 ,设置热区为按钮。在“上一题”的激活条件中输入number1>1,鼠标指针设置为:标准的鼠标指针。在“下一题”的激活条件中输入:number1

六 结束语

根据对教师上课时课堂练习的分析,开发出该考试系统,主要是能够方便课堂练习,同时还可用于期中期末测试,该系统主要是针对《C语言程序设计》课程来设计的。对该系统做简单修改,即可用于其它课程。

参考文献

专著:王嘉宁 朱隽著 《Photoshop7.0中文版新概念百例》[M] 中国水利水电出版社 2004年4月 专著:龚祥国主编 《Photoshop图像处理实用教程》[M] 科学出版社 2002年 2月

专著: 王龙 金海主编 《Flash MX实战入门新概念》[M] 中国水利水电出版社 2005年5月 专著: 李恒著《Authorware 6.0多媒体实例大制作》[M] 冶金工业出版社 2002 年4月 专著: 袁海东著《Authorware 7.0教程 》[M] 电子工业出版社 2004年9月 专著: 郝蕾蕾著 《Authorware课件制作》[M] 中国水利水电出版社 2001年7月

第 8 页 共 8 页

第四篇:C语言图书管理系统课设报告

程序设计课设论文

论文题目: 图书信息管理系统

学 院: 年 级: 班 级: 姓 名: 学 号: 指导教师:

软件学院 2015级

软件工程1522班 韩汀

201515614100 邵回祖

2016年6月14日-2016年6月22日

目录

1.需求分析---------1

2.概要设计---------2

3.详细设计---------3

4.调试分析---------8

5.核心源程序清单和执行结果------------------------8

6.课程设计总结----19

1.需求分析

(1)程序的功能:

图书信息管理系统涉及5项功能,包括录入,浏览,查询,删除和修改,其中查询可通过书名或作者两种途径进行。

图书信息录入:将图书信息写入程序,包括序号,书名,作者,出版社,出版日期和价格。

图书信息浏览:将所有已录入的图书信息按序号排序列出。 图书信息查询:可根据图书的书名或作者查找该书的具体信息。 图书信息删除:可根据序号删除指定图书信息。 图书信息修改:可根据序号修改图书所有信息。

(2)输入输出要求:

(3)测试数据:

1 高等数学 1 高等教育出版社 2014.7 31.20 2 概率论 2 高等教育出版社 2008.6 37.40 3 线性代数 3 高等教育出版社 2007.5 17.30 4 C程序设计 4 清华大学出版社 2010.6 33.00 1

2.概要设计: (1)数据的存储结构

(2)系统流程: 2

3.详细设计:

(1) 信息录入函数: 用scanf函数输入定义的书籍结构体的序号,书名,作者,出版社,出版时间和价格。建立10本书籍的书库,输入完毕,返回主函数。

(2) 信息浏览函数:

(3) 信息查询函数:

这里分两个项目,一个是通过书名进行查询,另一个是通过作者进行查询。 在定义查询函数时使用switch函数:

通过书名进行查询:

通过作者进行查询:

(4) 信息删除函数:

根据序号删除图书,操作成功后显示删除成功,任意键跳转。如果序号输入错误显示图书不存在。

6

(5) 信息修改函数:

在此函数中,根据序号选择图书修改,存在一个问题,就是难以选择其中一项进行修改,只能全部修改。

出现的问题:只能全部进行修改:

7 4.调试分析:

(1)在初次运行中,发现系统闪退问题存在于第2,3,4,5项中,输入序号点击回车系统闪退。最后在每一项最后加入system("pause");使得闪退问题修复。

(2)在最初编写代码过程中,始终输入:FILE *fp;

if((fp=fopen("library","r"))==NULL) 最后修改为:FILE *fp;

if((fp=fopen("library.doc","r"))==NULL)

(3)在信息修改一栏中,目前仍无法实现单独修改一条信息的功能,只能根据序号,对序号所对应的全部图书信息进行修改。

if (i!=library.count) {

mbook book;

printf(" 请输入修改后此图书的信息 ");

printf(" 请输入图书号:");

scanf("%s",book.number);

printf(" 请输入图书名:");

scanf("%s",book.name);

printf(" 请输入作者名:");

scanf("%s",book.author);

printf(" 请输入出版社:");

scanf("%s",book.publish);

printf(" 请输入出版时间:");

scanf("%s",book.time);

printf(" 请输入该书的价格:");

fflush(stdin);

scanf("%f",&book.price);

strcpy(library.book[i].name,book.name);

strcpy(library.book[i].number,book.number); strcpy(library.book[i].publish,book.publish); strcpy(library.book[i].author,book.author); strcpy(library.book[i].time,book.time); library.book[i].price=book.price; save(); 5.核心源程序清单和执行结果:

(1)源代码:

#include #include #include typedef struct {

8 char number[10];//书号 char name[20];//书名 char author[20];//作者 char publish[50];//出版社 char time[20];//出版时间 float price; }mbook;

typedef struct { int count;//书的本数

mbook book[100];//最大可有100本书 }mlibrary;

mlibrary library; void save()//保存图书信息。 { FILE *fp; if((fp=fopen("library.doc","w"))==NULL) { printf(" 不能保存图书信息 "); return; } fwrite(&library.count,sizeof(int),1,fp); fwrite(library.book,sizeof(library.book[0]),library.count,fp); }

void putin() /*定义录入函数*/ {

int y=1;

system("cls"); while(y)

{ printf(" 请输入您的书籍的书号:"); scanf("%s",library.book[library.count].number); printf(" 请输入书名:"); scanf("%s",library.book[library.count].name); printf(" 请输入作者名:"); scanf("%s",library.book[library.count].author); printf(" 请输入出版社:"); scanf("%s",library.book[library.count].publish); printf(" 请输入出版时间:"); scanf("%s",library.book[library.count].time); printf(" 请输入该书的价格:"); fflush(stdin); scanf("%f",&library.book[library.count].price);

9 library.count++; printf(" 是否继续录入(1.继续;0,退出录入):"); fflush(stdin); scanf("%d",&y); if (y!=1) { y=0; break; } } save(); } void lookup() {

int i;

system("cls");

printf("图书号 图书名 作者名 出版社 出版日期 图书价格 "); for ( i=0;i

10 fflush(stdin); getchar(); system("pause"); } void search_by_author() /*定义按作者名查询*/ { int i; char s3[20]; int flag=1; printf("请输入要查询的书的作者: "); fflush(stdin); scanf("%s",s3); printf("图书号 图书名 作者名 出版社 出版日期 图书价格 "); for( i=0;i

void search() /*定义查询函数*/ { int a; system("cls"); /*进行清屏*/ printf(" ****************************** "); printf("开始查询 "); printf(" 1---------------search_by_name "); printf(" 2---------------search_by_writer "); printf(" 0---------------exit "); printf(" ****************************** "); printf(" 请选择你想要的查询方式:"); fflush(stdin); scanf("%d",&a); switch(a) {

11 case 1: search_by_name(); break; case 2: search_by_author(); break; case 0: return; } system("pause"); } void del() /*定义删除函数*/ { int i; char number[10]; system("cls"); /*清屏*/ printf(" Please type in the number of the book you want to delete:"); fflush(stdin); scanf("%s",number); for (i=0;i

12 void update()//修改图书信息 { int i; char number[10]; system("cls"); /*清屏*/ printf(" Please type in the number of the book you want to delete:"); fflush(stdin); scanf("%s",number); for (i=0;i

mbook book;

printf(" 请输入修改后此图书的信息 ");

printf(" 请输入图书号:");

scanf("%s",book.number);

printf(" 请输入图书名:");

scanf("%s",book.name);

printf(" 请输入作者名:");

scanf("%s",book.author);

printf(" 请输入出版社:");

scanf("%s",book.publish);

printf(" 请输入出版时间:");

scanf("%s",book.time);

printf(" 请输入该书的价格:");

fflush(stdin);

scanf("%f",&book.price);

strcpy(library.book[i].name,book.name);

strcpy(library.book[i].number,book.number); strcpy(library.book[i].publish,book.publish); strcpy(library.book[i].author,book.author); strcpy(library.book[i].time,book.time); library.book[i].price=book.price; save(); } else

printf(" cannot found! ");

fflush(stdin);

getchar();

system("pause"); }

int main() {

int a;

FILE *fp;

if((fp=fopen("library.doc","r"))==NULL) { printf(" 不能打开图书信息库 "); fp=fopen("library.doc","w+"); printf(" 初始化图书信息库,初始化之后要重启程序 "); library.count=0; fwrite(&library.count,sizeof(int),1,fp); fclose(fp); return; } fread(&library.count,sizeof(int),1,fp); fread(library.book,sizeof(library.book[0]),library.count,fp); fclose(fp); do { system("cls"); printf(" 图书信息管理系统 "); printf(" ********************************************* "); printf(" 1 ------------------图书信息录入 "); printf(" 2 ------------------图书信息浏览 "); printf(" 3 ------------------图书信息查询 "); printf(" 4 ------------------图书信息删除 "); printf(" 5 ------------------图书信息修改 "); printf(" 0 -----------------退出图书管理系统 "); printf(" ********************************************* "); printf(" Please Enter Choose: "); fflush(stdin); scanf("%d",&a); switch(a) { case 1:

putin();

break; case 2:

lookup();

break; case 3:

search();

break; case 4:

del();

break; case 5:

update();

break; case 0:

printf(" 退出 ");

break; default:

printf(" 序号不对 "); } }while(a!=0); save(); return 0; } (2)运行结果:

在codeblocks中编译、运行目标程序后,进入到主界面,显示如图1:

进入主界面后,显示信息选择操作,根据相应序号选择相应操作,输入1后进入图书信息录入选项,按顺序录入相应信息,完成后按1继续录入,按0结束录入,显示如图2:

按0返回主界面,进入到信息浏览界面,可查看已录入的全部图书信息(下图中只录入一本图书信息),查看结束后按任意键返回主界面,显示如图3:

根据选项进入信息查询界面,有两个选择,分别为根据书名和根据作者,按1进入根据书名进行查询,可显示相应图书信息,显示如图4:

根据作者进行查询,以查询无果为例,显示cannot found!显示如图5:

按5进入图书信息修改界面,输入序号显示图书信息并进行修改,按顺序依次修改信息(目前无法对单独某一条信息进行修改),显示如图6:

按4进入信息删除界面,输入相应序号后显示删除成功,按任意键返回,显示如图7:

在信息删除界面中,输入序号,如果没有存储该序号图书信息,显示cannot found!显示如图8:

6.课程设计总结:

在课程设计过程中,由于对代码和各种概念不是很清楚,所以对结构体变量的引用非常生疏。在调试程序的过程中,也存在许多问题,最后一一修改。通过自己对书本知识一遍又一遍的复习,自己感觉做系统不再那么的复杂,包括框架的建立,界面设计,调用函数等等。经过一个星期的锻炼,自己感觉到了明显的提高,以后还需多练习,多锻炼,加强对C语言综合知识的理解与应用。

请老师审阅我的课程设计报告。谢谢

软件学院

1522班

韩汀

201515614100

第五篇:C语言课程设计学生成绩管理系统个人总结

C语言课程设计——学生成绩管理系统

个人心得体会

(徐州工程学院 14计嵌1班 07组 张凯)

这一周以来的课程设计,不仅让我明白了C语言的确是一门很有用的,但是又是不容易的一门课程。起初刚开始做课程设计时,以为这个课程设计不会有多难,只不过是把多个函数组合起来就好了,但是,经过这一星期的编程,发现要完完整整把程序按照要求编出来是一件很不容易的事情。然而在这一周以来的学习中,也对C语言这门课程有了更加的了解和学习。

在整个编程的过程中,可以说遇到了很多难题,但是让我印象最深刻的是在编写从某文件中读取学生信息这个程序时所遇到的困难。起初,程序时编写出来了,在组建时也没有错误,但是就是实现不了这个功能,接着就是整整一天的苦战;终于,能够读取文件中的信息了,可是,新问题又来了,在显示读取的信息时出现了乱序。另外在编写加密代码的时候竟然忘记了将其放在主函数中运行闹了笑话,在指导老师的帮助下最后解决了这个问题。

每天看到一行行代码着实有时让人头大。然而在这个程序完整地编写下来,我觉得编写程序需要很大的耐心,一个稍微大点的程序就有个几百甚至上千行,没有耐心是很难做得成功的。当然细心也很需要,在编程的过程中有很多错误都是自己的粗心造成的,有时甚至自己多次检查都看不出来,这样一来,会造成时间的大量浪费。

这次的课程设计也是一次很好的对自我的检查。它让我知道了自己在C语言的学习上还不够认真刻苦,很多知识点还是没有很好的掌握,甚至有些知识点很生疏,这也许就是我在编写从某文件中读取学生信息这一函数时老碰壁的原因所在!从这一点上来看,发现我对待学习的态度还不够端正,有待加强。

不管怎么说,经过这一次课程设计,在C语言方面的收获最大,让我读代码的能力大大提升了不少,也巩固了很多知识。同时也受到了指导老师刘云、邹文辉的细心指导,非常感谢!

上一篇:逆转裁判1简明全攻略下一篇:网络培训心得体会4篇

本站热搜