C语言设计说明书
C语言设计说明书

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊目录一、设计题目 (1)二、设计目的 (1)三、设计分析 (1)四、总体设计 (1)五、详细设计 (2)六、设计总结 (9)┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊一、设计题目简单的图书销售系统的设计二、设计目的1.运用已学过的知识进行一个简单的应用程序的开发。
2.基本掌握设计课题的基本步骤和方法。
3.掌握应用系统开发中的需求分析与数据库设计方法。
4.基本掌握应用系统开发中设计文档的编制。
三、设计分析对图书信息(包括书名、书号、作者、出版社、价格、从书名)进行管理,包括图书的信息添加、修改、查询、删除、显示、写入、退出.将各每本图书信息进行记录,信息内容包含:(1)图书书名(2)图书号(3)图书作者(4)图书出版社(5)图书价格。
现在收集一些图书信息,要求用C语言编写一个简单的图书销售管理系统,可进行录入、查询和浏览等功能。
学习相关开发工具和应用软件,熟悉系统建设过程。
对图书信息的添加、修改、查询、删除、显示、写入、退出是图书销售管理的重要组成部分,图书信息包括:其内容较多,为了简化讨论,要求设计的图书管理系统能够完成以下功能:1.每一条记录包括一个图书信息的书名、书号、作者、出版社和价格、从书名2.图书信息添加功能:图示添加信息用文件保存,可以一次完成若干条记录的添加。
3.图书信息显示浏览功能。
4.查询功能:完成按书号、书名、价格查找课图书记录,并显示。
5.图书信息的删除:按书号、书名进行删除某图书的信息。
6.应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。
四、总体设计该设计的主要功能包括:添加信息功能、查询信息功能、修改信息功能、删除信息功能、显示部分或全部信息、退出等功能。
设计图如图1所示。
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊五、详细设计1.各函数的功能和实现(1)添加图书模块:通过定义一个函数添加。
C语言参考手册

