C语言的两个题目
pt570 2011-08-05 08:58:36 题目一、 学生成绩管理系统
任务:自学C语言中有关链表及外部文件的内容,设计学生成绩管理系统。要求如下所述:
建立学生信息,信息至少包含学号、姓名、专业、班级、5门课程的成绩;
能够提供添加、删除和修改学生信息的功能;
能够提供按不同方式查询的功能;如按姓名或学号等查询学生相关信息;
能否按照指定需求对学生信息排序。如按指定课程成绩或者按总成绩排序等
将学生信息保存在外部文件中;
能够按表格方式输出学生信息。
题目二:用单链表实现任意两个一元多项式的加、减法运算
任务:自学C语言中有关链表及外部文件的内容,编程实现以下功能:
① 分别输入一元多项式pn (x)和Q n (x)。
从键盘输入一元对项式中各项的系数和指数,并用单链表加以表示。
② 分别对一元多项式pn (x)和Q n (x)进行升幂排序。
将一元多项式中各子项按照指数从小到大的顺序排序。
③ 分别输出一元多项式pn (x)和Q n (x)。
将用单链表表示的一元多项式输出,即打印多项式的系数和指数。
④ 任意输入一个实数x0,分别求出一元多项式pn (x0)和Q n (x0)的值。
⑤ 已知有两个一元多项式分别为Pn (x)和Qn (x),求出两个多项式的和
R n (x)和差T n (x),分别用单链表表示R n (x)和T n (x),并将二者输出,
(R n (x)=P n (x)+Q n (x),T n (x)=P n (x)-Q n (x))
⑥ 保存多项式,即分别将一元多项式pn (x)和Q n (x)各项的系数和指数保存到外部磁盘文件。
⑦ 由程序从所存文件中读出多项式的系数和指数,重新构建一元多项式 Pn (x) 和Q n (x),并可对其再次进行运算操作。
题目三:实现车票管理系统
任务:自学C语言中有关链表及外部文件的内容,设计出车票管理系统。要求如下所述:
一车站每天有n个发车班次,每个班次都有一个班次号(1、2、3…n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。如:
班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数
1 8:00 郫县 广汉 2 45 30
2 6:30 郫县 成都 0.5 40 40
3 7:00 郫县 成都 0.5 40 20
4 10:00 郫县 成都 0.5 40 2
…
根据以上情况设计出相应的车票管理系统,具体功能如下:
录入功能
录入班次信息(信息用文件保存),可不定时地增加班次数据
浏览功能
浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。
查询功能
查询路线:可按班次号查询,可按终点站查询。
售票功能
当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。
退票功能
退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。
要求:
① 学生从以上几个设计任务中任选其中一个完成。
② 根据以上功能需求,自己定义单链表结点的存储结构;
③ 为了保证所有的数据可以长期被使用,要求程序能将相关数据存储在外部数据文件中,具体数据格式和文件名、路径等自定;
④ 提供友好的用户界面,方便用户操作。
四、设计和调试过程规范化要求
1) 需求分析
分析系统功能需求、用户操作流程和数据处理流程。
2) 概要设计
在需求分析的基础上,确定系统总体框架(系统功能结构图)。
3) 详细设计
定义数据存储结构,并设计实现系统功能的具体算法,画出各算法的工作流程图。
4) 代码设计
根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后可返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量,重点功能部分均要求给出清晰的程序注释。
程序调试
程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和修正。如果程序能够基本正确地运行,可考虑增加若干基本的容错功能(如避免用户操作错误时程序出现死循环等);另外希望尽量对现有算法给出改进方案,并比较不同算法之间的优缺点。