版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言课程设计题目及相关要求说明1.选题考虑到时间比较紧张,同时也锻炼同学之间的团结协作能力,采用5人一组选作一题。课程设计题目见附2。分组可采用自由组合或按学号顺序安排,由各班学习委员妥善解决,分组名单下星期二(6月7日)交给任课教师,以便下达课程设计任务书。2.设计时间2011年6月5日2011年6月26日,为期3周。3.课程设计要求完成相应课程设计题目的基本功能;撰写课程设计报告报告封面及内容要求见附1;报告格式要求:标题课程设计题目黑体小二(居中)正文1、报告正文部分主要包括:问题要求及任务描述、 解决问题的主要思路和方法、程序实现、测试和小结。2、报告正文打印要求第一层次题序和标题用
2、小三号黑体字; 第二层次题序和标题用四号黑体字;第三层次题序和标题用小四号黑体字;正文用宋体小四号(英文用新罗马体12号);参考文献宋体五号。3、报告页面设置:页码一律用小5号字标明;正文采用23磅行距,标准字符间距,上边距25mm,下边距25mm,左边距28mm,右边距20mm。附件1:荆楚理工学院课程设计成果 学 院:_ 班 级: 学生姓名: 学 号: 设计地点(单位)_ _设计题目:_ 完成日期: 年 月 日 指导教师评语: _ _ _ _ _ 成绩(五级记分制):_ _ _ 教师签名:_ _标题1 问题要求及任务描述1.1 题目要求 在此填写 你选择的题目。1.2 主要任务具体细化,例
3、如主要功能,注意:在此标识出自己的主要工作2 解决问题的主要思路和方法2.1 关键问题关键问题描述2.2 拟采用解决问题的方法在此陈述解决问题的思路,准备使用的算法和数据结构等等2.3 主要算法和处理流程图关键的数据流程图3 程序实现3.1 程序实现时应考虑的问题函数调用关系图3.2 主要源代码及说明 源代码(加注释)4 测试4.1 测试结果及分析5 小结5.1本问题解决方法及程序实现小结总结系统的有缺点等等,对于程序中所参考的部分代码需要加以声明,并说明出处5.2 尚未解决的问题及下一步工作思路 对于程序中未能实现,或有待于进一步完善的部分需要加以说明。6 参考文献例如:1 严蔚敏. 数据结
4、构. 清华大学. 2004.11附2C语言课程设计参考题目计算机学院二零一一年六月一、工资管理系统1、 需求分析工资信息存放在文件中,提供文件的输入、输出等操作;要实现浏览功能,提供显示、排序操作;而查询功能要求实现查找操作;另外还应该提供键盘式选择菜单以实现功能选择。2、总体设计整个系统可以分为信息输入、信息添加、信息浏览、信息排序、信息查询和信息统计模块。3、详细设计工资信息采用结构体数组:Struct Salary_Info int Card_No; /工资卡号 Char name20; /姓名 int month; /月份 float Init_Salary; /应发工资 float
5、Water_Rate; /水费 float Electric_Rate; /电费 float tax; /税金 float Final_Salary; /实发工资SIMAX; /SIMAX中每个数组元素对应一个职工工资信息(1)主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。(2)输入模块 按照工资卡号、姓名、月份、应发工资、水费、电费的顺序输入信息,税金和实发工资根据输入的信息进行计算得到,这些信息被录入到文件中。文件操作函数:fopen,fwrite,fclose.税金的计算:if(应发工资800&应发工资1400) 税金=(应发工资-1400)*10%;实发工资=应
6、发工资-水费-电费-税金。(3)添加模块增加新的职工工资信息,从键盘输入并逐条写到原来的输入文件中,采用追加而不是覆盖的方式(以”ab”方式打开文件)。(4)浏览模块 分屏显示职工工资信息,可以指定10个1屏,按任意键显示下一屏。通过菜单选择按照工资卡号还是姓名浏览。如果按照卡号浏览,则显示的记录按照卡号升序输出;按照姓名浏览则按照字典序输出(调用排序模块的排序功能)。(5)排序模块排序模块提供菜单选择,实现按照工资卡号升序、实发工资降序以及姓名字典序排序。排序方法可以选择冒泡排序、插入排序、选择排序等。(6)查询模块实现按照工资卡号和姓名的查询,采用基本的查找方法即可。(7)统计模块输入起止
7、月份,按照职工卡号和月份查询记录,把起止月份之间的实发工资金额累加。附加:思考在数据输入及添加模块尾部添加排序功能,使得文件中的数据按照卡号排序。这样在查询模块和统计模块可以采用二分查找以提高效率。二、校际运动会管理系统1、需求分析要记录比赛结果,可以查看参赛学校的信息和比赛项目信息,因而要实现文件的输入和输出功能;用户可以查询各个学校的比赛成绩,查看参赛学校信息和比赛项目信息等,因而要提供查找和显示功能;另外还应该提供键盘式选择菜单以实现功能选择。2、总体设计 系统被设计为信息输入模块、比赛结果录入模块和查询模块三个模块。3、详细设计 数据结构采用结构体数组,包括学校、项目、运动员三个结构体
8、。Struct athlete Char name20; /姓名 Int age; /年龄 Char From20; /来自学校Athlete; /运动员结构体Struct item Char name20; /项目名 Int* weight; /在运行时根据用户的输入动态分配空间(各项目名次取法不同,weight所指空间依次存放第一名得分、第二名得分等)Athlete* player; /指向获奖运动员信息的指针Item; /项目结构体Struct university Char name20; /学校名 Item *item; /竞赛项目指针,根据用户输入动态分配空间 Int score;
9、 /学校得分Uni; /学校结构体Item TotalItemItemNum; /项目结构体数组Uni AllUniUniNum; /学校结构体数组(1)主函数 提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。 (2)信息输入模块输入参赛学校总数,M-男子参赛项目数,W-女子参赛项目数。把参赛学校信息和项目信息以及运动员信息录入文件(fwrite),建立三个文件。例如第i个项目:Scanf(“%s”,TotalI); /输入项目名Ch=Getchar(); /通过输入1,2,3来选择项目名次取法Switch(ch) Case 1: n=5;break; Cas
10、e 2: n=3; break; Case 3: printf(“取前几名?”,&n); break; Default: break;TotalItemi.weight=new intn;TotalItemi.athlete=NULL; /指向获奖运动员信息,初始化为空然后写入文件:fp=fopen(“item.txt”,”wb”);fwrite(&TotalItemi,sizeof(Item),1,fp);学校信息和运动员信息的录入与此类似。(2)比赛结果录入模块 通过菜单选择进入比赛结果录入模块,更改TotalItemi.athlete的值,并把获奖名单保存到项目文件中。项目文件格式为:项
11、目名 项目权值(按照第一名、第二名给出权值) 获奖运动员信息(按照第一名、第二名给出) (3)查找模块查找学校信息文件,生成团体总分报表;用基本查找算法查询参赛学校信息(按照校名查找)或者比赛项目信息(按照项目名)。 三、学生学籍信息管理系统设计1、需求分析学生基本信息、学生成绩基本信息要存入文件当中,因而要提供文件的输入输出操作;查询功能要求提供查找和显示操作;删除功能要求实现删除操作;排序功能要求实现排序操作;另外还应该提供键盘式选择菜单以实现功能选择。2、总体设计 整个系统可以设计为数据录入模块、数据查询模块、数据删除模块和数据排序模块。3、详细设计 设计学生基本信息和学生成绩基本信息结
12、构体数组。Struct int stuNo; /学号 char name20; /姓名 char sex2; /性别 int domNum; /宿舍号 int tel; /电话号码 StuInfo; /学生基本信息结构体Struct int stuNo; /学号 char courseNo; /课程编号 char courseName; /课程名称 int creditHour; /学分Int triGrade; /平时成绩Int experiGrade; /实验成绩Int examGrade; /卷面成绩Float totalGrade; /综合成绩Float finalCreHour; /
13、实得学分StuGraInfo; /学生成绩基本信息结构体(1)数据录入模块学生基本信息文件可以在磁盘建立,采用写文件方式录入学生成绩基本信息。综合成绩和实得学分通过计算得到。(2)查询模块通过菜单选择查询功能,再选择学生基本情况查询和成绩查询,若选择前者,再通过菜单选择学号、姓名或宿舍号码,按照基本查找算法查找A.TXT,然后把查找结果输出若选择后者,则先在A.TXT中查找学号对应的姓名,再在B.TXT中查找该学生的课程情况,并统计科目和实得总学分,输出结果。(fread和查找算法的应用)(3)删除模块通过菜单选择删除学生的功能,输入要删除学生的学号,则分别在A.TXT和B.TXT中查找该生信
14、息,删除之;或者输入学生的姓名,先在A.TXT中得到该生的学号,删除该生信息,再在B.TXT中删除该学号对应的信息。注意:C语言中没有直接删除信息的函数,需要自己实现,可以采取读出数据,判断数据(如果不删除,则进入缓冲区,否则删除),写入数据(把缓冲区中的数据写入文件)的步骤进行。(4)排序模块通过菜单选择排序依据,采用排序算法(冒泡、插入、选择等)对数据进行排序并输出结果。首先要读文件(fread)。四、一种简单的英文词典排版系统实现1、需求分析 运行结果以文本形式存储,因而要提供文件的输入输出操作;检查重复单词要提供查找操作;按A-Z的顺序排版,要提供排序操作;添加新单词并重新排版要提供插
15、入操作。另外通过键盘式菜单实现功能选择。2、总体设计 整个系统被设计为单词录入模块、文件存储模块和单词浏览模块。其中单词录入模块要完成输入单词、检查是否重复、排序操作。文件存储模块把存放单词的数组中的数据写入文件。单词浏览模块完成英文词典的输出,即文件的输出操作。3、详细设计数据结构采用指针数组或二维数组:char* dictionaryN; 或 char dictionaryN20。其中N是宏定义#define N 100 (表示单词个数)(1)单词录入模块 输入一个单词,存放在一个临时字符数组中,以空格或回车表示单词的结束(这也是默认操作),然后换行输出刚刚输入的单词。采用插入排序算法的思
16、想把该单词插入单词数组中,不同的是如果两个单词相同则不插入。(2)文件存储模块 采用fwrite或fprintf把单词数组输入到文件中。(3)单词浏览模块采用fread或fscanf把单词从文件中读出,然后输出。五、一担挑游戏1、数据结构 数据结构定义为二位数组:char chess_board33; 元素初始化为 。2、算法流程 Main() char chess_board33=; /定义棋盘,并初始化为空;while(未结束) 输出棋盘; /用flag标志移动方,0表示计算机走棋,1表示对弈者走棋 If(flag=0) /计算机走棋 扫描棋盘矩阵; If(存在空单元) 置该单元为O; I
17、f(有三个O在一条线上) 输出棋盘矩阵; 输出“计算机赢!”;退出程序; Flag=1; /下一步轮到对弈者走棋 Else 报告平局,退出程序。 Else /对弈者走棋 扫描棋盘矩阵; If(存在空单元) 置该单元为X; If(有三个X在一条线上) 输出棋盘矩阵; 输出“恭喜你,你赢了!”;退出程序; Flag=0; /下一步轮到计算机走棋 Else 报告平局,退出程序。 /else /while /main其中扫描棋盘矩阵可以自行设计函数,最简单的方式是按行或按列扫描棋盘,找到空位就布棋;判断三点是否连成一条直线的操作比较简单,读者自己思考。六、通讯录管理系统1、需求分析 信息记录要存放到文
18、件中去,因而要实现文件的输入输出操作;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按人名或电话号码进行查询的功能,因而要提供查找操作;另外还应该提供键盘式选择菜单以实现功能选择。2、总体设计 整个系统可以设计为数据插入模块、数据修改模块、数据删除模块、数据显示模块和数据查询模块。3、详细设计 采用结构体数组。Struct Char name20; /人名 Char post20; /工作单位 Int tel; /电话号码 Char email20; /email地址TelInfo; /电话簿信息结构体TelInfo telInfoN; /电话簿信息结构体
19、数组(1)数据插入模块输入数据,然后采用追加方式写文件(以”wb”方式打开文件,再用fwrite写入)。(2)数据修改模块通过菜单选择修改姓名、电话号码。可以把要修改的姓名或电话号码存储在临时变量里面,然后读文件,找到要修改的记录,把该记录重新以新的值写入。(3)数据删除模块删除一条记录,则输入要删除的人名,然后读文件,把文件中读出来的记录的人名与待删除的人名比较,如果不匹配,则重新写入文件;否则舍弃不再写入文件。(4)数据显示模块 采用分屏显示,每屏10条记录。用fread或fscanf读文件,输出结果。(5)数据查询模块 用基本查找算法对电话簿实现按人名或电话号码的查询(读文件,把读出记录
20、得相应字段与输入的查询字段比较),并把结果输出。 七、投票程序1、需求分析实现键盘输入投票人数和投票结果,进行统计时实现排序功能,输出结果。2、总体设计 该程序可以分为数据输入部分和统计部分。3、详细设计 采用结构体: Struct Char code; /代号 Int score; /得分CandidatesN; /候选人结构体数组这里#define N 3; 采用二维数组,则行方向对应一张投票,列方向对应各候选人得分。 CandidateMN; (1)输入部分 Char tmp3; /存放投票的中间变量输入投票人数n; For(i=0;i=输入金额,则输出“交易成功!”,并更改accoun
21、t=account-输入金额。否则输出“对不起,您的余额不够!”。(4)实现卡金融交易积分功能。在把积分初始化为0,只需在卡交易的时候,把交易金额取整加到积分上。(5)实现卡报表功能。读账户信息文件,分屏输出所有账户的帐号和交易金额。十八、组数游戏问题分析(1)输入正整数的个数n,输出n个数连接成的最大的多位数。找出n个数中最大数字的位数,然后将所有的数字通过后面补零的方式扩展成为最大位数。把变换后的n位数从大到小排序,然后把添加上的零去掉,按顺序输出的序列即为所求的最大数字。(2)数据结构采用结构体,由于正整数的位数不确定,可能非常大,所以数据类型采用字符数组。Struct char dat
22、a20; /数据 char ext_data20; /扩展数据ElemN; /结构体数组N可以在宏定义中定义:#define N 20(3)算法流程输入正整数个数n;Max=0; /Max存储最大位数/输入正整数并计算最大位数For (i=0;iMax) Max=Tmp;/计算扩展数字For (i=0;in;+i) tmp=strlen(Elemi.data); /计算输入数字的位数 m=Max-tmp; /m为需要补0的个数 定义一个m个0的字符串tmp_str; Strcat(Elemi.ext_data,tmp_str); /排序任选一中排序算法(冒泡、插入、选择等)对数字结构体数组按照
23、ext_data从大到小排序。 /输出 按序输出结构体数组中data数据。十九、仪器仪表管理1、需求分析仪器仪表信息用文件存储,故要提供文件的输入输出操作;要能够完成对仪器仪表信息的修改和删除,需要对提供仪器仪表信息修改和删除操作;实现对仪器仪表信息的查询和统计及显示操作;另外还要提供键盘式选择菜单以实现功能选择。2、总体设计 整个仪器仪表管理系统分为仪器表信息输入模块、仪器表信息修改和删除模块、仪器表信息查询和统计模块。3、详细设计 数据结构采用结构体: Struct instrumentInfo Char instrName20; /仪器仪表名Char instrNo10; /仪器仪表编号
24、Char buyDate20; /购买时间Char borrowDate20; /借入时间Char lendDate20; /借出时间Char returnDate20; /归还时间Char repairDate20; /维修时间Int state; /状态信息(0代表可借出,1代表已借出,2代表正在维修) InstrInfo;(1)输入模块采用fwrite或fprintf把仪器仪表信息写入仪器仪表信息文件。(2)修改和删除模块通过菜单选择借出操作,查找文件仪器仪表信息,找到相应的仪器仪表,如果仪器仪表状态为0,则允许借出,在文件中更改仪器仪表状态为1,更改借出时间;否则,即仪器仪表借出或正在
25、维修,则输出“抱歉,仪器仪表已借出(正在维修)!”这个过程是一个对文件查找(读文件、判断是否是要查找的纪录)、重新写入的过程。删除操作只需读文件,判断所读纪录是不是要删除的记录,如果是,则舍弃;否则重新写入文件。(3)查询和统计模块 通过菜单选择查询或统计操作,若选择查询,则需要再选择查询方式:基本信息、时间段、时间点。基本信息查询,就分屏(每屏10条信息)显示所有记录,这是一个读文件和输出的过程。时间段查询,则要输入起止时间和表征字段(可以用0表示购买起止时间,1表示借出起止时间,2表示维修起止时间)。例如输入2004 1 1 2004 10 10 0 表示查询2004年1月1日到2004年
26、10月10日之间购买的仪器仪表信息。则读一条记录,判断购买时间是否处于起止时间之间,如果处于,则打印输出,否则舍弃。借出和维修查询与此类似。统计功能和查询功能类似,只需要加一个计数变量即可。二十、服装销售系统1、需求分析 用户与商品信息要采用文件存储,因而要提供文件的输入输出操作;实现用户的添加、修改、删除,商品信息的添加、修改、删除、查找等需要提供信息的添加、删除、修改与查找操作;实现商品浏览功能的实现需要实现显示操作;另外还要提供键盘式选择菜单以实现功能选择。2、总体设计 整个服装销售系统被设计为管理员模块、店长模块、销售员模块、商品模块等,如下图所示:另外还要实现各用户自身信息的管理。
27、服装销售系统管理员模块店长模块销售员模块商品模块用户添加用户删除用户修改商品添加商品删除商品修改商品查找商品浏览商品出售3、详细设计 数据结构采用结构体,构造结构体如下: Struct goods /商品Char name10; /商品名Char code10; /商品代码Char producer10; /制造商Float price; /价格Goods;Struct administrator /管理员 Char ID10; Char password10; /其他信息 Admin;Struct shopkeeper /店长 Char ID10; Char password10; /其他信
28、息Shkpr;Struct seller /销售员Char ID10; /营业ID号Char name10; /姓名Char ID10; /所属店长ID号Goods *good; /指向该销售员销售的商品信息 /其他信息Seller;Struct goods_report /商品报表Goods good; /商品Seller assistant; /营业员Char sell_data20; /出售日期 先建立文本文件Admin.txt,其中存放管理员的ID和密码及其它信息;文本文件Shopkeeper.txt,其中存放店主的用户名和密码及其它信息;文本文件Seller.txt,其中存放销售员的ID和密码及其他信息。登录系统时,通过菜单选择登录身份,然后提示输入用户ID和密码。如果以管理员身份登录,则在Admin.txt文件中查找(采用基本的查找算法)输入的用户ID和密码是否存在,如果存在,则允许进入,显示选择菜单:修改密码 添加用户 用户信息 商品信息;否则,显示“输入的用户名或密码错误!”
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海南幼儿园消毒制度规范
- 征集档案资料制度表模板
- 台交所工作时间制度规范
- 智慧养老馆服务制度规范
- 小学资料档案室管理制度
- 公务员规范管理制度范本
- 油缸厂管理制度规范标准
- 驾照站岗制度规范要求标准
- 会议室线上登记制度规范
- 医院档案入馆管理制度
- 2026年中考数学压轴题专项练习-圆中的最值问题(学生版+名师详解版)
- KTV安全培训教育内容记录课件
- 2025至2030中国聚醚砜(PESU)行业发展趋势分析与未来投资战略咨询研究报告
- JJG 264-2025 谷物容重器检定规程
- 绘制竣工图合同协议
- 成人脑室外引流护理团体标准解读
- 酒店管理专业实习管理手册
- 2024年劳动保障监察和调解仲裁股年终总结
- 艺术院校合作办学方案
- 安徽省合肥市包河区2023-2024学年七年级下学期期中数学试卷
- 人教版九年级英语上册阅读理解10篇(含答案)
评论
0/150
提交评论