版权说明:本资料内容摘录自《C程序设计语言(第二版)》K&R著 徐宝文 李志译 尤晋元审校 机械工业出版社出版 一书。
版权属原作者和出版社所有。
制作本资料为了我本人学习和参考,非商业用途。
建议读者阅读原书学习比较好,它更详细。
目录:A.12 预处理主要介绍预处理器的功能和预处理的过程。
A.12.1三字符序列主要介绍 ??=, ??(, ??<等三字符序列。
A.12.2 行连接主要介绍反斜杠\结束的指令行处理过程。
A.12.3 宏定义和扩展主要介绍#define 标识符 记号序列,#define 标识符(标识符表opt) 记号序列,#undef 标识符,还有#和##等一些东西,有一些例子。
A.12.4 文件包含主要介绍#include <文件名>和#include “文件名”指令。
A.12.5 条件编译介绍#if 常量表达式/#ifdef 标识符/#ifndef 标识符,#elif 常量表达式,#else,#endif语句。
A.12.6 行控制介绍#line指令。
A.12.7 错误信息生成介绍#error指令。
A.12.8 pragma介绍#pragma。
A.12.9 空指令介绍空指令#。
A.12.10 预定义名字介绍__LINE__, __FILE__, __DATE__, __TIME__, __STDC__等。
A.12 预处理 返回目录预处理器执行宏替换,条件编译以及包含指定的文件。
以#开头的命令行(“#”前可以有空格)就是预处理器处理的对象。
这些命令行的语法独立于语言的其它部分,他们可以出现在任何地方,其作用可以延续到所在编译单元的末尾(与作用域无关)。
行边界是有实际意义的;每一行都将单独进行分析(有关如何将行连接起来的详细信息参考A.12.2节)。
对预处理器而言,记号可以是任何语言记号,也可以是类似于#include指令(参见A.12.4节)中表示文件名的字符序列。
C语言综合程序设计说明书

C语言综合程序设计说明书一、设计目的用C语言设计一个具有输入成绩、打印成绩表功能的综合程序,以巩固和加深对C语言的学习。
二、设计要求1、输入1时完成输入姓名及各科成绩;2、输入2时完成打印输出总表;3、输入3时完成打印学号,成绩表,总分和名次;4、输入4时,完成退出功能。
注:每执行完一个功能,屏幕必须清屏。
三、设计思路将设计要求中的1、2、3分别定义为具有相应功能的子函数,再在主函数中进行调用。
1、根据设计要求,设计需要用到结构体数组。
因此,首先需要定义一个结构体数组,并将其中的学号赋值为从10101~10105。
2、定义一个具有输入成绩功能的子函数,用循环语句和scanf 语句相结合,完成每个学生的信息输入。
3、另外定义一个子函数对结构体中的总分进行比较,排出学生名次。
4、定义一个输出总表函数,用printf语句和循环语句结合使用,使该函数可以输出结构体中的各项数据。
根据设计要求,可将定义的输出总表的函数中的输出姓名项删除,即可得到打印学号、成绩表、总分和名次的函数。
四、程序设计环境Windows操作系统 Win-tc五、程序功能模块图六、程序功能流程图输入子函数--完成信息的录入 输出子函数—完成打印表排名子函数--完成名次的排列 退出子函数--完成退出功能七、程序代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>struct student{ int num;char name[20];float score[5];float sum;int mingci;}st[6]={{0},{10101},{10102},{10103},{10104},{10105}};int shuru(){ int i;system("cls");printf("成绩录入\n\n\n\n");printf("\t\t本程序只能输入5个学生的信息\n\t\t为使系统正常工作请按提示操作\n\n\t\t注意:每输入成一项信息后按Enter键确认!\n\n\n\n");printf("\n\n");sqrt(0); /*打开win tc浮点数支持*/for(i=1;i<=5;i++) /*这个循环是输入数据*/{printf("请输入学号为%d学生的姓名:",st[i].num);scanf("%s",st[i].name);printf("请输入该生的数学成绩:");scanf("%f",&st[i].score[1]);printf("请输入该生的英语成绩:");scanf("%f",&st[i].score[2]);printf("请输入该生的计算机成绩:");scanf("%f",&st[i].score[3]);printf("请输入该生的哲学成绩:");scanf("%f",&st[i].score[4]);st[i].sum=st[i].score[1]+st[i].score[2]+st[i].score[3]+st[i].score[4]; }printf("\n您已经完成了5位学生信息的录入\n\n\t\t请按任意键返回主菜单\t"); getch();}int mingci(){ int i,j;for(i=1;i<=5;i++){ st[i].mingci=1;for(j=1;j<=5;j++)if(st[i].sum<st[j].sum) st[i].mingci++;}}int shuchu(){ int i;printf("打印输出总表");printf("\n\n\n");printf("\t\b\b\b_______________________________________________________________ _________\n");printf("\t学号\t姓名\t\t数学\t英语\t计算机\t哲学\t总分\t名次\n");printf("\t\b\b\b_______________________________________________________________ _________\n");for(i=1;i<6;i++) /*这个循环是输出数据*/{printf("\t%d\t%8s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t %d\n",st[i].num,st[i].name, st[i].score[1],st[i].score[2],st[i].score[3],st[i].score[4],st[i].sum,st[i].min gci);printf("\t\b\b\b_______________________________________________________________ _________\n");}printf("\n\n\n\n");printf("您还想完成哪项操作,请选择功能键 1,2,3,4后按 Enter\n");printf("\n");printf("\t1.录入成绩 2.打印输出总表 3.打印学号、成绩表、总分和名次 4.退出\n"); }int shuchu1(){ int i;printf("打印学号、成绩表、总分和名次");printf("\n\n\n");printf("\t\t\t\b\b\b\b\b\b\b\b\b\b\b\b\b\b_____________________________________ __________________________\n");printf("\t\t学号\t数学\t英语\t计算机\t哲学\t总分\t名次\n");printf("\t\t\t\b\b\b\b\b\b\b\b\b\b\b\b\b\b_____________________________________ __________________________\n");for(i=1;i<6;i++) /*这个循环是输出数据*/{printf("\t\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t %d\n",st[i].num,st[i].score[1] ,st[i].score[2],st[i].score[3],st[i].score[4],st[i].sum,st[i].mingci);printf("\t\t\t\b\b\b\b\b\b\b\b\b\b\b\b\b\b_____________________________________ __________________________\n");}printf("\n\n\n\n");printf("您还想完成哪项操作,请选择功能键 1,2,3,4后按 Enter\n");printf("\n");printf("\t1.录入成绩 2.打印输出总表 3.打印学号、成绩表、总分和名次 4.退出\n"); }int tuichu(){ char m;while(1){system("cls");printf("\n\n\n\n\n");printf("\t\t\t您确认要退出吗?(y/n)\n");printf("\n\n");printf("\t\t\ty 确认退出\n");printf("\t\t\tn 返回主菜单\n\n\n\n");printf("\t\t请选择功能键 y 或 n 后按 Enter\t");scanf("%c",&m);if(m=='y') exit(0);else if(m=='n') main();}}main(){ int i,j;char n;system( "graftabl 936 ");system("cls");printf(" 08-09学年第2学期c语言综合程序设计*****应用电子技术08-1班:肖红福丁传飞*****\n");printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~\n");printf("\n\n\n\n");printf("\t\t\t1.录入成绩\n\t\t\t2.打印输出总表\n\t\t\t3.打印学号、成绩表、总分和名次\n\t\t\t4.退出\n\n\n\n\n");printf("\t\t请选择功能键 1,2,3,4后按 Enter\t");while(1){scanf("%c",&n);switch(n){case '1':system("cls");shuru();mingci();main();break;case '2':system("cls");shuchu();break;case '3':system("cls");shuchu1();break;case '4':tuichu();default : printf("对不起!您输入的数字不是功能键,请从新选择\n");}}}八、程序运行结果注:本程序因调用函数system( "graftabl 936 "),因此直接用Win-tc的英文环境即可运行。
C语言程序设计说明书与实验报告

C语言程序设计实验报告学院:资源加工与生物工程专业:无机非金属资料工程班级: 0501姓名:金光龙学号: 0302050107指导老师:金胜明制作日期:05年 7月 9日C语言程序设计说明书目录一程序设计目的及任务;二程序设计的内容;三源程序;四程序说明;五实践心得;一程序设计目的及任务1、学会数据文件的成立在室和生程中,常要存、理多半据(数据和生数据),在没有在的条件下,些数据都要行人工的入,成立数据文件。
从前,我都是写成立数据文件的程序来成立数据文件,当某个数据入就要从头入或写数据文件改正程序,比麻。
直接在状下(TC,TP等)写数据文件、直、用。
2、理解而且学会运用文件操作函数3、学会用性回法成立数学模型二程序设计的内容一、数据文件1.文件操作函数(1)文件的翻开 fopen#include<stdio.h>FILE *fopen(char *filename, char *type);filename —文件名,字符串量;type —文件翻开的方式 (r,w,a)函数功能:翻开由文件filename指定的文件,并把一个stream 与它系起来。
返回一个指,指用来随后操作的文件 stream 。
若成功地达成翻开,返回近来翻开的文件 stream ,若出,返回 NULL。
(2)文件的关 fclose#include<stdio.h>int fclose(FILE *stream);filename —文件名,字符串量; type —文件翻开的方式 (r,w,a)函数功能:关指定的流式文件。
(3)fscanf —从流中行格式化入#include<stdio.h>int fscanf(FILE *stream, char *format[,argument,⋯]);函数功能:从指定的入流中按定的格式把数据入由地点参数&arg1, ⋯&argn 定的元中。
C语言编程-简单的计算器

int i=0;
a[0]='$';
printf("请输入表达式,退出请输入q:\n\n");
scanf("%c",&x);
if(x=='q') break;
while(x!='\n')
{
a[++i]=x;
scanf("%c",&x);
}
a[i+1]='\0';
jieguo=jisuan(a);
}
j=j+1;
x=z;
if(a[j]=='.')
{
l=1;
i=j+1;
j=i+1;
while(a[j]>='0'&&a[j]<='9')
{j++;}
j--;
for(k=i;k<=j;k++)
{
n=pow(0.1,l);
l=l+1;
x=x+n*(a[k]-'0');
}
i=j+1;
}
else i=j;
shu.data[++shu.top].d1=x;
nibo[t1+1]='\0';
t2--;
}
zhan2[++t2]=a[i];
i++;
}
}
else if(a[i]=='*'||a[i]=='/')
C语言程序课程设计说明书.

