c程序设计课题

举报
资源描述
C语言课程设计参考材料一、工资管理系统1、需求分析工资信息存放在文件中,提供文件的输入、输出等操作;要实现浏览功能,提供显示、排序操作;而查询功能要求实现查找操作;另外还应该提供键盘式选择菜单以实现功能选择。2、总体设计整个系统可以分为信息输入、信息添加、信息浏览、信息排序、信息查询和信息统计模块。3、详细设计工资信息采用结构体数组:Struct Salary_Infoint工资卡号Char姓名int/月份float应发工资float水费float电费Card No;name 20;month;Init_Salary;Water _Rate;Electric_Rate;floattax;税金float Final_Salary;实发工资SIMAX;/SIMAX中 每个数组元素对应一个职工工资信(1)主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。(2)输入模块按照工资卡号、姓名、月份、应发工资、水费、电费的顺序输入信息,税金和实发工资根据输入的信息进行计算得到,这些信息被录入到文件中。文件操作函数:fopen,fwrite,fclose.税金的计算:if(应发工资=800)税金=0;else if(应发工资 800&应发工资=1400)税金二(应发工资800)*5%;else if(应发工资 1400)税 金 二(应 发 工 资1400)*10%;实发工资二应发工资.水费.电费.税金。(3)添加模块增加新的职工工资信息,从键盘输入并逐条写到原来的输入文件中,采用追加而不是覆盖的方式(以“ab”方式打开文件)。(4)浏览模块分屏显示职工工资信息,可以指 定 10个 1 屏,按任意键显示下一屏。通过菜单选择按照工资卡号还是姓名浏览。如果按照卡号浏览,则显示的记录按照卡号升序输出;按照姓名浏览则按照字典序输出(调用排序模块的排序功能)。(5)排序模块排序模块提供菜单选择,实现按照工资卡号升序、实发工资降序以及姓名字典序排序。排序方法可以选择冒泡排序、插入排序、选择排序等。(6)查询模块实现按照工资卡号和姓名的查询,采用基本的查找方法即可。(7)统计模块输入起止月份,按照职工卡号和月份查询记录,把起止月份之间的实发工资金额累加。附加:思考在数据输入及添加模块尾部添加排序功能,使得文件中的数据按照卡号排序。这样在查询模块和统计模块可以采用二分查找以提高效率。二、校际运动会管理系统1、需求分析要记录比赛结果,可以查看参赛学校的信息和比赛项目信息,因而要实现文件的输入和输出功能;用户可以查询各个学校的比赛成绩,查看参赛学校信息和比赛项目信息等,因而要提供查找和显示功能;另外还应该提供键盘式选择菜单以实现功能选择。2、总体设计系统被设计为信息输入模块、比赛结果录入模块和查询模块三个模块。3、详细设计数据结构采用结构体数组,包括学校、项目、运动员三个结构体。Struct athlete|Char name20;姓名Int age;年龄Char From20;来自学校 Athlete;运动员结构体Struct item(Char name20;项目名Int*weight;在运行时根据用户的输入动态分配空间(各项目 名 次 取 法 不 同,weight所指空间依次存放第一名得分、第二名得分等)Athlete*player;指向获奖运动员信息的指针Item;项目结构体Struct university(Char name 20;学校名Item*item;竞赛项目指针,根据用户输入动态分配空间Int score;学校得分Uni;学校结构体Item Totalltem ItemN um;项目结构体数组Uni AllUni UniNum;/学校结构体数组(1)主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。(2)信息输入模块输入参赛学校总数,M-男子参赛项目数,W-女子参赛项目数。把参赛学校信息和项目信息以及运动员信息录入文件(fwrite),建立三个文件。例如第i个项目:Scanf(u%s5TotalItemi.name);输入项目名Ch=Getchar();通过输入 1,2,3来选择项目名次取法Switch(ch)(Case 1:n=5;break;Case 2:n=3;break;Case 3:printf(u 取 前 几名??&n);break;Default:break;Totalltemi.weight=new intn;Totalltemi.athlete二NULL;/指向获奖运动员信息,初始化为空然后写入文件:fp二 fopen(itemtxtwb);fwrite(&Totalltemi,sizeof(Item)4 P);学校信息和运动员信息的录入与此类似。(2)比赛结果录入模块通过菜单选择进入比赛结果录入模块,更 改Totalltemi.athlete 的值,并把获奖名单保存到项目文件中。项目文件格式为:项 目 名 项 目 权 值(按照第一名、第二名给出权值)获奖运动员信息(按照第一名、第二名.给出)(3)查找模块查找学校信息文件,生成团体总分报表;用基本查找算法查询参赛 学 校 信 息(按照校名查找)或者比 赛 项 目 信 息(按照项目名)。三、学生学籍信息管理系统设计1、需求分析学生基本信息、学生成绩基本信息要存入文件当中,因而要提供文件的输入输出操作;查询功能要求提供查找和显示操作;删除功能要求实现删除操作;排序功能要求实现排序操作;另外还应该提供键盘式选择菜单以实现功能选择。2、总体设计整个系统可以设计为数据录入模块、数据查询模块、数据删除模块和数据排序模块。3、详细设计设计学生基本信息和学生成绩基本信息结构体数组。Struct(int stuNo;学号char name20;姓名char sex2;性别int domNum;宿舍号int tel;电话号码JStuInfo;/学生基本信息结构体Struct(int stuNo;学号char courseNo;课程编号char courseName;课程名称int creditHour;学分Int triGrade;平时成绩Int experiGrade;实验成绩Int examGrade;卷面成绩Float totalGrade;综合成绩Float finalCreHour;实得学分StuGraInfo;学生成绩基本信息结构体(1)数据录入模块学生基本信息文件可以在磁盘建立,采用写文件方式录入学生成绩基本信息。综合成绩和实得学分通过计算得到。(2)查询模块通过菜单选择查询功能,再选择学生基本情况查询和成绩查询,若选择前者,再通过菜单选择学号、姓名或宿舍号码,按照基本查找算法查找A.TXT,然后把查找结果输出若选择后者,则先在A.T X T 中查找学号对应的姓名,再在B.TXT中查找该学生的课程情况,并统计科目和实得总学分,输出结果。(fread和查找算法的应用)(3)删除模块通过菜单选择删除学生的功能,输入要删除学生的学号,则分别在A.T X T 和 B.T X T 中查找该生信息,删除之;或者输入学生的姓名,先 在 A.T X T 中得到该生的学号,删除该生信息,再 在 B.T X T 中删除该学号对应的信息。注意:C 语言中没有直接删除信息的函数,需要自己实现,可以采取读出数据,判断数据(如果不删除,则进入缓冲区,否则删除),写 入 数 据(把缓冲区中的数据写入文件)的步骤进行。(4)排序模块通过菜单选择排序依据,采用排序 算 法(冒泡、插入、选择等)对数据进行排序并输出结果。首先要读 文 件(fread)。四、一种简单的英文词典排版系统实现1、需求分析运行结果以文本形式存储,因而要提供文件的输入输出操作;检查重复单词要提供查找操作;按A-Z 的顺序排版,要提供排序操作;添加新单词并重新排版要提供插入操作。另外通过键盘式菜单实现功能选择。2、总体设计整个系统被设计为单词录入模块、文件存储模块和单词浏览模块。其中单词录入模块要完成输入单词、检查是否重复、排序操作。文件存储模块把存放单词的数组中的数据写入文件。单词浏览模块完成英文词典的输出,即文件的输出操作。3、详细设计数据结构采用指针数组或二维数组:char*dictionaryN;或char dictionaryN20 o 其中 N 是宏定义#de行ne N 100(表示单词个数)(1)单词录入模块输入一个单词,存放在一个临时字符数组中,以空格或回车表示单词的结束(这也是默认操作),然后换行输出刚刚输入的单词。采用插入排序算法的思想把该单词插入单词数组中,不同的是如果两个单词相同则不插入。(2)文件存储模块采用fwrite或 fprintf把单词数组输入到文件中。(3)单词浏览模块采用fread或 fscanf把单词从文件中读出,然后输出。五、通讯录管理系统1、需求分析信息记录要存放到文件中去,因而要实现文件的输入输出操作;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按人名或电话号码进行查询的功能,因而要提供查找操作;另外还应该提供键盘式选择菜单以实现功能选择。2、总体设计整个系统可以设计为数据插入模块、数据修改模块、数据删除模块、数据显示模块和数据查询模块。3、详细设计采用结构体数组。StructChar name20;Char post20;Int tel;人名工作单位电话号码Char email 20;/email 地址jTellnfo;电话簿信息结构体Tellnfo telInfoN;电话簿信息结构体数组(1)数据插入模块输入数据,然后采用追加方式写文件(以 wb”方式打开文件,再用fwrite 写入)。(2)数据修改模块通过菜单选择修改姓名、电话号可以把要修改的姓名或电话号码存储在临时变量里面,然后读文件,找到要修改的记录,把该记录重新以新的值写入。(3)数据删除模块删除一条记录,则输入要删除的人名,然后读文件,把文件中读出来的记录的人名与待删除的人名比较,如果不匹配,则重新写入文件;否则舍弃不再写入文件。(4)数据显示模块采用分屏显示,每 屏 1 0 条记录。用 fread或 fscanf读文件,输出结果。(5)数据查询模块用基本查找算法对电话簿实现按人名或电话号码的查询(读文件,把读出记录得相应字段与输入的查询字段比较),并把结果输出。六、投票程序1、需求分析实现键盘输入投票人数和投票结果,进行统计时实现排序功能,输出结果。2、总体设计该程序可以分为数据输入部分和统计部分。3、详细设计采用结构体:Struct(Char code;代号Int score;得分CandidatesN;候选人结构体数组这里#de行 ne N 3;采用二维数组,则行方向对应一张投票,列方向对应各候选人得分。CandidateMN;(1)输入部分Char tmp3;存放投票的中间变量输入投票人数n;For(i=0;in;+i)投票(Scanf(“s”,tmp);If(tmpO=tmpllltmpl=tmp2lltmp0=tmp2)Printf。该票无效!”);Else(TmpO号候选人加5分;Tmpl号候选人加3分;Tmp2号候选人加2 分;(2)统计部分对候选人按照他们的得分排序(冒 泡、插入、选择等),然后比较前两名得分是否相同。如果相同,则显 示“重新投票”;否则显示三个候选者得分并输出“祝贺X当选冠军”,X 为最高分候选者。七、销售管理系统问题分析:数据结构采用结构体,设计便条结构体:Struct sellNoteInt sellerNo;销售员代号d-4)Int proNo;产品代号(1-5)Float sellMoney;/销售额JSNote;便条信息采用文件存储,实现建立文本文件。主函数输出提示菜单,让用户选择查看不同信息。(1)个人销售额查看计算上个月每个人每种产品的销售额。设立count45,用来存储4 个销售员的5 种产品的销售额。读文件,把相同销售员的相同产品的销售额累加,写入count中。最 后countij中存放
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号