C语言程序课程设计说明书一、设计任务与要求《C语言程序课程设计》是计算机科学与技术各专业本科生在完成《C语言程序设计》课程学习后进行的一门专业实践课程,是培养学生综合运用所学知识解决专业相关问题的重要环节,是对学生实际工作能力的具体训练和考察过程。
本次课程设计的题目均设想采用C语言来开发。
希望题目简单到学生可以独立完成,又可以达到锻炼学生编写复杂程序的课程设计目的。
最重要的是希望能避免抄袭,让学生真正锻炼自我。
要求每个学生必须参加,并完成如下各项课程设计任务:1. 要求每个学生认真阅读本C语言课程设计说明书,理解课程设计的目的和任务。
2. 要求学生通过自学理解和掌握本说明书附录2中给出的程序实例,读懂其中程序的设计功能,设计思想,设计结构,设计技巧,设计的不足等情况,提高阅读较大并且较为复杂程序源代码的能力,也可以通过实例理解本次课程设计要求的设计任务的规模和难度。
3. 要求每个学生根据自己的实际情况选择一个题目,实际动手完成这个题目,编写出程序代码,并调试通过。
4 每个同学选择一个题目,原则上不允许多名同学选择同一个题目。
多名同学选择同样题目时,独立完成,程序代码不可相同。
5. 要求每个学生完成课程设计后撰写《C语言程序课程设计报告》,可以按照任务书后面附带的课程设计报告模版的格式实际撰写。
6.要求每位学生必须在上机前做好充分准备,每次上机必须目的明确,必须事先编写好程序代码,然后在规定的时间和地点上机调试。
二、学生选题原则1 题目分四大类,根据学生自身情况选择其中一类题目,抽取其中一道题,作为课程设计选题,每个同学有两次选题机会,最终确定题目。
2 允许学生在给出可供选择题目之外自己选择题目,但要经指导教师同意。
三、课程设计实施过程1在课程设计开始时,公布此课程设计说明书。
2.教师根据需要安排合适的时间、地点进行答疑。
3.教师要认真检查学生完成的程序进展情况。
4 教师要指导学生撰写符合规范的《C程序课程设计报告书》。
C语言程序设计说明书
C语言程序设计说明书一、简介C语言是一种通用、高效的编程语言,被广泛用于系统软件和应用程序的开发。
本说明书旨在详细介绍C语言程序设计的基本原理和技巧,帮助读者快速掌握C语言程序设计的核心概念和操作方法。
二、开发环境1. 软件安装为了开始C语言程序设计,您需要安装相应的开发环境。
推荐使用以下软件进行安装:- 编译器:gcc或者MinGW- 集成开发环境(IDE):Code::Blocks、Dev-C++或者Visual Studio2. 配置环境变量安装完成后,需要配置环境变量以便系统能够正确找到编译器和相关的库文件。
请按照软件提供商的官方文档来进行正确的配置。
三、基本语法1. 数据类型C语言提供了多种数据类型,包括整型、浮点型、字符型等。
在声明变量时,需要指定其数据类型。
例如:int num = 10;char ch = 'A';2. 运算符C语言支持各种基本运算符,如加法、减法、乘法、除法等。
还有逻辑运算符、关系运算符等。
运算符的使用可以帮助实现各种计算和逻辑判断。
3. 控制流程C语言提供了多种控制流程语句,如条件语句(if-else)、循环语句(for、while、do-while)等。
通过这些语句可以实现程序的分支和循环执行,增加程序的灵活性和功能性。
四、函数和模块化编程1. 函数的定义和调用函数是C语言程序设计中的重要组成部分,可以实现代码的重用和模块化。
通过函数的定义和调用,可以将程序划分为多个模块,使程序结构清晰明了。
2. 函数参数和返回值函数可以带有参数和返回值。
参数可以是各种数据类型,用来向函数传递数据。
返回值则可以将函数的结果传递给调用者。
3. 递归函数C语言支持递归函数,即函数可以调用自身。
递归函数在解决某些问题时非常有用,但需要小心控制递归的深度,以避免堆栈溢出等问题。
五、数组和指针1. 数组的定义和使用数组是一种容器,可以存储多个相同类型的元素。
通过定义和使用数组,可以方便地处理大量数据和实现复杂的算法。
c语言课程设计设计说明
c语言课程设计设计说明一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,培养学生编写简单程序的能力,提高学生的逻辑思维和问题解决能力。
具体分解为:1.知识目标:•掌握C语言的基本语法和规则;•理解数据类型、运算符和控制结构的使用;•熟悉函数的定义和调用;•了解C语言的基本库函数和头文件。
2.技能目标:•能够编写简单的C语言程序;•具备基本的程序调试和错误查找能力;•能够使用C语言进行基本的数学计算和数据处理。
3.情感态度价值观目标:•培养学生对编程的兴趣和热情;•培养学生解决问题的能力和创新精神;•培养学生团队协作和沟通的能力。
二、教学内容根据教学目标,本课程的教学内容主要包括以下几个方面:1.C语言基本语法和规则;2.数据类型、运算符和控制结构;3.函数的定义和调用;4.C语言的基本库函数和头文件;5.简单的数学计算和数据处理。
教学大纲安排如下:•第1-2周:C语言基本语法和规则;•第3-4周:数据类型、运算符和控制结构;•第5-6周:函数的定义和调用;•第7-8周:C语言的基本库函数和头文件;•第9-10周:简单的数学计算和数据处理。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:教师通过讲解和演示,向学生传授C语言的基本知识和技能;2.案例分析法:教师通过分析实际案例,引导学生运用C语言解决问题;3.实验法:学生通过动手编写和调试程序,加深对C语言的理解和掌握;4.讨论法:学生分组讨论,共同解决问题,提高团队协作和沟通能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R);2.参考书:《C Primer Plus》、《C和指针》;3.多媒体资料:教学PPT、视频教程、在线编程练习;4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)。
C语言课程设计说明书
C语言课程设计说明书班级档案管理系统指导教师:于晓敏设计者:胡彩云王海芳依婷婷邱赞飞专业班级:食安081班设计时间:2009.10.1~2009.10.5《C语言程序设计》课程设计任务书适用专业:食品安全设计题目:班级档案管理系统一、已知技术参数或设计前提1、班级有10个人。
2、每个学生都有学号、姓名、性别、年龄、备注。
3、学生基本信息录入、显示、保存、删除、修改(要求先输入密码)、查询。
二、设计内容及要求1、基本功能要求:1)、实现录入学生资料2)、实现修改学生基本信息3)、实现修改学生基本信息4)、实现查询学生基本信息(按学号、姓名,性别,年龄查询基本信息)5)、实现删除学生基本信息0)、退出档案系统2、要通过文件记录班级档案信息。
设计要求1、根据所选题目难易程度可以分组或独立完成,小组成员不得超过4人,不得跨班分组,各小组题目不准重复,每组要有一名组长,负责总体的设计及任务分配。
2、程序代码应不少于300行,应遵照C语言的命名规则、加入适当的注释。
3、所设计的程序必须能够满足实际使用要求,并能编译运行。
4、在规定时间内,到指定的实验室完成设计。
5、设计说明书内容包括:系统的软硬件环境、需求分析、系统总体框架图、模块功能实现、程序的使用说明、结束语、成员分工、程序源代码和参考文献等。
6、提交内容(每组一份):设计说明书打印稿一份(用A4幅面的纸打印,左侧装订并加塑料封皮),存有源程序及设计说明书的软盘或光盘一张。
三、课程设计工作计划1、确定题目,成立设计小组,做用户需求分析(0.5天)2、查阅资料,进行问题分析,制定方案,确定成员分工(1天)3、根据方案编写程序并进行调试(2.5天)4、撰写设计说明书,完成设计(1天)5、提交设计内容,答辩四、相关教材及参考书目1、C语言程序设计高等教育出版社2 谭浩强.C程序设计.清华大学出版社.2005年7月指导教师签字:系主任签字:年月日班级档案管理系统一、需求分析班级档案管理系统是一项繁琐的业务,用计算机实现自动化管理既可以减轻人员的劳动强度,又可以提高学校管理效率。
C语言程序的设计说明书
C语言程序设计说明书一、C语言概述1、C语言出现的历史背景:C语言是国际上广泛流行的计算机高级语言,既可用来写系统软件,也可用来写应用软件。
C语言是在B语言的基础上发展起来的,它的根源可以追溯到ALGOL 60。
1960年出现的ALGOL 60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序。
1963年英国的剑桥大学推出了CPL (combined programming language)语言。
CPL语言在ALGOL 60的基础上接近硬件一些,但规模比较大,难以实现。
1967年英国剑桥大学的Matin Richards对CPL语言做了简化,推出了BCPL (basic combined programming language) 语言。
1970年美国贝尔实验室的Ken Thompson 以BCPL语言为基础,又做了进一步简化,设计出了很简单的而且很接近硬件的B语言 (取BCPL的第一个字母),并用B语言写了第一个UNIX操作系统,在PDP7上实现。
1971年在PDP11/20上实现了B语言,并写了UNIX操作系统。
但B语言过于简单,功能有限。
1972年至1973年间,贝尔实验室的D.M.Ritchie 在B语言的基础上设计出了C语言(取BCPL的第二个字母)。
C语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,数据无类型等)。
最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。
1973年,K.Thompson 和D.M.Ritchie两人合作把UNIX的90%以上用C改写,即UNIX第5版。
原来的UNIX 操作系统是1969年由美国的贝尔实验室的K.Thompson和D.M.Ritchie开发成功的,是用汇编语言写的。
后来,C语言多次做了改进,但主要还是在贝尔实验室部使用。
直到1975年UNIX第6版公布后,C语言的突出优点才引起人们的普遍注意。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊目录一、设计题目 (1)二、设计目的 (1)三、设计分析 (1)四、总体设计 (1)五、详细设计 (2)六、设计总结 (9)┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊一、设计题目简单的图书销售系统的设计二、设计目的1.运用已学过的知识进行一个简单的应用程序的开发。
2.基本掌握设计课题的基本步骤和方法。
3.掌握应用系统开发中的需求分析与数据库设计方法。
4.基本掌握应用系统开发中设计文档的编制。
三、设计分析对图书信息(包括书名、书号、作者、出版社、价格、从书名)进行管理,包括图书的信息添加、修改、查询、删除、显示、写入、退出.将各每本图书信息进行记录,信息内容包含:(1)图书书名(2)图书号(3)图书作者(4)图书出版社(5)图书价格。
现在收集一些图书信息,要求用C语言编写一个简单的图书销售管理系统,可进行录入、查询和浏览等功能。
学习相关开发工具和应用软件,熟悉系统建设过程。
对图书信息的添加、修改、查询、删除、显示、写入、退出是图书销售管理的重要组成部分,图书信息包括:其内容较多,为了简化讨论,要求设计的图书管理系统能够完成以下功能:1.每一条记录包括一个图书信息的书名、书号、作者、出版社和价格、从书名2.图书信息添加功能:图示添加信息用文件保存,可以一次完成若干条记录的添加。
3.图书信息显示浏览功能。
4.查询功能:完成按书号、书名、价格查找课图书记录,并显示。
5.图书信息的删除:按书号、书名进行删除某图书的信息。
6.应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。
四、总体设计该设计的主要功能包括:添加信息功能、查询信息功能、修改信息功能、删除信息功能、显示部分或全部信息、退出等功能。
设计图如图1所示。
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊五、详细设计1.各函数的功能和实现(1)添加图书模块:通过定义一个函数添加。
(2)显示目前丛书模块:通过定义一个函数显示丛书。
(3)修改信息模块:通过定义一个函数修改。
(4)删除信息模块:通过定义一个函数删除。
(5)查询图书信息模块:通过定义一个函数查询。
(6)显示销售订单模块:通过定义一个函数显示订单。
(7)退出模块:通过定义一个函数退出系统。
简单的图书销售系统显示信息添加信息查询信息删除信息修改信息退出功能图1总体设计图┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊2.流程图系统的流程图如图2所示图2 系统流程图3.系统实现界面根据实验设计启动程序将进入主菜单,主菜单包括系统名称、添加图书信息、显示目前丛书信息、修改信息、删除图书信息、查询图书信息、写入文件息和退出图书销售统。
可以根据提示选择不同的功能。
(1)系统界面如图3所示。
输出菜单开始根据菜单输入n的值选择程序输入输出查找插入删除保存退出结束┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊┊图3 系统界面图 如果用户选择1,则进入添加图书信息菜单。
(2)添加图书信息菜单如图4所示┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊┊图4 添加图书信息菜单图如果用户选择2,则进入显示图书信息菜单。
(3)显示图书信息界面如图5所示┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊图5 显示图书信息界面图(4)用户选择3可以进入修改菜单,修改管理系统中存在的数据如图6所示┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊(5)用户选择4可以进入删除菜单,删除系统中单个或多个数据如图7所示图7 删除图书信息界面图(6)用户选择5可以进入查询菜单,查询图书信息如图8所示┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊(7)用户选择6可以在此处添加信息,如图9所示图9 添加信息文件界面图(8)用户选择7可以进入写入文件菜单,如图10所示图10 写入文件信息界面图(9)用户选择8可以进入显示销售订单系统如图11所示┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊┊图11 限时销售订单界面图(10)用户选择9可以退出图书销售系统如图12所示图12 退出系统界面图六、设计总结本图书销售管理系统可以对图书销售信息进行日常管理,可以实现对图书┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊信息的添加、显示、修改、删除、查询、写入、退出等功能。
运用起来方便灵活、简单易用。
设计灵活运用各种循环语句,运用结构体定义每本图书信息包含内容。
添加模块通过int intput来实现、显示模块通过void display来实现、修改模块通过void insert来实现、删除模块通过void delete来实现、查询模块通过void query来实现、显示订单模块通过void display saling、退出系统通过exit来实现并且提供系统退出选项。
各模块相互独立互不影响。
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊附录#include<stdio.h>#include<stdlib.h>#include<ctype.h>#include<string.h>typedef struct{char name[10];char num[20];char zuozhe[20];char chubanshe[20];int score;char congshuming[20];char dingjia[20];char dingliang[20];char shijian[20];}BOOK;BOOK stu[80];int menu_select(){char c;do{system("cls");printf("☆☆☆☆☆☆☆☆☆☆长春大学软件学院☆☆☆☆☆☆☆☆☆☆☆\n");printf("☆创作人:严峰班级:2709309 学号:38☆\n");printf("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");printf("★图书销售系统★\n");printf("¤¤\n");printf("★ 1.添加图书 2.显示目前丛书★\n");printf("¤¤\n");printf("★ 3.修改信息 4.删除信息★\n");printf("¤¤\n");printf("★ 5.查询图书信息 6.添加信息文件★\n");printf("¤¤\n");printf("★7.写入文件8.显示销售订单★\n");printf("¤¤\n");printf("★9.退出系统★\n");printf("¤¤\n");printf("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊☆\n");printf("★******************************************************★\n");printf("★选择操作项目★\n");printf("☆******************************************************☆\n");printf("\t\tGive your Choice(0-9):");c=getchar();}while(c<'0'||c>'9');return(c-'0');}int Input(BOOK stud[],int n){int i=0;char sign,x[10];while(sign!='n'&&sign!='N'){printf("\t\t\t书名:");scanf("\t\t\t%s",stud[n+i].name);printf("\t\t\t书号:");scanf("\t\t\t%s",stud[n+i].num);printf("\t\t\t作者:");scanf("\t\t\t%s",stud[n+i].zuozhe);printf("\t\t\t出版社:");scanf("\t\t\t%s",&stud[n+i].chubanshe);printf("\t\t\t价格:");scanf("\t\t\t%d",&stud[n+i].score);printf("\t\t\t从书名:");scanf("\t\t\t%s",stud[n+i].congshuming);printf("\t\t\t订价:");scanf("\t\t\t%s",&stud[n+i].dingjia);printf("\t\t\t订量:");scanf("\t\t\t%s",&stud[n+i].dingliang);printf("\t\t\t时间:");scanf("\t\t\t%s",&stud[n+i].shijian);gets(x);printf("\t\t\tany more records?(Y/N)");scanf("\t\t\t%c",&sign);i++;}return(n+i);}void Display(BOOK stud[],int n){int i;printf("\t\t\t----------------------------------------------------\n");printf("\t\t\t书号书名价格出版社\n");printf("\t\t\t----------------------------------------------------\n");for(i=1;i<n+1;i++){printf("\t\t\t%-16s%-15s%d%15s\n",stud[i-1].num,stud[i-1].name,stud[i-1].score,stud[i-1].chuba nshe);┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊if(i>1&&i%10==0){printf("\t\t\t-----------------------------------\n");printf("\t\t\t");system("pause");printf("\t\t\t-----------------------------------\n");}}printf("\t\t\t");system("pause");}void Displaydingdan(BOOK stud[],int n){int i;printf("\t\t\t----------------------------------------------------\n");printf("\t\t\t书号书名定价定量时间\n");printf("\t\t\t----------------------------------------------------\n");for(i=1;i<n+1;i++){printf("\t\t\t%-12s%-12s%-12s%-12s%-12s\n",stud[i-1].num,stud[i-1].name,stud[i-1].dingjia,stud [i-1].dingliang,stud[i-1].shijian);if(i>1&&i%10==0){printf("\t\t\t-----------------------------------\n");printf("\t\t\t");system("pause");printf("\t\t\t-----------------------------------\n");}}printf("\t\t\t");system("pause");}void Sort_by_num(BOOK stud[],int n){int i,j,*p,*q,s;char t[10];for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++)if(strcmp(stud[j].num,stud[j+1].num)>0){strcpy(t,stud[j+1].num);strcpy(stud[j+1].num,stud[j].num);strcpy(stud[j].num,t);strcpy(t,stud[j+1].name);strcpy(stud[j+1].name,stud[j].name);strcpy(stud[j].name,t);p=&stud[j+1].score;q=&stud[j].score;s=*p;*p=*q;*q=s;}}int Insert_a_record(BOOK stud[],int n){char x[10];┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊printf("\t\t\t书序号:");scanf("\t\t\t%s",stud[n].num);printf("\t\t\t作者姓名:");scanf("\t\t\t%s",stud[n].name);printf("\t\t\t书单价:");scanf("\t\t\t%d",&stud[n].score);gets(x);n++;Sort_by_num(stud,n);printf("\t\t\tInsert Successed!\n");return(n);}int Delete_a_record(BOOK stud[],int n){char s[20];int i=0,j;printf("\t\t\ttell me his(her) name:");scanf("%s",s);while(strcmp(stud[i].name,s)!=0&&i<n) i++;if(i==n){printf("\t\t\tnot find!\n");return(n);}for(j=i;j<n-1;j++){strcpy(stud[j].num,stud[j+1].num);strcpy(stud[j].name,stud[j+1].name);stud[j].score=stud[j+1].score;}printf("\t\t\tDelete Successed!\n");return(n-1);}void Query_a_record(BOOK stud[],int n){char s[20];int i=0;printf("\t\t\tinput his(her) name:");scanf("\t\t\t%s",s);while(strcmp(stud[i].name,s)!=0&&i<n) i++; if(i==n){printf("\t\t\tnot find!\n");return;}printf("\t\t\this(her) number:%s\n",stud[i].num);printf("\t\t\this(her) price:%d\n",stud[i].score); }int AddfromText(BOOK stud[],int n){int i=0,num;FILE *fp;char filename[20];printf("\t\t\tInput the filename:");scanf("\t\t\t%s",filename);┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊if((fp=fopen(filename,"rb"))==NULL){printf("\t\t\tcann't open the file\n");printf("\t\t\t");system("pause");return(n);}fscanf(fp,"%d",&num);while(i<num){fscanf(fp,"%s%s%d",stud[n+i].num,stud[n+i].name,&stud[n+i].score);i++;}n+=num;fclose(fp);printf("\t\t\tSuccessed!\n");printf("\t\t\t");system("pause");return(n);}void WritetoText(BOOK stud[],int n){int i=0;FILE *fp;char filename[20];printf("\t\t\tWrite Records to a Text File\n");printf("\t\t\tInput the filename:");scanf("\t\t\t%s",filename);if((fp=fopen(filename,"w"))==NULL){printf("\t\t\tcann't open the file\n");system("pause");return;}fprintf(fp,"%d\n",n);while(i<n){fprintf(fp,"%-16s%-15s%d\n",stud[i].num,stud[i].name,stud[i].score);i++;}fclose(fp);printf("Successed!\n");}void main(){int n=0;for(;;){switch(menu_select()){case 1:printf("\t\t\tInput Information\n");n=Input(stu,n);break;case 2:printf("\t\t\tDisplay All Information\n");Display(stu,n);┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊break;case 3:printf("\t\t\tInsert a Record\n");n=Insert_a_record(stu,n);printf("\t\t\t");system("pause");break;case 4:printf("\t\t\tDelete a Record\n");n=Delete_a_record(stu,n);printf("\t\t\t");system("pause");break;case 5:printf("\t\t\tQuery\n");Query_a_record(stu,n);printf("\t\t\t");system("pause");break;case 6:printf("\t\t\tAdd Records from a Text File\n");n=AddfromText(stu,n);break;case 7:printf("\t\t\tWrite to a Text file\n");WritetoText(stu,n);printf("\t\t\t");system("pause");break;case 8:printf("\t\t\tDisplay saling\n");Displaydingdan(stu,n);break;case 9:printf("\t\t\tHave a Good Luck,Bye-bye!\n");printf("\t\t\t");system("pause");exit(0);}}}。